forked from OSchip/llvm-project
[ARM] Only produce qadd8b under hasV6Ops
When compiling for a arm5te cpu from clang, the +dsp attribute is set. This meant we could try and generate qadd8 instructions where we would end up having no pattern. I've changed the condition here to be hasV6Ops && hasDSP, which is what other parts of ARMISelLowering seem to use for similar instructions. Fixed PR45677. Differential Revision: https://reviews.llvm.org/D78877
This commit is contained in:
parent
1a0d466081
commit
8807139026
|
@ -4586,7 +4586,7 @@ SDValue ARMTargetLowering::LowerUnsignedALUO(SDValue Op,
|
|||
static SDValue LowerSADDSUBSAT(SDValue Op, SelectionDAG &DAG,
|
||||
const ARMSubtarget *Subtarget) {
|
||||
EVT VT = Op.getValueType();
|
||||
if (!Subtarget->hasDSP())
|
||||
if (!Subtarget->hasV6Ops() || !Subtarget->hasDSP())
|
||||
return SDValue();
|
||||
if (!VT.isSimple())
|
||||
return SDValue();
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
; RUN: llc < %s -mtriple=thumbv7em-none-eabi | FileCheck %s --check-prefix=CHECK-T2 --check-prefix=CHECK-T2DSP
|
||||
; RUN: llc < %s -mtriple=armv5t-none-eabi | FileCheck %s --check-prefix=CHECK-ARM --check-prefix=CHECK-ARMNODPS
|
||||
; RUN: llc < %s -mtriple=armv5te-none-eabi | FileCheck %s --check-prefix=CHECK-ARM --check-prefix=CHECK-ARMBASEDSP
|
||||
; RUN: llc < %s -mtriple=armv5te-none-eabi -mattr=+dsp | FileCheck %s --check-prefix=CHECK-ARM --check-prefix=CHECK-ARMBASEDSP
|
||||
; RUN: llc < %s -mtriple=armv6-none-eabi | FileCheck %s --check-prefix=CHECK-ARM --check-prefix=CHECK-ARMDSP
|
||||
|
||||
declare i4 @llvm.sadd.sat.i4(i4, i4)
|
||||
|
|
Loading…
Reference in New Issue