51 lines · plain
1; RUN: llc < %s -O0 -mtriple=x86_64-apple-darwin10 | FileCheck %s2 3; Test if we do not fold the cmp into select if the instructions are in4; different basic blocks.5 6define i32 @select_cmp_cmov_i32(i32 %a, i32 %b) {7; CHECK-LABEL: select_cmp_cmov_i32:8; CHECK-LABEL: continue9; CHECK-NOT: cmp{{[^_]}}10 %1 = icmp ult i32 %a, %b11 br i1 %1, label %continue, label %exit12 13continue:14 %2 = select i1 %1, i32 %a, i32 %b15 ret i32 %216 17exit:18 ret i32 -119}20 21define float @select_fcmp_oeq_f32(float %a, float %b, float %c, float %d) {22; CHECK-LABEL: select_fcmp_oeq_f32:23; CHECK-LABEL: continue24; CHECK-NOT: cmp{{[^_]}}25 %1 = fcmp oeq float %a, %b26 br i1 %1, label %continue, label %exit27 28continue:29 %2 = select i1 %1, float %c, float %d30 ret float %231 32exit:33 ret float -1.034}35 36define float @select_fcmp_one_f32(float %a, float %b, float %c, float %d) {37; CHECK-LABEL: select_fcmp_one_f32:38; CHECK-LABEL: continue39; CHECK-NOT: ucomi40 %1 = fcmp one float %a, %b41 br i1 %1, label %continue, label %exit42 43continue:44 %2 = select i1 %1, float %c, float %d45 ret float %246 47exit:48 ret float -1.049}50 51