summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Holewinski <justin.holewinski@gmail.com>2011-04-28 00:19:52 +0000
committerJustin Holewinski <justin.holewinski@gmail.com>2011-04-28 00:19:52 +0000
commit99e03f194348a44b39b74e4ac1ec7ca0ac090f86 (patch)
tree6641e220e5f0cce2e783e0cdc95b9e1a9d9f3f52
parent18e6ac83ea4649765d14a2d2f012fcd8611a798c (diff)
downloadbcm5719-llvm-99e03f194348a44b39b74e4ac1ec7ca0ac090f86.tar.gz
bcm5719-llvm-99e03f194348a44b39b74e4ac1ec7ca0ac090f86.zip
PTX: support for zext loads and trunc stores
- expansion of EXTLOAD and TRUNCSTORE instructions Patch by Dan Bailey llvm-svn: 130354
-rw-r--r--llvm/lib/Target/PTX/PTXISelLowering.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/llvm/lib/Target/PTX/PTXISelLowering.cpp b/llvm/lib/Target/PTX/PTXISelLowering.cpp
index 7187518c52e..c3ba249d631 100644
--- a/llvm/lib/Target/PTX/PTXISelLowering.cpp
+++ b/llvm/lib/Target/PTX/PTXISelLowering.cpp
@@ -34,11 +34,23 @@ PTXTargetLowering::PTXTargetLowering(TargetMachine &TM)
addRegisterClass(MVT::f32, PTX::RRegf32RegisterClass);
addRegisterClass(MVT::f64, PTX::RRegf64RegisterClass);
+ setBooleanContents(ZeroOrOneBooleanContent);
+
setOperationAction(ISD::EXCEPTIONADDR, MVT::i32, Expand);
setOperationAction(ISD::ConstantFP, MVT::f32, Legal);
setOperationAction(ISD::ConstantFP, MVT::f64, Legal);
-
+
+ // Turn i16 (z)extload into load + (z)extend
+ setLoadExtAction(ISD::EXTLOAD, MVT::i16, Expand);
+ setLoadExtAction(ISD::ZEXTLOAD, MVT::i16, Expand);
+
+ // Turn f32 extload into load + fextend
+ setLoadExtAction(ISD::EXTLOAD, MVT::f32, Expand);
+
+ // Turn f64 truncstore into trunc + store.
+ setTruncStoreAction(MVT::f64, MVT::f32, Expand);
+
// Customize translation of memory addresses
setOperationAction(ISD::GlobalAddress, MVT::i32, Custom);
setOperationAction(ISD::GlobalAddress, MVT::i64, Custom);
OpenPOWER on IntegriCloud