mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-14 15:39:06 +00:00
11abe69e98
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
20 lines
648 B
LLVM
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>
|
|
|
|
}
|
|
|