<div dir="ltr">Is the address of the call here supposed to be 0?<div><br></div><div>

<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">  245:  Â  Â  Â  Â movabsq $0, %rax</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">  255:  Â  Â  Â  Â callq  Â *%rax</span>

<br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div>
<br><div class="gmail_quote">On Fri, Apr 20, 2018 at 8:54 AM, Tom Hudson via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">tomhudson added a comment.<br>
<br>
The simplest example I have of what's breaking is the llvmpipe test code; src/gallium/drivers/llvmpipe/<wbr>lp_test_blend.c from <a href="https://cgit.freedesktop.org/mesa/mesa/" rel="noreferrer" target="_blank">https://cgit.freedesktop.org/<wbr>mesa/mesa/</a>. Both 17.0.3 and 18.0.0 break.<br>
<br>
llvmpipe was explicitly issuing sse2.psubs and sse2.padds in src/gallium/auxiliary/gallivm/<wbr>lp_bld_arit.c; that produced working code before this patch, but after this patch immediately crashes. By removing the issue of the sse2 padds/psubs our test case works again.<br>
<br>
Debug output looks like this:<br>
<br>
llc -mattr option(s): +sse2,+cx16,+sahf,-tbm,-<wbr>avx512ifma,-sha,-gfni,-fma4,-<wbr>vpclmulqdq,-prfchw,+bmi2,-<wbr>cldemote,+fsgsbase,-xsavec,+<wbr>popcnt,+aes,-avx512bitalg,-<wbr>xsaves,-avx512er,-avx512vnni,-<wbr>avx512vpopcntdq,-clwb,-<wbr>avx512f,-clzero,-pku,+mmx,-<wbr>lwp,-rdpid,-xop,-rdseed,-ibt,-<wbr>sse4a,-avx512bw,-clflushopt,+<wbr>xsave,-avx512vbmi2,-avx512vl,-<wbr>avx512cd,+avx,-vaes,-rtm,+fma,<wbr>+bmi,+rdrnd,-mwaitx,+sse4.1,+<wbr>sse4.2,+avx2,-wbnoinvd,+sse,+<wbr>lzcnt,+pclmul,-prefetchwt1,+<wbr>f16c,+ssse3,-sgx,-shstk,+cmov,<wbr>-avx512vbmi,+movbe,+xsaveopt,-<wbr>avx512dq,-adx,-avx512pf,+sse3<br>
llc -mcpu option: haswell<br>
<br>
test:<br>
<br>
  Â  0:  Â  Â  Â  Â pushq  Â %rbp<br>
  Â  1:  Â  Â  Â  Â movq  Â  %rsp, %rbp<br>
  Â  4:  Â  Â  Â  Â pushq  Â %rbx<br>
  Â  5:  Â  Â  Â  Â subq  Â  $40, %rsp<br>
  Â  9:  Â  Â  Â  Â movq  Â  %r8, %rbx<br>
  Â 12:  Â  Â  Â  Â vmovdqa (%rdi), %xmm0<br>
  Â 16:  Â  Â  Â  Â vmovdqa (%rdx), %xmm1<br>
  Â 20:  Â  Â  Â  Â movabsq $140737174016000, %rax<br>
  Â 30:  Â  Â  Â  Â vpand  Â (%rax), %xmm0, %xmm2<br>
  Â 34:  Â  Â  Â  Â vpsrld  $8, %xmm2, %xmm3<br>
  Â 39:  Â  Â  Â  Â vpor  Â  %xmm2, %xmm3, %xmm2<br>
  Â 43:  Â  Â  Â  Â vpcmpeqd  Â  Â  Â  %xmm3, %xmm3, %xmm3<br>
  Â 47:  Â  Â  Â  Â vpxor  Â %xmm3, %xmm0, %xmm3<br>
  Â 51:  Â  Â  Â  Â movabsq $140737174016032, %rax<br>
  Â 61:  Â  Â  Â  Â vpbroadcastd  Â  (%rax), %xmm4<br>
  Â 66:  Â  Â  Â  Â vmovdqa %xmm4, -48(%rbp)<br>
  Â 71:  Â  Â  Â  Â vpblendvb  Â  Â  Â %xmm4, (%rsi), %xmm3, %xmm3<br>
  Â 77:  Â  Â  Â  Â vpsrld  $16, %xmm2, %xmm4<br>
  Â 82:  Â  Â  Â  Â vpor  Â  %xmm2, %xmm4, %xmm2<br>
  Â 86:  Â  Â  Â  Â vpmovzxbw  Â  Â  Â %xmm0, %xmm4<br>
  Â 91:  Â  Â  Â  Â vpxor  Â %xmm5, %xmm5, %xmm5<br>
  Â 95:  Â  Â  Â  Â vpunpckhbw  Â  Â  %xmm5, %xmm0, %xmm0<br>
  Â 99:  Â  Â  Â  Â vpmovzxbw  Â  Â  Â %xmm2, %xmm6<br>
  104:  Â  Â  Â  Â vpmullw %xmm4, %xmm6, %xmm4<br>
  108:  Â  Â  Â  Â vpunpckhbw  Â  Â  %xmm5, %xmm2, %xmm2<br>
  112:  Â  Â  Â  Â vpmullw %xmm0, %xmm2, %xmm0<br>
  116:  Â  Â  Â  Â vpsrlw  $8, %xmm4, %xmm2<br>
  121:  Â  Â  Â  Â movabsq $140737174016016, %rax<br>
  131:  Â  Â  Â  Â vmovdqa (%rax), %xmm6<br>
  135:  Â  Â  Â  Â vpaddw  %xmm6, %xmm4, %xmm4<br>
  139:  Â  Â  Â  Â vpaddw  %xmm4, %xmm2, %xmm2<br>
  143:  Â  Â  Â  Â vpsrlw  $8, %xmm2, %xmm2<br>
  148:  Â  Â  Â  Â vpsrlw  $8, %xmm0, %xmm4<br>
  153:  Â  Â  Â  Â vpaddw  %xmm6, %xmm0, %xmm0<br>
  157:  Â  Â  Â  Â vpaddw  %xmm0, %xmm4, %xmm0<br>
  161:  Â  Â  Â  Â vpsrlw  $8, %xmm0, %xmm0<br>
  166:  Â  Â  Â  Â vpackuswb  Â  Â  Â %xmm0, %xmm2, %xmm0<br>
  170:  Â  Â  Â  Â vpmovzxbw  Â  Â  Â %xmm1, %xmm2<br>
  175:  Â  Â  Â  Â vpunpckhbw  Â  Â  %xmm5, %xmm1, %xmm1<br>
  179:  Â  Â  Â  Â vpmovzxbw  Â  Â  Â %xmm3, %xmm4<br>
  184:  Â  Â  Â  Â vpmullw %xmm4, %xmm2, %xmm2<br>
  188:  Â  Â  Â  Â vpunpckhbw  Â  Â  %xmm5, %xmm3, %xmm3<br>
  192:  Â  Â  Â  Â vpmullw %xmm3, %xmm1, %xmm1<br>
  196:  Â  Â  Â  Â vpsrlw  $8, %xmm2, %xmm3<br>
  201:  Â  Â  Â  Â vpaddw  %xmm6, %xmm2, %xmm2<br>
  205:  Â  Â  Â  Â vpaddw  %xmm2, %xmm3, %xmm2<br>
  209:  Â  Â  Â  Â vpsrlw  $8, %xmm2, %xmm2<br>
  214:  Â  Â  Â  Â vpsrlw  $8, %xmm1, %xmm3<br>
  219:  Â  Â  Â  Â vpaddw  %xmm6, %xmm1, %xmm1<br>
  223:  Â  Â  Â  Â vpaddw  %xmm1, %xmm3, %xmm1<br>
  227:  Â  Â  Â  Â vpsrlw  $8, %xmm1, %xmm1<br>
  232:  Â  Â  Â  Â vpackuswb  Â  Â  Â %xmm1, %xmm2, %xmm1<br>
  236:  Â  Â  Â  Â vpminub %xmm1, %xmm0, %xmm2<br>
  240:  Â  Â  Â  Â vmovdqa %xmm2, -32(%rbp)<br>
  245:  Â  Â  Â  Â movabsq $0, %rax<br>
  255:  Â  Â  Â  Â callq  Â *%rax<br>
  257:  Â  Â  Â  Â vmovdqa -48(%rbp), %xmm1<br>
  262:  Â  Â  Â  Â vpblendvb  Â  Â  Â %xmm1, -32(%rbp), %xmm0, %xmm0<br>
  269:  Â  Â  Â  Â vmovdqa %xmm0, (%rbx)<br>
  273:  Â  Â  Â  Â addq  Â  $40, %rsp<br>
  277:  Â  Â  Â  Â popq  Â  %rbx<br>
  278:  Â  Â  Â  Â popq  Â  %rbp<br>
  279:  Â  Â  Â  Â retq<br>
<br>
After we return from the callq, we seem to have a corrupt stack.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D44785" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D44785</a><br>
<br>
<br>
<br>
</div></div></blockquote></div><br></div>