================
@@ -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

Reply via email to