svn commit: r360350 - head/contrib/llvm-project/llvm/lib/Target/ARM
Dimitry Andric
dim at FreeBSD.org
Sun Apr 26 19:17:46 UTC 2020
Author: dim
Date: Sun Apr 26 19:17:45 2020
New Revision: 360350
URL: https://svnweb.freebsd.org/changeset/base/360350
Log:
Tentatively apply https://reviews.llvm.org/D78877 (by Dave Green):
[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.
This fixes "fatal error: error in backend: Cannot select: t37: i32 =
ARMISD::QADD8b t43, t44" when compiling sys/dev/sound/pcm/feeder_mixer.c
for armv5. For some reason we do not encounter this on head, but this
error popped up while building universes for stable/12.
MFC after: 3 days
Modified:
head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp
Modified: head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp
==============================================================================
--- head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp Sun Apr 26 18:42:38 2020 (r360349)
+++ head/contrib/llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp Sun Apr 26 19:17:45 2020 (r360350)
@@ -4549,7 +4549,7 @@ SDValue ARMTargetLowering::LowerUnsignedALUO(SDValue O
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();
More information about the svn-src-all
mailing list