From: Sanjay Patel Date: Fri, 13 Oct 2017 14:09:45 +0000 (+0000) Subject: [InstCombine] add tests for boolean extend + add; NFC X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=138989f0161998dc4d850f3d1e78ec13d49692ff;p=llvm [InstCombine] add tests for boolean extend + add; NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315681 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/zext-bool-add-sub.ll b/test/Transforms/InstCombine/zext-bool-add-sub.ll index bf6bdad0392..f73c7c31c29 100644 --- a/test/Transforms/InstCombine/zext-bool-add-sub.ll +++ b/test/Transforms/InstCombine/zext-bool-add-sub.ll @@ -61,3 +61,35 @@ define i32 @PR30273_three_bools(i1 %x, i1 %y, i1 %z) { ret i32 %sel2 } +define i32 @zext_add_scalar(i1 %x) { +; CHECK-LABEL: @zext_add_scalar( +; CHECK-NEXT: [[ADD:%.*]] = select i1 %x, i32 43, i32 42 +; CHECK-NEXT: ret i32 [[ADD]] +; + %zext = zext i1 %x to i32 + %add = add i32 %zext, 42 + ret i32 %add +} + +define <2 x i32> @zext_add_vec_splat(<2 x i1> %x) { +; CHECK-LABEL: @zext_add_vec_splat( +; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32> +; CHECK-NEXT: [[ADD:%.*]] = or <2 x i32> [[ZEXT]], +; CHECK-NEXT: ret <2 x i32> [[ADD]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %add = add <2 x i32> %zext, + ret <2 x i32> %add +} + +define <2 x i32> @zext_add_vec(<2 x i1> %x) { +; CHECK-LABEL: @zext_add_vec( +; CHECK-NEXT: [[ZEXT:%.*]] = zext <2 x i1> %x to <2 x i32> +; CHECK-NEXT: [[ADD:%.*]] = add nuw nsw <2 x i32> [[ZEXT]], +; CHECK-NEXT: ret <2 x i32> [[ADD]] +; + %zext = zext <2 x i1> %x to <2 x i32> + %add = add <2 x i32> %zext, + ret <2 x i32> %add +} +