diff options
author | Craig Topper <craig.topper@sifive.com> | 2022-01-22 11:55:13 -0800 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2022-01-22 11:55:18 -0800 |
commit | d44b6be6eaa8c165d3526d61dcc0f1c459e5722f (patch) | |
tree | 855d0a5b408e540635bac5812e2b1e8c8848083c | |
parent | 0a6b4258ab0e773b7b2b06db1317faf556931481 (diff) |
[RISCV] Don't Custom legalize f16/f32/f64 bitcasts if those types aren't Legal.
-rw-r--r-- | llvm/lib/Target/RISCV/RISCVISelLowering.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index e1f1c4909442..411191343cf0 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -1025,9 +1025,12 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM, setOperationAction(ISD::BITCAST, MVT::i16, Custom); setOperationAction(ISD::BITCAST, MVT::i32, Custom); setOperationAction(ISD::BITCAST, MVT::i64, Custom); - setOperationAction(ISD::BITCAST, MVT::f16, Custom); - setOperationAction(ISD::BITCAST, MVT::f32, Custom); - setOperationAction(ISD::BITCAST, MVT::f64, Custom); + if (Subtarget.hasStdExtZfh()) + setOperationAction(ISD::BITCAST, MVT::f16, Custom); + if (Subtarget.hasStdExtF()) + setOperationAction(ISD::BITCAST, MVT::f32, Custom); + if (Subtarget.hasStdExtD()) + setOperationAction(ISD::BITCAST, MVT::f64, Custom); } } |