<div dir="ltr">The patch is probably causing <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/12458" class="cremed">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/12458</a><div><br></div><div><pre style="font-family:"courier new",courier,monotype,monospace;font-size:medium;line-height:normal"><span class="inbox-inbox-stdout">FAIL: LLVM :: CodeGen/ARM/inlineasm3.ll (4451 of 17333)
******************** TEST 'LLVM :: CodeGen/ARM/inlineasm3.ll' FAILED ********************
Script:
--
/mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm_build_msan/./bin/llc -mtriple=arm-eabi -float-abi=soft -mattr=+neon,+v6t2 -no-integrated-as /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/ARM/inlineasm3.ll -o -   | /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm_build_msan/./bin/FileCheck /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/ARM/inlineasm3.ll
--
Exit Code: 1

Command Output (stderr):
--
/mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/ARM/inlineasm3.ll:10:10: error: expected string not found in input
; CHECK: vmov.I64 q15, #0
         ^
<stdin>:1:4: note: scanning from here
 .text
   ^
<stdin>:8:8: note: possible intended match here
 .eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use
       ^

--
</span></pre><br class="inbox-inbox-Apple-interchange-newline"><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 18, 2016 at 12:42 AM Diana Picus via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This revision was automatically updated to reflect the committed changes.<br>
Closed by commit rL275776: [ARM] Skip inline asm memory operands in DAGToDAGISel (authored by rovka).<br>
<br>
Changed prior to commit:<br>
  <a href="https://reviews.llvm.org/D22103?vs=63102&id=64281#toc" rel="noreferrer" target="_blank" class="cremed">https://reviews.llvm.org/D22103?vs=63102&id=64281#toc</a><br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D22103" rel="noreferrer" target="_blank" class="cremed">https://reviews.llvm.org/D22103</a><br>
<br>
Files:<br>
  llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp<br>
  llvm/trunk/test/CodeGen/ARM/inlineasm3.ll<br>
<br>
Index: llvm/trunk/test/CodeGen/ARM/inlineasm3.ll<br>
===================================================================<br>
--- llvm/trunk/test/CodeGen/ARM/inlineasm3.ll<br>
+++ llvm/trunk/test/CodeGen/ARM/inlineasm3.ll<br>
@@ -121,3 +121,14 @@<br>
   %0 = tail call <4 x i32> asm "vld1.s32 {${0:e}[], ${0:f}[]}, [$1]", "=w,r"(i32* %p) nounwind<br>
   ret <4 x i32> %0<br>
 }<br>
+<br>
+; Bugzilla PR26038<br>
+<br>
+define i32 @fn1() local_unnamed_addr nounwind {<br>
+; CHECK-LABEL: fn1<br>
+entry:<br>
+; CHECK: mov [[addr:r[0-9]+]], #5<br>
+; CHECK: ldrh {{.*}}[[addr]]<br>
+  %0 = tail call i32 asm "ldrh  $0, $1", "=r,*Q"(i8* inttoptr (i32 5 to i8*)) nounwind<br>
+  ret i32 %0<br>
+}<br>
Index: llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp<br>
===================================================================<br>
--- llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp<br>
+++ llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp<br>
@@ -4264,6 +4264,17 @@<br>
     if (Changed && InlineAsm::isUseOperandTiedToDef(Flag, DefIdx))<br>
       IsTiedToChangedOp = OpChanged[DefIdx];<br>
<br>
+    // Memory operands to inline asm in the SelectionDAG are modeled with two<br>
+    // operands: a constant of value InlineAsm::Kind_Mem followed by the input<br>
+    // operand. If we get here and we have a Kind_Mem, skip the next operand (so<br>
+    // it doesn't get misinterpreted), and continue. We do this here because<br>
+    // it's important to update the OpChanged array correctly before moving on.<br>
+    if (Kind == InlineAsm::Kind_Mem) {<br>
+      SDValue op = N->getOperand(++i);<br>
+      AsmNodeOperands.push_back(op);<br>
+      continue;<br>
+    }<br>
+<br>
     if (Kind != InlineAsm::Kind_RegUse && Kind != InlineAsm::Kind_RegDef<br>
         && Kind != InlineAsm::Kind_RegDefEarlyClobber)<br>
       continue;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="cremed">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="cremed">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div></div>