mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
X86: Promote sitofp <8 x i16> to <8 x i32> when AVX is available.
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
This commit is contained in:
parent
8049ab15e4
commit
b8f0d89d05
@ -1111,6 +1111,7 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
|
||||
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);
|
||||
|
||||
|
@ -18,6 +18,12 @@ define <4 x double> @sitofp01(<4 x i32> %a) {
|
||||
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>
|
||||
|
Loading…
Reference in New Issue
Block a user