mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-29 08:02:51 +00:00
Mark FP_EXTEND form v2f32 to v2f64 as "expand" for ARM NEON. Patch by Pete Couperus.
llvm-svn: 168240
This commit is contained in:
parent
7aa7c0d952
commit
d7496f6688
@ -222,6 +222,7 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) {
|
||||
case ISD::FNEARBYINT:
|
||||
case ISD::FFLOOR:
|
||||
case ISD::FP_ROUND:
|
||||
case ISD::FP_EXTEND:
|
||||
case ISD::FMA:
|
||||
case ISD::SIGN_EXTEND_INREG:
|
||||
QueryType = Node->getValueType(0);
|
||||
|
@ -544,6 +544,7 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
|
||||
setOperationAction(ISD::FP_TO_SINT, MVT::v4i16, Custom);
|
||||
|
||||
setOperationAction(ISD::FP_ROUND, MVT::v2f32, Expand);
|
||||
setOperationAction(ISD::FP_EXTEND, MVT::v2f64, Expand);
|
||||
|
||||
setTargetDAGCombine(ISD::INTRINSIC_VOID);
|
||||
setTargetDAGCombine(ISD::INTRINSIC_W_CHAIN);
|
||||
|
@ -7,3 +7,11 @@ define <2 x float> @vtrunc(<2 x double> %a) {
|
||||
%vt = fptrunc <2 x double> %a to <2 x float>
|
||||
ret <2 x float> %vt
|
||||
}
|
||||
|
||||
define <2 x double> @vextend(<2 x float> %a) {
|
||||
; CHECK: vcvt.f64.f32 [[D0:d[0-9]+]], [[S0:s[0-9]+]]
|
||||
; CHECK: vcvt.f64.f32 [[D1:d[0-9]+]], [[S1:s[0-9]+]]
|
||||
%ve = fpext <2 x float> %a to <2 x double>
|
||||
ret <2 x double> %ve
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user