[PATCH] D82443: [ARM] Narrowing half-precision lowering to supported CCs

Lucas Prates via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 24 03:44:57 PDT 2020


pratlucas added a comment.

Taking a further look to the differences in the DAG, the resulting type is actually the same.
Both result in an `f32` value, but get to it in different ways as expected.

With `ARMTargetLowering::splitValueIntoRegisterParts`:

  t22: f32 = bitcast t21
    t21: i32 = any_extend t20
      t20: i16 = bitcast t5
        t5: f16 = extract_vector_elt t3, Constant:i32<0>
          t3: v8f16,v8f16 = merge_values t2, t2
            t2: v8f16 = BUILD_VECTOR ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f
  16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>

Without `ARMTargetLowering::splitValueIntoRegisterParts`:

  t20: f32 = fp_extend t5
    t5: f16 = extract_vector_elt t3, Constant:i32<0>
      t3: v8f16,v8f16 = merge_values t2, t2
        t2: v8f16 = BUILD_VECTOR ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<A
  PFloat(0)>, ConstantFP:f16<APFloat(0)>, ConstantFP:f16<APFloat(0)>

I'm taking a deeper look into the assertion failure stack to figure out what's causing it.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82443





More information about the llvm-commits mailing list