From 1e9c5e4d8a25d5894afb5a2c7596454b1cc0a0c9 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Wed, 26 Jun 2019 15:24:08 +0000 Subject: [PATCH] [InstCombine] regenerate test checks; NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364437 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstCombine/broadcast.ll | 112 +++++++++++++++-------- 1 file changed, 75 insertions(+), 37 deletions(-) diff --git a/test/Transforms/InstCombine/broadcast.ll b/test/Transforms/InstCombine/broadcast.ll index 8485cd9c53f..72afa3014e8 100644 --- a/test/Transforms/InstCombine/broadcast.ll +++ b/test/Transforms/InstCombine/broadcast.ll @@ -1,11 +1,12 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -instcombine -S < %s | FileCheck %s -; CHECK-LABEL: good1 -; CHECK: %[[INS:.*]] = insertelement <4 x float> undef, float %arg, i32 0 -; CHECK-NEXT: %[[BCAST:.*]] = shufflevector <4 x float> %[[INS]], <4 x float> undef, <4 x i32> zeroinitializer -; CHECK-NEXT: ret <4 x float> %[[BCAST]] define <4 x float> @good1(float %arg) { +; CHECK-LABEL: @good1( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP6:%.*]] = shufflevector <4 x float> [[TMP]], <4 x float> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 0 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 2 @@ -13,11 +14,12 @@ define <4 x float> @good1(float %arg) { ret <4 x float> %tmp6 } -; CHECK-LABEL: good2 -; CHECK: %[[INS:.*]] = insertelement <4 x float> undef, float %arg, i32 0 -; CHECK-NEXT: %[[BCAST:.*]] = shufflevector <4 x float> %[[INS]], <4 x float> undef, <4 x i32> zeroinitializer -; CHECK-NEXT: ret <4 x float> %[[BCAST]] define <4 x float> @good2(float %arg) { +; CHECK-LABEL: @good2( +; CHECK-NEXT: [[TMP1:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP6:%.*]] = shufflevector <4 x float> [[TMP1]], <4 x float> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 1 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 2 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 0 @@ -25,11 +27,12 @@ define <4 x float> @good2(float %arg) { ret <4 x float> %tmp6 } -; CHECK-LABEL: good3 -; CHECK: %[[INS:.*]] = insertelement <4 x float> undef, float %arg, i32 0 -; CHECK-NEXT: %[[BCAST:.*]] = shufflevector <4 x float> %[[INS]], <4 x float> undef, <4 x i32> zeroinitializer -; CHECK-NEXT: ret <4 x float> %[[BCAST]] define <4 x float> @good3(float %arg) { +; CHECK-LABEL: @good3( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP6:%.*]] = shufflevector <4 x float> [[TMP]], <4 x float> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> zeroinitializer, float %arg, i32 0 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 2 @@ -37,12 +40,13 @@ define <4 x float> @good3(float %arg) { ret <4 x float> %tmp6 } -; CHECK-LABEL: good4 -; CHECK: %[[INS:.*]] = insertelement <4 x float> undef, float %arg, i32 0 -; CHECK-NEXT: %[[ADD:.*]] = fadd <4 x float> %[[INS]], %[[INS]] -; CHECK-NEXT: %[[BCAST:.*]] = shufflevector <4 x float> %[[ADD]], <4 x float> undef, <4 x i32> zeroinitializer -; CHECK-NEXT: ret <4 x float> %[[BCAST]] define <4 x float> @good4(float %arg) { +; CHECK-LABEL: @good4( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP1:%.*]] = fadd <4 x float> [[TMP]], [[TMP]] +; CHECK-NEXT: [[TMP7:%.*]] = shufflevector <4 x float> [[TMP1]], <4 x float> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: ret <4 x float> [[TMP7]] +; %tmp = insertelement <4 x float> zeroinitializer, float %arg, i32 0 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 2 @@ -51,13 +55,14 @@ define <4 x float> @good4(float %arg) { ret <4 x float> %tmp7 } -; CHECK-LABEL: @good5( -; CHECK-NEXT: %ins1 = insertelement <4 x float> undef, float %v, i32 0 -; CHECK-NEXT: %a1 = fadd <4 x float> %ins1, %ins1 -; CHECK-NEXT: %ins4 = shufflevector <4 x float> %ins1, <4 x float> undef, <4 x i32> zeroinitializer -; CHECK-NEXT: %res = fadd <4 x float> %a1, %ins4 -; CHECK-NEXT: ret <4 x float> %res define <4 x float> @good5(float %v) { +; CHECK-LABEL: @good5( +; CHECK-NEXT: [[INS1:%.*]] = insertelement <4 x float> undef, float [[V:%.*]], i32 0 +; CHECK-NEXT: [[A1:%.*]] = fadd <4 x float> [[INS1]], [[INS1]] +; CHECK-NEXT: [[INS4:%.*]] = shufflevector <4 x float> [[INS1]], <4 x float> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: [[RES:%.*]] = fadd <4 x float> [[A1]], [[INS4]] +; CHECK-NEXT: ret <4 x float> [[RES]] +; %ins1 = insertelement <4 x float> undef, float %v, i32 0 %a1 = fadd <4 x float> %ins1, %ins1 %ins2 = insertelement<4 x float> %ins1, float %v, i32 1 @@ -67,9 +72,13 @@ define <4 x float> @good5(float %v) { ret <4 x float> %res } -; CHECK-LABEL: bad1 -; CHECK-NOT: shufflevector define <4 x float> @bad1(float %arg) { +; CHECK-LABEL: @bad1( +; CHECK-NEXT: [[TMP4:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 1 +; CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP4]], float [[ARG]], i32 2 +; CHECK-NEXT: [[TMP6:%.*]] = insertelement <4 x float> [[TMP5]], float [[ARG]], i32 3 +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 1 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 2 @@ -77,18 +86,27 @@ define <4 x float> @bad1(float %arg) { ret <4 x float> %tmp6 } -; CHECK-LABEL: bad2 -; CHECK-NOT: shufflevector define <4 x float> @bad2(float %arg) { +; CHECK-LABEL: @bad2( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP]], float [[ARG]], i32 2 +; CHECK-NEXT: [[TMP6:%.*]] = insertelement <4 x float> [[TMP5]], float [[ARG]], i32 3 +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 0 %tmp5 = insertelement <4 x float> %tmp, float %arg, i32 2 %tmp6 = insertelement <4 x float> %tmp5, float %arg, i32 3 ret <4 x float> %tmp6 } -; CHECK-LABEL: bad3 -; CHECK-NOT: shufflevector define <4 x float> @bad3(float %arg, float %arg2) { +; CHECK-LABEL: @bad3( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP4:%.*]] = insertelement <4 x float> [[TMP]], float [[ARG2:%.*]], i32 1 +; CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP4]], float [[ARG]], i32 2 +; CHECK-NEXT: [[TMP6:%.*]] = insertelement <4 x float> [[TMP5]], float [[ARG]], i32 3 +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 0 %tmp4 = insertelement <4 x float> %tmp, float %arg2, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 2 @@ -96,16 +114,24 @@ define <4 x float> @bad3(float %arg, float %arg2) { ret <4 x float> %tmp6 } -; CHECK-LABEL: bad4 -; CHECK-NOT: shufflevector define <1 x float> @bad4(float %arg) { +; CHECK-LABEL: @bad4( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <1 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: ret <1 x float> [[TMP]] +; %tmp = insertelement <1 x float> undef, float %arg, i32 0 ret <1 x float> %tmp } -; CHECK-LABEL: bad5 -; CHECK-NOT: shufflevector define <4 x float> @bad5(float %arg) { +; CHECK-LABEL: @bad5( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP4:%.*]] = insertelement <4 x float> [[TMP]], float [[ARG]], i32 1 +; CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP4]], float [[ARG]], i32 2 +; CHECK-NEXT: [[TMP6:%.*]] = insertelement <4 x float> [[TMP5]], float [[ARG]], i32 3 +; CHECK-NEXT: [[TMP7:%.*]] = fadd <4 x float> [[TMP6]], [[TMP4]] +; CHECK-NEXT: ret <4 x float> [[TMP7]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 0 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 2 @@ -114,9 +140,14 @@ define <4 x float> @bad5(float %arg) { ret <4 x float> %tmp7 } -; CHECK-LABEL: bad6 -; CHECK-NOT: shufflevector define <4 x float> @bad6(float %arg, i32 %k) { +; CHECK-LABEL: @bad6( +; CHECK-NEXT: [[TMP:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 +; CHECK-NEXT: [[TMP4:%.*]] = insertelement <4 x float> [[TMP]], float [[ARG]], i32 1 +; CHECK-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP4]], float [[ARG]], i32 [[K:%.*]] +; CHECK-NEXT: [[TMP6:%.*]] = insertelement <4 x float> [[TMP5]], float [[ARG]], i32 3 +; CHECK-NEXT: ret <4 x float> [[TMP6]] +; %tmp = insertelement <4 x float> undef, float %arg, i32 0 %tmp4 = insertelement <4 x float> %tmp, float %arg, i32 1 %tmp5 = insertelement <4 x float> %tmp4, float %arg, i32 %k @@ -124,9 +155,16 @@ define <4 x float> @bad6(float %arg, i32 %k) { ret <4 x float> %tmp6 } -; CHECK-LABEL: @bad7( -; CHECK-NOT: shufflevector define <4 x float> @bad7(float %v) { +; CHECK-LABEL: @bad7( +; CHECK-NEXT: [[INS1:%.*]] = insertelement <4 x float> undef, float [[V:%.*]], i32 1 +; CHECK-NEXT: [[A1:%.*]] = fadd <4 x float> [[INS1]], [[INS1]] +; CHECK-NEXT: [[INS2:%.*]] = insertelement <4 x float> [[INS1]], float [[V]], i32 2 +; CHECK-NEXT: [[INS3:%.*]] = insertelement <4 x float> [[INS2]], float [[V]], i32 3 +; CHECK-NEXT: [[INS4:%.*]] = insertelement <4 x float> [[INS3]], float [[V]], i32 0 +; CHECK-NEXT: [[RES:%.*]] = fadd <4 x float> [[A1]], [[INS4]] +; CHECK-NEXT: ret <4 x float> [[RES]] +; %ins1 = insertelement <4 x float> undef, float %v, i32 1 %a1 = fadd <4 x float> %ins1, %ins1 %ins2 = insertelement<4 x float> %ins1, float %v, i32 2 -- 2.50.1