mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-24 09:29:42 +00:00
Convert this test to FileCheck, and improve it to check for the instructions it is trying to exclude instead of checking for register use (especially because grepping for r1 can be thrown off, for example, by a use of r12). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195979 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.1 KiB
LLVM
44 lines
1.1 KiB
LLVM
; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8 -mattr=stfiwx | FileCheck %s
|
|
; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8 -mattr=-stfiwx | FileCheck -check-prefix=CHECK-LS %s
|
|
|
|
define void @test1(float %a, i32* %b) nounwind {
|
|
; CHECK-LABEL: @test1
|
|
; CHECK-LS-LABEL: @test1
|
|
%tmp.2 = fptosi float %a to i32 ; <i32> [#uses=1]
|
|
store i32 %tmp.2, i32* %b
|
|
ret void
|
|
|
|
; CHECK-NOT: lwz
|
|
; CHECK-NOT: stw
|
|
; CHECK: stfiwx
|
|
; CHECK: blr
|
|
|
|
; CHECK-LS: lwz
|
|
; CHECK-LS: stw
|
|
; CHECK-LS-NOT: stfiwx
|
|
; CHECK-LS: blr
|
|
}
|
|
|
|
define void @test2(float %a, i32* %b, i32 %i) nounwind {
|
|
; CHECK-LABEL: @test2
|
|
; CHECK-LS-LABEL: @test2
|
|
%tmp.2 = getelementptr i32* %b, i32 1 ; <i32*> [#uses=1]
|
|
%tmp.5 = getelementptr i32* %b, i32 %i ; <i32*> [#uses=1]
|
|
%tmp.7 = fptosi float %a to i32 ; <i32> [#uses=3]
|
|
store i32 %tmp.7, i32* %tmp.5
|
|
store i32 %tmp.7, i32* %tmp.2
|
|
store i32 %tmp.7, i32* %b
|
|
ret void
|
|
|
|
; CHECK-NOT: lwz
|
|
; CHECK-NOT: stw
|
|
; CHECK: stfiwx
|
|
; CHECK: blr
|
|
|
|
; CHECK-LS: lwz
|
|
; CHECK-LS: stw
|
|
; CHECK-LS-NOT: stfiwx
|
|
; CHECK-LS: blr
|
|
}
|
|
|