diff options
author | Justin Holewinski <justin.holewinski@gmail.com> | 2011-04-28 00:19:52 +0000 |
---|---|---|
committer | Justin Holewinski <justin.holewinski@gmail.com> | 2011-04-28 00:19:52 +0000 |
commit | 99e03f194348a44b39b74e4ac1ec7ca0ac090f86 (patch) | |
tree | 6641e220e5f0cce2e783e0cdc95b9e1a9d9f3f52 | |
parent | 18e6ac83ea4649765d14a2d2f012fcd8611a798c (diff) | |
download | bcm5719-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.cpp | 14 |
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); |