2015-01-15 04:17:10 +08:00
|
|
|
; Test the ICBT instruction is not emitted on POWER7
|
|
|
|
; Based on the ppc64-prefetch.ll test
|
|
|
|
; RUN: not llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s 2>&1 | FileCheck %s
|
|
|
|
|
|
|
|
declare void @llvm.prefetch(i8*, i32, i32, i32)
|
|
|
|
|
|
|
|
define void @test(i8* %a, ...) nounwind {
|
|
|
|
entry:
|
|
|
|
call void @llvm.prefetch(i8* %a, i32 0, i32 3, i32 0)
|
|
|
|
ret void
|
|
|
|
|
|
|
|
; FIXME: Crashing is not really the correct behavior here, we really should just emit nothing
|
SelectionDAG: Introduce PersistentID to SDNode for assert builds.
This gives us more human readable numbers to identify nodes in debug
dumps.
Before:
0x7fcbd9700160: ch = EntryToken
0x7fcbd985c7c8: i64 = Register %RAX
...
0x7fcbd9700160: <multiple use>
0x7fcbd985c578: i64,ch = MOV64rm 0x7fcbd985c6a0, 0x7fcbd985cc68, 0x7fcbd985c200, 0x7fcbd985cd90, 0x7fcbd985ceb8, 0x7fcbd9700160<Mem:LD8[@foo]> [ORD=2]
0x7fcbd985c8f0: ch,glue = CopyToReg 0x7fcbd9700160, 0x7fcbd985c7c8, 0x7fcbd985c578 [ORD=3]
0x7fcbd985c7c8: <multiple use>
0x7fcbd985c8f0: <multiple use>
0x7fcbd985c8f0: <multiple use>
0x7fcbd985ca18: ch = RETQ 0x7fcbd985c7c8, 0x7fcbd985c8f0, 0x7fcbd985c8f0:1 [ORD=3]
Now:
t0: ch = EntryToken
t5: i64 = Register %RAX
...
t0: <multiple use>
t3: i64,ch = MOV64rm t10, t12, t11, t13, t14, t0<Mem:LD8[@foo]> [ORD=2]
t6: ch,glue = CopyToReg t0, t5, t3 [ORD=3]
t5: <multiple use>
t6: <multiple use>
t6: <multiple use>
t7: ch = RETQ t5, t6, t6:1 [ORD=3]
Differential Revision: http://reviews.llvm.org/D12564
llvm-svn: 248010
2015-09-19 01:41:00 +08:00
|
|
|
; CHECK: Cannot select: {{0x[0-9,a-f]+|t[0-9]+}}: ch = Prefetch
|
|
|
|
; CHECK: {{0x[0-9,a-f]+|t[0-9]+}}: i32 = Constant<0>
|
|
|
|
; CHECK-NEXT: {{0x[0-9,a-f]+|t[0-9]+}}: i32 = Constant<3>
|
|
|
|
; CHECK-NEXT: {{0x[0-9,a-f]+|t[0-9]+}}: i32 = Constant<0>
|
2015-01-15 04:17:10 +08:00
|
|
|
|
|
|
|
}
|
|
|
|
|