llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll
Bill Schmidt 11abe69e98 [PPC64] Add support for the ICBT instruction on POWER8.
Patch by Kit Barton.

Support for the ICBT instruction is currently present, but limited to
embedded processors. This change adds a new FeatureICBT that can be used
to identify whether the ICBT instruction is available on a specific processor.

Two new tests are added:
 * Positive test to ensure the icbt instruction is present when using
-mcpu=pwr8
 * Negative test to ensure the icbt instruction is not generated when
using -mcpu=pwr7

Both test cases use the Prefetch opcode in LLVM. They are based on the
ppc64-prefetch.ll test case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226033 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-14 20:17:10 +00:00

20 lines
648 B
LLVM

; 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
; CHECK: Cannot select: 0x{{[0-9,a-f]+}}: ch = Prefetch
; CHECK: 0x{{[0-9,a-f]+}}: i32 = Constant<0>
; CHECK-NEXT: 0x{{[0-9,a-f]+}}: i32 = Constant<3>
; CHECK-NEXT: 0x{{[0-9,a-f]+}}: i32 = Constant<0>
}