| OLD | NEW |
| 1 ; RUN: llc < %s -mattr=-avx -fast-isel -mcpu=core2 -O0 -regalloc=fast -asm-verbo
se=0 -fast-isel-abort | FileCheck %s | 1 ; RUN: llc < %s -mattr=-avx -fast-isel -mcpu=core2 -O0 -regalloc=fast -asm-verbo
se=0 -fast-isel-abort | FileCheck %s |
| 2 ; RUN: llc < %s -mattr=+avx -fast-isel -mcpu=core2 -O0 -regalloc=fast -asm-verbo
se=0 -fast-isel-abort | FileCheck %s --check-prefix=AVX | 2 ; RUN: llc < %s -mattr=+avx -fast-isel -mcpu=core2 -O0 -regalloc=fast -asm-verbo
se=0 -fast-isel-abort | FileCheck %s --check-prefix=AVX |
| 3 ; RUN: llc < %s -fast-isel -O0 -regalloc=fast -asm-verbose=0 -fast-isel-abort -m
triple=x86_64-none-nacl | FileCheck %s --check-prefix=NACL64 |
| 4 ; RUN: llc < %s -fast-isel -O0 -regalloc=fast -asm-verbose=0 -fast-isel-abort -m
triple=x86_64-none-nacl -relocation-model=pic | FileCheck %s --check-prefix=NACL
64_PIC |
| 3 | 5 |
| 4 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
2:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:6
4" | 6 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
2:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:6
4" |
| 5 target triple = "x86_64-apple-darwin10.0.0" | 7 target triple = "x86_64-apple-darwin10.0.0" |
| 6 | 8 |
| 7 ; Make sure that fast-isel folds the immediate into the binop even though it | 9 ; Make sure that fast-isel folds the immediate into the binop even though it |
| 8 ; is non-canonical. | 10 ; is non-canonical. |
| 9 define i32 @test1(i32 %i) nounwind ssp { | 11 define i32 @test1(i32 %i) nounwind ssp { |
| 10 %and = and i32 8, %i | 12 %and = and i32 8, %i |
| 11 ret i32 %and | 13 ret i32 %and |
| 12 } | 14 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 39 | 41 |
| 40 @G = external global i32 | 42 @G = external global i32 |
| 41 define i64 @test3() nounwind { | 43 define i64 @test3() nounwind { |
| 42 %A = ptrtoint i32* @G to i64 | 44 %A = ptrtoint i32* @G to i64 |
| 43 ret i64 %A | 45 ret i64 %A |
| 44 ; CHECK-LABEL: test3: | 46 ; CHECK-LABEL: test3: |
| 45 ; CHECK: movq _G@GOTPCREL(%rip), %rax | 47 ; CHECK: movq _G@GOTPCREL(%rip), %rax |
| 46 ; CHECK-NEXT: ret | 48 ; CHECK-NEXT: ret |
| 47 } | 49 } |
| 48 | 50 |
| 51 ; NACL64 version uses i32 for 32-bit pointers. |
| 52 define i32 @test3_nacl64() nounwind { |
| 53 %A = ptrtoint i32* @G to i32 |
| 54 ret i32 %A |
| 55 |
| 56 ; NACL64_PIC: test3_nacl64: |
| 57 ; NACL64_PIC: movl G@GOTPCREL(%rip), %eax |
| 58 ; NACL64_PIC-NEXT: popq %r11 |
| 59 ; NACL64_PIC-NEXT: nacljmp %r11d, %r15 |
| 60 } |
| 49 | 61 |
| 50 | 62 |
| 51 ; rdar://9289558 | 63 ; rdar://9289558 |
| 52 @rtx_length = external global [153 x i8] | 64 @rtx_length = external global [153 x i8] |
| 53 | 65 |
| 54 define i32 @test4(i64 %idxprom9) nounwind { | 66 define i32 @test4(i64 %idxprom9) nounwind { |
| 55 %arrayidx10 = getelementptr inbounds [153 x i8]* @rtx_length, i32 0, i64 %idxp
rom9 | 67 %arrayidx10 = getelementptr inbounds [153 x i8]* @rtx_length, i32 0, i64 %idxp
rom9 |
| 56 %tmp11 = load i8* %arrayidx10, align 1 | 68 %tmp11 = load i8* %arrayidx10, align 1 |
| 57 %conv = zext i8 %tmp11 to i32 | 69 %conv = zext i8 %tmp11 to i32 |
| 58 ret i32 %conv | 70 ret i32 %conv |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 | 304 |
| 293 ; PR13563 | 305 ; PR13563 |
| 294 define void @test23(i8* noalias sret %result) { | 306 define void @test23(i8* noalias sret %result) { |
| 295 %a = alloca i8 | 307 %a = alloca i8 |
| 296 %b = call i8* @foo23() | 308 %b = call i8* @foo23() |
| 297 ret void | 309 ret void |
| 298 ; CHECK-LABEL: test23: | 310 ; CHECK-LABEL: test23: |
| 299 ; CHECK: call | 311 ; CHECK: call |
| 300 ; CHECK: movq %rdi, %rax | 312 ; CHECK: movq %rdi, %rax |
| 301 ; CHECK: ret | 313 ; CHECK: ret |
| 314 ; NACL64: test23: |
| 315 ; NACL64: call |
| 316 ; NACL64: movl %edi, %eax |
| 317 ; NACL64: popq %r11 |
| 318 ; NACL64: nacljmp %r11d, %r15 |
| 302 } | 319 } |
| 303 | 320 |
| 304 declare i8* @foo23() | 321 declare i8* @foo23() |
| 305 | 322 |
| 306 declare void @takesi32ptr(i32* %arg) | 323 declare void @takesi32ptr(i32* %arg) |
| 307 | 324 |
| 308 ; CHECK-LABEL: allocamaterialize | 325 ; CHECK-LABEL: allocamaterialize |
| 309 define void @allocamaterialize() { | 326 define void @allocamaterialize() { |
| 310 %a = alloca i32 | 327 %a = alloca i32 |
| 311 ; CHECK: leaq {{.*}}, %rdi | 328 ; CHECK: leaq {{.*}}, %rdi |
| 312 call void @takesi32ptr(i32* %a) | 329 call void @takesi32ptr(i32* %a) |
| 313 ret void | 330 ret void |
| 314 } | 331 } |
| OLD | NEW |