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();
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to