@@ -901,7 +901,6 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
901
901
setOperationAction(ISD::FEXP, MVT::v2f64, Expand);
902
902
setOperationAction(ISD::FEXP2, MVT::v2f64, Expand);
903
903
setOperationAction(ISD::FEXP10, MVT::v2f64, Expand);
904
- // FIXME: Create unittest for FCEIL, FTRUNC, FRINT, FNEARBYINT, FFLOOR.
905
904
setOperationAction(ISD::FCEIL, MVT::v2f64, Expand);
906
905
setOperationAction(ISD::FTRUNC, MVT::v2f64, Expand);
907
906
setOperationAction(ISD::FRINT, MVT::v2f64, Expand);
@@ -951,6 +950,12 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
951
950
setOperationAction(ISD::FNEARBYINT, MVT::v2f32, Expand);
952
951
setOperationAction(ISD::FFLOOR, MVT::v2f32, Expand);
953
952
953
+ for (ISD::NodeType Op : {ISD::FFLOOR, ISD::FNEARBYINT, ISD::FCEIL,
954
+ ISD::FRINT, ISD::FTRUNC, ISD::FROUNDEVEN}) {
955
+ setOperationAction(Op, MVT::v4f16, Expand);
956
+ setOperationAction(Op, MVT::v8f16, Expand);
957
+ }
958
+
954
959
// Neon does not support some operations on v1i64 and v2i64 types.
955
960
setOperationAction(ISD::MUL, MVT::v1i64, Expand);
956
961
// Custom handling for some quad-vector types to detect VMULL.
0 commit comments