[PATCH] D79003: [DAG] Add SimplifyDemandedVectorElts binop SimplifyMultipleUseDemandedBits handling

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 4 12:54:28 PDT 2020


craig.topper added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/mul_by_elt.ll:145
   ret <4 x float> %mul2
 }
 
----------------
RKSimon wrote:
> Not sure about this change - it strips the first shufflevector entirely losing the multiply by scalar, but instcombine would have done something similar anyhow:
> ```
> define <4 x float> @splat0_before_fmul_fmul_constant(<4 x float> %a) {
>   %1 = fmul <4 x float> %a, <float 3.000000e+00, float undef, float undef, float undef>
>   %2 = fmul <4 x float> %1, <float 6.000000e+00, float undef, float undef, float undef>
>   %mul2 = shufflevector <4 x float> %2, <4 x float> undef, <4 x i32> zeroinitializer
>   ret <4 x float> %mul2
> }
> ```
Why does "multiple use" come into play here?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79003/new/

https://reviews.llvm.org/D79003





More information about the llvm-commits mailing list