diff options
Diffstat (limited to 'test/Transforms')
-rw-r--r-- | test/Transforms/InstCombine/logical-select.ll | 30 | ||||
-rw-r--r-- | test/Transforms/InstCombine/or.ll | 5 |
2 files changed, 12 insertions, 23 deletions
diff --git a/test/Transforms/InstCombine/logical-select.ll b/test/Transforms/InstCombine/logical-select.ll index 07a326b47f..f8c0676845 100644 --- a/test/Transforms/InstCombine/logical-select.ll +++ b/test/Transforms/InstCombine/logical-select.ll @@ -10,10 +10,8 @@ define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %j = or i32 %g, %i ret i32 %j ; CHECK: %e = icmp slt i32 %a, %b -; CHECK-NEXT: %g = select i1 %e, i32 %c, i32 0 -; CHECK-NEXT: %i = select i1 %e, i32 0, i32 %d -; CHECK-NEXT: %j = or i32 %g, %i -; CHECK-NEXT: ret i32 %j +; CHECK-NEXT: [[result:%.*]] = select i1 %e, i32 %c, i32 %d +; CHECK-NEXT: ret i32 [[result]] } define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %e = icmp slt i32 %a, %b @@ -24,10 +22,8 @@ define i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { %j = or i32 %i, %g ret i32 %j ; CHECK: %e = icmp slt i32 %a, %b -; CHECK-NEXT: %g = select i1 %e, i32 %c, i32 0 -; CHECK-NEXT: %i = select i1 %e, i32 0, i32 %d -; CHECK-NEXT: %j = or i32 %i, %g -; CHECK-NEXT: ret i32 %j +; CHECK-NEXT: [[result:%.*]] = select i1 %e, i32 %c, i32 %d +; CHECK-NEXT: ret i32 [[result]] } define i32 @goo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { @@ -40,10 +36,8 @@ entry: %3 = or i32 %1, %2 ret i32 %3 ; CHECK: %0 = icmp slt i32 %a, %b -; CHECK-NEXT: %1 = select i1 %0, i32 %c, i32 0 -; CHECK-NEXT: %2 = select i1 %0, i32 0, i32 %d -; CHECK-NEXT: %3 = or i32 %1, %2 -; CHECK-NEXT: ret i32 %3 +; CHECK-NEXT: [[result:%.*]] = select i1 %0, i32 %c, i32 %d +; CHECK-NEXT: ret i32 [[result]] } define i32 @poo(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { entry: @@ -55,10 +49,8 @@ entry: %3 = or i32 %1, %2 ret i32 %3 ; CHECK: %0 = icmp slt i32 %a, %b -; CHECK-NEXT: %1 = select i1 %0, i32 %c, i32 0 -; CHECK-NEXT: %2 = select i1 %0, i32 0, i32 %d -; CHECK-NEXT: %3 = or i32 %1, %2 -; CHECK-NEXT: ret i32 %3 +; CHECK-NEXT: [[result:%.*]] = select i1 %0, i32 %c, i32 %d +; CHECK-NEXT: ret i32 [[result]] } define i32 @par(i32 %a, i32 %b, i32 %c, i32 %d) nounwind { @@ -71,8 +63,6 @@ entry: %3 = or i32 %1, %2 ret i32 %3 ; CHECK: %0 = icmp slt i32 %a, %b -; CHECK-NEXT: %1 = select i1 %0, i32 %c, i32 0 -; CHECK-NEXT: %2 = select i1 %0, i32 0, i32 %d -; CHECK-NEXT: %3 = or i32 %1, %2 -; CHECK-NEXT: ret i32 %3 +; CHECK-NEXT: [[result:%.*]] = select i1 %0, i32 %c, i32 %d +; CHECK-NEXT: ret i32 [[result]] } diff --git a/test/Transforms/InstCombine/or.ll b/test/Transforms/InstCombine/or.ll index c0bb28d15c..bde2a54048 100644 --- a/test/Transforms/InstCombine/or.ll +++ b/test/Transforms/InstCombine/or.ll @@ -344,10 +344,9 @@ define <4 x i32> @test32(<4 x i1> %and.i1352, <4 x i32> %vecinit6.i176, <4 x i32 %and.i = and <4 x i32> %vecinit6.i191, %neg.i ; <<4 x i32>> [#uses=1] %or.i = or <4 x i32> %and.i, %and.i129 ; <<4 x i32>> [#uses=1] ret <4 x i32> %or.i -; Don't turn this into a vector select until codegen matures to handle them -; better. +; codegen is mature enough to handle vector selects. ; CHECK: @test32 -; CHECK: or <4 x i32> %and.i, %and.i129 +; CHECK: select <4 x i1> %and.i1352, <4 x i32> %vecinit6.i176, <4 x i32> %vecinit6.i191 } define i1 @test33(i1 %X, i1 %Y) { |