llvm.org GIT mirror llvm / 36a0947
Eliminate more uses of llvm-as and llvm-dis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81290 91177308-0d34-0410-b5e6-96231b3b80d8 Dan Gohman 10 years ago
968 changed file(s) with 1284 addition(s) and 1259 deletion(s). Raw diff Collapse all Expand all
None ; RUN: llvm-as < %s | llc -march=x86 -regalloc=simple
0 ; RUN: llc < %s -march=x86 -regalloc=simple
11
22 define i32 @main() {
33 ; %A = 0
None ; RUN: llvm-as < %s | llc -march=x86 -regalloc=simple
0 ; RUN: llc < %s -march=x86 -regalloc=simple
11
22 define i32 @main(i32 %B) {
33 ;%B = add i32 0, 1;
22 ; it makes a ton of annoying overlapping live ranges. This code should not
33 ; cause spills!
44 ;
5 ; RUN: llvm-as < %s | llc -march=x86 -stats |& not grep spilled
5 ; RUN: llc < %s -march=x86 -stats |& not grep spilled
66
77 target datalayout = "e-p:32:32"
88
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i32 @test() {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 | \
0 ; RUN: llc < %s -march=x86 | \
11 ; RUN: not grep {.byte\[\[:space:\]\]*true}
22
33 @X = global i1 true ; [#uses=0]
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-pc-linux-gnu | grep movs | count 1
0 ; RUN: llc < %s -march=x86 -mtriple=i686-pc-linux-gnu | grep movs | count 1
11
22 @A = global [32 x i32] zeroinitializer
33 @B = global [32 x i32] zeroinitializer
None ; RUN: llvm-as < %s | llc -march=x86 | grep {(%esp}
1 ; RUN: llvm-as < %s | llc -march=x86 | grep {pushl %ebp} | count 1
2 ; RUN: llvm-as < %s | llc -march=x86 | grep {popl %ebp} | count 1
0 ; RUN: llc < %s -march=x86 | grep {(%esp}
1 ; RUN: llc < %s -march=x86 | grep {pushl %ebp} | count 1
2 ; RUN: llc < %s -march=x86 | grep {popl %ebp} | count 1
33
44 declare i8* @llvm.returnaddress(i32)
55
None ; RUN: llvm-as < %s | llc -march=x86 | grep -i ESP | not grep sub
0 ; RUN: llc < %s -march=x86 | grep -i ESP | not grep sub
11
22 define i32 @test(i32 %X) {
33 ret i32 %X
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 define i1 @test1(double %X) {
22 %V = fcmp one double %X, 0.000000e+00 ; [#uses=1]
33 ret i1 %V
None ; RUN: llvm-as < %s | llc -march=x86 | not grep {j\[lgbe\]}
0 ; RUN: llc < %s -march=x86 | not grep {j\[lgbe\]}
11
22 define i32 @max(i32 %A, i32 %B) {
33 %gt = icmp sgt i32 %A, %B ; [#uses=1]
11 ; overlapping live intervals. When two overlapping intervals have the same
22 ; value, they can be joined though.
33 ;
4 ; RUN: llvm-as < %s | llc -march=x86 -regalloc=linearscan | \
4 ; RUN: llc < %s -march=x86 -regalloc=linearscan | \
55 ; RUN: not grep {mov %\[A-Z\]\\\{2,3\\\}, %\[A-Z\]\\\{2,3\\\}}
66
77 define i64 @test(i64 %x) {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define double @test(double %d) {
33 %X = select i1 false, double %d, double %d ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i1 @T(double %X) {
33 %V = fcmp oeq double %X, %X ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i1 @test(i1 %C, i1 %D, i32 %X, i32 %Y) {
33 %E = icmp slt i32 %X, %Y ; [#uses=1]
22 ; is invalid code (there is no correct way to order the instruction). Check
33 ; that we do not fold the load into the sub.
44
5 ; RUN: llvm-as < %s | llc -march=x86 | not grep sub.*GLOBAL
5 ; RUN: llc < %s -march=x86 | not grep sub.*GLOBAL
66
77 @GLOBAL = external global i32 ; [#uses=1]
88
None ; RUN: llvm-as < %s | llc -march=x86 | not grep 18446744073709551612
0 ; RUN: llc < %s -march=x86 | not grep 18446744073709551612
11
22 @A = external global i32 ; [#uses=1]
33 @Y = global i32* getelementptr (i32* @A, i32 -1) ; [#uses=0]
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=generic
0 ; RUN: llc < %s -march=x86 -mcpu=generic
11 ; Make sure LLC doesn't crash in the stackifier due to FP PHI nodes.
22
33 define void @radfg_() {
None ; RUN: llvm-as < %s | llc -march=x86 | \
0 ; RUN: llc < %s -march=x86 | \
11 ; RUN: grep shld | count 1
22 ;
33 ; Check that the isel does not fold the shld, which already folds a load
None ; RUN: llvm-as < %s | llc -march=x86 | not grep {subl.*%esp}
0 ; RUN: llc < %s -march=x86 | not grep {subl.*%esp}
11
22 define i32 @f(i32 %a, i32 %b) {
33 %tmp.2 = mul i32 %a, %a ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 -stats |& \
0 ; RUN: llc < %s -march=x86 -stats |& \
11 ; RUN: grep asm-printer | grep 7
22
33 define i32 @g(i32 %a, i32 %b) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah
0 ; RUN: llc < %s -march=x86 -mcpu=yonah
11 ; END.
22
33 target datalayout = "e-p:32:32"
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah -stats |& \
0 ; RUN: llc < %s -march=x86 -mcpu=yonah -stats |& \
11 ; RUN: not grep {Number of register spills}
22 ; END.
33
None ; RUN: llvm-as < %s | llc -march=x86 -stats |& \
0 ; RUN: llc < %s -march=x86 -stats |& \
11 ; RUN: grep asm-printer | grep 13
22
33 define void @_ZN9__gnu_cxx9hashtableISt4pairIKPKciES3_NS_4hashIS3_EESt10_Select1stIS5_E5eqstrSaIiEE14find_or_insertERKS5__cond_true456.i(i8* %tmp435.i, i32* %tmp449.i.out) nounwind {
0 ; Coalescing from R32 to a subset R32_. Once another register coalescer bug is
11 ; fixed, the movb should go away as well.
22
3 ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static | \
3 ; RUN: llc < %s -march=x86 -relocation-model=static | \
44 ; RUN: grep movl
55
66 @B = external global i32 ; [#uses=2]
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -stats -realign-stack=0 |&\
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -stats -realign-stack=0 |&\
11 ; RUN: grep {asm-printer} | grep 31
22
33 target datalayout = "e-p:32:32"
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define <4 x float> @opRSQ(<4 x float> %a) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 | grep setnp
1 ; RUN: llvm-as < %s | llc -march=x86 -enable-unsafe-fp-math | \
0 ; RUN: llc < %s -march=x86 | grep setnp
1 ; RUN: llc < %s -march=x86 -enable-unsafe-fp-math | \
22 ; RUN: not grep setnp
33
44 define i32 @test(float %f) {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i32 @test() {
33 br i1 false, label %cond_next33, label %cond_true12
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR825
22
33 define i64 @test() {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR828
22
33 target datalayout = "e-p:32:32"
None ; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=att
0 ; RUN: llc < %s -march=x86 -x86-asm-syntax=att
11 ; PR834
22 ; END.
33
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR833
22
33 @G = weak global i32 0 ; [#uses=3]
None ; RUN: llvm-as < %s | llc -march=x86 | grep -- 4294967240
0 ; RUN: llc < %s -march=x86 | grep -- 4294967240
11 ; PR853
22
33 @X = global i32* inttoptr (i64 -56 to i32*) ; [#uses=0]
0 ; PR850
1 ; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=att > %t
1 ; RUN: llc < %s -march=x86 -x86-asm-syntax=att > %t
22 ; RUN: grep {movl 4(%eax),%ebp} %t
33 ; RUN: grep {movl 0(%eax), %ebx} %t
44
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11 %struct.foo = type opaque
22
33 define fastcc i32 @test(%struct.foo* %v, %struct.foo* %vi) {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 %struct.expr = type { %struct.rtx_def*, i32, %struct.expr*, %struct.occr*, %struct.occr*, %struct.rtx_def* }
22 %struct.hash_table = type { %struct.expr**, i32, i32, i32 }
33 %struct.occr = type { %struct.occr*, %struct.rtx_def*, i8, i8 }
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386 | \
0 ; RUN: llc < %s -march=x86 -mcpu=i386 | \
11 ; RUN: not grep {movl %eax, %edx}
22
33 define i32 @foo(i32 %t, i32 %C) {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 target datalayout = "e-p:32:32"
22 target triple = "i686-apple-darwin8"
33 %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR933
22
33 define fastcc i1 @test() {
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=sse | grep movaps
0 ; RUN: llc < %s -march=x86 -mattr=sse | grep movaps
11 ; Test that the load is NOT folded into the intrinsic, which would zero the top
22 ; elts of the loaded vector.
33
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define void @_ZN13QFSFileEngine4readEPcx() {
33 %tmp201 = load i32* null ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 | grep shrl
0 ; RUN: llc < %s -march=x86 | grep shrl
11 ; Bug in FindModifiedNodeSlot cause tmp14 load to become a zextload and shr 31
22 ; is then optimized away.
33 @tree_code_type = external global [0 x i32] ; <[0 x i32]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 %struct.function = type opaque
22 %struct.lang_decl = type opaque
33 %struct.location_t = type { i8*, i32 }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 @str = external global [18 x i8] ; <[18 x i8]*> [#uses=1]
22
33 define void @test() {
None ; RUN: llvm-as < %s | llc -march=x86 -asm-verbose | FileCheck %s
0 ; RUN: llc < %s -march=x86 -asm-verbose | FileCheck %s
11
22 @str = internal constant [14 x i8] c"Hello world!\0A\00" ; <[14 x i8]*> [#uses=1]
33 @str.upgrd.1 = internal constant [13 x i8] c"Blah world!\0A\00" ; <[13 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 | grep {subl \$4, %esp}
0 ; RUN: llc < %s -march=x86 | grep {subl \$4, %esp}
11
22 target triple = "i686-pc-linux-gnu"
33 @str = internal constant [9 x i8] c"%f+%f*i\0A\00" ; <[9 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86-64 > %t
0 ; RUN: llc < %s -march=x86-64 > %t
11 ; RUN: grep movb %t | count 2
22 ; RUN: grep {movzb\[wl\]} %t
33
None ; RUN: llvm-as < %s | llc -march=x86 | grep test.*1
0 ; RUN: llc < %s -march=x86 | grep test.*1
11 ; PR1016
22
33 define i32 @test(i32 %A, i32 %B, i32 %C) {
None ; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=intel
0 ; RUN: llc < %s -march=x86 -x86-asm-syntax=intel
11 ; PR1061
22 target datalayout = "e-p:32:32"
33 target triple = "i686-pc-linux-gnu"
0 ; PR1075
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | FileCheck %s
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
22
33 define float @foo(float %x) nounwind {
44 %tmp1 = fmul float %x, 3.000000e+00
None ; RUN: llvm-as < %s | llc -march=x86-64 > %t
0 ; RUN: llc < %s -march=x86-64 > %t
11 ; RUN: grep leaq %t
22 ; RUN: not grep {,%rsp)} %t
33 ; PR1103
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; Test 'ri' constraint.
22
33 define void @run_init_process() {
None ; RUN: llvm-as < %s | llc -march=x86 | grep {orl \$1, %eax}
1 ; RUN: llvm-as < %s | llc -march=x86 | grep {leal 3(,%eax,8)}
0 ; RUN: llc < %s -march=x86 | grep {orl \$1, %eax}
1 ; RUN: llc < %s -march=x86 | grep {leal 3(,%eax,8)}
22
33 ;; This example can't fold the or into an LEA.
44 define i32 @test(float ** %tmp2, i32 %tmp12) {
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-pc-linux-gnu -relocation-model=pic
0 ; RUN: llc < %s -march=x86 -mtriple=i686-pc-linux-gnu -relocation-model=pic
11 ; PR1027
22
33 %struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i32, i32, [40 x i8] }
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=pentium3
0 ; RUN: llc < %s -march=x86 -mcpu=pentium3
11
22 define internal fastcc double @ggc_rlimit_bound(double %limit) {
33 ret double %limit
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin8 -mattr=+sse2
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin8 -mattr=+sse2 | not grep movhlps
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin8 -mattr=+sse2
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin8 -mattr=+sse2 | not grep movhlps
22
33 define void @test() nounwind {
44 test.exit:
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-darwin | \
0 ; RUN: llc < %s -march=x86 -mtriple=i686-darwin | \
11 ; RUN: grep push | count 3
22
33 define void @foo(i8** %buf, i32 %size, i32 %col, i8* %p) {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 ; ModuleID = 'a.bc'
33
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR1259
22
33 define void @test() {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i32 @test(i16 %tmp40414244) {
33 %tmp48 = call i32 asm sideeffect "inl ${1:w}, $0", "={ax},N{dx},~{dirflag},~{fpsr},~{flags}"( i16 %tmp40414244 )
None ; RUN: llvm-as < %s | llc -march=x86 | grep {mov %gs:72, %eax}
0 ; RUN: llc < %s -march=x86 | grep {mov %gs:72, %eax}
11 target datalayout = "e-p:32:32"
22 target triple = "i686-apple-darwin9"
33
None ; RUN: llvm-as < %s | llc -mcpu=yonah -march=x86 | \
0 ; RUN: llc < %s -mcpu=yonah -march=x86 | \
11 ; RUN: grep {cmpltsd %xmm0, %xmm0}
22 target datalayout = "e-p:32:32"
33 target triple = "i686-apple-darwin9"
None ; RUN: llvm-as < %s | llc -march=x86 | grep {psrlw \$8, %xmm0}
0 ; RUN: llc < %s -march=x86 | grep {psrlw \$8, %xmm0}
11 target datalayout = "e-p:32:32"
22 target triple = "i686-apple-darwin9"
33
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 @data = external global [339 x i64]
33
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR1314
22
33 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah
0 ; RUN: llc < %s -march=x86 -mcpu=yonah
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
22 target triple = "i686-apple-darwin8"
33
None ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin -relocation-model=pic --disable-fp-elim
0 ; RUN: llc < %s -mtriple=i686-apple-darwin -relocation-model=pic --disable-fp-elim
11
22 %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
33 %struct.__sFILEX = type opaque
None ; RUN: llvm-as < %s | llc -march=x86-64 | not grep 4294967112
0 ; RUN: llc < %s -march=x86-64 | not grep 4294967112
11 ; PR1348
22
33 %struct.md5_ctx = type { i32, i32, i32, i32, [2 x i32], i32, [128 x i8], [4294967288 x i8] }
None ; RUN: llvm-as < %s | llc -mcpu=yonah
0 ; RUN: llc < %s -mcpu=yonah
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
22 target triple = "i686-apple-darwin8"
33
None ; RUN: llvm-as < %s | llc -o - -march=x86 -mattr=+mmx | grep paddq | count 2
1 ; RUN: llvm-as < %s | llc -o - -march=x86 -mattr=+mmx | grep movq | count 2
0 ; RUN: llc < %s -o - -march=x86 -mattr=+mmx | grep paddq | count 2
1 ; RUN: llc < %s -o - -march=x86 -mattr=+mmx | grep movq | count 2
22
33 define <1 x i64> @unsigned_add3(<1 x i64>* %a, <1 x i64>* %b, i32 %count) {
44 entry:
None ; RUN: llvm-as < %s | llc | not grep {bsrl.*10}
0 ; RUN: llc < %s | not grep {bsrl.*10}
11 ; PR1356
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386 -mattr=+sse
0 ; RUN: llc < %s -march=x86 -mcpu=i386 -mattr=+sse
11 ; PR1371
22
33 @str = external global [18 x i8] ; <[18 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu -enable-eh -disable-fp-elim | not grep {addl .12, %esp}
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu -enable-eh -disable-fp-elim | not grep {addl .12, %esp}
11 ; PR1398
22
33 %struct.S = type { i32, i32 }
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11
22 %struct.XDesc = type <{ i32, %struct.OpaqueXDataStorageType** }>
33 %struct.OpaqueXDataStorageType = type opaque
None ; RUN: llvm-as < %s | llc -mcpu=yonah
0 ; RUN: llc < %s -mcpu=yonah
11
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
33 target triple = "i686-apple-darwin8"
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
1 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep punpckhwd
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
1 ; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep punpckhwd
22
33 declare <8 x i16> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>)
44
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | not grep GOTPCREL
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep ".align.*3"
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | not grep GOTPCREL
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep ".align.*3"
22
33 %struct.A = type { [1024 x i8] }
44 @_ZN1A1aE = global %struct.A zeroinitializer, align 32 ; <%struct.A*> [#uses=1]
None ; RUN: llvm-as < %s | llc -enable-eh -asm-verbose | grep invcont131
0 ; RUN: llc < %s -enable-eh -asm-verbose | grep invcont131
11 ; PR 1496: tail merge was incorrectly removing this block
22
33 ; ModuleID = 'report.1.bc'
0 ; PR1495
1 ; RUN: llvm-as < %s | llc -march=x86
1 ; RUN: llc < %s -march=x86
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
44 target triple = "i686-pc-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=i686 | not grep jmp
0 ; RUN: llc < %s -march=x86 -mcpu=i686 | not grep jmp
11 ; check that branch folding understands FP_REG_KILL is not a branch
22
33 target triple = "i686-pc-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86-64 -mattr=+mmx | grep paddusw
0 ; RUN: llc < %s -march=x86-64 -mattr=+mmx | grep paddusw
11 @R = external global <1 x i64> ; <<1 x i64>*> [#uses=1]
22
33 define void @foo(<1 x i64> %A, <1 x i64> %B) {
None ; RUN: llvm-as < %s | llc -march=x86-64 -mattr=+sse2
0 ; RUN: llc < %s -march=x86-64 -mattr=+sse2
11
22 define void @test() {
33 %tmp1 = call <8 x i16> @llvm.x86.sse2.pmins.w( <8 x i16> zeroinitializer, <8 x i16> bitcast (<4 x i32> < i32 7, i32 7, i32 7, i32 7 > to <8 x i16>) )
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define void @test() {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define void @test(<4 x float>* %arg) {
33 %tmp89 = getelementptr <4 x float>* %arg, i64 3
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx | grep {movd %rsi, %mm0}
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx | grep {movd %rdi, %mm1}
2 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -mattr=+mmx | grep {paddusw %mm0, %mm1}
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx | grep {movd %rsi, %mm0}
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx | grep {movd %rdi, %mm1}
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx | grep {paddusw %mm0, %mm1}
33
44 @R = external global <1 x i64> ; <<1 x i64>*> [#uses=1]
55
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu -mcpu=athlon -relocation-model=pic
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu -mcpu=athlon -relocation-model=pic
11 ; PR1545
22
33 @.str97 = external constant [56 x i8] ; <[56 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86-64 -mattr=+sse | grep {movq (%rdi), %rax}
1 ; RUN: llvm-as < %s | llc -march=x86-64 -mattr=+sse | grep {movq 8(%rdi), %rax}
0 ; RUN: llc < %s -march=x86-64 -mattr=+sse | grep {movq (%rdi), %rax}
1 ; RUN: llc < %s -march=x86-64 -mattr=+sse | grep {movq 8(%rdi), %rax}
22 define i64 @foo_0(<2 x i64>* %val) {
33 entry:
44 %val12 = getelementptr <2 x i64>* %val, i32 0, i32 0 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 | not grep movl
0 ; RUN: llc < %s -march=x86 | not grep movl
11
22 define i8 @t(i8 zeroext %x, i8 zeroext %y) zeroext {
33 %tmp2 = add i8 %x, 2
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | not grep "movb %ah, %r"
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | not grep "movb %ah, %r"
11
22 %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, [4 x i8], i64 }
33 %struct.PyBoolScalarObject = type { i64, %struct._typeobject*, i8 }
None ; RUN: llvm-as < %s | llc -march=x86 | grep {movsbl}
0 ; RUN: llc < %s -march=x86 | grep {movsbl}
11
22 @X = global i32 0 ; [#uses=1]
33
None ; RUN: llvm-as < %s | llc -march=x86 | not grep drectve
0 ; RUN: llc < %s -march=x86 | not grep drectve
11 ; PR1607
22
33 %hlvm_programs_element = type { i8*, i32 (i32, i8**)* }
None ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin | grep "48(%esp)" | count 5
0 ; RUN: llc < %s -mtriple=i686-apple-darwin | grep "48(%esp)" | count 5
11
22 %struct..0anon = type { i32 }
33 %struct.rtvec_def = type { i32, [1 x %struct..0anon] }
None ; RUN: llvm-as < %s | llc -march=x86-64 -enable-eh
0 ; RUN: llc < %s -march=x86-64 -enable-eh
11 ; PR1632
22
33 define void @_Z1fv() {
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -x86-asm-syntax=intel | not grep {lea\[\[:space:\]\]R}
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -x86-asm-syntax=intel | not grep {lea\[\[:space:\]\]R}
11
22 %struct.AGenericCall = type { %struct.AGenericManager*, %struct.ComponentParameters*, i32* }
33 %struct.AGenericManager = type <{ i8 }>
None ; RUN: llvm-as < %s | llc -march=x86 | grep weak | count 2
0 ; RUN: llc < %s -march=x86 | grep weak | count 2
11 @__gthrw_pthread_once = alias weak i32 (i32*, void ()*)* @pthread_once ; [#uses=0]
22
33 declare extern_weak i32 @pthread_once(i32*, void ()*)
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-apple-darwin -enable-eh | grep {isNullOrNil].eh"} | count 2
0 ; RUN: llc < %s -march=x86 -mtriple=i686-apple-darwin -enable-eh | grep {isNullOrNil].eh"} | count 2
11
22 %struct.NSString = type { }
33 %struct._objc__method_prototype_list = type opaque
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep -- -86
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep -- -86
11
22 define i16 @f(<4 x float>* %tmp116117.i1061.i) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc | grep powixf2
1 ; RUN: llvm-as < %s | llc | grep fsqrt
0 ; RUN: llc < %s | grep powixf2
1 ; RUN: llc < %s | grep fsqrt
22 ; ModuleID = 'yyy.c'
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
44 target triple = "i686-apple-darwin8"
None ; RUN: llvm-as < %s | llc -march=x86 | not grep pushf
0 ; RUN: llc < %s -march=x86 | not grep pushf
11
22 %struct.gl_texture_image = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8* }
33 %struct.gl_texture_object = type { i32, i32, i32, float, [4 x i32], i32, i32, i32, i32, i32, float, [11 x %struct.gl_texture_image*], [1024 x i8], i32, i32, i32, i8, i8*, i8, void (%struct.gl_texture_object*, i32, float*, float*, float*, float*, i8*, i8*, i8*, i8*)*, %struct.gl_texture_object* }
None ; RUN: llvm-as < %s | llc -march=x86 | grep lea
0 ; RUN: llc < %s -march=x86 | grep lea
11
22 %struct.anon = type { [3 x double], double, %struct.node*, [64 x %struct.bnode*], [64 x %struct.bnode*] }
33 %struct.bnode = type { i16, double, [3 x double], i32, i32, [3 x double], [3 x double], [3 x double], double, %struct.bnode*, %struct.bnode* }
None ; RUN: llvm-as < %s | llc -march=x86 | not grep movb
0 ; RUN: llc < %s -march=x86 | not grep movb
11
22 define i16 @f(i32* %bp, i32* %ss) signext {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep addss | not grep esp
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep addss | not grep esp
11
22 define fastcc void @fht(float* %fz, i16 signext %n) {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 | grep sarl | not grep esp
0 ; RUN: llc < %s -march=x86 | grep sarl | not grep esp
11
22 define i16 @t(i16* %qmatrix, i16* %dct, i16* %acBaseTable, i16* %acExtTable, i16 signext %acBaseRes, i16 signext %acMaskRes, i16 signext %acExtRes, i32* %bitptr, i32* %source, i32 %markerPrefix, i8** %byteptr, i32 %scale, i32 %round, i32 %bits) signext {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin
11
22 %struct._Unwind_Context = type { }
33
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-linux-gnu
0 ; RUN: llc < %s -mtriple=x86_64-linux-gnu
11 ; PR1729
22
33 %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin
11
22 define i64 @__ashldi3(i64 %u, i64 %b) {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-linux-gnu | grep movb | not grep x
0 ; RUN: llc < %s -mtriple=x86_64-linux-gnu | grep movb | not grep x
11 ; PR1734
22
33 %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; ModuleID = 'bugpoint-reduced-simplified.bc'
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i686-apple-darwin9"
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-linux-gnu | grep addb | not grep x
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-linux-gnu | grep cmpb | not grep x
0 ; RUN: llc < %s -mtriple=x86_64-linux-gnu | grep addb | not grep x
1 ; RUN: llc < %s -mtriple=x86_64-linux-gnu | grep cmpb | not grep x
22 ; PR1734
33
44 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=intel | grep inc | not grep PTR
0 ; RUN: llc < %s -march=x86 -x86-asm-syntax=intel | grep inc | not grep PTR
11
22 define i16 @t(i32* %bitptr, i32* %source, i8** %byteptr, i32 %scale, i32 %round) signext {
33 entry:
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR1748
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 | grep mov | count 1
0 ; RUN: llc < %s -march=x86 | grep mov | count 1
11
22 define i16 @t() signext {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i32 @unique(i8* %full, i32 %p, i32 %len, i32 %mode, i32 %verbos, i32 %flags) {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=sse2
0 ; RUN: llc < %s -march=x86 -mattr=sse2
11 ; ModuleID = 'yyy.c'
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i686-apple-darwin8"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 %"struct.K::JL" = type <{ i8 }>
33 %struct.jv = type { i64 }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep movl | not grep rax
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep movl | not grep rax
11
22 %struct.color_sample = type { i64 }
33 %struct.gs_matrix = type { float, i64, float, i64, float, i64, float, i64, float, i64, float, i64 }
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR1763
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
11 ; PR1766
22
33 %struct.dentry = type { %struct.dentry_operations* }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
11 ; PR1767
22
33 define void @xor_sse_2(i64 %bytes, i64* %p1, i64* %p2) {
None ; RUN: llvm-as < %s | llc -relocation-model=static | grep {foo _str$}
0 ; RUN: llc < %s -relocation-model=static | grep {foo _str$}
11 ; PR1761
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33 target triple = "x86_64-apple-darwin8"
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep lea
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep lea
11
22 define float @foo(i32* %x, float* %y, i32 %c) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 | not grep imul
0 ; RUN: llc < %s -march=x86 | not grep imul
11
22 %struct.eebb = type { %struct.eebb*, i16* }
33 %struct.hf = type { %struct.hf*, i16*, i8*, i32, i32, %struct.eebb*, i32, i32, i8*, i8*, i8*, i8*, i16*, i8*, i16*, %struct.ri, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [30 x i32], %struct.eebb, i32, i8* }
None ; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=att | grep movl | count 2
1 ; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=att | not grep movb
0 ; RUN: llc < %s -march=x86 -x86-asm-syntax=att | grep movl | count 2
1 ; RUN: llc < %s -march=x86 -x86-asm-syntax=att | not grep movb
22
33 %struct.double_int = type { i64, i64 }
44 %struct.tree_common = type <{ i8, [3 x i8] }>
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -stats |& \
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -stats |& \
11 ; RUN: grep {1 .*folded into instructions}
22 ; Increment in loop bb.128.i adjusted to 2, to prevent loop reversal from
33 ; kicking in.
None ; RUN: llvm-as < %s | llc -march=x86 -stats |& \
0 ; RUN: llc < %s -march=x86 -stats |& \
11 ; RUN: grep {1 .*folded into instructions}
2 ; RUN: llvm-as < %s | llc -march=x86 | grep cmp | count 4
2 ; RUN: llc < %s -march=x86 | grep cmp | count 4
33
44 %struct.quad_struct = type { i32, i32, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct* }
55
None ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin | not grep IMPLICIT_DEF
0 ; RUN: llc < %s -mtriple=i686-apple-darwin | not grep IMPLICIT_DEF
11
22 %struct.__sbuf = type { i8*, i32 }
33 %struct.ggBRDF = type { i32 (...)** }
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu
11 ; PR1799
22
33 %struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc -march=x86 | grep {(%esp)} | count 2
0 ; RUN: llc < %s -march=x86 | grep {(%esp)} | count 2
11 ; PR1872
22
33 %struct.c34007g__designated___XUB = type { i32, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
33 target triple = "i686-pc-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 | not grep pushf
0 ; RUN: llc < %s -march=x86 | not grep pushf
11
22 %struct.indexentry = type { i32, i8*, i8*, i8*, i8*, i8* }
33
None ; RUN: llvm-as < %s | llc -o - | grep sinl
0 ; RUN: llc < %s -o - | grep sinl
11
22 target triple = "i686-pc-linux-gnu"
33
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -regalloc=local
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -regalloc=local
11
22 define void @SolveCubic(double %a, double %b, double %c, double %d, i32* %solutions, double* %x) {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 | not grep IMPLICIT_DEF
0 ; RUN: llc < %s -march=x86 | not grep IMPLICIT_DEF
11
22 %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 }
33
None ; RUN: llvm-as < %s | llc -march=x86
1 ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86
1 ; RUN: llc < %s -march=x86-64
22
33 %struct.FRAME.gnat__perfect_hash_generators__select_char_position__build_identical_keys_sets = type { i32, i32, void (i32, i32)*, i8 (i32, i32)* }
44
None ; RUN: llvm-as < %s | llc -march=x86 | grep nop
0 ; RUN: llc < %s -march=x86 | grep nop
11 target triple = "i686-apple-darwin8"
22
33
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR1975
22
33 @nodes = external global i64 ; [#uses=2]
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep xor | grep CPI
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep xor | grep CPI
11
22 define void @casin({ double, double }* sret %agg.result, double %z.0, double %z.1) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep andpd | not grep esp
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep andpd | not grep esp
11
22 declare double @llvm.sqrt.f64(double) nounwind readnone
33
None ; RUN: llvm-as < %s | llc -march=x86 | grep and
0 ; RUN: llc < %s -march=x86 | grep and
11 define i32 @test(i1 %A) {
22 %B = zext i1 %A to i32 ; [#uses=1]
33 %C = sub i32 0, %B ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah -stats |& grep {Number of block tails merged} | grep 9
0 ; RUN: llc < %s -march=x86 -mcpu=yonah -stats |& grep {Number of block tails merged} | grep 9
11 ; PR1909
22
33 @.str = internal constant [48 x i8] c"transformed bounds: (%.2f, %.2f), (%.2f, %.2f)\0A\00" ; <[48 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc | grep {a:} | not grep ax
1 ; RUN: llvm-as < %s | llc | grep {b:} | not grep ax
0 ; RUN: llc < %s | grep {a:} | not grep ax
1 ; RUN: llc < %s | grep {b:} | not grep ax
22 ; PR2078
33 ; The clobber list says that "ax" is clobbered. Make sure that eax isn't
44 ; allocated to the input/output register.
None ; RUN: llvm-as < %s | llc -regalloc=local -march=x86 -mattr=+mmx | grep esi
0 ; RUN: llc < %s -regalloc=local -march=x86 -mattr=+mmx | grep esi
11 ; PR2082
22 ; Local register allocator was refusing to use ESI, EDI, and EBP so it ran out of
33 ; registers.
None ; RUN: llvm-as < %s | llc -march=x86 -stats |& grep {Number of re-materialization} | grep 3
1 ; RUN: llvm-as < %s | llc -march=x86 -stats |& grep {Number of dead spill slots removed}
0 ; RUN: llc < %s -march=x86 -stats |& grep {Number of re-materialization} | grep 3
1 ; RUN: llc < %s -march=x86 -stats |& grep {Number of dead spill slots removed}
22 ; rdar://5761454
33
44 %struct.quad_struct = type { i32, i32, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct* }
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu -mattr=+sse2
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu -mattr=+sse2
11 ; PR2076
22
33 define void @h264_h_loop_filter_luma_mmx2(i8* %pix, i32 %stride, i32 %alpha, i32 %beta, i8* %tc0) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11
22 %struct.XX = type <{ i8 }>
33 %struct.YY = type { i64 }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
33 target triple = "i386-pc-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 %struct.CompAtom = type <{ %struct.Position, float, i32 }>
33 %struct.Lattice = type { %struct.Position, %struct.Position, %struct.Position, %struct.Position, %struct.Position, %struct.Position, %struct.Position, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define i64 @__divsc3(float %a, float %b, float %c, float %d) nounwind readnone {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386
0 ; RUN: llc < %s -march=x86 -mcpu=i386
11 ; PR2122
22 define float @func(float %a, float %b) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386 | not grep 255
0 ; RUN: llc < %s -march=x86 -mcpu=i386 | not grep 255
11
22 %struct.CONSTRAINT = type { i32, i32, i32, i32 }
33 %struct.FIRST_UNION = type { %struct.anon }
None ; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu -relocation-model=pic -disable-fp-elim
1 ; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu -relocation-model=pic -disable-fp-elim -schedule-livein-copies | not grep {Number of register spills}
0 ; RUN: llc < %s -mtriple=i386-pc-linux-gnu -relocation-model=pic -disable-fp-elim
1 ; RUN: llc < %s -mtriple=i386-pc-linux-gnu -relocation-model=pic -disable-fp-elim -schedule-livein-copies | not grep {Number of register spills}
22 ; PR2134
33
44 declare fastcc i8* @w_addchar(i8*, i32*, i32*, i8 signext ) nounwind
None ; RUN: llvm-as < %s | llc -relocation-model=pic | grep TLSGD | count 2
0 ; RUN: llc < %s -relocation-model=pic | grep TLSGD | count 2
11 ; PR2137
22
33 ; ModuleID = '1.c'
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i16 @t(i32 %depth) signext nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu
0 ; RUN: llc < %s -mtriple=i386-pc-linux-gnu
11 ; PR2138
22
33 %struct.__locale_struct = type { [13 x %struct.locale_data*], i16*, i32*, i32*, [13 x i8*] }
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -mattr=+sse2 -disable-fp-elim | grep movss | count 1
1 ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -mattr=+sse2 -disable-fp-elim -stats |& grep {Number of re-materialization} | grep 1
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 -disable-fp-elim | grep movss | count 1
1 ; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 -disable-fp-elim -stats |& grep {Number of re-materialization} | grep 1
22
33 %struct..0objc_object = type opaque
44 %struct.OhBoy = type { }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i32 @t() nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -asm-verbose | grep {#} | not grep -v {##}
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -asm-verbose | grep {#} | not grep -v {##}
11
22 %struct.AGenericCall = type { %struct.AGenericManager*, %struct.ComponentParameters*, i32* }
33 %struct.AGenericManager = type <{ i8 }>
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define void @t() {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -relocation-model=pic -disable-fp-elim | grep add | grep 12 | not grep non_lazy_ptr
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=pic -disable-fp-elim | grep add | grep 12 | not grep non_lazy_ptr
11 ; Don't fold re-materialized load into a two address instruction
22
33 %"struct.Smarts::Runnable" = type { i32 (...)**, i32 }
None ; RUN: llvm-as < %s | llc | grep unnamed_1.eh
0 ; RUN: llc < %s | grep unnamed_1.eh
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin8"
33
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx
0 ; RUN: llc < %s -march=x86 -mattr=+mmx
11
22 define i32 @t2() nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 | not grep jmp
0 ; RUN: llc < %s -march=x86 | not grep jmp
11
22 %struct..0anon = type { i32 }
33 %struct.binding_level = type { %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.tree_node*, %struct.binding_level*, i8, i8, i8, i8, i8, i32, %struct.tree_node* }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin -relocation-model=pic -disable-fp-elim -O0 -regalloc=local
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -relocation-model=pic -disable-fp-elim -O0 -regalloc=local
22
33 %struct.CGPoint = type { double, double }
44 %struct.NSArray = type { %struct.NSObject }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define void @Hubba(i8* %saveunder, i32 %firstBlob, i32 %select) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | grep movw | not grep {, %e}
0 ; RUN: llc < %s -mtriple=i386-apple-darwin | grep movw | not grep {, %e}
11
22 %struct.DBC_t = type { i32, i8*, i16, %struct.DBC_t*, i8*, i8*, i8*, i8*, i8*, %struct.DBC_t*, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32*, i8, i16, %struct.DRVOPT*, i16 }
33 %struct.DRVOPT = type { i16, i32, i8, %struct.DRVOPT* }
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | grep xorl | grep {%e}
0 ; RUN: llc < %s -mtriple=i386-apple-darwin | grep xorl | grep {%e}
11 ; Make sure xorl operands are 32-bit registers.
22
33 %struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8* }
None ; RUN: llvm-as < %s | llc -march=x86 | not grep 120
0 ; RUN: llc < %s -march=x86 | not grep 120
11 ; Don't accidentally add the offset twice for trailing bytes.
22
33 %struct.S63 = type { [63 x i8] }
None ; RUN: llvm-as < %s | llc -mattr=+sse41
0 ; RUN: llc < %s -mattr=+sse41
11 ; rdar://5886601
22 ; gcc testsuite: gcc.target/i386/sse4_1-pblendw.c
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc | grep {1 \$2 3}
0 ; RUN: llc < %s | grep {1 \$2 3}
11 ; rdar://5720231
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin8"
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep movl > %t
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep movl > %t
11 ; RUN: not grep {r\[abcd\]x} %t
22 ; RUN: not grep {r\[ds\]i} %t
33 ; RUN: not grep {r\[bs\]p} %t
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 define i64 @t(i64 %maxIdleDuration) nounwind {
33 call void asm sideeffect "wrmsr", "{cx},A,~{dirflag},~{fpsr},~{flags}"( i32 416, i64 0 ) nounwind
None ; RUN: llvm-as < %s | llc -enable-unsafe-fp-math -march=x86 | grep jnp
0 ; RUN: llc < %s -enable-unsafe-fp-math -march=x86 | grep jnp
11 ; rdar://5902801
22
33 declare void @test2()
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 %struct.V = type { <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x i32>, float*, float*, float*, float*, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32 }
33
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define fastcc void @glgVectorFloatConversion() nounwind {
33 %tmp12745 = load <4 x float>* null, align 16 ; <<4 x float>> [#uses=1]
None ; RUN: llvm-as < %s | llc | grep abort | count 1
0 ; RUN: llc < %s | grep abort | count 1
11 ; Calls to abort should all be merged
22
33 ; ModuleID = '5898899.c'
None ; RUN: llvm-as < %s | llc -march=x86 -O0 -fast-isel=false | grep mov | count 5
0 ; RUN: llc < %s -march=x86 -O0 -fast-isel=false | grep mov | count 5
11 ; PR2343
22
33 %llvm.dbg.anchor.type = type { i32, i32 }
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movups | count 2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep movups | count 2
11
22 define void @a(<4 x float>* %x) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
11 ; PR2289
22
33 define void @_ada_ca11001() {
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -regalloc=local
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -regalloc=local
11
22 @_ZTVN10Evaluation10GridOutputILi3EEE = external constant [5 x i32 (...)*] ; <[5 x i32 (...)*]*> [#uses=1]
33
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -mattr=+sse2 -disable-fp-elim | grep subl | grep 24
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 -disable-fp-elim | grep subl | grep 24
11
22 %struct.argument_t = type { i8*, %struct.argument_t*, i32, %struct.ipc_type_t*, i32, void (...)*, void (...)*, void (...)*, void (...)*, void (...)*, i8*, i8*, i8*, i8*, i8*, i32, i32, i32, %struct.routine*, %struct.argument_t*, %struct.argument_t*, %struct.argument_t*, %struct.argument_t*, %struct.argument_t*, %struct.argument_t*, %struct.argument_t*, i32, i32, i32, i32, i32, i32 }
33 %struct.ipc_type_t = type { i8*, %struct.ipc_type_t*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, %struct.ipc_type_t*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8* }
None ; RUN: llvm-as < %s | llc -march=x86 | not grep movsd
1 ; RUN: llvm-as < %s | llc -march=x86 | grep movw
2 ; RUN: llvm-as < %s | llc -march=x86 | grep addw
0 ; RUN: llc < %s -march=x86 | not grep movsd
1 ; RUN: llc < %s -march=x86 | grep movw
2 ; RUN: llc < %s -march=x86 | grep addw
33 ; These transforms are turned off for volatile loads and stores.
44 ; Check that they weren't turned off for all loads and stores!
55
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movsd | count 5
1 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movl | count 2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep movsd | count 5
1 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep movl | count 2
22
33 @atomic = global double 0.000000e+00 ; [#uses=1]
44 @atomic2 = global double 0.000000e+00 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | grep mov | count 4
0 ; RUN: llc < %s -mtriple=i386-apple-darwin | grep mov | count 4
11
22 define i16 @test(i16* %tmp179) nounwind {
33 %tmp180 = load i16* %tmp179, align 2 ; [#uses=2]
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=i386 -mattr=+sse2 | grep pinsrw
0 ; RUN: llc < %s -march=x86 -mcpu=i386 -mattr=+sse2 | grep pinsrw
11
22 ; Test to make sure we actually insert the bottom element of the vector
33 define <8 x i16> @a(<8 x i16> %a) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep pslldq
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | not grep pslldq
11
22 define void @t() nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9
11
22 %struct.ogg_stream_state = type { i8*, i32, i32, i32, i32*, i64*, i32, i32, i32, i32, [282 x i8], i32, i32, i32, i32, i32, i64, i64 }
33 %struct.res_state = type { i32, i32, i32, i32, float*, float*, i32, i32 }
None ; RUN: llvm-as < %s | llc | grep ax
0 ; RUN: llc < %s | grep ax
11 ; PR2024
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
None ; RUN: llvm-as < %s | llc -march=x86-64 -o - | not grep shr
0 ; RUN: llc < %s -march=x86-64 -o - | not grep shr
11 define i128 @sl(i128 %x) {
22 %t = shl i128 %x, 1
33 ret i128 %t
None ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static -disable-fp-elim | FileCheck %s
0 ; RUN: llc < %s -march=x86 -relocation-model=static -disable-fp-elim | FileCheck %s
11 ; PR2536
22
33
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin
11
22 %struct.SV = type { i8*, i64, i64 }
33 @"\01LC25" = external constant [8 x i8] ; <[8 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movaps | count 75
1 ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movaps | count 1
0 ; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movaps | count 75
1 ; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movaps | count 1
22 ; PR2539
33
44 external global <4 x float>, align 1 ; <<4 x float>*>:0 [#uses=2]
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11 ; PR2566
22
33 external global i16 ; :0 [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=pentium
0 ; RUN: llc < %s -march=x86 -mcpu=pentium
11 ; PR2575
22
33 define void @entry(i32 %m_task_id, i32 %start_x, i32 %end_x) nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -disable-fp-elim -stats |& grep asm-printer | grep 56
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -disable-fp-elim -stats |& grep asm-printer | grep 56
11 ; PR2568
22
33 @g_3 = external global i16 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR2596
22
33 @data = external global [400 x i64] ; <[400 x i64]*> [#uses=5]
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep movzbl
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep movzbl
11
22 define i32 @foo(<4 x float> %a, <4 x float> %b) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86-64 | FileCheck %s
0 ; RUN: llc < %s -march=x86-64 | FileCheck %s
11
22 @var = external global i64 ; [#uses=1]
33
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11
22 %struct.DrawHelper = type { void (i32, %struct.QT_FT_Span*, i8*)*, void (i32, %struct.QT_FT_Span*, i8*)*, void (%struct.QRasterBuffer*, i32, i32, i32, i8*, i32, i32, i32)*, void (%struct.QRasterBuffer*, i32, i32, i32, i8*, i32, i32, i32)*, void (%struct.QRasterBuffer*, i32, i32, i32, i32, i32)* }
33 %struct.QBasicAtomic = type { i32 }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep movd | count 1
1 ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin | grep movq
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep movd | count 1
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep movq
22 ; PR2677
33
44
None ; RUN: llvm-as < %s | llc -mcpu=core2 | grep pxor | count 2
1 ; RUN: llvm-as < %s | llc -mcpu=core2 | not grep movapd
0 ; RUN: llc < %s -mcpu=core2 | grep pxor | count 2
1 ; RUN: llc < %s -mcpu=core2 | not grep movapd
22 ; PR2715
33
44 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
0 ; Check that eh_return & unwind_init were properly lowered
1 ; RUN: llvm-as < %s | llc | grep %ebp | count 7
2 ; RUN: llvm-as < %s | llc | grep %ecx | count 5
1 ; RUN: llc < %s | grep %ebp | count 7
2 ; RUN: llc < %s | grep %ecx | count 5
33
44 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
55 target triple = "i386-pc-linux"
0 ; Check that eh_return & unwind_init were properly lowered
1 ; RUN: llvm-as < %s | llc | grep %rbp | count 5
2 ; RUN: llvm-as < %s | llc | grep %rcx | count 3
1 ; RUN: llc < %s | grep %rbp | count 5
2 ; RUN: llc < %s | grep %rcx | count 3
33
44 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
55 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep cvttpd2pi | count 1
1 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep cvtpi2pd | count 1
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep cvttpd2pi | count 1
1 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep cvtpi2pd | count 1
22 ; PR2687
33
44 define <2 x double> @a(<2 x i32> %x) nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin
0 ; RUN: llc < %s -mtriple=i386-apple-darwin
11 ; PR2757
22
33 @g_3 = external global i32 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR2783
22
33 @g_15 = external global i16 ; [#uses=2]
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR2748
22
33 @g_73 = external global i32 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 | not grep "movl %eax, %eax"
1 ; RUN: llvm-as < %s | llc -march=x86 | not grep "movl %edx, %edx"
2 ; RUN: llvm-as < %s | llc -march=x86 | not grep "movl (%eax), %eax"
3 ; RUN: llvm-as < %s | llc -march=x86 | not grep "movl (%edx), %edx"
4 ; RUN: llvm-as < %s | llc -march=x86 -regalloc=local | not grep "movl %eax, %eax"
5 ; RUN: llvm-as < %s | llc -march=x86 -regalloc=local | not grep "movl %edx, %edx"
6 ; RUN: llvm-as < %s | llc -march=x86 -regalloc=local | not grep "movl (%eax), %eax"
7 ; RUN: llvm-as < %s | llc -march=x86 -regalloc=local | not grep "movl (%edx), %edx"
0 ; RUN: llc < %s -march=x86 | not grep "movl %eax, %eax"
1 ; RUN: llc < %s -march=x86 | not grep "movl %edx, %edx"
2 ; RUN: llc < %s -march=x86 | not grep "movl (%eax), %eax"
3 ; RUN: llc < %s -march=x86 | not grep "movl (%edx), %edx"
4 ; RUN: llc < %s -march=x86 -regalloc=local | not grep "movl %eax, %eax"
5 ; RUN: llc < %s -march=x86 -regalloc=local | not grep "movl %edx, %edx"
6 ; RUN: llc < %s -march=x86 -regalloc=local | not grep "movl (%eax), %eax"
7 ; RUN: llc < %s -march=x86 -regalloc=local | not grep "movl (%edx), %edx"
88
99 ; %0 must not be put in EAX or EDX.
1010 ; In the first asm, $0 and $2 must not be put in EAX.
None ; RUN: llvm-as < %s | llc -march=x86 | grep "#%ebp %edi %esi 8(%edx) %eax (%ebx)"
1 ; RUN: llvm-as < %s | llc -march=x86 -regalloc=local | grep "#%edi %edx %ebp 8(%ebx) %eax (%esi)"
0 ; RUN: llc < %s -march=x86 | grep "#%ebp %edi %esi 8(%edx) %eax (%ebx)"
1 ; RUN: llc < %s -march=x86 -regalloc=local | grep "#%edi %edx %ebp 8(%ebx) %eax (%esi)"
22 ; The 1st, 2nd, 3rd and 5th registers above must all be different. The registers
33 ; referenced in the 4th and 6th operands must not be the same as the 1st or 5th
44 ; operand. There are many combinations that work; this is what llc puts out now.
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin
0 ; RUN: llc < %s -mtriple=i386-apple-darwin
11 ; PR2808
22
33 @g_3 = external global i32 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep movs | count 2
1 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep fld | count 2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep movs | count 2
1 ; RUN: llc < %s -march=x86 -mattr=+sse2 | grep fld | count 2
22 ; check 'inreg' attribute for sse_regparm
33
44 define double @foo1() inreg nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9
11
22 %struct._Unwind_Context = type { [18 x i8*], i8*, i8*, i8*, %struct.dwarf_eh_bases, i32, i32, i32, [18 x i8] }
33 %struct._Unwind_Exception = type { i64, void (i32, %struct._Unwind_Exception*)*, i32, i32, [3 x i32] }
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -relocation-model=pic -disable-fp-elim
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -relocation-model=pic -disable-fp-elim
11
22 %struct..0objc_selector = type opaque
33 %struct.NSString = type opaque
None ; RUN: llvm-as < %s | llc -march=x86 | not grep movz
0 ; RUN: llc < %s -march=x86 | not grep movz
11 ; PR2835
22
33 @g_407 = internal global i32 0 ; [#uses=1]
None ; RUN: llvm-as < %s | llc -march=x86 > %t
0 ; RUN: llc < %s -march=x86 > %t
11 ;; This version includes 64-bit version of binary operators (in 32-bit mode).
22 ;; Swap, cmp-and-swap not supported yet in this mode.
33 ; ModuleID = 'Atomics.c'
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx,+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+mmx,+sse2
11 ; PR2850
22
33 @tmp_V2i = common global <2 x i32> zeroinitializer ; <<2 x i32>*> [#uses=2]
0 ; ModuleID = 'nan.bc'
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-f80:32:32-v64:64:64-v128:128:128-a0:0:64"
22 target triple = "i686-apple-darwin8"
3 ; RUN: llvm-as < %s | llc -march=x86 -mattr=-sse2,-sse3,-sse | grep fldl
3 ; RUN: llc < %s -march=x86 -mattr=-sse2,-sse3,-sse | grep fldl
44 ; This NaN should be shortened to a double (not a float).
55
66 declare x86_stdcallcc void @_D3nan5printFeZv(x86_fp80 %f)
0 ; ModuleID = 'nan.bc'
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-f80:32:32-v64:64:64-v128:128:128-a0:0:64"
22 target triple = "i686-apple-darwin8"
3 ; RUN: llvm-as < %s | llc -march=x86 -mattr=-sse2,-sse3,-sse | grep fldt | count 3
3 ; RUN: llc < %s -march=x86 -mattr=-sse2,-sse3,-sse | grep fldt | count 3
44 ; it is not safe to shorten any of these NaNs.
55
66 declare x86_stdcallcc void @_D3nan5printFeZv(x86_fp80 %f)
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse,-sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse,-sse2
11
22 define <4 x float> @f(float %w) nounwind {
33 entry:
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR2735
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin7"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR2775
22
33 define i32 @func_77(i8 zeroext %p_79) nounwind {
None ; RUN: llvm-as < %s | llc -relocation-model=pic -disable-fp-elim -mtriple=i386-apple-darwin | grep {andl.*7.*edx}
0 ; RUN: llc < %s -relocation-model=pic -disable-fp-elim -mtriple=i386-apple-darwin | grep {andl.*7.*edx}
11
22 %struct.XXDActiveTextureTargets = type { i64, i64, i64, i64, i64, i64 }
33 %struct.XXDAlphaTest = type { float, i16, i8, i8 }
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11 ; PR2762
22 define void @foo(<4 x i32>* %p, <4 x double>* %q) {
33 %n = load <4 x i32>* %p
None ; RUN: llvm-as < %s | llc -march=x86
1 ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86
1 ; RUN: llc < %s -march=x86-64
22
33 define void @test(i64 %x) nounwind {
44 entry:
None ; RUN: llvm-as < %s | llc -march=x86
1 ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86
1 ; RUN: llc < %s -march=x86-64
22
33 ; from gcc.c-torture/compile/920520-1.c
44
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -o - | not grep {ucomiss\[^,\]*esp}
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -o - | not grep {ucomiss\[^,\]*esp}
11
22 define void @f(float %wt) {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -stats |& not grep {Number of register spills}
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -stats |& not grep {Number of register spills}
11
22 define fastcc void @fourn(double* %data, i32 %isign) nounwind {
33 entry:
11 ; Until it does, we shouldn't use movaps to access the stack. On targets with
22 ; sufficiently aligned stack (e.g. darwin) we should.
33
4 ; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu -mcpu=yonah | not grep movaps
5 ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin9 -mcpu=yonah | grep movaps | count 2
4 ; RUN: llc < %s -mtriple=i386-pc-linux-gnu -mcpu=yonah | not grep movaps
5 ; RUN: llc < %s -mtriple=i686-apple-darwin9 -mcpu=yonah | grep movaps | count 2
66
77
88 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR2977
22 define i8* @ap_php_conv_p2(){
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -o - | not grep 10
0 ; RUN: llc < %s -march=x86 -o - | not grep 10
11
22 declare void @llvm.va_start(i8*) nounwind
33
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | grep testb
0 ; RUN: llc < %s -mtriple=i386-apple-darwin | grep testb
11
22 ; ModuleID = ''
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu
11 ; PR 1779
22 ; Using 'A' constraint and a tied constraint together used to crash.
33 ; ModuleID = ''
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu | grep -- -1985 | count 1
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu | grep -- -1985 | count 1
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
22 target triple = "i686-pc-linux-gnu"
33
None ; RUN: llvm-as < %s | llc -mtriple=i686-pc-linux-gnu | grep "jns" | count 1
0 ; RUN: llc < %s -mtriple=i686-pc-linux-gnu | grep "jns" | count 1
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
22 target triple = "i686-pc-linux-gnu"
33
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
11 ; PR3124
22
33 %struct.cpuinfo_x86 = type { i8, i8, i8, i8, i32, i8, i8, i8, i32, i32, [9 x i32], [16 x i8], [64 x i8], i32, i32, i32, i64, %struct.cpumask_t, i16, i16, i16, i16, i16, i16, i16, i16, i32 }
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | not grep lea
0 ; RUN: llc < %s -mtriple=i386-apple-darwin | not grep lea
11 ; The inner loop should use [reg] addressing, not [reg+reg] addressing.
22 ; rdar://6403965
33
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR3117
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
33 target triple = "i386-pc-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 | grep "(%esp)" | count 2
0 ; RUN: llc < %s -march=x86 | grep "(%esp)" | count 2
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin9.5"
33 ; a - a should be found and removed, leaving refs to only L and P
None ; RUN: llvm-as < %s | llc -march=x86 | grep "(%esp)" | count 2
0 ; RUN: llc < %s -march=x86 | grep "(%esp)" | count 2
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin9.5"
33 ; a - a should be found and removed, leaving refs to only L and P
None ; RUN: llvm-as < %s | llc -march=x86 | grep add | count 2
1 ; RUN: llvm-as < %s | llc -march=x86 | grep sub | grep -v subsections | count 1
0 ; RUN: llc < %s -march=x86 | grep add | count 2
1 ; RUN: llc < %s -march=x86 | grep sub | grep -v subsections | count 1
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin9.5"
44 ; this should be rearranged to have two +s and one -
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9.5 -mattr=+sse41 -relocation-model=pic
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9.5 -mattr=+sse41 -relocation-model=pic
11
22 %struct.XXActiveTextureTargets = type { i64, i64, i64, i64, i64, i64 }
33 %struct.XXAlphaTest = type { float, i16, i8, i8 }
None ; RUN: llvm-as < %s | llc -march=x86-64 -mtriple=x86_64-unknown-linux-gnu | grep ^.L_Z1fv.eh
1 ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-unknown-linux-gnu | grep ^.L_Z1fv.eh
2 ; RUN: llvm-as < %s | llc -march=x86-64 -mtriple=x86_64-apple-darwin9 | grep ^__Z1fv.eh
3 ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-apple-darwin9 | grep ^__Z1fv.eh
0 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-unknown-linux-gnu | grep ^.L_Z1fv.eh
1 ; RUN: llc < %s -march=x86 -mtriple=i686-unknown-linux-gnu | grep ^.L_Z1fv.eh
2 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-apple-darwin9 | grep ^__Z1fv.eh
3 ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 | grep ^__Z1fv.eh
44
55 define void @_Z1fv() {
66 entry:
None ; RUN: llvm-as < %s | llc | not grep shrl
0 ; RUN: llc < %s | not grep shrl
11 ; Note: this test is really trying to make sure that the shift
22 ; returns the right result; shrl is most likely wrong,
33 ; but if CodeGen starts legitimately using an shrl here,
None ; RUN: llvm-as < %s | llc -march=x86 | grep "(%esp)" | count 2
0 ; RUN: llc < %s -march=x86 | grep "(%esp)" | count 2
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin9.5"
33 ; a - a should be found and removed, leaving refs to only L and P
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin | FileCheck %s
0 ; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s
11 ; PR3149
22 ; Make sure the copy after inline asm is not coalesced away.
33
None ; RUN: llvm-as < %s | llc -march=x86 | grep "(%esp)" | count 2
0 ; RUN: llc < %s -march=x86 | grep "(%esp)" | count 2
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin9.5"
33 ; -(-a) - a should be found and removed, leaving refs to only L and P
None ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static | grep {lea.*X.*esp} | count 2
0 ; RUN: llc < %s -march=x86 -relocation-model=static | grep {lea.*X.*esp} | count 2
11
22 @X = external global [0 x i32]
33
None ; RUN: llvm-as < %s | llc -march=x86 | grep "(%esp)" | count 4
0 ; RUN: llc < %s -march=x86 | grep "(%esp)" | count 4
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin9.5"
33 ; a - a should be found and removed, leaving refs to only L and P
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu | grep movq | count 2
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | grep movq | count 2
11 ; PR3311
22
33 %struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -disable-mmx -enable-legalize-types-checking
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -disable-mmx -enable-legalize-types-checking
11
22 declare <2 x double> @llvm.x86.sse2.min.pd(<2 x double>, <2 x double>) nounwind readnone
33
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin
0 ; RUN: llc < %s -mtriple=i386-apple-darwin
11 ; rdar://6501631
22
33 %CF = type { %Register }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin8"
33
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; rdar://6505632
22 ; reduced from 483.xalancbmk
33
None ; RUN: llvm-as < %s | llc -march=x86-64 -mattr=-sse,-sse2 | not grep xmm
0 ; RUN: llc < %s -march=x86-64 -mattr=-sse,-sse2 | not grep xmm
11 ; PR3402
22 target datalayout =
33 "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86 -enable-legalize-types-checking
0 ; RUN: llc < %s -march=x86 -enable-legalize-types-checking
11 ; PR3393
22
33 define void @foo(i32 inreg %x) {
None ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin | FileCheck %s
0 ; RUN: llc < %s -mtriple=i686-apple-darwin | FileCheck %s
11 ; CHECK: .section __TEXT,__cstring,cstring_literals
22
33 @x = internal constant [1 x i8] zeroinitializer ; <[1 x i8]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9.6 -regalloc=local -disable-fp-elim
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9.6 -regalloc=local -disable-fp-elim
11 ; rdar://6538384
22
33 %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
None ; RUN: llvm-as < %s | llc -march=x86 | not grep and
0 ; RUN: llc < %s -march=x86 | not grep and
11 ; PR3401
22
33 define void @x(i288 %i) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86 | grep {mov.*56}
0 ; RUN: llc < %s -march=x86 | grep {mov.*56}
11 ; PR3449
22
33 define void @test(<8 x double>* %P, i64* %Q) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR3450
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR3453
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR3411
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
None ; RUN: llvm-as < %s | llc | grep { - 92}
0 ; RUN: llc < %s | grep { - 92}
11 ; PR3481
22 ; The offset should print as -92, not +17179869092
33
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2,-sse41 | grep movss | count 2
1 ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2,-sse41 | grep movaps | count 4
0 ; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | grep movss | count 2
1 ; RUN: llc < %s -march=x86 -mattr=+sse2,-sse41 | grep movaps | count 4
22
33 define i1 @t([2 x float]* %y, [2 x float]* %w, i32, [2 x float]* %x.pn59, i32 %smax190, i32 %j.1180, <4 x float> %wu.2179, <4 x float> %wr.2178, <4 x float>* %tmp89.out, <4 x float>* %tmp107.out, i32* %indvar.next218.out) nounwind {
44 newFuncRoot:
None ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=pic -stats |& grep {Number of valno def marked dead} | grep 1
0 ; RUN: llc < %s -march=x86 -relocation-model=pic -stats |& grep {Number of valno def marked dead} | grep 1
11 ; rdar://6566708
22
33 target triple = "i386-apple-darwin9.6"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR3486
22
33 define i32 @foo(i8 signext %p_26) nounwind {
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR3537
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin9.6"
None ; RUN: llvm-as < %s | llc
1 ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s
1 ; RUN: llc < %s -march=x86-64
22 ; PR3538
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
44 target triple = "i386-apple-darwin9"
None ; RUN: llvm-as < %s | llc -march=x86 | grep {\$-81920} | count 3
1 ; RUN: llvm-as < %s | llc -march=x86 | grep {\$4294885376} | count 1
0 ; RUN: llc < %s -march=x86 | grep {\$-81920} | count 3
1 ; RUN: llc < %s -march=x86 | grep {\$4294885376} | count 1
22
33 ; ModuleID = 'shant.c'
44 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-apple-darwin8
0 ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin8
11 ; PR3561
22
33 define hidden void @__mulxc3({ x86_fp80, x86_fp80 }* noalias nocapture sret %agg.result, x86_fp80 %a, x86_fp80 %b, x86_fp80 %c, x86_fp80 %d) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-apple-darwin8 -pre-alloc-split
0 ; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin8 -pre-alloc-split
11
22 define i32 @main() nounwind {
33 bb4.i.thread:
None ; RUN: llvm-as < %s | llc | grep weak | count 3
0 ; RUN: llc < %s | grep weak | count 3
11 ; PR3629
22
33 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 -stats |& not grep commuted
0 ; RUN: llc < %s -march=x86 -mattr=+sse2 -stats |& not grep commuted
11 ; rdar://6608609
22
33 define <2 x double> @t(<2 x double> %A, <2 x double> %B, <2 x double> %C) nounwind readnone {
None ; RUN: llvm-as < %s | llc -march=x86-64 -mattr=+sse3 -stats |& not grep {machine-licm}
0 ; RUN: llc < %s -march=x86-64 -mattr=+sse3 -stats |& not grep {machine-licm}
11 ; rdar://6627786
22
33 target triple = "x86_64-apple-darwin10.0"
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; rdar://6642541
22
33 %struct.HandleBlock = type { [30 x i32], [990 x i8*], %struct.HandleBlockTrailer }
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR3686
22 ; rdar://6661799
33
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | not grep xmm
0 ; RUN: llc < %s -march=x86 -mcpu=yonah | not grep xmm
11 ; This should do a single load into the fp stack for the return, not diddle with xmm registers.
22
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11 ; PR3763
22 %struct.__block_descriptor = type { i64, i64 }
33
None ; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu
0 ; RUN: llc < %s -mtriple=i386-pc-linux-gnu
11 ; PR3706
22
33 define void @__mulxc3(x86_fp80 %b) nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin
11 ; rdar://r6661945
22
33 %struct.WINDOW = type { i16, i16, i16, i16, i16, i16, i16, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ldat*, i16, i16, i32, i32, %struct.WINDOW*, %struct.pdat, i16, %struct.cchar_t }
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9 -stats |& grep regcoalescing | grep commuting
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9 -stats |& grep regcoalescing | grep commuting
11
22 @lookupTable5B = external global [64 x i32], align 32 ; <[64 x i32]*> [#uses=1]
33 @lookupTable3B = external global [16 x i32], align 32 ; <[16 x i32]*> [#uses=1]
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -mattr=+sse2 | not grep {.space}
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+sse2 | not grep {.space}
11 ; rdar://6668548
22
33 declare double @llvm.sqrt.f64(double) nounwind readonly
None ; RUN: llvm-as < %s | llc -march=x86 | grep -A 2 {call.*f} | grep movl
0 ; RUN: llc < %s -march=x86 | grep -A 2 {call.*f} | grep movl
11 ; Check the register copy comes after the call to f and before the call to g
22 ; PR3784
33
None ; RUN: llvm-as < %s | llc -march=x86 -asm-verbose | grep -A 1 lpad | grep Llabel
0 ; RUN: llc < %s -march=x86 -asm-verbose | grep -A 1 lpad | grep Llabel
11 ; Check that register copies in the landing pad come after the EH_LABEL
22
33 declare i32 @f()
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -stats |& grep virtregrewriter | not grep {stores unfolded}
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -stats |& grep virtregrewriter | not grep {stores unfolded}
11 ; rdar://6682365
22
33 ; Do not clobber a register if another spill slot is available in it and it's marked "do not clobber".
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -O0
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -O0
11
22 define fastcc void @optimize_bit_field() nounwind {
33 bb4:
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-linux -relocation-model=static -stats -info-output-file - > %t
0 ; RUN: llc < %s -mtriple=x86_64-linux -relocation-model=static -stats -info-output-file - > %t
11 ; RUN: not grep spill %t
22 ; RUN: not grep {%rsp} %t
33 ; RUN: not grep {%rbp} %t
None ; RUN: llvm-as < %s | llc -march=x86 -o %t
0 ; RUN: llc < %s -march=x86 -o %t
11 ; RUN: not grep and %t
22 ; RUN: not grep shr %t
33 ; rdar://6661955
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse2
11
22 define double @t(double %x) nounwind ssp noimplicitfloat {
33 entry:
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; rdar://6774324
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin10.0"
None ; RUN: llvm-as < %s | llc -fast-isel
0 ; RUN: llc < %s -fast-isel
11 ; radr://6772169
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33 target triple = "x86_64-apple-darwin10"
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=static -code-model=small > %t
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=static -code-model=small > %t
11 ; RUN: grep leaq %t | count 1
22
33 @dst = external global [131072 x i32]
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin
0 ; RUN: llc < %s -mtriple=i386-apple-darwin
11 ; rdar://6781755
22 ; PR3934
33
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; rdar://6781755
22 ; PR3934
33
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin -O0 -regalloc=local | not grep sil
0 ; RUN: llc < %s -mtriple=i386-apple-darwin -O0 -regalloc=local | not grep sil
11 ; rdar://6787136
22
33 %struct.X = type { i8, [32 x i8] }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep {Number of modref unfolded}
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep {Number of modref unfolded}
11 ; XFAIL: *
22 ; 69408 removed the opportunity for this optimization to work
33
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep {Number of registers downgraded}
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep {Number of registers downgraded}
11 ; rdar://6802189
22
33 ; Test if linearscan is unfavoring registers for allocation to allow more reuse
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-linux-gnu -regalloc=local -relocation-model=pic > %t
0 ; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -regalloc=local -relocation-model=pic > %t
11 ; RUN: grep {leal.*TLSGD.*___tls_get_addr} %t
2 ; RUN: llvm-as < %s | llc -march=x86-64 -mtriple=x86_64-linux-gnu -regalloc=local -relocation-model=pic > %t2
2 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -regalloc=local -relocation-model=pic > %t2
33 ; RUN: grep {leaq.*TLSGD.*__tls_get_addr} %t2
44 ; PR4004
55
None ; RUN: llvm-as < %s | llc -march=x86-64 | grep mov | count 2
0 ; RUN: llc < %s -march=x86-64 | grep mov | count 2
11 ; rdar://6806252
22
33 define i64 @test(i32* %tmp13) nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-linux-gnu
0 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu
11 ; PR4034
22
33 %struct.BiContextType = type { i16, i8 }
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9
11 ; PR4056
22
33 define void @int163(i32 %p_4, i32 %p_5) nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9
0 ; RUN: llc < %s -mtriple=i386-apple-darwin9
11 ; PR4051
22
33 define void @int163(i32 %p_4, i32 %p_5) nounwind {
None ; RUN: llvm-as < %s | llc -mtriple=i386-unknown-linux-gnu | grep cmpxchgl | not grep eax
0 ; RUN: llc < %s -mtriple=i386-unknown-linux-gnu | grep cmpxchgl | not grep eax
11 ; PR4076
22
33 type { i8, i8, i8 } ; type %0
None ; RUN: llvm-as < %s | llc | grep {movl.*%ebx, 8(%esi)}
0 ; RUN: llc < %s | grep {movl.*%ebx, 8(%esi)}
11 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
22 target triple = "i386-apple-darwin9.0"
33
None ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin10
0 ; RUN: llc < %s -mtriple=i386-apple-darwin10
11 ; rdar://6837009
22
33 type { %struct.pf_state*, %struct.pf_state*, %struct.pf_state*, i32 } ; type %0
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10 -disable-fp-elim -relocation-model=pic
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -disable-fp-elim -relocation-model=pic
11 ; PR4099
22
33 type { [62 x %struct.Bitvec*] } ; type %0
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-unknown-linux-gnu
0 ; RUN: llc < %s -march=x86 -mtriple=i386-unknown-linux-gnu
11 ; PR3995
22
33 %struct.vtable = type { i32 (...)** }
None ; RUN: llvm-as < %s | llc -relocation-model=static > %t
0 ; RUN: llc < %s -relocation-model=static > %t
11 ; RUN: grep "1: ._pv_cpu_ops+8" %t
22 ; RUN: grep "2: ._G" %t
33 ; PR4152
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR4188
22 ; ModuleID = ''
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11 ; PR3886
22
33 define i32 @main(i32 %argc, i8** nocapture %argv) nounwind {
None ; RUN: llvm-as < %s | llc -relocation-model=pic | grep atoi | grep PLT
0 ; RUN: llc < %s -relocation-model=pic | grep atoi | grep PLT
11 ; PR4253
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "x86_64-unknown-linux-gnu"
None ; RUN: llvm-as < %s | llc | grep -E {sar|shl|mov|or} | count 4
0 ; RUN: llc < %s | grep -E {sar|shl|mov|or} | count 4
11 ; Check that the shr(shl X, 56), 48) is not mistakenly turned into
22 ; a shr (X, -8) that gets subsequently "optimized away" as undef
33 ; PR4254
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11
22 %struct.tempsym_t = type { i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32 }
33
None ; RUN: llvm-as < %s | llc -march=x86-64 | not grep {movzbl %\[abcd\]h,}
0 ; RUN: llc < %s -march=x86-64 | not grep {movzbl %\[abcd\]h,}
11
22 define void @BZ2_bzDecompress_bb5_2E_outer_bb35_2E_i_bb54_2E_i(i32*, i32 %c_nblock_used.2.i, i32 %.reload51, i32* %.out, i32* %.out1, i32* %.out2, i32* %.out3) nounwind {
33 newFuncRoot:
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-undermydesk-freebsd8.0 -relocation-model=pic -disable-fp-elim
0 ; RUN: llc < %s -mtriple=x86_64-undermydesk-freebsd8.0 -relocation-model=pic -disable-fp-elim
11 ; PR4225
22
33 define void @sha256_block1(i32* nocapture %arr, i8* nocapture %in, i64 %num) nounwind {
None ; RUN: llvm-as < %s | llc | grep "subq.*\\\$40, \\\%rsp"
0 ; RUN: llc < %s | grep "subq.*\\\$40, \\\%rsp"
11 target triple = "x86_64-mingw64"
22
33 define x86_fp80 @a(i64 %x) nounwind readnone {
None ; RUN: llvm-as < %s | llc -o %t1
0 ; RUN: llc < %s -o %t1
11 ; RUN: grep "subq.*\\\$72, \\\%rsp" %t1
22 ; RUN: grep "movaps \\\%xmm8, 32\\\(\\\%rsp\\\)" %t1
33 ; RUN: grep "movaps \\\%xmm7, 48\\\(\\\%rsp\\\)" %t1
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 type { %struct.GAP } ; type %0
33 type { i16, i8, i8 } ; type %1
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx | not grep movl
0 ; RUN: llc < %s -march=x86 -mattr=+mmx | not grep movl
11
22 define <8 x i8> @a(i8 zeroext %x) nounwind {
33 %r = insertelement <8 x i8> undef, i8 %x, i32 0
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx,+sse2 > %t1
0 ; RUN: llc < %s -march=x86 -mattr=+mmx,+sse2 > %t1
11 ; RUN: grep movzwl %t1 | count 2
22 ; RUN: grep movzbl %t1 | count 2
33 ; RUN: grep movd %t1 | count 4
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11
22 define <2 x i64> @_mm_insert_epi16(<2 x i64> %a, i32 %b, i32 %imm) nounwind readnone {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse
0 ; RUN: llc < %s -march=x86 -mattr=+sse
11 ; PR2598
22
33 define <2 x float> @a(<2 x i32> %i) nounwind {
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11
22 define <2 x i64> @_mm_movpi64_pi64(<1 x i64> %a, <1 x i64> %b) nounwind readnone {
33 entry:
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx | grep movl | count 2
0 ; RUN: llc < %s -march=x86 -mattr=+mmx | grep movl | count 2
11
22 define i64 @a(i32 %a, i32 %b) nounwind readnone {
33 entry:
None ; RUN: llvm-as < %s | llc -tailcallopt -march=x86-64 -mattr=+sse2 -mtriple=x86_64-apple-darwin | grep fstpt
1 ; RUN: llvm-as < %s | llc -tailcallopt -march=x86-64 -mattr=+sse2 -mtriple=x86_64-apple-darwin | grep xmm
0 ; RUN: llc < %s -tailcallopt -march=x86-64 -mattr=+sse2 -mtriple=x86_64-apple-darwin | grep fstpt
1 ; RUN: llc < %s -tailcallopt -march=x86-64 -mattr=+sse2 -mtriple=x86_64-apple-darwin | grep xmm
22
33 ; Check that x86-64 tail calls support x86_fp80 and v2f32 types. (Tail call
44 ; calling convention out of sync with standard c calling convention on x86_64)
None ; RUN: llvm-as < %s | llc -march=x86 -tailcallopt | not grep TAILCALL
0 ; RUN: llc < %s -march=x86 -tailcallopt | not grep TAILCALL
11
22 ; Bug 4396. This tail call can NOT be optimized.
33
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse,-sse2
0 ; RUN: llc < %s -march=x86 -mattr=+sse,-sse2
11 ; PR2484
22
33 define <4 x float> @f4523(<4 x float> %a,<4 x float> %b) nounwind {
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=x86_64-unknown-freebsd7.2
0 ; RUN: llc < %s -march=x86 -mtriple=x86_64-unknown-freebsd7.2
11 ; PR4478
22
33 %struct.sockaddr = type <{ i8, i8, [14 x i8] }>
None ; RUN: llvm-as < %s | llc -march=x86 -disable-mmx
0 ; RUN: llc < %s -march=x86 -disable-mmx
11
22 define void @test2(<2 x i32> %A, <2 x i32> %B, <2 x i32>* %C) nounwind {
33 %D = icmp sgt <2 x i32> %A, %B
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR3037
22
33 define void @entry(<4 x i8>* %dest) {
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10
11
22 %struct.ANY = type { i8* }
33 %struct.AV = type { %struct.XPVAV*, i32, i32 }
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10
11 ; rdar://7059496
22
33 %struct.brinfo = type <{ %struct.brinfo*, %struct.brinfo*, i8*, i32, i32, i32, i8, i8, i8, i8 }>
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10 | FileCheck %s
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s
11
22 ; CHECK: _foo:
33 ; CHECK: pavgw LCPI1_4(%rip)
None ; RUN: llvm-as < %s | llc -mtriple=i386-pc-linux-gnu -disable-fp-elim -color-ss-with-regs | not grep dil
0 ; RUN: llc < %s -mtriple=i386-pc-linux-gnu -disable-fp-elim -color-ss-with-regs | not grep dil
11 ; PR4552
22
33 target triple = "i386-pc-linux-gnu"
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11 ; PR4583
22
33 define i32 @atomic_cmpset_long(i64* %dst, i64 %exp, i64 %src) nounwind ssp noredzone noimplicitfloat {
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10
0 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10
11 ; PR4587
22 ; rdar://7072590
33
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11
22 @bsBuff = internal global i32 0 ; [#uses=1]
33 @llvm.used = appending global [1 x i8*] [i8* bitcast (i32 ()* @bsGetUInt32 to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
None ; RUN: llvm-as < %s | llc -march=x86-64
0 ; RUN: llc < %s -march=x86-64
11 ; PR4669
22 declare <1 x i64> @llvm.x86.mmx.pslli.q(<1 x i64>, i32)
33
None ; RUN: llvm-as < %s | llc -O3
0 ; RUN: llc < %s -O3
11 ; PR4626
22 ; ModuleID = ''
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR4668
22 ; ModuleID = ''
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-mingw64 | grep movabsq
0 ; RUN: llc < %s -mtriple=x86_64-mingw64 | grep movabsq
11
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33
None ; RUN: llvm-as < %s | llc | grep LJT
0 ; RUN: llc < %s | grep LJT
11 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
22 target triple = "x86_64-apple-darwin10"
33
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 target triple = "x86_64-mingw"
22
33 ; ModuleID = 'mm.bc'
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i386-pc-linux | FileCheck %s
0 ; RUN: llc < %s -march=x86 -mtriple=i386-pc-linux | FileCheck %s
11
22 @a = external global i96, align 4
33 @b = external global i64, align 8
None ; RUN: llvm-as < %s | llc -march=x86
0 ; RUN: llc < %s -march=x86
11 ; PR4753
22
33 ; This function has a sub-register reuse undone.
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-apple-darwin | FileCheck %s
0 ; RUN: llc < %s -march=x86 -mtriple=i686-apple-darwin | FileCheck %s
11
22 ; ModuleID = '/Volumes/MacOS9/tests/WebKit/JavaScriptCore/profiler/ProfilerServer.mm'
33
None ; RUN: llvm-as < %s | llc -mtriple=x86_64-unknown-freebsd7.2 -code-model=kernel | FileCheck %s
0 ; RUN: llc < %s -mtriple=x86_64-unknown-freebsd7.2 -code-model=kernel | FileCheck %s
11 ; PR4689
22
33 %struct.__s = type { [8 x i8] }
None ; RUN: llvm-as < %s | llc -march=x86-64 -relocation-model=pic > %t
0 ; RUN: llc < %s -march=x86-64 -relocation-model=pic > %t
11 ; RUN: grep {movswl %ax, %edi} %t
22 ; RUN: grep {movw (%rax), %ax} %t
33 ; XFAIL: *
None ; RUN: llvm-as < %s | llc -march=x86 > %t
0 ; RUN: llc < %s -march=x86 > %t
11 ;; Note the 64-bit variants are not supported yet (in 32-bit mode).
22 ; ModuleID = 'Atomics.c'
33 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86-64 > %t
0 ; RUN: llc < %s -march=x86-64 > %t
11 ; ModuleID = 'Atomics.c'
22 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
33 target triple = "x86_64-apple-darwin8"
None ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-32-STATIC
1 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-32-PIC
2
3 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-64-STATIC
4 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=LINUX-64-PIC
5
6 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=i686-apple-darwin -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=DARWIN-32-STATIC
7 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=i686-apple-darwin -march=x86 -relocation-model=dynamic-no-pic -code-model=small | FileCheck %s -check-prefix=DARWIN-32-DYNAMIC
8 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=i686-apple-darwin -march=x86 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=DARWIN-32-PIC
9
10 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=DARWIN-64-STATIC
11 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=dynamic-no-pic -code-model=small | FileCheck %s -check-prefix=DARWIN-64-DYNAMIC
12 ; RUN: llvm-as < %s | llc -asm-verbose=0 -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=DARWIN-64-PIC
0 ; RUN: llc < %s -asm-verbose=0 -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-32-STATIC
1 ; RUN: llc < %s -asm-verbose=0 -mtriple=i686-unknown-linux-gnu -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-32-PIC
2
3 ; RUN: llc < %s -asm-verbose=0 -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=LINUX-64-STATIC
4 ; RUN: llc < %s -asm-verbose=0 -mtriple=x86_64-unknown-linux-gnu -march=x86-64 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=LINUX-64-PIC
5
6 ; RUN: llc < %s -asm-verbose=0 -mtriple=i686-apple-darwin -march=x86 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=DARWIN-32-STATIC
7 ; RUN: llc < %s -asm-verbose=0 -mtriple=i686-apple-darwin -march=x86 -relocation-model=dynamic-no-pic -code-model=small | FileCheck %s -check-prefix=DARWIN-32-DYNAMIC
8 ; RUN: llc < %s -asm-verbose=0 -mtriple=i686-apple-darwin -march=x86 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=DARWIN-32-PIC
9
10 ; RUN: llc < %s -asm-verbose=0 -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=static -code-model=small | FileCheck %s -check-prefix=DARWIN-64-STATIC
11 ; RUN: llc < %s -asm-verbose=0 -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=dynamic-no-pic -code-model=small | FileCheck %s -check-prefix=DARWIN-64-DYNAMIC
12 ; RUN: llc < %s -asm-verbose=0 -mtriple=x86_64-apple-darwin -march=x86-64 -relocation-model=pic -code-model=small | FileCheck %s -check-prefix=DARWIN-64-PIC
1313
1414 @src = external global [131072 x i32]
1515 @dst = external global [131072 x i32]
None ; RUN: llvm-as < %s | llc -march=x86 > %t
0 ; RUN: llc < %s -march=x86 > %t
11 ; RUN: not grep add %t
22 ; RUN: grep subl %t | count 1
33
None ; RUN: llvm-as < %s | llc -march=x86-64 > %t
0 ; RUN: llc < %s -march=x86-64 > %t
11 ; RUN: not grep add %t
22 ; RUN: grep subq %t | count 2
33
None ; RUN: llvm-as < %s | llc -march=x86 | grep {jo} | count 2
1 ; RUN: llvm-as < %s | llc -march=x86 | grep {jb} | count 2
2 ; RUN: llvm-as < %s | llc -march=x86 -O0 | grep {jo} | count 2
3 ; RUN: llvm-as < %s | llc -march=x86 -O0 | grep {jb} | count 2
0 ; RUN: llc < %s -march=x86 | grep {jo} | count 2
1 ; RUN: llc < %s -march=x86 | grep {jb} | count 2
2 ; RUN: llc < %s -march=x86 -O0 | grep {jo} | count 2
3 ; RUN: llc < %s -march=x86 -O0 | grep {jb} | count 2
44
55 @ok = internal constant [4 x i8] c"%d\0A\00"
66 @no = internal constant [4 x i8] c"no\0A\00"
None ; RUN: llvm-as < %s | llc -march=x86
1 ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin10 | grep {array,16512,7}
2 ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin9 | grep {array,16512,7}
3 ; RUN: llvm-as < %s | llc -mtriple=i386-apple-darwin8 | not grep {7}
0 ; RUN: llc < %s -march=x86
1 ; RUN: llc < %s -mtriple=i386-apple-darwin10 | grep {array,16512,7}
2 ; RUN: llc < %s -mtriple=i386-apple-darwin9 | grep {array,16512,7}
3 ; RUN: llc < %s -mtriple=i386-apple-darwin8 | not grep {7}
44
55 ; Darwin 9+ should get alignment on common symbols. Darwin8 does
66 ; not support this.
None ; RUN: llvm-as < %s | llc -march=x86 -mattr=sse2 | grep pcmpeqd | count 4
0 ; RUN: llc < %s -march=x86 -mattr=sse2 | grep pcmpeqd | count 4
11
22 define <4 x i32> @ioo() nounwind {
33 ret <4 x i32>
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-apple-darwin | grep and | count 1
1 ; RUN: llvm-as < %s | llc -march=x86-64 -mtriple=i686-pc-linux | grep and | count 1
0 ; RUN: llc < %s -march=x86 -mtriple=i686-apple-darwin | grep and | count 1
1 ; RUN: llc < %s -march=x86-64 -mtriple=i686-pc-linux | grep and | count 1
22
33 declare void @bar(<2 x i64>* %n)
44
None ; RUN: llvm-as < %s | llc -march=x86 | grep and | count 1
0 ; RUN: llc < %s -march=x86 | grep and | count 1
11
22 ; The dag combiner should fold together (x&127)|(y&16711680) -> (x|y)&c1
33 ; in this case.
None ; RUN: llvm-as < %s | llc -march=x86 | grep {(%} | count 1
0 ; RUN: llc < %s -march=x86 | grep {(%} | count 1
11
22 ; Don't duplicate the load.
33
None ; RUN: llvm-as < %s | llc -march=x86-64 > %t
0 ; RUN: llc < %s -march=x86-64 > %t
11 ; RUN: grep mov %t | count 8
22 ; RUN: not grep implicit %t
33
None ; RUN: llvm-as < %s | llc -march=x86-64 | grep movzbl | count 2
0 ; RUN: llc < %s -march=x86-64 | grep movzbl | count 2
11
22 ; Use movzbl to avoid partial-register updates.
33
0 ; This should compile to movl $2147483647, %eax + andl only.
1 ; RUN: llvm-as < %s | llc | grep andl
2 ; RUN: llvm-as < %s | llc | not grep movsd
3 ; RUN: llvm-as < %s | llc | grep esp | not grep add
1 ; RUN: llc < %s | grep andl
2 ; RUN: llc < %s | not grep movsd
3 ; RUN: llc < %s | grep esp | not grep add
44 ; rdar://5736574
55
66 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
None ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static | \
0 ; RUN: llc < %s -march=x86 -relocation-model=static | \
11 ; RUN: grep {test1 \$_GV}
2 ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static | \
2 ; RUN: llc < %s -march=x86 -relocation-model=static | \
33 ; RUN: grep {test2 _GV}
44 ; PR882
55
None ; RUN: llvm-as < %s | llc
0 ; RUN: llc < %s
11 ; PR2267
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin8"
None ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-unknown-linux-gnu -relocation-model=pic | FileCheck %s -check-prefix=CHECK-PIC-32
1 ; RUN: llvm-as < %s | llc -march=x86 -mtriple=i686-unknown-linux-gnu -relocation-model=static | FileCheck %s -check-prefix=CHECK-STATIC-32
2 ; RUN: llvm-as < %s | llc -march=x86-64 -relocation-model=static | FileCheck %s -check-prefix=CHECK-STATIC-64
3 ; RUN: llvm-as < %s | llc -march=x86-64 -relocation-model=pic | FileCheck %s -check-prefix=CHECK-PIC-64
0 ; RUN: llc < %s -march=x86 -mtriple=i686-unknown-linux-gnu -relocation-model=pic | FileCheck %s -check-prefix=CHECK-PIC-32
1 ; RUN: llc < %s -march=x86 -mtriple=i686-unknown-linux-gnu -relocation-model=static | FileCheck %s -check-prefix=CHECK-STATIC-32
2 ; RUN: llc < %s -march=x86-64 -relocation-model=static | FileCheck %s -check-prefix=CHECK-STATIC-64
3 ; RUN: llc < %s -march=x86-64 -relocation-model=pic | FileCheck %s -check-prefix=CHECK-PIC-64
44 ; PR3379
55 ; XFAIL: *
66
None ; RUN: llvm-as < %s | llc | FileCheck %s
0 ; RUN: llc < %s | FileCheck %s
11 ; ModuleID = 'asm.c'
22 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
33 target triple = "i386-apple-darwin9.6"
None ; RUN: llvm-as < %s | llc -march=x86-64 | FileCheck %s
0 ; RUN: llc < %s -march=x86-64 | FileCheck %s
11
22 ; rdar://7103704
33
None ; RUN: llvm-as < %s | llc -march=x86 -o %t1
0 ; RUN: llc < %s -march=x86 -o %t1
11 ; RUN: grep "lock" %t1 | count 17
22 ; RUN: grep "xaddl" %t1 | count 4
33 ; RUN: grep "cmpxchgl" %t1 | count 13