@@ -894,6 +894,10 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
894894 setOperationAction(ISD::FNEARBYINT, MVT::v2f64, Expand);
895895 setOperationAction(ISD::FFLOOR, MVT::v2f64, Expand);
896896 setOperationAction(ISD::FMA, MVT::v2f64, Expand);
897+
898+ for (auto CC : {ISD::SETOGT, ISD::SETOGE, ISD::SETOLT, ISD::SETOLE,
899+ ISD::SETGT, ISD::SETGE, ISD::SETLT, ISD::SETLE})
900+ setCondCodeAction(CC, MVT::v2f64, Expand);
897901 }
898902
899903 if (Subtarget->hasNEON()) {
@@ -915,6 +919,9 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
915919 setOperationAction(ISD::FRINT, MVT::v4f32, Expand);
916920 setOperationAction(ISD::FNEARBYINT, MVT::v4f32, Expand);
917921 setOperationAction(ISD::FFLOOR, MVT::v4f32, Expand);
922+ for (auto CC : {ISD::SETOGT, ISD::SETOGE, ISD::SETOLT, ISD::SETOLE,
923+ ISD::SETGT, ISD::SETGE, ISD::SETLT, ISD::SETLE})
924+ setCondCodeAction(CC, MVT::v4f32, Expand);
918925
919926 // Mark v2f32 intrinsics.
920927 setOperationAction(ISD::FSQRT, MVT::v2f32, Expand);
@@ -933,6 +940,9 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
933940 setOperationAction(ISD::FRINT, MVT::v2f32, Expand);
934941 setOperationAction(ISD::FNEARBYINT, MVT::v2f32, Expand);
935942 setOperationAction(ISD::FFLOOR, MVT::v2f32, Expand);
943+ for (auto CC : {ISD::SETOGT, ISD::SETOGE, ISD::SETOLT, ISD::SETOLE,
944+ ISD::SETGT, ISD::SETGE, ISD::SETLT, ISD::SETLE})
945+ setCondCodeAction(CC, MVT::v2f32, Expand);
936946
937947 // Neon does not support some operations on v1i64 and v2i64 types.
938948 setOperationAction(ISD::MUL, MVT::v1i64, Expand);
0 commit comments