[MCA][X86][AVX512] Add test coverage for unsigned<->fp conversion instructions
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 12 Nov 2022 13:45:16 +0000 (13:45 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 12 Nov 2022 13:45:16 +0000 (13:45 +0000)
llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s

index 9282df1..668434d 100644 (file)
@@ -207,6 +207,16 @@ vcvtps2pd         %ymm16, %zmm19 {z}{k1}
 vcvtps2pd         (%rax), %zmm19 {z}{k1}
 vcvtps2pd         (%rax){1to8}, %zmm19 {z}{k1}
 
+vcvtsd2usi        %xmm0, %ecx
+vcvtsd2usi        %xmm0, %rcx
+vcvtsd2usi        (%rax), %ecx
+vcvtsd2usi        (%rax), %rcx
+
+vcvtss2usi        %xmm0, %ecx
+vcvtss2usi        %xmm0, %rcx
+vcvtss2usi        (%rax), %ecx
+vcvtss2usi        (%rax), %rcx
+
 vcvtps2udq        %zmm16, %zmm19
 vcvtps2udq        (%rax), %zmm19
 vcvtps2udq        (%rax){1to16}, %zmm19
@@ -227,6 +237,16 @@ vcvttps2udq       %zmm16, %zmm19 {z}{k1}
 vcvttps2udq       (%rax), %zmm19 {z}{k1}
 vcvttps2udq       (%rax){1to16}, %zmm19 {z}{k1}
 
+vcvttsd2usi       %xmm0, %ecx
+vcvttsd2usi       %xmm0, %rcx
+vcvttsd2usi       (%rax), %ecx
+vcvttsd2usi       (%rax), %rcx
+
+vcvttss2usi       %xmm0, %ecx
+vcvttss2usi       %xmm0, %rcx
+vcvttss2usi       (%rax), %ecx
+vcvttss2usi       (%rax), %rcx
+
 vcvtudq2pd        %ymm16, %zmm19
 vcvtudq2pd        (%rax), %zmm19
 vcvtudq2pd        (%rax){1to8}, %zmm19
@@ -247,6 +267,16 @@ vcvtudq2ps        %zmm16, %zmm19 {z}{k1}
 vcvtudq2ps        (%rax), %zmm19 {z}{k1}
 vcvtudq2ps        (%rax){1to16}, %zmm19 {z}{k1}
 
+vcvtusi2sdl       %ecx, %xmm0, %xmm2
+vcvtusi2sdq       %rcx, %xmm0, %xmm2
+vcvtusi2sdl       (%rax), %xmm0, %xmm2
+vcvtusi2sdq       (%rax), %xmm0, %xmm2
+
+vcvtusi2ssl       %ecx, %xmm0, %xmm2
+vcvtusi2ssq       %rcx, %xmm0, %xmm2
+vcvtusi2ssl       (%rax), %xmm0, %xmm2
+vcvtusi2ssq       (%rax), %xmm0, %xmm2
+
 vdivpd            %zmm16, %zmm17, %zmm19
 vdivpd            (%rax), %zmm17, %zmm19
 vdivpd            (%rax){1to8}, %zmm17, %zmm19
@@ -1164,6 +1194,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  2      2     1.00                        vcvtps2pd      %ymm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      7     1.00    *                   vcvtps2pd      (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      7     1.00    *                   vcvtps2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      5     1.00                        vcvtsd2usi     %xmm0, %ecx
+# CHECK-NEXT:  2      5     1.00                        vcvtsd2usi     %xmm0, %rcx
+# CHECK-NEXT:  3      10    1.00    *                   vcvtsd2usi     (%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   vcvtsd2usi     (%rax), %rcx
+# CHECK-NEXT:  2      5     1.00                        vcvtss2usi     %xmm0, %ecx
+# CHECK-NEXT:  2      5     1.00                        vcvtss2usi     %xmm0, %rcx
+# CHECK-NEXT:  3      10    1.00    *                   vcvtss2usi     (%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   vcvtss2usi     (%rax), %rcx
 # CHECK-NEXT:  1      3     1.00                        vcvtps2udq     %zmm16, %zmm19
 # CHECK-NEXT:  2      10    1.00    *                   vcvtps2udq     (%rax), %zmm19
 # CHECK-NEXT:  2      10    1.00    *                   vcvtps2udq     (%rax){1to16}, %zmm19
@@ -1182,6 +1220,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  1      3     1.00                        vcvttps2udq    %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      10    1.00    *                   vcvttps2udq    (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      10    1.00    *                   vcvttps2udq    (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      5     1.00                        vcvttsd2usi    %xmm0, %ecx
+# CHECK-NEXT:  2      5     1.00                        vcvttsd2usi    %xmm0, %rcx
+# CHECK-NEXT:  3      10    1.00    *                   vcvttsd2usi    (%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   vcvttsd2usi    (%rax), %rcx
+# CHECK-NEXT:  2      5     1.00                        vcvttss2usi    %xmm0, %ecx
+# CHECK-NEXT:  2      5     1.00                        vcvttss2usi    %xmm0, %rcx
+# CHECK-NEXT:  3      10    1.00    *                   vcvttss2usi    (%rax), %ecx
+# CHECK-NEXT:  3      10    1.00    *                   vcvttss2usi    (%rax), %rcx
 # CHECK-NEXT:  2      4     1.00                        vcvtudq2pd     %ymm16, %zmm19
 # CHECK-NEXT:  3      10    1.00    *                   vcvtudq2pd     (%rax), %zmm19
 # CHECK-NEXT:  3      10    1.00    *                   vcvtudq2pd     (%rax){1to8}, %zmm19
@@ -1200,6 +1246,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  1      3     1.00                        vcvtudq2ps     %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      10    1.00    *                   vcvtudq2ps     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      4     1.00                        vcvtusi2sd     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      4     1.00                        vcvtusi2sd     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2sdl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2sdq    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  3      5     2.00                        vcvtusi2ss     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  3      5     2.00                        vcvtusi2ss     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  3      10    1.00    *                   vcvtusi2ssl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  3      10    1.00    *                   vcvtusi2ssq    (%rax), %xmm0, %xmm2
 # CHECK-NEXT:  3      45    44.00                       vdivpd %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  4      52    44.00   *                   vdivpd (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  4      52    44.00   *                   vdivpd (%rax){1to8}, %zmm17, %zmm19
@@ -1857,7 +1911,7 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT:  -     1506.00 153.67 282.67 16.00 513.67 275.50 275.50
+# CHECK-NEXT:  -     1506.00 169.67 306.67 16.00 521.67 281.50 281.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
@@ -2041,6 +2095,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     1.00    -      -     1.00    -      -     vcvtps2pd        %ymm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vcvtps2pd        (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vcvtps2pd        (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvtsd2usi       %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvtsd2usi       %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvtsd2usi       (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvtsd2usi       (%rax), %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvtss2usi       %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvtss2usi       %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvtss2usi       (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvtss2usi       (%rax), %rcx
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcvtps2udq       %zmm16, %zmm19
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtps2udq       (%rax), %zmm19
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtps2udq       (%rax){1to16}, %zmm19
@@ -2059,6 +2121,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcvttps2udq      %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvttps2udq      (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvttps2udq      (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvttsd2usi      %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvttsd2usi      %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvttsd2usi      (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvttsd2usi      (%rax), %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvttss2usi      %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -     vcvttss2usi      %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvttss2usi      (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   vcvttss2usi      (%rax), %rcx
 # CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     vcvtudq2pd       %ymm16, %zmm19
 # CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtudq2pd       (%rax), %zmm19
 # CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtudq2pd       (%rax){1to8}, %zmm19
@@ -2077,6 +2147,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vcvtudq2ps       %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtudq2ps       (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtudq2ps       (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     vcvtusi2sd       %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00    -      -     vcvtusi2sd       %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtusi2sdl      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vcvtusi2sdq      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     2.00    -      -     vcvtusi2ss       %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     2.00    -      -     vcvtusi2ss       %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtusi2ssl      (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00    -     1.00   0.50   0.50   vcvtusi2ssq      (%rax), %xmm0, %xmm2
 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50    -      -     vdivpd   %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50   0.50   0.50   vdivpd   (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  -     44.00  2.50    -      -     0.50   0.50   0.50   vdivpd   (%rax){1to8}, %zmm17, %zmm19
index eb37057..2c061be 100644 (file)
@@ -207,6 +207,16 @@ vcvtps2pd         %ymm16, %zmm19 {z}{k1}
 vcvtps2pd         (%rax), %zmm19 {z}{k1}
 vcvtps2pd         (%rax){1to8}, %zmm19 {z}{k1}
 
+vcvtsd2usi        %xmm0, %ecx
+vcvtsd2usi        %xmm0, %rcx
+vcvtsd2usi        (%rax), %ecx
+vcvtsd2usi        (%rax), %rcx
+
+vcvtss2usi        %xmm0, %ecx
+vcvtss2usi        %xmm0, %rcx
+vcvtss2usi        (%rax), %ecx
+vcvtss2usi        (%rax), %rcx
+
 vcvtps2udq        %zmm16, %zmm19
 vcvtps2udq        (%rax), %zmm19
 vcvtps2udq        (%rax){1to16}, %zmm19
@@ -227,6 +237,16 @@ vcvttps2udq       %zmm16, %zmm19 {z}{k1}
 vcvttps2udq       (%rax), %zmm19 {z}{k1}
 vcvttps2udq       (%rax){1to16}, %zmm19 {z}{k1}
 
+vcvttsd2usi       %xmm0, %ecx
+vcvttsd2usi       %xmm0, %rcx
+vcvttsd2usi       (%rax), %ecx
+vcvttsd2usi       (%rax), %rcx
+
+vcvttss2usi       %xmm0, %ecx
+vcvttss2usi       %xmm0, %rcx
+vcvttss2usi       (%rax), %ecx
+vcvttss2usi       (%rax), %rcx
+
 vcvtudq2pd        %ymm16, %zmm19
 vcvtudq2pd        (%rax), %zmm19
 vcvtudq2pd        (%rax){1to8}, %zmm19
@@ -247,6 +267,16 @@ vcvtudq2ps        %zmm16, %zmm19 {z}{k1}
 vcvtudq2ps        (%rax), %zmm19 {z}{k1}
 vcvtudq2ps        (%rax){1to16}, %zmm19 {z}{k1}
 
+vcvtusi2sdl       %ecx, %xmm0, %xmm2
+vcvtusi2sdq       %rcx, %xmm0, %xmm2
+vcvtusi2sdl       (%rax), %xmm0, %xmm2
+vcvtusi2sdq       (%rax), %xmm0, %xmm2
+
+vcvtusi2ssl       %ecx, %xmm0, %xmm2
+vcvtusi2ssq       %rcx, %xmm0, %xmm2
+vcvtusi2ssl       (%rax), %xmm0, %xmm2
+vcvtusi2ssq       (%rax), %xmm0, %xmm2
+
 vdivpd            %zmm16, %zmm17, %zmm19
 vdivpd            (%rax), %zmm17, %zmm19
 vdivpd            (%rax){1to8}, %zmm17, %zmm19
@@ -1164,6 +1194,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  2      3     1.00                        vcvtps2pd      %ymm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2pd      (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     1.00                        vcvtsd2usi     %xmm0, %ecx
+# CHECK-NEXT:  2      6     1.00                        vcvtsd2usi     %xmm0, %rcx
+# CHECK-NEXT:  3      12    1.00    *                   vcvtsd2usi     (%rax), %ecx
+# CHECK-NEXT:  3      11    1.00    *                   vcvtsd2usi     (%rax), %rcx
+# CHECK-NEXT:  2      6     1.00                        vcvtss2usi     %xmm0, %ecx
+# CHECK-NEXT:  3      7     1.00                        vcvtss2usi     %xmm0, %rcx
+# CHECK-NEXT:  3      11    1.00    *                   vcvtss2usi     (%rax), %ecx
+# CHECK-NEXT:  3      12    1.00    *                   vcvtss2usi     (%rax), %rcx
 # CHECK-NEXT:  1      4     0.50                        vcvtps2udq     %zmm16, %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2udq     (%rax), %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2udq     (%rax){1to16}, %zmm19
@@ -1182,6 +1220,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  1      3     0.50                        vcvttps2udq    %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvttps2udq    (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvttps2udq    (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     1.00                        vcvttsd2usi    %xmm0, %ecx
+# CHECK-NEXT:  2      6     1.00                        vcvttsd2usi    %xmm0, %rcx
+# CHECK-NEXT:  3      12    1.00    *                   vcvttsd2usi    (%rax), %ecx
+# CHECK-NEXT:  3      11    1.00    *                   vcvttsd2usi    (%rax), %rcx
+# CHECK-NEXT:  2      6     1.00                        vcvttss2usi    %xmm0, %ecx
+# CHECK-NEXT:  3      7     1.00                        vcvttss2usi    %xmm0, %rcx
+# CHECK-NEXT:  3      11    1.00    *                   vcvttss2usi    (%rax), %ecx
+# CHECK-NEXT:  3      12    1.00    *                   vcvttss2usi    (%rax), %rcx
 # CHECK-NEXT:  2      7     1.00                        vcvtudq2pd     %ymm16, %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2pd     (%rax), %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2pd     (%rax){1to8}, %zmm19
@@ -1200,6 +1246,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  1      4     0.50                        vcvtudq2ps     %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2ps     (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2ps     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2sd     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2sd     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2sdl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2sdq    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2ss     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  3      6     2.00                        vcvtusi2ss     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2ssl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2ssq    (%rax), %xmm0, %xmm2
 # CHECK-NEXT:  3      23    16.00                       vdivpd %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  4      30    16.00   *                   vdivpd (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  4      30    16.00   *                   vdivpd (%rax){1to8}, %zmm17, %zmm19
@@ -1861,7 +1915,7 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT:  -     612.00 282.17 67.67  308.83 308.83 16.00  631.17 2.00   5.33    -      -
+# CHECK-NEXT:  -     612.00 301.50 85.00  314.83 314.83 16.00  641.50 2.00   5.33    -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
@@ -2045,6 +2099,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -      -      -     vcvtps2pd    %ymm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtps2pd    (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtps2pd    (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvtsd2usi   %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvtsd2usi   %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtsd2usi   (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -      -      -     vcvtsd2usi   (%rax), %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvtss2usi   %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.33   0.33    -      -      -     1.33    -      -      -      -     vcvtss2usi   %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -      -      -     vcvtss2usi   (%rax), %ecx
+# CHECK-NEXT:  -      -     1.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtss2usi   (%rax), %rcx
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -      -      -     vcvtps2udq   %zmm16, %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtps2udq   (%rax), %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtps2udq   (%rax){1to16}, %zmm19
@@ -2063,6 +2125,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -      -      -     vcvttps2udq  %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvttps2udq  (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvttps2udq  (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvttsd2usi  %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvttsd2usi  %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvttsd2usi  (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -      -      -     vcvttsd2usi  (%rax), %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -      -      -     vcvttss2usi  %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.33   0.33    -      -      -     1.33    -      -      -      -     vcvttss2usi  %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -      -      -     vcvttss2usi  (%rax), %ecx
+# CHECK-NEXT:  -      -     1.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvttss2usi  (%rax), %rcx
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     1.50    -      -      -      -     vcvtudq2pd   %ymm16, %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtudq2pd   (%rax), %zmm19
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtudq2pd   (%rax){1to8}, %zmm19
@@ -2081,6 +2151,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -      -      -     vcvtudq2ps   %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtudq2ps   (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.33   0.33   0.50   0.50    -     0.33    -      -      -      -     vcvtudq2ps   (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     0.33   0.33    -      -      -     1.33    -      -      -      -     vcvtusi2sd   %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.33   0.33    -      -      -     1.33    -      -      -      -     vcvtusi2sd   %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -      -      -     vcvtusi2sdl  (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -      -      -     vcvtusi2sdq  (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.33   0.33    -      -      -     1.33    -      -      -      -     vcvtusi2ss   %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.33   0.33    -      -      -     2.33    -      -      -      -     vcvtusi2ss   %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -      -      -     vcvtusi2ssl  (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -      -      -     vcvtusi2ssq  (%rax), %xmm0, %xmm2
 # CHECK-NEXT:  -     16.00  2.00    -      -      -      -     1.00    -      -      -      -     vdivpd       %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  -     16.00  2.00    -     0.50   0.50    -     1.00    -      -      -      -     vdivpd       (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  -     16.00  2.00    -     0.50   0.50    -     1.00    -      -      -      -     vdivpd       (%rax){1to8}, %zmm17, %zmm19
index 5576a44..f31c9ac 100644 (file)
@@ -207,6 +207,16 @@ vcvtps2pd         %ymm16, %zmm19 {z}{k1}
 vcvtps2pd         (%rax), %zmm19 {z}{k1}
 vcvtps2pd         (%rax){1to8}, %zmm19 {z}{k1}
 
+vcvtsd2usi        %xmm0, %ecx
+vcvtsd2usi        %xmm0, %rcx
+vcvtsd2usi        (%rax), %ecx
+vcvtsd2usi        (%rax), %rcx
+
+vcvtss2usi        %xmm0, %ecx
+vcvtss2usi        %xmm0, %rcx
+vcvtss2usi        (%rax), %ecx
+vcvtss2usi        (%rax), %rcx
+
 vcvtps2udq        %zmm16, %zmm19
 vcvtps2udq        (%rax), %zmm19
 vcvtps2udq        (%rax){1to16}, %zmm19
@@ -227,6 +237,16 @@ vcvttps2udq       %zmm16, %zmm19 {z}{k1}
 vcvttps2udq       (%rax), %zmm19 {z}{k1}
 vcvttps2udq       (%rax){1to16}, %zmm19 {z}{k1}
 
+vcvttsd2usi       %xmm0, %ecx
+vcvttsd2usi       %xmm0, %rcx
+vcvttsd2usi       (%rax), %ecx
+vcvttsd2usi       (%rax), %rcx
+
+vcvttss2usi       %xmm0, %ecx
+vcvttss2usi       %xmm0, %rcx
+vcvttss2usi       (%rax), %ecx
+vcvttss2usi       (%rax), %rcx
+
 vcvtudq2pd        %ymm16, %zmm19
 vcvtudq2pd        (%rax), %zmm19
 vcvtudq2pd        (%rax){1to8}, %zmm19
@@ -247,6 +267,16 @@ vcvtudq2ps        %zmm16, %zmm19 {z}{k1}
 vcvtudq2ps        (%rax), %zmm19 {z}{k1}
 vcvtudq2ps        (%rax){1to16}, %zmm19 {z}{k1}
 
+vcvtusi2sdl       %ecx, %xmm0, %xmm2
+vcvtusi2sdq       %rcx, %xmm0, %xmm2
+vcvtusi2sdl       (%rax), %xmm0, %xmm2
+vcvtusi2sdq       (%rax), %xmm0, %xmm2
+
+vcvtusi2ssl       %ecx, %xmm0, %xmm2
+vcvtusi2ssq       %rcx, %xmm0, %xmm2
+vcvtusi2ssl       (%rax), %xmm0, %xmm2
+vcvtusi2ssq       (%rax), %xmm0, %xmm2
+
 vdivpd            %zmm16, %zmm17, %zmm19
 vdivpd            (%rax), %zmm17, %zmm19
 vdivpd            (%rax){1to8}, %zmm17, %zmm19
@@ -1164,6 +1194,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  2      3     1.00                        vcvtps2pd      %ymm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2pd      (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2pd      (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     1.00                        vcvtsd2usi     %xmm0, %ecx
+# CHECK-NEXT:  2      6     1.00                        vcvtsd2usi     %xmm0, %rcx
+# CHECK-NEXT:  3      12    1.00    *                   vcvtsd2usi     (%rax), %ecx
+# CHECK-NEXT:  3      11    1.00    *                   vcvtsd2usi     (%rax), %rcx
+# CHECK-NEXT:  2      6     1.00                        vcvtss2usi     %xmm0, %ecx
+# CHECK-NEXT:  3      7     1.00                        vcvtss2usi     %xmm0, %rcx
+# CHECK-NEXT:  3      11    1.00    *                   vcvtss2usi     (%rax), %ecx
+# CHECK-NEXT:  3      12    1.00    *                   vcvtss2usi     (%rax), %rcx
 # CHECK-NEXT:  1      4     0.50                        vcvtps2udq     %zmm16, %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2udq     (%rax), %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtps2udq     (%rax){1to16}, %zmm19
@@ -1182,6 +1220,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  1      3     0.50                        vcvttps2udq    %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvttps2udq    (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvttps2udq    (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      6     1.00                        vcvttsd2usi    %xmm0, %ecx
+# CHECK-NEXT:  2      6     1.00                        vcvttsd2usi    %xmm0, %rcx
+# CHECK-NEXT:  3      12    1.00    *                   vcvttsd2usi    (%rax), %ecx
+# CHECK-NEXT:  3      11    1.00    *                   vcvttsd2usi    (%rax), %rcx
+# CHECK-NEXT:  2      6     1.00                        vcvttss2usi    %xmm0, %ecx
+# CHECK-NEXT:  3      7     1.00                        vcvttss2usi    %xmm0, %rcx
+# CHECK-NEXT:  3      11    1.00    *                   vcvttss2usi    (%rax), %ecx
+# CHECK-NEXT:  3      12    1.00    *                   vcvttss2usi    (%rax), %rcx
 # CHECK-NEXT:  2      7     1.00                        vcvtudq2pd     %ymm16, %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2pd     (%rax), %zmm19
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2pd     (%rax){1to8}, %zmm19
@@ -1200,6 +1246,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  1      4     0.50                        vcvtudq2ps     %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2ps     (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  2      11    0.50    *                   vcvtudq2ps     (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2sd     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2sd     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2sdl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2sdq    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      5     1.00                        vcvtusi2ss     %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  3      6     2.00                        vcvtusi2ss     %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2ssl    (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  2      9     1.00    *                   vcvtusi2ssq    (%rax), %xmm0, %xmm2
 # CHECK-NEXT:  3      23    16.00                       vdivpd %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  4      30    16.00   *                   vdivpd (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  4      30    16.00   *                   vdivpd (%rax){1to8}, %zmm17, %zmm19
@@ -1859,7 +1913,7 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT:  -     612.00 290.67 80.67  308.83 308.83 16.00  609.67 2.00   5.33
+# CHECK-NEXT:  -     612.00 311.67 99.67  314.83 314.83 16.00  616.67 2.00   5.33
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
@@ -2043,6 +2097,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     1.00    -      -      -      -     1.00    -      -     vcvtps2pd  %ymm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtps2pd  (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtps2pd  (%rax){1to8}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     vcvtsd2usi %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     vcvtsd2usi %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.50   0.50   0.50   0.50    -      -      -      -     vcvtsd2usi (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     vcvtsd2usi (%rax), %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     vcvtss2usi %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.50   0.50    -      -      -     1.00    -      -     vcvtss2usi %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     vcvtss2usi (%rax), %ecx
+# CHECK-NEXT:  -      -     1.50   0.50   0.50   0.50    -      -      -      -     vcvtss2usi (%rax), %rcx
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtps2udq %zmm16, %zmm19
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtps2udq (%rax), %zmm19
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtps2udq (%rax){1to16}, %zmm19
@@ -2061,6 +2123,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvttps2udq        %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvttps2udq        (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvttps2udq        (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     vcvttsd2usi        %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     vcvttsd2usi        %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.50   0.50   0.50   0.50    -      -      -      -     vcvttsd2usi        (%rax), %ecx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     vcvttsd2usi        (%rax), %rcx
+# CHECK-NEXT:  -      -     1.00   1.00    -      -      -      -      -      -     vcvttss2usi        %xmm0, %ecx
+# CHECK-NEXT:  -      -     1.50   0.50    -      -      -     1.00    -      -     vcvttss2usi        %xmm0, %rcx
+# CHECK-NEXT:  -      -     1.00   1.00   0.50   0.50    -      -      -      -     vcvttss2usi        (%rax), %ecx
+# CHECK-NEXT:  -      -     1.50   0.50   0.50   0.50    -      -      -      -     vcvttss2usi        (%rax), %rcx
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     1.50    -      -     vcvtudq2pd %ymm16, %zmm19
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtudq2pd (%rax), %zmm19
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtudq2pd (%rax){1to8}, %zmm19
@@ -2079,6 +2149,14 @@ vunpcklps         (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
 # CHECK-NEXT:  -      -     0.50    -      -      -      -     0.50    -      -     vcvtudq2ps %zmm16, %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtudq2ps (%rax), %zmm19 {%k1} {z}
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -     vcvtudq2ps (%rax){1to16}, %zmm19 {%k1} {z}
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -     1.00    -      -     vcvtusi2sd %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -     1.00    -      -     vcvtusi2sd %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcvtusi2sdl        (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcvtusi2sdq        (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -     1.00    -      -     vcvtusi2ss %ecx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -     0.50   0.50    -      -      -     2.00    -      -     vcvtusi2ss %rcx, %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcvtusi2ssl        (%rax), %xmm0, %xmm2
+# CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -      -      -     vcvtusi2ssq        (%rax), %xmm0, %xmm2
 # CHECK-NEXT:  -     16.00  2.00    -      -      -      -     1.00    -      -     vdivpd     %zmm16, %zmm17, %zmm19
 # CHECK-NEXT:  -     16.00  2.00    -     0.50   0.50    -     1.00    -      -     vdivpd     (%rax), %zmm17, %zmm19
 # CHECK-NEXT:  -     16.00  2.00    -     0.50   0.50    -     1.00    -      -     vdivpd     (%rax){1to8}, %zmm17, %zmm19