[llvm] r290065 - [X86] [AVX512] Minor fix in encoding of scalar EVEX instructions. NFC.
Adrian Prantl via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 18 10:32:58 PST 2016
If there is a change in a testcase doesn't that indicate that the observable behavior of the compiler changed? In this case the commit is by definition not "NFC".
-- adrian
> On Dec 18, 2016, at 6:29 AM, Michael Zuckerman via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>
> Author: mzuckerm
> Date: Sun Dec 18 08:29:00 2016
> New Revision: 290065
>
> URL: http://llvm.org/viewvc/llvm-project?rev=290065&view=rev
> Log:
> [X86] [AVX512] Minor fix in encoding of scalar EVEX instructions. NFC.
>
> Commit on behalf of Gadi Haber
>
> Removed EVEX_V512 prefix from scalar EVEX instructions since HW ignores L'L bits anyway (LIG). 4 instructions are modified.
> The changed encodings are validated with XED.
> Rviewers: delena, igorb
>
> Differential revision: https://reviews.llvm.org/D27802
>
> Modified:
> llvm/trunk/lib/Target/X86/X86InstrAVX512.td
> llvm/trunk/test/MC/X86/avx512-encodings.s
> llvm/trunk/test/MC/X86/intel-syntax-avx512.s
>
> Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=290065&r1=290064&r2=290065&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
> +++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Sun Dec 18 08:29:00 2016
> @@ -6107,8 +6107,7 @@ multiclass avx512_cvt_fp_scalar_sd2ss<bi
> let Predicates = [HasAVX512] in {
> defm Z : avx512_cvt_fp_scalar<opc, OpcodeStr, _dst, _src, OpNodeRnd>,
> avx512_cvt_fp_rc_scalar<opc, OpcodeStr, _dst, _src,
> - OpNodeRnd>, VEX_W, EVEX_CD8<64, CD8VT1>,
> - EVEX_V512, XD;
> + OpNodeRnd>, VEX_W, EVEX_CD8<64, CD8VT1>, XD;
> }
> }
>
> @@ -6118,7 +6117,7 @@ multiclass avx512_cvt_fp_scalar_ss2sd<bi
> let Predicates = [HasAVX512] in {
> defm Z : avx512_cvt_fp_scalar<opc, OpcodeStr, _dst, _src, OpNodeRnd>,
> avx512_cvt_fp_sae_scalar<opc, OpcodeStr, _dst, _src, OpNodeRnd>,
> - EVEX_CD8<32, CD8VT1>, XS, EVEX_V512;
> + EVEX_CD8<32, CD8VT1>, XS;
> }
> }
> defm VCVTSD2SS : avx512_cvt_fp_scalar_sd2ss<0x5A, "vcvtsd2ss",
>
> Modified: llvm/trunk/test/MC/X86/avx512-encodings.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/avx512-encodings.s?rev=290065&r1=290064&r2=290065&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/X86/avx512-encodings.s (original)
> +++ llvm/trunk/test/MC/X86/avx512-encodings.s Sun Dec 18 08:29:00 2016
> @@ -16441,15 +16441,15 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
> vcvttpd2dq -1032(%rdx){1to8}, %ymm27
>
> // CHECK: vcvtsd2ss %xmm12, %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xc1,0xb7,0x48,0x5a,0xcc]
> +// CHECK: encoding: [0x62,0xc1,0xb7,0x08,0x5a,0xcc]
> vcvtsd2ss %xmm12, %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss %xmm12, %xmm9, %xmm17 {%k6}
> -// CHECK: encoding: [0x62,0xc1,0xb7,0x4e,0x5a,0xcc]
> +// CHECK: encoding: [0x62,0xc1,0xb7,0x0e,0x5a,0xcc]
> vcvtsd2ss %xmm12, %xmm9, %xmm17 {%k6}
>
> // CHECK: vcvtsd2ss %xmm12, %xmm9, %xmm17 {%k6} {z}
> -// CHECK: encoding: [0x62,0xc1,0xb7,0xce,0x5a,0xcc]
> +// CHECK: encoding: [0x62,0xc1,0xb7,0x8e,0x5a,0xcc]
> vcvtsd2ss %xmm12, %xmm9, %xmm17 {%k6} {z}
>
> // CHECK: vcvtsd2ss {rn-sae}, %xmm12, %xmm9, %xmm17
> @@ -16469,39 +16469,39 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
> vcvtsd2ss {rz-sae}, %xmm12, %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss (%rcx), %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x09]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x09]
> vcvtsd2ss (%rcx), %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss 291(%rax,%r14,8), %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xa1,0xb7,0x48,0x5a,0x8c,0xf0,0x23,0x01,0x00,0x00]
> +// CHECK: encoding: [0x62,0xa1,0xb7,0x08,0x5a,0x8c,0xf0,0x23,0x01,0x00,0x00]
> vcvtsd2ss 291(%rax,%r14,8), %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss 1016(%rdx), %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x4a,0x7f]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x4a,0x7f]
> vcvtsd2ss 1016(%rdx), %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss 1024(%rdx), %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x8a,0x00,0x04,0x00,0x00]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x8a,0x00,0x04,0x00,0x00]
> vcvtsd2ss 1024(%rdx), %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss -1024(%rdx), %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x4a,0x80]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x4a,0x80]
> vcvtsd2ss -1024(%rdx), %xmm9, %xmm17
>
> // CHECK: vcvtsd2ss -1032(%rdx), %xmm9, %xmm17
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x8a,0xf8,0xfb,0xff,0xff]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x8a,0xf8,0xfb,0xff,0xff]
> vcvtsd2ss -1032(%rdx), %xmm9, %xmm17
>
> // CHECK: vcvtss2sd %xmm6, %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xe6]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0xe6]
> vcvtss2sd %xmm6, %xmm6, %xmm28
>
> // CHECK: vcvtss2sd %xmm6, %xmm6, %xmm28 {%k3}
> -// CHECK: encoding: [0x62,0x61,0x4e,0x4b,0x5a,0xe6]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x0b,0x5a,0xe6]
> vcvtss2sd %xmm6, %xmm6, %xmm28 {%k3}
>
> // CHECK: vcvtss2sd %xmm6, %xmm6, %xmm28 {%k3} {z}
> -// CHECK: encoding: [0x62,0x61,0x4e,0xcb,0x5a,0xe6]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x8b,0x5a,0xe6]
> vcvtss2sd %xmm6, %xmm6, %xmm28 {%k3} {z}
>
> // CHECK: vcvtss2sd {sae}, %xmm6, %xmm6, %xmm28
> @@ -16509,27 +16509,27 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
> vcvtss2sd {sae}, %xmm6, %xmm6, %xmm28
>
> // CHECK: vcvtss2sd (%rcx), %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x21]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0x21]
> vcvtss2sd (%rcx), %xmm6, %xmm28
>
> // CHECK: vcvtss2sd 291(%rax,%r14,8), %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x21,0x4e,0x48,0x5a,0xa4,0xf0,0x23,0x01,0x00,0x00]
> +// CHECK: encoding: [0x62,0x21,0x4e,0x08,0x5a,0xa4,0xf0,0x23,0x01,0x00,0x00]
> vcvtss2sd 291(%rax,%r14,8), %xmm6, %xmm28
>
> // CHECK: vcvtss2sd 508(%rdx), %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x62,0x7f]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0x62,0x7f]
> vcvtss2sd 508(%rdx), %xmm6, %xmm28
>
> // CHECK: vcvtss2sd 512(%rdx), %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xa2,0x00,0x02,0x00,0x00]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0xa2,0x00,0x02,0x00,0x00]
> vcvtss2sd 512(%rdx), %xmm6, %xmm28
>
> // CHECK: vcvtss2sd -512(%rdx), %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x62,0x80]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0x62,0x80]
> vcvtss2sd -512(%rdx), %xmm6, %xmm28
>
> // CHECK: vcvtss2sd -516(%rdx), %xmm6, %xmm28
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xa2,0xfc,0xfd,0xff,0xff]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0xa2,0xfc,0xfd,0xff,0xff]
> vcvtss2sd -516(%rdx), %xmm6, %xmm28
>
> // CHECK: vcvtsd2si {rn-sae}, %xmm7, %eax
>
> Modified: llvm/trunk/test/MC/X86/intel-syntax-avx512.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/intel-syntax-avx512.s?rev=290065&r1=290064&r2=290065&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/X86/intel-syntax-avx512.s (original)
> +++ llvm/trunk/test/MC/X86/intel-syntax-avx512.s Sun Dec 18 08:29:00 2016
> @@ -2046,15 +2046,15 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
> vcvtsd2si r8, xmm10, {rz-sae}
>
> // CHECK: vcvtsd2ss xmm17, xmm9, xmm12
> -// CHECK: encoding: [0x62,0xc1,0xb7,0x48,0x5a,0xcc]
> +// CHECK: encoding: [0x62,0xc1,0xb7,0x08,0x5a,0xcc]
> vcvtsd2ss xmm17, xmm9, xmm12
>
> // CHECK: vcvtsd2ss xmm17 {k6}, xmm9, xmm12
> -// CHECK: encoding: [0x62,0xc1,0xb7,0x4e,0x5a,0xcc]
> +// CHECK: encoding: [0x62,0xc1,0xb7,0x0e,0x5a,0xcc]
> vcvtsd2ss xmm17 {k6}, xmm9, xmm12
>
> // CHECK: vcvtsd2ss xmm17 {k6} {z}, xmm9, xmm12
> -// CHECK: encoding: [0x62,0xc1,0xb7,0xce,0x5a,0xcc]
> +// CHECK: encoding: [0x62,0xc1,0xb7,0x8e,0x5a,0xcc]
> vcvtsd2ss xmm17 {k6} {z}, xmm9, xmm12
>
> // CHECK: vcvtsd2ss xmm17, xmm9, xmm12, {rn-sae}
> @@ -2074,27 +2074,27 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
> vcvtsd2ss xmm17, xmm9, xmm12, {rz-sae}
>
> // CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rcx]
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x09]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x09]
> vcvtsd2ss xmm17, xmm9, qword ptr [rcx]
>
> // CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rax + 8*r14 + 291]
> -// CHECK: encoding: [0x62,0xa1,0xb7,0x48,0x5a,0x8c,0xf0,0x23,0x01,0x00,0x00]
> +// CHECK: encoding: [0x62,0xa1,0xb7,0x08,0x5a,0x8c,0xf0,0x23,0x01,0x00,0x00]
> vcvtsd2ss xmm17, xmm9, qword ptr [rax + 8*r14 + 291]
>
> // CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1016]
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x4a,0x7f]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x4a,0x7f]
> vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1016]
>
> // CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1024]
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x8a,0x00,0x04,0x00,0x00]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x8a,0x00,0x04,0x00,0x00]
> vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1024]
>
> // CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1024]
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x4a,0x80]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x4a,0x80]
> vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1024]
>
> // CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1032]
> -// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x8a,0xf8,0xfb,0xff,0xff]
> +// CHECK: encoding: [0x62,0xe1,0xb7,0x08,0x5a,0x8a,0xf8,0xfb,0xff,0xff]
> vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1032]
>
> // CHECK: vcvtsi2sd xmm7, xmm10, eax
> @@ -2346,15 +2346,15 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
> vcvtsi2ss xmm16, xmm10, qword ptr [rdx - 1032]
>
> // CHECK: vcvtss2sd xmm28, xmm6, xmm6
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xe6]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0xe6]
> vcvtss2sd xmm28, xmm6, xmm6
>
> // CHECK: vcvtss2sd xmm28 {k3}, xmm6, xmm6
> -// CHECK: encoding: [0x62,0x61,0x4e,0x4b,0x5a,0xe6]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x0b,0x5a,0xe6]
> vcvtss2sd xmm28 {k3}, xmm6, xmm6
>
> // CHECK: vcvtss2sd xmm28 {k3} {z}, xmm6, xmm6
> -// CHECK: encoding: [0x62,0x61,0x4e,0xcb,0x5a,0xe6]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x8b,0x5a,0xe6]
> vcvtss2sd xmm28 {k3} {z}, xmm6, xmm6
>
> // CHECK: vcvtss2sd xmm28, xmm6, xmm6, {sae}
> @@ -2362,27 +2362,27 @@ vaddpd zmm1, zmm1, zmm2, {rz-sae}
> vcvtss2sd xmm28, xmm6, xmm6, {sae}
>
> // CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rcx]
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x21]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0x21]
> vcvtss2sd xmm28, xmm6, dword ptr [rcx]
>
> // CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rax + 8*r14 + 291]
> -// CHECK: encoding: [0x62,0x21,0x4e,0x48,0x5a,0xa4,0xf0,0x23,0x01,0x00,0x00]
> +// CHECK: encoding: [0x62,0x21,0x4e,0x08,0x5a,0xa4,0xf0,0x23,0x01,0x00,0x00]
> vcvtss2sd xmm28, xmm6, dword ptr [rax + 8*r14 + 291]
>
> // CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx + 508]
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x62,0x7f]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0x62,0x7f]
> vcvtss2sd xmm28, xmm6, dword ptr [rdx + 508]
>
> // CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx + 512]
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xa2,0x00,0x02,0x00,0x00]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0xa2,0x00,0x02,0x00,0x00]
> vcvtss2sd xmm28, xmm6, dword ptr [rdx + 512]
>
> // CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx - 512]
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x62,0x80]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0x62,0x80]
> vcvtss2sd xmm28, xmm6, dword ptr [rdx - 512]
>
> // CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx - 516]
> -// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xa2,0xfc,0xfd,0xff,0xff]
> +// CHECK: encoding: [0x62,0x61,0x4e,0x08,0x5a,0xa2,0xfc,0xfd,0xff,0xff]
> vcvtss2sd xmm28, xmm6, dword ptr [rdx - 516]
>
> // CHECK: vcvtss2si eax, xmm22, {rn-sae}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list