diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-04-26 05:04:37 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-04-26 05:04:37 +0000 |
| commit | d8d6be4f99766c1828fa4651226bba1d1f9eac82 (patch) | |
| tree | ce9092fa8fe8d8e9428ae24c814d707c71a0fc67 /llvm/lib/Target/ARM | |
| parent | edb4a6ba982df35c02a6418fa9faf091459a306f (diff) | |
| download | bcm5719-llvm-d8d6be4f99766c1828fa4651226bba1d1f9eac82.tar.gz bcm5719-llvm-d8d6be4f99766c1828fa4651226bba1d1f9eac82.zip | |
[ARM] Expand vector ctlz_zero_undef so it becomes ctlz.
The default is Legal, which results in 'Cannot select' errors.
llvm-svn: 267521
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 13a233d4ecd..3e2eb804727 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -583,6 +583,16 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM, setOperationAction(ISD::CTLZ, MVT::v1i64, Expand); setOperationAction(ISD::CTLZ, MVT::v2i64, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v8i8, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v4i16, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v2i32, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v1i64, Expand); + + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v16i8, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v8i16, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v4i32, Expand); + setOperationAction(ISD::CTLZ_ZERO_UNDEF, MVT::v2i64, Expand); + // NEON does not have single instruction CTTZ for vectors. setOperationAction(ISD::CTTZ, MVT::v8i8, Custom); setOperationAction(ISD::CTTZ, MVT::v4i16, Custom); |

