| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc < %s -mtriple=i686-- -mcpu=yonah | FileCheck %s |
| |
| define double @test1(double* %P) { |
| ; CHECK-LABEL: test1: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax |
| ; CHECK-NEXT: fldl (%eax) |
| ; CHECK-NEXT: retl |
| %X = load double, double* %P ; <double> [#uses=1] |
| ret double %X |
| } |
| |
| define double @test2() { |
| ; CHECK-LABEL: test2: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: fldl {{\.LCPI.*}} |
| ; CHECK-NEXT: retl |
| ret double 1.234560e+03 |
| } |
| |
| |
| define double @test3(i1 %B) { |
| ; CHECK-LABEL: test3: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: pushl %ebp |
| ; CHECK-NEXT: .cfi_def_cfa_offset 8 |
| ; CHECK-NEXT: .cfi_offset %ebp, -8 |
| ; CHECK-NEXT: movl %esp, %ebp |
| ; CHECK-NEXT: .cfi_def_cfa_register %ebp |
| ; CHECK-NEXT: andl $-8, %esp |
| ; CHECK-NEXT: subl $8, %esp |
| ; CHECK-NEXT: testb $1, 8(%ebp) |
| ; CHECK-NEXT: jne .LBB2_1 |
| ; CHECK-NEXT: # %bb.2: |
| ; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| ; CHECK-NEXT: jmp .LBB2_3 |
| ; CHECK-NEXT: .LBB2_1: |
| ; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero |
| ; CHECK-NEXT: .LBB2_3: |
| ; CHECK-NEXT: movsd %xmm0, (%esp) |
| ; CHECK-NEXT: fldl (%esp) |
| ; CHECK-NEXT: movl %ebp, %esp |
| ; CHECK-NEXT: popl %ebp |
| ; CHECK-NEXT: .cfi_def_cfa %esp, 4 |
| ; CHECK-NEXT: retl |
| %C = select i1 %B, double 123.412, double 523.01123123 |
| ret double %C |
| } |
| |