52 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 | FileCheck %s3 4; Check that a <4 x float> compare is generated and that we are5; not stuck in an endless loop.6 7define void @cmp_2_floats(<2 x float> %a, <2 x float> %b, <2 x float> %c) {8; CHECK-LABEL: cmp_2_floats:9; CHECK: # %bb.0: # %entry10; CHECK-NEXT: movaps %xmm0, %xmm311; CHECK-NEXT: cmpordps %xmm2, %xmm212; CHECK-NEXT: movaps %xmm2, %xmm013; CHECK-NEXT: blendvps %xmm0, %xmm3, %xmm114; CHECK-NEXT: movlps %xmm1, (%rax)15; CHECK-NEXT: retq16entry:17 %0 = fcmp oeq <2 x float> %c, %c18 %1 = select <2 x i1> %0, <2 x float> %a, <2 x float> %b19 store <2 x float> %1, ptr undef20 ret void21}22 23define void @cmp_2_doubles(<2 x double> %a, <2 x double> %b, <2 x double> %c) {24; CHECK-LABEL: cmp_2_doubles:25; CHECK: # %bb.0: # %entry26; CHECK-NEXT: movapd %xmm0, %xmm327; CHECK-NEXT: cmpordpd %xmm2, %xmm228; CHECK-NEXT: movapd %xmm2, %xmm029; CHECK-NEXT: blendvpd %xmm0, %xmm3, %xmm130; CHECK-NEXT: movapd %xmm1, (%rax)31; CHECK-NEXT: retq32entry:33 %0 = fcmp oeq <2 x double> %c, %c34 %1 = select <2 x i1> %0, <2 x double> %a, <2 x double> %b35 store <2 x double> %1, ptr undef36 ret void37}38 39define void @mp_11193(ptr nocapture %aFOO, ptr nocapture %RET) nounwind {40; CHECK-LABEL: mp_11193:41; CHECK: # %bb.0: # %allocas42; CHECK-NEXT: movl $-1082130432, (%rsi) # imm = 0xBF80000043; CHECK-NEXT: retq44allocas:45 %bincmp = fcmp olt <8 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 9.000000e+00, float 1.000000e+00, float 9.000000e+00, float 1.000000e+00> , <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>46 %t = extractelement <8 x i1> %bincmp, i32 047 %ft = sitofp i1 %t to float48 store float %ft, ptr %RET49 ret void50}51 52