diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp | 24 | 
1 files changed, 6 insertions, 18 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp index 5928bb8df66..5405e9dd001 100644 --- a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp @@ -380,24 +380,12 @@ NVPTXTargetLowering::NVPTXTargetLowering(const NVPTXTargetMachine &TM,    setFP16OperationAction(ISD::SETCC, MVT::v2f16, Legal, Expand);    // Operations not directly supported by NVPTX. -  setOperationAction(ISD::SELECT_CC, MVT::f16, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::v2f16, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::f32, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::f64, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::i1, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::i8, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::i16, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::i32, Expand); -  setOperationAction(ISD::SELECT_CC, MVT::i64, Expand); -  setOperationAction(ISD::BR_CC, MVT::f16, Expand); -  setOperationAction(ISD::BR_CC, MVT::v2f16, Expand); -  setOperationAction(ISD::BR_CC, MVT::f32, Expand); -  setOperationAction(ISD::BR_CC, MVT::f64, Expand); -  setOperationAction(ISD::BR_CC, MVT::i1, Expand); -  setOperationAction(ISD::BR_CC, MVT::i8, Expand); -  setOperationAction(ISD::BR_CC, MVT::i16, Expand); -  setOperationAction(ISD::BR_CC, MVT::i32, Expand); -  setOperationAction(ISD::BR_CC, MVT::i64, Expand); +  for (MVT VT : {MVT::f16, MVT::v2f16, MVT::f32, MVT::f64, MVT::i1, MVT::i8, +                 MVT::i16, MVT::i32, MVT::i64}) { +    setOperationAction(ISD::SELECT_CC, VT, Expand); +    setOperationAction(ISD::BR_CC, VT, Expand); +  } +    // Some SIGN_EXTEND_INREG can be done using cvt instruction.    // For others we will expand to a SHL/SRA pair.    setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i64, Legal);  | 

