diff options
Diffstat (limited to 'llvm/test/Transforms/InstCombine/broadcast.ll')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/broadcast.ll | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/llvm/test/Transforms/InstCombine/broadcast.ll b/llvm/test/Transforms/InstCombine/broadcast.ll index 30c552cb1bd..49ff3129a68 100644 --- a/llvm/test/Transforms/InstCombine/broadcast.ll +++ b/llvm/test/Transforms/InstCombine/broadcast.ll @@ -126,14 +126,13 @@ define <1 x float> @bad4(float %arg) { } ; Multiple undef elements are ok. -; TODO: Multiple uses triggers the transform at %t4, but we could form another splat from %t6 and simplify? +; TODO: Multiple uses triggers the transform at %t4, but we should sink/scalarize/CSE the splats? define <4 x float> @splat_undef3(float %arg) { ; CHECK-LABEL: @splat_undef3( ; CHECK-NEXT: [[T:%.*]] = insertelement <4 x float> undef, float [[ARG:%.*]], i32 0 ; CHECK-NEXT: [[T4:%.*]] = shufflevector <4 x float> [[T]], <4 x float> undef, <4 x i32> <i32 0, i32 0, i32 undef, i32 undef> -; CHECK-NEXT: [[T5:%.*]] = insertelement <4 x float> [[T4]], float [[ARG]], i32 2 -; CHECK-NEXT: [[T6:%.*]] = insertelement <4 x float> [[T5]], float [[ARG]], i32 3 +; CHECK-NEXT: [[T6:%.*]] = shufflevector <4 x float> [[T]], <4 x float> undef, <4 x i32> zeroinitializer ; CHECK-NEXT: [[T7:%.*]] = fadd <4 x float> [[T6]], [[T4]] ; CHECK-NEXT: ret <4 x float> [[T7]] ; |

