85 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-- | FileCheck %s3 4; Don't duplicate the load.5 6define fastcc i32 @foo(ptr %p) nounwind {7; CHECK-LABEL: foo:8; CHECK: # %bb.0:9; CHECK-NEXT: movl (%ecx), %eax10; CHECK-NEXT: andl $10, %eax11; CHECK-NEXT: je .LBB0_212; CHECK-NEXT: # %bb.1: # %bb6313; CHECK-NEXT: retl14; CHECK-NEXT: .LBB0_2: # %bb7615; CHECK-NEXT: xorl %eax, %eax16; CHECK-NEXT: retl17 %t0 = load i32, ptr %p18 %t2 = and i32 %t0, 1019 %t3 = icmp ne i32 %t2, 020 br i1 %t3, label %bb63, label %bb7621bb63:22 ret i32 %t223bb76:24 ret i32 025}26 27define fastcc double @bar(i32 %hash, double %x, double %y) nounwind {28; CHECK-LABEL: bar:29; CHECK: # %bb.0: # %entry30; CHECK-NEXT: pushl %ebp31; CHECK-NEXT: movl %esp, %ebp32; CHECK-NEXT: andl $-8, %esp33; CHECK-NEXT: fldl 16(%ebp)34; CHECK-NEXT: fldl 8(%ebp)35; CHECK-NEXT: movl %ecx, %eax36; CHECK-NEXT: andl $15, %eax37; CHECK-NEXT: cmpl $8, %eax38; CHECK-NEXT: jb .LBB1_239; CHECK-NEXT: # %bb.1: # %bb1040; CHECK-NEXT: testb $1, %cl41; CHECK-NEXT: je .LBB1_342; CHECK-NEXT: .LBB1_2: # %bb1143; CHECK-NEXT: fchs44; CHECK-NEXT: .LBB1_3: # %bb1345; CHECK-NEXT: testb $2, %cl46; CHECK-NEXT: je .LBB1_547; CHECK-NEXT: # %bb.4: # %bb1448; CHECK-NEXT: fxch %st(1)49; CHECK-NEXT: fchs50; CHECK-NEXT: fxch %st(1)51; CHECK-NEXT: .LBB1_5: # %bb1652; CHECK-NEXT: faddp %st, %st(1)53; CHECK-NEXT: movl %ebp, %esp54; CHECK-NEXT: popl %ebp55; CHECK-NEXT: retl56entry:57 %0 = and i32 %hash, 1558 %1 = icmp ult i32 %0, 859 br i1 %1, label %bb11, label %bb1060 61bb10:62 %2 = and i32 %hash, 163 %3 = icmp eq i32 %2, 064 br i1 %3, label %bb13, label %bb1165 66bb11:67 %4 = fsub double -0.000000e+00, %x68 br label %bb1369 70bb13:71 %iftmp.9.0 = phi double [ %4, %bb11 ], [ %x, %bb10 ]72 %5 = and i32 %hash, 273 %6 = icmp eq i32 %5, 074 br i1 %6, label %bb16, label %bb1475 76bb14:77 %7 = fsub double -0.000000e+00, %y78 br label %bb1679 80bb16:81 %iftmp.10.0 = phi double [ %7, %bb14 ], [ %y, %bb13 ]82 %8 = fadd double %iftmp.9.0, %iftmp.10.083 ret double %884}85