1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll
Bill Schmidt 6d9693229c [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.

llvm-svn: 226033
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>
}