A vector sext + sitofp is a lot cheaper than 8 scalar conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178448
91177308-0d34-0410-b5e6-
96231b3b80d8
setOperationAction(ISD::FP_TO_SINT, MVT::v8i16, Custom);
setOperationAction(ISD::FP_TO_SINT, MVT::v8i32, Legal);
+ setOperationAction(ISD::SINT_TO_FP, MVT::v8i16, Promote);
setOperationAction(ISD::SINT_TO_FP, MVT::v8i32, Legal);
setOperationAction(ISD::FP_ROUND, MVT::v4f32, Legal);
ret <4 x double> %b
}
+; CHECK: vcvtdq2ps %ymm
+define <8 x float> @sitofp02(<8 x i16> %a) {
+ %b = sitofp <8 x i16> %a to <8 x float>
+ ret <8 x float> %b
+}
+
; CHECK: vcvttpd2dqy %ymm
define <4 x i32> @fptosi01(<4 x double> %a) {
%b = fptosi <4 x double> %a to <4 x i32>