diff options
Diffstat (limited to 'llvm/lib/Target/ARM')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 8 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb.td | 4 |
3 files changed, 2 insertions, 12 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 4d8a2372d01..bdaf6b2fc50 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -125,6 +125,8 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM) if (!UseSoftFloat && Subtarget->hasVFP2() && !Subtarget->isThumb()) { addRegisterClass(MVT::f32, ARM::SPRRegisterClass); addRegisterClass(MVT::f64, ARM::DPRRegisterClass); + + setTruncStoreAction(MVT::f64, MVT::f32, Expand); } computeRegisterProperties(); diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index 1027b6c3d45..d3bce5d955b 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -1404,14 +1404,6 @@ def : ARMPat<(extloadi1 addrmode2:$addr), (LDRB addrmode2:$addr)>; def : ARMPat<(extloadi8 addrmode2:$addr), (LDRB addrmode2:$addr)>; def : ARMPat<(extloadi16 addrmode3:$addr), (LDRH addrmode3:$addr)>; -// truncstore i1 -> truncstore i8 -def : ARMPat<(truncstorei1 GPR:$src, addrmode2:$dst), - (STRB GPR:$src, addrmode2:$dst)>; -def : ARMPat<(pre_truncsti1 GPR:$src, GPR:$base, am2offset:$offset), - (STRB_PRE GPR:$src, GPR:$base, am2offset:$offset)>; -def : ARMPat<(post_truncsti1 GPR:$src, GPR:$base, am2offset:$offset), - (STRB_POST GPR:$src, GPR:$base, am2offset:$offset)>; - // smul* and smla* def : ARMV5TEPat<(mul (sra (shl GPR:$a, 16), 16), (sra (shl GPR:$b, 16), 16)), (SMULBB GPR:$a, GPR:$b)>; diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td index d6fa76c9779..7880c235fcc 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb.td @@ -588,10 +588,6 @@ def : ThumbPat<(extloadi1 t_addrmode_s1:$addr), (tLDRB t_addrmode_s1:$addr)>; def : ThumbPat<(extloadi8 t_addrmode_s1:$addr), (tLDRB t_addrmode_s1:$addr)>; def : ThumbPat<(extloadi16 t_addrmode_s2:$addr), (tLDRH t_addrmode_s2:$addr)>; -// truncstore i1 -> truncstore i8 -def : ThumbPat<(truncstorei1 GPR:$src, t_addrmode_s1:$dst), - (tSTRB GPR:$src, t_addrmode_s1:$dst)>; - // Large immediate handling. // Two piece imms. |