[PATCH] D128144: [AArch64] Known bits for AArch64ISD::DUP

Zain Jaffal via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 19 04:18:31 PDT 2023


zjaffal added a comment.

This patch seems to miss the case where the DUP first operand is not an integer type

The following example crashes

  define void @dot_product(double %a) {
  entry:
    %fadd = call double @llvm.vector.reduce.fadd.v3f64(double %a, <3 x double> <double 1.000000e+00, double 1.000000e+00, double 0.000000e+00>)
    %sqrt = call double @llvm.sqrt.f64(double %fadd)
    %insert = insertelement <3 x double> zeroinitializer, double %sqrt, i64 0
    %shuffle = shufflevector <3 x double> %insert, <3 x double> zeroinitializer, <3 x i32> zeroinitializer
    %mul = fmul <3 x double> %shuffle, <double 1.000000e+00, double 1.000000e+00, double 0.000000e+00>
    %shuffle.1 = extractelement <3 x double> %mul, i64 0
    %shuffle.2 = extractelement <3 x double> %mul, i64 1
    %cmp = fcmp ogt double %shuffle.2, 0.000000e+00
    br i1 %cmp, label %exit, label %bb.1
  
  bb.1:
    %mul.2 = fmul double %shuffle.1, 0.000000e+00
    br label %exit
  
  exit:
    ret void
  }
  
  declare double @llvm.sqrt.f64(double)
  declare double @llvm.vector.reduce.fadd.v3f64(double, <3 x double>)

link: https://godbolt.org/z/dPc68eWfz


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D128144



More information about the llvm-commits mailing list