From e232d7b94aacdbc03bee3b9474e6ac8d48e28e99 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Wed, 24 Jan 2018 14:59:02 +0000 Subject: [PATCH] Regenerate shuffle sink test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323328 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../CodeGenPrepare/X86/x86-shuffle-sink.ll | 67 +++++++++++-------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll b/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll index 45c0b6e155a..74e73e87619 100644 --- a/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll +++ b/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll @@ -29,34 +29,45 @@ if_false: } define <8 x i16> @test_16bit(<8 x i16> %lhs, <8 x i16> %tmp, i1 %tst) { -; CHECK-SSE2-LABEL: @test_16bit -; CHECK-SSE2: if_true: -; CHECK-SSE2-NOT: shufflevector -; CHECK-SSE2: if_false: -; CHECK-SSE2: [[SPLAT:%[0-9a-zA-Z_]+]] = shufflevector -; CHECK-SSE2: shl <8 x i16> %lhs, [[SPLAT]] - -; CHECK-AVX2-LABEL: @test_16bit -; CHECK-AVX2: if_true: -; CHECK-AVX2-NOT: shufflevector -; CHECK-AVX2: if_false: -; CHECK-AVX2: [[SPLAT:%[0-9a-zA-Z_]+]] = shufflevector -; CHECK-AVX2: shl <8 x i16> %lhs, [[SPLAT]] - -; CHECK-XOP-LABEL: @test_16bit -; CHECK-XOP: if_true: -; CHECK-XOP-NOT: shufflevector -; CHECK-XOP: if_false: -; CHECK-XOP: [[SPLAT:%[0-9a-zA-Z_]+]] = shufflevector -; CHECK-XOP: shl <8 x i16> %lhs, [[SPLAT]] - -; CHECK-AVX512BW-LABEL: @test_16bit -; CHECK-AVX512BW: [[SPLAT:%[0-9a-zA-Z_]+]] = shufflevector -; CHECK-AVX512BW: if_true: -; CHECK-AVX512BW-NOT: shufflevector -; CHECK-AVX512BW: if_false: -; CHECK-AVX512BW-NOT: shufflevector -; CHECK-AVX512BW: shl <8 x i16> %lhs, [[SPLAT]] +; CHECK-SSE2-LABEL: @test_16bit( +; CHECK-SSE2-NEXT: [[MASK:%.*]] = shufflevector <8 x i16> [[TMP:%.*]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-SSE2-NEXT: br i1 [[TST:%.*]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]] +; CHECK-SSE2: if_true: +; CHECK-SSE2-NEXT: ret <8 x i16> [[MASK]] +; CHECK-SSE2: if_false: +; CHECK-SSE2-NEXT: [[TMP1:%.*]] = shufflevector <8 x i16> [[TMP]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-SSE2-NEXT: [[RES:%.*]] = shl <8 x i16> [[LHS:%.*]], [[TMP1]] +; CHECK-SSE2-NEXT: ret <8 x i16> [[RES]] +; +; CHECK-XOP-LABEL: @test_16bit( +; CHECK-XOP-NEXT: [[MASK:%.*]] = shufflevector <8 x i16> [[TMP:%.*]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-XOP-NEXT: br i1 [[TST:%.*]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]] +; CHECK-XOP: if_true: +; CHECK-XOP-NEXT: ret <8 x i16> [[MASK]] +; CHECK-XOP: if_false: +; CHECK-XOP-NEXT: [[TMP1:%.*]] = shufflevector <8 x i16> [[TMP]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-XOP-NEXT: [[RES:%.*]] = shl <8 x i16> [[LHS:%.*]], [[TMP1]] +; CHECK-XOP-NEXT: ret <8 x i16> [[RES]] +; +; CHECK-AVX2-LABEL: @test_16bit( +; CHECK-AVX2-NEXT: [[MASK:%.*]] = shufflevector <8 x i16> [[TMP:%.*]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-AVX2-NEXT: br i1 [[TST:%.*]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]] +; CHECK-AVX2: if_true: +; CHECK-AVX2-NEXT: ret <8 x i16> [[MASK]] +; CHECK-AVX2: if_false: +; CHECK-AVX2-NEXT: [[TMP1:%.*]] = shufflevector <8 x i16> [[TMP]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-AVX2-NEXT: [[RES:%.*]] = shl <8 x i16> [[LHS:%.*]], [[TMP1]] +; CHECK-AVX2-NEXT: ret <8 x i16> [[RES]] +; +; CHECK-AVX512BW-LABEL: @test_16bit( +; CHECK-AVX512BW-NEXT: [[MASK:%.*]] = shufflevector <8 x i16> [[TMP:%.*]], <8 x i16> undef, <8 x i32> zeroinitializer +; CHECK-AVX512BW-NEXT: br i1 [[TST:%.*]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]] +; CHECK-AVX512BW: if_true: +; CHECK-AVX512BW-NEXT: ret <8 x i16> [[MASK]] +; CHECK-AVX512BW: if_false: +; CHECK-AVX512BW-NEXT: [[RES:%.*]] = shl <8 x i16> [[LHS:%.*]], [[MASK]] +; CHECK-AVX512BW-NEXT: ret <8 x i16> [[RES]] +; %mask = shufflevector <8 x i16> %tmp, <8 x i16> undef, <8 x i32> zeroinitializer br i1 %tst, label %if_true, label %if_false