================
@@ -614,16 +614,25 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine
&TM_,
for (auto Op : {ISD::STRICT_FADD, ISD::STRICT_FSUB, ISD::STRICT_FMUL,
ISD::STRICT_FDIV, ISD::STRICT_FMA, ISD::STRICT_FSQRT})
setOperationAction(Op, MVT::f64, Legal);
+
+ setOperationAction(ISD::STRICT_FP_ROUND, MVT::f32, Legal);
+ setOperationAction(ISD::STRICT_FP_EXTEND, MVT::f64, Legal);
----------------
Varnike wrote:
1. Corrected for `fpext f16->f64` case
according to checks in `LowerFP_EXTEND`:
```
assert((!Subtarget->hasFP64() || !Subtarget->hasFPARMv8Base()) &&
"With both FP DP and 16, any FP conversion is legal!");
```
if both features are enabled we can mark it Legal and mark Custom otherwise.
3. For `f128->f32` case `fptrunc` will be softened anyway, since f128 is not
legal.
https://github.com/llvm/llvm-project/pull/137101
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits