summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-07-16 14:22:46 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-07-16 14:22:46 +0000
commit871784ba88e2056e0abc63639cc6b14a091265d3 (patch)
treea4631a8e952044f9e51d6623a7cde36c33829c1f /llvm/lib
parent12400008a7c849a12107f509994579d180338adb (diff)
downloadbcm5719-llvm-871784ba88e2056e0abc63639cc6b14a091265d3.tar.gz
bcm5719-llvm-871784ba88e2056e0abc63639cc6b14a091265d3.zip
Proper FP extloads
llvm-svn: 76028
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZISelLowering.cpp12
-rw-r--r--llvm/lib/Target/SystemZ/SystemZInstrFP.td4
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
index 83afcf404aa..01ecf4fae90 100644
--- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
@@ -65,13 +65,13 @@ SystemZTargetLowering::SystemZTargetLowering(SystemZTargetMachine &tm) :
setLoadExtAction(ISD::ZEXTLOAD, MVT::i1, Promote);
setLoadExtAction(ISD::EXTLOAD, MVT::i1, Promote);
- setLoadExtAction(ISD::SEXTLOAD, MVT::f32, Promote);
- setLoadExtAction(ISD::ZEXTLOAD, MVT::f32, Promote);
- setLoadExtAction(ISD::EXTLOAD, MVT::f32, Promote);
+ setLoadExtAction(ISD::SEXTLOAD, MVT::f32, Expand);
+ setLoadExtAction(ISD::ZEXTLOAD, MVT::f32, Expand);
+ setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand);
- setLoadExtAction(ISD::SEXTLOAD, MVT::f64, Promote);
- setLoadExtAction(ISD::ZEXTLOAD, MVT::f64, Promote);
- setLoadExtAction(ISD::EXTLOAD, MVT::f64, Promote);
+ setLoadExtAction(ISD::SEXTLOAD, MVT::f64, Expand);
+ setLoadExtAction(ISD::ZEXTLOAD, MVT::f64, Expand);
+ setLoadExtAction(ISD::EXTLOAD, MVT::f64, Expand);
setStackPointerRegisterToSaveRestore(SystemZ::R15D);
setSchedulingPreference(SchedulingForLatency);
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrFP.td b/llvm/lib/Target/SystemZ/SystemZInstrFP.td
index 1c1b0ebb353..b54cd26c6d2 100644
--- a/llvm/lib/Target/SystemZ/SystemZInstrFP.td
+++ b/llvm/lib/Target/SystemZ/SystemZInstrFP.td
@@ -167,10 +167,12 @@ def FROUND64r32 : Pseudo<(outs FP32:$dst), (ins FP64:$src),
"ledbr\t{$dst, $src}",
[(set FP32:$dst, (fround FP64:$src))]>;
-// FIXME: memory variant
def FEXT32r64 : Pseudo<(outs FP64:$dst), (ins FP32:$src),
"ldebr\t{$dst, $src}",
[(set FP64:$dst, (fextend FP32:$src))]>;
+def FEXT32m64 : Pseudo<(outs FP64:$dst), (ins rriaddr:$src),
+ "ldeb\t{$dst, $src}",
+ [(set FP64:$dst, (fextend (load rriaddr:$src)))]>;
let Defs = [PSW] in {
def FCONVFP32 : Pseudo<(outs FP32:$dst), (ins GR32:$src),
OpenPOWER on IntegriCloud