<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 1, 2015 at 11:24 PM, Craig Topper via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ctopper<br>
Date: Mon Nov  2 01:24:37 2015<br>
New Revision: 251779<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=251779&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=251779&view=rev</a><br>
Log:<br>
[X86] Don't pass a scale value of 0 to scatter/gather intrinsics. This causes the code emitter to throw an assertion if we try to encode it. Need to add a check to fail isel for this, but for now avoid testing it.<br></blockquote><div><br></div><div>Testing and XFAIL wouldn't be too bad - and/or at least having a bug (& maybe a comment in the test that it should be tested, but isn't)?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Modified:<br>
    llvm/trunk/test/CodeGen/X86/avx512-gather-scatter-intrin.ll<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/avx512-gather-scatter-intrin.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-gather-scatter-intrin.ll?rev=251779&r1=251778&r2=251779&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-gather-scatter-intrin.ll?rev=251779&r1=251778&r2=251779&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/X86/avx512-gather-scatter-intrin.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/avx512-gather-scatter-intrin.ll Mon Nov  2 01:24:37 2015<br>
@@ -279,11 +279,11 @@ define <2 x double>@test_int_x86_avx512_<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherqpd (%rdi,%xmm1,4), %xmm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherqpd (%rdi,%xmm1,0), %xmm0 {%k1}<br>
+; CHECK-NEXT:    vgatherqpd (%rdi,%xmm1,2), %xmm0 {%k1}<br>
 ; CHECK-NEXT:    vaddpd %xmm0, %xmm2, %xmm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <2 x double> @llvm.x86.avx512.gather3div2.df(<2 x double> %x0, i8* %x1, <2 x i64> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <2 x double> @llvm.x86.avx512.gather3div2.df(<2 x double> %x0, i8* %x1, <2 x i64> %x2, i8 -1, i32 0)<br>
+  %res1 = call <2 x double> @llvm.x86.avx512.gather3div2.df(<2 x double> %x0, i8* %x1, <2 x i64> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <2 x double> %res, %res1<br>
   ret <2 x double> %res2<br>
 }<br>
@@ -312,11 +312,11 @@ define <4 x double>@test_int_x86_avx512_<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherqpd (%rdi,%ymm1,4), %ymm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherqpd (%rdi,%ymm1,0), %ymm0 {%k1}<br>
+; CHECK-NEXT:    vgatherqpd (%rdi,%ymm1,2), %ymm0 {%k1}<br>
 ; CHECK-NEXT:    vaddpd %ymm0, %ymm2, %ymm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <4 x double> @llvm.x86.avx512.gather3div4.df(<4 x double> %x0, i8* %x1, <4 x i64> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <4 x double> @llvm.x86.avx512.gather3div4.df(<4 x double> %x0, i8* %x1, <4 x i64> %x2, i8 -1, i32 0)<br>
+  %res1 = call <4 x double> @llvm.x86.avx512.gather3div4.df(<4 x double> %x0, i8* %x1, <4 x i64> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <4 x double> %res, %res1<br>
   ret <4 x double> %res2<br>
 }<br>
@@ -348,11 +348,11 @@ define <4 x float>@test_int_x86_avx512_g<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherqps (%rdi,%xmm1,4), %xmm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherqps (%rdi,%xmm1,0), %xmm0 {%k1}<br>
+; CHECK-NEXT:    vgatherqps (%rdi,%xmm1,2), %xmm0 {%k1}<br>
 ; CHECK-NEXT:    vaddps %xmm0, %xmm2, %xmm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <4 x float> @llvm.x86.avx512.gather3div4.sf(<4 x float> %x0, i8* %x1, <2 x i64> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <4 x float> @llvm.x86.avx512.gather3div4.sf(<4 x float> %x0, i8* %x1, <2 x i64> %x2, i8 -1, i32 0)<br>
+  %res1 = call <4 x float> @llvm.x86.avx512.gather3div4.sf(<4 x float> %x0, i8* %x1, <2 x i64> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <4 x float> %res, %res1<br>
   ret <4 x float> %res2<br>
 }<br>
@@ -384,11 +384,11 @@ define <4 x float>@test_int_x86_avx512_g<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherqps (%rdi,%ymm1,4), %xmm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherqps (%rdi,%ymm1,0), %xmm0 {%k1}<br>
+; CHECK-NEXT:    vgatherqps (%rdi,%ymm1,2), %xmm0 {%k1}<br>
 ; CHECK-NEXT:    vaddps %xmm0, %xmm2, %xmm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <4 x float> @llvm.x86.avx512.gather3div8.sf(<4 x float> %x0, i8* %x1, <4 x i64> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <4 x float> @llvm.x86.avx512.gather3div8.sf(<4 x float> %x0, i8* %x1, <4 x i64> %x2, i8 -1, i32 0)<br>
+  %res1 = call <4 x float> @llvm.x86.avx512.gather3div8.sf(<4 x float> %x0, i8* %x1, <4 x i64> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <4 x float> %res, %res1<br>
   ret <4 x float> %res2<br>
 }<br>
@@ -420,11 +420,11 @@ define <2 x double>@test_int_x86_avx512_<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherdpd (%rdi,%xmm1,4), %xmm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherdpd (%rdi,%xmm1,0), %xmm0 {%k1}<br>
+; CHECK-NEXT:    vgatherdpd (%rdi,%xmm1,2), %xmm0 {%k1}<br>
 ; CHECK-NEXT:    vaddpd %xmm0, %xmm2, %xmm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <2 x double> @llvm.x86.avx512.gather3siv2.df(<2 x double> %x0, i8* %x1, <4 x i32> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <2 x double> @llvm.x86.avx512.gather3siv2.df(<2 x double> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 0)<br>
+  %res1 = call <2 x double> @llvm.x86.avx512.gather3siv2.df(<2 x double> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <2 x double> %res, %res1<br>
   ret <2 x double> %res2<br>
 }<br>
@@ -453,11 +453,11 @@ define <4 x double>@test_int_x86_avx512_<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherdpd (%rdi,%xmm1,4), %ymm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherdpd (%rdi,%xmm1,0), %ymm0 {%k1}<br>
+; CHECK-NEXT:    vgatherdpd (%rdi,%xmm1,2), %ymm0 {%k1}<br>
 ; CHECK-NEXT:    vaddpd %ymm0, %ymm2, %ymm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <4 x double> @llvm.x86.avx512.gather3siv4.df(<4 x double> %x0, i8* %x1, <4 x i32> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <4 x double> @llvm.x86.avx512.gather3siv4.df(<4 x double> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 0)<br>
+  %res1 = call <4 x double> @llvm.x86.avx512.gather3siv4.df(<4 x double> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <4 x double> %res, %res1<br>
   ret <4 x double> %res2<br>
 }<br>
@@ -486,11 +486,11 @@ define <4 x float>@test_int_x86_avx512_g<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherdps (%rdi,%xmm1,4), %xmm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherdps (%rdi,%xmm1,0), %xmm0 {%k1}<br>
+; CHECK-NEXT:    vgatherdps (%rdi,%xmm1,2), %xmm0 {%k1}<br>
 ; CHECK-NEXT:    vaddps %xmm0, %xmm2, %xmm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <4 x float> @llvm.x86.avx512.gather3siv4.sf(<4 x float> %x0, i8* %x1, <4 x i32> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <4 x float> @llvm.x86.avx512.gather3siv4.sf(<4 x float> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 0)<br>
+  %res1 = call <4 x float> @llvm.x86.avx512.gather3siv4.sf(<4 x float> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <4 x float> %res, %res1<br>
   ret <4 x float> %res2<br>
 }<br>
@@ -504,11 +504,11 @@ define <4 x i32>@test_int_x86_avx512_gat<br>
 ; CHECK-NEXT:    kxnorw %k2, %k2, %k2<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vpgatherdd (%rdi,%xmm1,4), %xmm2 {%k2}<br>
-; CHECK-NEXT:    vpgatherdd (%rdi,%xmm1,0), %xmm0 {%k1}<br>
+; CHECK-NEXT:    vpgatherdd (%rdi,%xmm1,2), %xmm0 {%k1}<br>
 ; CHECK-NEXT:    vpaddd %xmm0, %xmm2, %xmm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <4 x i32> @<a href="http://llvm.x86.avx512.gather3siv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.gather3siv4.si</a>(<4 x i32> %x0, i8* %x1, <4 x i32> %x2, i8 -1, i32 4)<br>
-  %res1 = call <4 x i32> @<a href="http://llvm.x86.avx512.gather3siv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.gather3siv4.si</a>(<4 x i32> %x0, i8* %x1, <4 x i32> %x2, i8 %x3, i32 0)<br>
+  %res1 = call <4 x i32> @<a href="http://llvm.x86.avx512.gather3siv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.gather3siv4.si</a>(<4 x i32> %x0, i8* %x1, <4 x i32> %x2, i8 %x3, i32 2)<br>
   %res2 = add <4 x i32> %res, %res1<br>
   ret <4 x i32> %res2<br>
 }<br>
@@ -522,11 +522,11 @@ define <8 x float>@test_int_x86_avx512_g<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    vgatherdps (%rdi,%ymm1,4), %ymm2 {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
-; CHECK-NEXT:    vgatherdps (%rdi,%ymm1,0), %ymm0 {%k1}<br>
+; CHECK-NEXT:    vgatherdps (%rdi,%ymm1,2), %ymm0 {%k1}<br>
 ; CHECK-NEXT:    vaddps %ymm0, %ymm2, %ymm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <8 x float> @llvm.x86.avx512.gather3siv8.sf(<8 x float> %x0, i8* %x1, <8 x i32> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <8 x float> @llvm.x86.avx512.gather3siv8.sf(<8 x float> %x0, i8* %x1, <8 x i32> %x2, i8 -1, i32 0)<br>
+  %res1 = call <8 x float> @llvm.x86.avx512.gather3siv8.sf(<8 x float> %x0, i8* %x1, <8 x i32> %x2, i8 -1, i32 2)<br>
   %res2 = fadd <8 x float> %res, %res1<br>
   ret <8 x float> %res2<br>
 }<br>
@@ -540,11 +540,11 @@ define <8 x i32>@test_int_x86_avx512_gat<br>
 ; CHECK-NEXT:    vmovaps %zmm0, %zmm2<br>
 ; CHECK-NEXT:    kmovw %k1, %k2<br>
 ; CHECK-NEXT:    vpgatherdd (%rdi,%ymm1,4), %ymm2 {%k2}<br>
-; CHECK-NEXT:    vpgatherdd (%rdi,%ymm1,0), %ymm0 {%k1}<br>
+; CHECK-NEXT:    vpgatherdd (%rdi,%ymm1,2), %ymm0 {%k1}<br>
 ; CHECK-NEXT:    vpaddd %ymm0, %ymm2, %ymm0<br>
 ; CHECK-NEXT:    retq<br>
   %res = call <8 x i32> @<a href="http://llvm.x86.avx512.gather3siv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.gather3siv8.si</a>(<8 x i32> %x0, i8* %x1, <8 x i32> %x2, i8 %x3, i32 4)<br>
-  %res1 = call <8 x i32> @<a href="http://llvm.x86.avx512.gather3siv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.gather3siv8.si</a>(<8 x i32> %x0, i8* %x1, <8 x i32> %x2, i8 %x3, i32 0)<br>
+  %res1 = call <8 x i32> @<a href="http://llvm.x86.avx512.gather3siv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.gather3siv8.si</a>(<8 x i32> %x0, i8* %x1, <8 x i32> %x2, i8 %x3, i32 2)<br>
   %res2 = add <8 x i32> %res, %res1<br>
   ret <8 x i32> %res2<br>
 }<br>
@@ -556,10 +556,10 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
 ; CHECK-NEXT:    kxnorw %k2, %k2, %k2<br>
-; CHECK-NEXT:    vscatterqpd %xmm1, (%rdi,%xmm0,0) {%k2}<br>
+; CHECK-NEXT:    vscatterqpd %xmm1, (%rdi,%xmm0,2) {%k2}<br>
 ; CHECK-NEXT:    vscatterqpd %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scatterdiv2.df(i8* %x0, i8 -1, <2 x i64> %x2, <2 x double> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scatterdiv2.df(i8* %x0, i8 -1, <2 x i64> %x2, <2 x double> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scatterdiv2.df(i8* %x0, i8 %x1, <2 x i64> %x2, <2 x double> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -570,11 +570,11 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK-LABEL: test_int_x86_avx512_scatterdiv2_di:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vpscatterqq %xmm1, (%rdi,%xmm0,0) {%k1}<br>
+; CHECK-NEXT:    vpscatterqq %xmm1, (%rdi,%xmm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vpscatterqq %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scatterdiv2.di(i8* %x0, i8 %x1, <2 x i64> %x2, <2 x i64> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scatterdiv2.di(i8* %x0, i8 %x1, <2 x i64> %x2, <2 x i64> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scatterdiv2.di(i8* %x0, i8 -1, <2 x i64> %x2, <2 x i64> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -585,11 +585,11 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK-LABEL: test_int_x86_avx512_scatterdiv4_df:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vscatterqpd %ymm1, (%rdi,%ymm0,0) {%k1}<br>
+; CHECK-NEXT:    vscatterqpd %ymm1, (%rdi,%ymm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vscatterqpd %ymm1, (%rdi,%ymm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scatterdiv4.df(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x double> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scatterdiv4.df(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x double> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scatterdiv4.df(i8* %x0, i8 -1, <4 x i64> %x2, <4 x double> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -600,11 +600,11 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK-LABEL: test_int_x86_avx512_scatterdiv4_di:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vpscatterqq %ymm1, (%rdi,%ymm0,0) {%k1}<br>
+; CHECK-NEXT:    vpscatterqq %ymm1, (%rdi,%ymm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vpscatterqq %ymm1, (%rdi,%ymm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scatterdiv4.di(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x i64> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scatterdiv4.di(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x i64> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scatterdiv4.di(i8* %x0, i8 -1, <4 x i64> %x2, <4 x i64> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -615,11 +615,11 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK-LABEL: test_int_x86_avx512_scatterdiv4_sf:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vscatterqps %xmm1, (%rdi,%xmm0,0) {%k1}<br>
+; CHECK-NEXT:    vscatterqps %xmm1, (%rdi,%xmm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vscatterqps %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scatterdiv4.sf(i8* %x0, i8 %x1, <2 x i64> %x2, <4 x float> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scatterdiv4.sf(i8* %x0, i8 %x1, <2 x i64> %x2, <4 x float> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scatterdiv4.sf(i8* %x0, i8 -1, <2 x i64> %x2, <4 x float> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -631,10 +631,10 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
 ; CHECK-NEXT:    kxnorw %k2, %k2, %k2<br>
-; CHECK-NEXT:    vpscatterqd %xmm1, (%rdi,%xmm0,0) {%k2}<br>
+; CHECK-NEXT:    vpscatterqd %xmm1, (%rdi,%xmm0,2) {%k2}<br>
 ; CHECK-NEXT:    vpscatterqd %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @<a href="http://llvm.x86.avx512.scatterdiv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scatterdiv4.si</a>(i8* %x0, i8 -1, <2 x i64> %x2, <4 x i32> %x3, i32 0)<br>
+  call void @<a href="http://llvm.x86.avx512.scatterdiv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scatterdiv4.si</a>(i8* %x0, i8 -1, <2 x i64> %x2, <4 x i32> %x3, i32 2)<br>
   call void @<a href="http://llvm.x86.avx512.scatterdiv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scatterdiv4.si</a>(i8* %x0, i8 %x1, <2 x i64> %x2, <4 x i32> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -645,11 +645,11 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK-LABEL: test_int_x86_avx512_scatterdiv8_sf:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vscatterqps %xmm1, (%rdi,%ymm0,0) {%k1}<br>
+; CHECK-NEXT:    vscatterqps %xmm1, (%rdi,%ymm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vscatterqps %xmm1, (%rdi,%ymm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scatterdiv8.sf(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x float> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scatterdiv8.sf(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x float> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scatterdiv8.sf(i8* %x0, i8 -1, <4 x i64> %x2, <4 x float> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -660,11 +660,11 @@ define void@test_int_x86_avx512_scatterd<br>
 ; CHECK-LABEL: test_int_x86_avx512_scatterdiv8_si:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vpscatterqd %xmm1, (%rdi,%ymm0,0) {%k1}<br>
+; CHECK-NEXT:    vpscatterqd %xmm1, (%rdi,%ymm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vpscatterqd %xmm1, (%rdi,%ymm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @<a href="http://llvm.x86.avx512.scatterdiv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scatterdiv8.si</a>(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x i32> %x3, i32 0)<br>
+  call void @<a href="http://llvm.x86.avx512.scatterdiv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scatterdiv8.si</a>(i8* %x0, i8 %x1, <4 x i64> %x2, <4 x i32> %x3, i32 2)<br>
   call void @<a href="http://llvm.x86.avx512.scatterdiv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scatterdiv8.si</a>(i8* %x0, i8 -1, <4 x i64> %x2, <4 x i32> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -676,10 +676,10 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
 ; CHECK-NEXT:    kxnorw %k2, %k2, %k2<br>
-; CHECK-NEXT:    vscatterdpd %xmm1, (%rdi,%xmm0,0) {%k2}<br>
+; CHECK-NEXT:    vscatterdpd %xmm1, (%rdi,%xmm0,2) {%k2}<br>
 ; CHECK-NEXT:    vscatterdpd %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scattersiv2.df(i8* %x0, i8 -1, <4 x i32> %x2, <2 x double> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scattersiv2.df(i8* %x0, i8 -1, <4 x i32> %x2, <2 x double> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scattersiv2.df(i8* %x0, i8 %x1, <4 x i32> %x2, <2 x double> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -691,10 +691,10 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
 ; CHECK-NEXT:    kxnorw %k2, %k2, %k2<br>
-; CHECK-NEXT:    vpscatterdq %xmm1, (%rdi,%xmm0,0) {%k2}<br>
+; CHECK-NEXT:    vpscatterdq %xmm1, (%rdi,%xmm0,2) {%k2}<br>
 ; CHECK-NEXT:    vpscatterdq %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scattersiv2.di(i8* %x0, i8 -1, <4 x i32> %x2, <2 x i64> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scattersiv2.di(i8* %x0, i8 -1, <4 x i32> %x2, <2 x i64> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scattersiv2.di(i8* %x0, i8 %x1, <4 x i32> %x2, <2 x i64> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -705,11 +705,11 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK-LABEL: test_int_x86_avx512_scattersiv4_df:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vscatterdpd %ymm1, (%rdi,%xmm0,0) {%k1}<br>
+; CHECK-NEXT:    vscatterdpd %ymm1, (%rdi,%xmm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vscatterdpd %ymm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scattersiv4.df(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x double> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scattersiv4.df(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x double> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scattersiv4.df(i8* %x0, i8 -1, <4 x i32> %x2, <4 x double> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -721,10 +721,10 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
 ; CHECK-NEXT:    kxnorw %k2, %k2, %k2<br>
-; CHECK-NEXT:    vpscatterdq %ymm1, (%rdi,%xmm0,0) {%k2}<br>
+; CHECK-NEXT:    vpscatterdq %ymm1, (%rdi,%xmm0,2) {%k2}<br>
 ; CHECK-NEXT:    vpscatterdq %ymm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scattersiv4.di(i8* %x0, i8 -1, <4 x i32> %x2, <4 x i64> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scattersiv4.di(i8* %x0, i8 -1, <4 x i32> %x2, <4 x i64> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scattersiv4.di(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x i64> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -735,11 +735,11 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK-LABEL: test_int_x86_avx512_scattersiv4_sf:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vscatterdps %xmm1, (%rdi,%xmm0,0) {%k1}<br>
+; CHECK-NEXT:    vscatterdps %xmm1, (%rdi,%xmm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vscatterdps %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scattersiv4.sf(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x float> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scattersiv4.sf(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x float> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scattersiv4.sf(i8* %x0, i8 -1, <4 x i32> %x2, <4 x float> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -750,11 +750,11 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK-LABEL: test_int_x86_avx512_scattersiv4_si:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vpscatterdd %xmm1, (%rdi,%xmm0,0) {%k1}<br>
+; CHECK-NEXT:    vpscatterdd %xmm1, (%rdi,%xmm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vpscatterdd %xmm1, (%rdi,%xmm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @<a href="http://llvm.x86.avx512.scattersiv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scattersiv4.si</a>(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x i32> %x3, i32 0)<br>
+  call void @<a href="http://llvm.x86.avx512.scattersiv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scattersiv4.si</a>(i8* %x0, i8 %x1, <4 x i32> %x2, <4 x i32> %x3, i32 2)<br>
   call void @<a href="http://llvm.x86.avx512.scattersiv4.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scattersiv4.si</a>(i8* %x0, i8 -1, <4 x i32> %x2, <4 x i32> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -765,11 +765,11 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK-LABEL: test_int_x86_avx512_scattersiv8_sf:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vscatterdps %ymm1, (%rdi,%ymm0,0) {%k1}<br>
+; CHECK-NEXT:    vscatterdps %ymm1, (%rdi,%ymm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vscatterdps %ymm1, (%rdi,%ymm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @llvm.x86.avx512.scattersiv8.sf(i8* %x0, i8 %x1, <8 x i32> %x2, <8 x float> %x3, i32 0)<br>
+  call void @llvm.x86.avx512.scattersiv8.sf(i8* %x0, i8 %x1, <8 x i32> %x2, <8 x float> %x3, i32 2)<br>
   call void @llvm.x86.avx512.scattersiv8.sf(i8* %x0, i8 -1, <8 x i32> %x2, <8 x float> %x3, i32 4)<br>
   ret void<br>
 }<br>
@@ -780,11 +780,11 @@ define void@test_int_x86_avx512_scatters<br>
 ; CHECK-LABEL: test_int_x86_avx512_scattersiv8_si:<br>
 ; CHECK:       ## BB#0:<br>
 ; CHECK-NEXT:    kmovb %esi, %k1<br>
-; CHECK-NEXT:    vpscatterdd %ymm1, (%rdi,%ymm0,0) {%k1}<br>
+; CHECK-NEXT:    vpscatterdd %ymm1, (%rdi,%ymm0,2) {%k1}<br>
 ; CHECK-NEXT:    kxnorw %k1, %k1, %k1<br>
 ; CHECK-NEXT:    vpscatterdd %ymm1, (%rdi,%ymm0,4) {%k1}<br>
 ; CHECK-NEXT:    retq<br>
-  call void @<a href="http://llvm.x86.avx512.scattersiv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scattersiv8.si</a>(i8* %x0, i8 %x1, <8 x i32> %x2, <8 x i32> %x3, i32 0)<br>
+  call void @<a href="http://llvm.x86.avx512.scattersiv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scattersiv8.si</a>(i8* %x0, i8 %x1, <8 x i32> %x2, <8 x i32> %x3, i32 2)<br>
   call void @<a href="http://llvm.x86.avx512.scattersiv8.si" rel="noreferrer" target="_blank">llvm.x86.avx512.scattersiv8.si</a>(i8* %x0, i8 -1, <8 x i32> %x2, <8 x i32> %x3, i32 4)<br>
   ret void<br>
 }<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>