From: Craig Topper Date: Fri, 18 Dec 2020 08:54:45 +0000 (-0800) Subject: [X86] Teach assembler to accept vmsave/vmload/vmrun/invlpga/skinit with or without... X-Git-Tag: llvmorg-13-init~2896 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f47b07315a3c308a214119244b216602c537a1b2;p=platform%2Fupstream%2Fllvm.git [X86] Teach assembler to accept vmsave/vmload/vmrun/invlpga/skinit with or without the fixed register operands These instructions read their inputs from fixed registers rather than using a modrm byte. We shouldn't require the user to list them when parsing assembly. This matches the GNU assembler. This patch adds InstAliases so we can accept either form. It also changes the printing code to use the form without registers. This will change the behavior of llvm-objdump, but should be consistent with binutils objdump. This also matches what we already do in LLVM for clzero and monitorx which also used fixed registers. I need to add and improve tests before this can be commited. The disassembler tests exist, but weren't checking the fixed register so they pass before and after this change. Fixes https://github.com/ClangBuiltLinux/linux/issues/1216 Differential Revision: https://reviews.llvm.org/D93524 --- diff --git a/llvm/lib/Target/X86/X86InstrSVM.td b/llvm/lib/Target/X86/X86InstrSVM.td index 82c8e74..d8f70b0 100644 --- a/llvm/lib/Target/X86/X86InstrSVM.td +++ b/llvm/lib/Target/X86/X86InstrSVM.td @@ -26,37 +26,47 @@ def CLGI : I<0x01, MRM_DD, (outs), (ins), "clgi", []>, TB; // 0F 01 DE let Uses = [EAX] in -def SKINIT : I<0x01, MRM_DE, (outs), (ins), "skinit\t{%eax|eax}", []>, TB; +def SKINIT : I<0x01, MRM_DE, (outs), (ins), "skinit", []>, TB; // 0F 01 D8 let Uses = [EAX] in -def VMRUN32 : I<0x01, MRM_D8, (outs), (ins), "vmrun\t{%eax|eax}", []>, TB, +def VMRUN32 : I<0x01, MRM_D8, (outs), (ins), "vmrun", []>, TB, Requires<[Not64BitMode]>; let Uses = [RAX] in -def VMRUN64 : I<0x01, MRM_D8, (outs), (ins), "vmrun\t{%rax|rax}", []>, TB, +def VMRUN64 : I<0x01, MRM_D8, (outs), (ins), "vmrun", []>, TB, Requires<[In64BitMode]>; // 0F 01 DA let Uses = [EAX] in -def VMLOAD32 : I<0x01, MRM_DA, (outs), (ins), "vmload\t{%eax|eax}", []>, TB, +def VMLOAD32 : I<0x01, MRM_DA, (outs), (ins), "vmload", []>, TB, Requires<[Not64BitMode]>; let Uses = [RAX] in -def VMLOAD64 : I<0x01, MRM_DA, (outs), (ins), "vmload\t{%rax|rax}", []>, TB, +def VMLOAD64 : I<0x01, MRM_DA, (outs), (ins), "vmload", []>, TB, Requires<[In64BitMode]>; // 0F 01 DB let Uses = [EAX] in -def VMSAVE32 : I<0x01, MRM_DB, (outs), (ins), "vmsave\t{%eax|eax}", []>, TB, +def VMSAVE32 : I<0x01, MRM_DB, (outs), (ins), "vmsave", []>, TB, Requires<[Not64BitMode]>; let Uses = [RAX] in -def VMSAVE64 : I<0x01, MRM_DB, (outs), (ins), "vmsave\t{%rax|rax}", []>, TB, +def VMSAVE64 : I<0x01, MRM_DB, (outs), (ins), "vmsave", []>, TB, Requires<[In64BitMode]>; // 0F 01 DF let Uses = [EAX, ECX] in def INVLPGA32 : I<0x01, MRM_DF, (outs), (ins), - "invlpga\t{%eax, %ecx|eax, ecx}", []>, TB, Requires<[Not64BitMode]>; + "invlpga", []>, TB, Requires<[Not64BitMode]>; let Uses = [RAX, ECX] in def INVLPGA64 : I<0x01, MRM_DF, (outs), (ins), - "invlpga\t{%rax, %ecx|rax, ecx}", []>, TB, Requires<[In64BitMode]>; + "invlpga", []>, TB, Requires<[In64BitMode]>; } // SchedRW + +def : InstAlias<"skinit\t{%eax|eax}", (SKINIT), 0>; +def : InstAlias<"vmrun\t{%eax|eax}", (VMRUN32), 0>, Requires<[Not64BitMode]>; +def : InstAlias<"vmrun\t{%rax|rax}", (VMRUN64), 0>, Requires<[In64BitMode]>; +def : InstAlias<"vmload\t{%eax|eax}", (VMLOAD32), 0>, Requires<[Not64BitMode]>; +def : InstAlias<"vmload\t{%rax|rax}", (VMLOAD64), 0>, Requires<[In64BitMode]>; +def : InstAlias<"vmsave\t{%eax|eax}", (VMSAVE32), 0>, Requires<[Not64BitMode]>; +def : InstAlias<"vmsave\t{%rax|rax}", (VMSAVE64), 0>, Requires<[In64BitMode]>; +def : InstAlias<"invlpga\t{%eax, %ecx|eax, ecx}", (INVLPGA32), 0>, Requires<[Not64BitMode]>; +def : InstAlias<"invlpga\t{%rax, %ecx|rax, ecx}", (INVLPGA64), 0>, Requires<[In64BitMode]>; diff --git a/llvm/test/MC/Disassembler/X86/simple-tests.txt b/llvm/test/MC/Disassembler/X86/simple-tests.txt index 6248cbd..21f9c4d 100644 --- a/llvm/test/MC/Disassembler/X86/simple-tests.txt +++ b/llvm/test/MC/Disassembler/X86/simple-tests.txt @@ -66,16 +66,16 @@ # CHECK: vmptrst 0x0f 0xc7 0x38 -# CHECK: vmrun +# CHECK: vmrun{{$}} 0x0f 0x01 0xd8 # CHECK: vmmcall 0x0f 0x01 0xd9 -# CHECK: vmload +# CHECK: vmload{{$}} 0x0f 0x01 0xda -# CHECK: vmsave +# CHECK: vmsave{{$}} 0x0f 0x01 0xdb # CHECK: stgi @@ -84,10 +84,10 @@ # CHECK: clgi 0x0f 0x01 0xdd -# CHECK: skinit +# CHECK: skinit{{$}} 0x0f 0x01 0xde -# CHECK: invlpga +# CHECK: invlpga{{$}} 0x0f 0x01 0xdf # CHECK: movl $0, -4(%rbp) diff --git a/llvm/test/MC/X86/SVM-32.s b/llvm/test/MC/X86/SVM-32.s index c08eb81..5b7834e 100644 --- a/llvm/test/MC/X86/SVM-32.s +++ b/llvm/test/MC/X86/SVM-32.s @@ -4,31 +4,51 @@ // CHECK: encoding: [0x0f,0x01,0xdd] clgi -// CHECK: invlpga %eax, %ecx +// CHECK: invlpga // CHECK: encoding: [0x0f,0x01,0xdf] invlpga %eax, %ecx -// CHECK: skinit %eax +// CHECK: invlpga +// CHECK: encoding: [0x0f,0x01,0xdf] +invlpga + +// CHECK: skinit // CHECK: encoding: [0x0f,0x01,0xde] skinit %eax +// CHECK: skinit +// CHECK: encoding: [0x0f,0x01,0xde] +skinit + // CHECK: stgi // CHECK: encoding: [0x0f,0x01,0xdc] stgi -// CHECK: vmload %eax +// CHECK: vmload // CHECK: encoding: [0x0f,0x01,0xda] vmload %eax +// CHECK: vmload +// CHECK: encoding: [0x0f,0x01,0xda] +vmload + // CHECK: vmmcall // CHECK: encoding: [0x0f,0x01,0xd9] vmmcall -// CHECK: vmrun %eax +// CHECK: vmrun // CHECK: encoding: [0x0f,0x01,0xd8] vmrun %eax -// CHECK: vmsave %eax +// CHECK: vmrun +// CHECK: encoding: [0x0f,0x01,0xd8] +vmrun + +// CHECK: vmsave // CHECK: encoding: [0x0f,0x01,0xdb] vmsave %eax +// CHECK: vmsave +// CHECK: encoding: [0x0f,0x01,0xdb] +vmsave + diff --git a/llvm/test/MC/X86/SVM-64.s b/llvm/test/MC/X86/SVM-64.s index 6ed73fd..d1bc567 100644 --- a/llvm/test/MC/X86/SVM-64.s +++ b/llvm/test/MC/X86/SVM-64.s @@ -4,31 +4,51 @@ // CHECK: encoding: [0x0f,0x01,0xdd] clgi -// CHECK: invlpga %rax, %ecx +// CHECK: invlpga // CHECK: encoding: [0x0f,0x01,0xdf] invlpga %rax, %ecx -// CHECK: skinit %eax +// CHECK: invlpga +// CHECK: encoding: [0x0f,0x01,0xdf] +invlpga + +// CHECK: skinit // CHECK: encoding: [0x0f,0x01,0xde] skinit %eax +// CHECK: skinit +// CHECK: encoding: [0x0f,0x01,0xde] +skinit + // CHECK: stgi // CHECK: encoding: [0x0f,0x01,0xdc] stgi -// CHECK: vmload %rax +// CHECK: vmload // CHECK: encoding: [0x0f,0x01,0xda] vmload %rax +// CHECK: vmload +// CHECK: encoding: [0x0f,0x01,0xda] +vmload + // CHECK: vmmcall // CHECK: encoding: [0x0f,0x01,0xd9] vmmcall -// CHECK: vmrun %rax +// CHECK: vmrun // CHECK: encoding: [0x0f,0x01,0xd8] vmrun %rax -// CHECK: vmsave %rax +// CHECK: vmrun +// CHECK: encoding: [0x0f,0x01,0xd8] +vmrun + +// CHECK: vmsave // CHECK: encoding: [0x0f,0x01,0xdb] vmsave %rax +// CHECK: vmsave +// CHECK: encoding: [0x0f,0x01,0xdb] +vmsave + diff --git a/llvm/test/MC/X86/x86-32-coverage.s b/llvm/test/MC/X86/x86-32-coverage.s index d215688..feadfa4 100644 --- a/llvm/test/MC/X86/x86-32-coverage.s +++ b/llvm/test/MC/X86/x86-32-coverage.s @@ -10476,16 +10476,16 @@ // CHECK: vmxon 305419896 vmxon 0x12345678 -// CHECK: vmrun %eax +// CHECK: vmrun vmrun %eax // CHECK: vmmcall vmmcall -// CHECK: vmload %eax +// CHECK: vmload vmload %eax -// CHECK: vmsave %eax +// CHECK: vmsave vmsave %eax // CHECK: stgi @@ -10494,10 +10494,10 @@ // CHECK: clgi clgi -// CHECK: skinit %eax +// CHECK: skinit skinit %eax -// CHECK: invlpga %eax, %ecx +// CHECK: invlpga invlpga %eax, %ecx // CHECK: blendvps %xmm0, (%eax), %xmm1 # encoding: [0x66,0x0f,0x38,0x14,0x08] diff --git a/llvm/test/MC/X86/x86-32.s b/llvm/test/MC/X86/x86-32.s index 426ab61..3dba916 100644 --- a/llvm/test/MC/X86/x86-32.s +++ b/llvm/test/MC/X86/x86-32.s @@ -45,16 +45,16 @@ // CHECK: encoding: [0x0f,0x01,0xf8] vmrun %eax -// CHECK: vmrun %eax +// CHECK: vmrun // CHECK: encoding: [0x0f,0x01,0xd8] vmmcall // CHECK: vmmcall // CHECK: encoding: [0x0f,0x01,0xd9] vmload %eax -// CHECK: vmload %eax +// CHECK: vmload // CHECK: encoding: [0x0f,0x01,0xda] vmsave %eax -// CHECK: vmsave %eax +// CHECK: vmsave // CHECK: encoding: [0x0f,0x01,0xdb] stgi // CHECK: stgi @@ -63,10 +63,10 @@ // CHECK: clgi // CHECK: encoding: [0x0f,0x01,0xdd] skinit %eax -// CHECK: skinit %eax +// CHECK: skinit // CHECK: encoding: [0x0f,0x01,0xde] invlpga %eax, %ecx -// CHECK: invlpga %eax, %ecx +// CHECK: invlpga // CHECK: encoding: [0x0f,0x01,0xdf] rdtscp diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s index 9fb2ce1..db3cf6f 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 59 29.50 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 127 63.50 * * U int $7 # CHECK-NEXT: 1 71 35.50 U invlpg (%rax) -# CHECK-NEXT: 1 71 35.50 U invlpga %rax, %ecx +# CHECK-NEXT: 1 71 35.50 U invlpga # CHECK-NEXT: 1 2 1.00 lahf # CHECK-NEXT: 1 2 1.00 * leave # CHECK-NEXT: 1 2 1.00 U lodsb (%rsi), %al @@ -2304,7 +2304,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 29.50 29.50 insl %dx, %es:(%rdi) # CHECK-NEXT: 63.50 63.50 int $7 # CHECK-NEXT: 35.50 35.50 invlpg (%rax) -# CHECK-NEXT: 35.50 35.50 invlpga %rax, %ecx +# CHECK-NEXT: 35.50 35.50 invlpga # CHECK-NEXT: 1.00 1.00 lahf # CHECK-NEXT: 1.00 1.00 leave # CHECK-NEXT: 1.00 1.00 lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s index 19894f3..c9e7f63 100644 --- a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 * * U int $7 # CHECK-NEXT: 1 100 0.33 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.33 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.67 * leave # CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al @@ -2310,7 +2310,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax) -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s index 3b4c94a..b60a873 100644 --- a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.50 * * U int $7 # CHECK-NEXT: 1 100 0.50 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.50 U invlpga # CHECK-NEXT: 4 2 2.00 lahf # CHECK-NEXT: 1 1 1.00 * leave # CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al @@ -2325,7 +2325,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - int $7 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpg (%rax) -# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpga %rax, %ecx +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpga # CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - - - - - - - - - - lahf # CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - leave # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s index aa232ce..389e095 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 # CHECK-NEXT: 1 100 0.25 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.25 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al @@ -2312,7 +2312,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s index b59c5ea..b0c89f0 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.50 * * U int $7 # CHECK-NEXT: 1 100 0.50 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.50 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 1 1 0.50 * leave # CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al @@ -2316,7 +2316,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - int $7 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpg (%rax) -# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpga %rax, %ecx +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpga # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lahf # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - leave # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s index 19894f3..c9e7f63 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 * * U int $7 # CHECK-NEXT: 1 100 0.33 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.33 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.67 * leave # CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al @@ -2310,7 +2310,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax) -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s index 7f629b5..c265464 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 21 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 # CHECK-NEXT: 1 100 0.25 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.25 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 3 1 0.50 U lodsb (%rsi), %al @@ -2312,7 +2312,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s index b4ede6c..28b6763 100644 --- a/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 1.00 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 1.00 * * U int $7 # CHECK-NEXT: 1 100 1.00 U invlpg (%rax) -# CHECK-NEXT: 1 100 1.00 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 1.00 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 1 1 0.50 * leave # CHECK-NEXT: 1 100 1.00 U lodsb (%rsi), %al @@ -2310,7 +2310,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - 1.00 - - - - int $7 # CHECK-NEXT: - - - 1.00 - - - - invlpg (%rax) -# CHECK-NEXT: - - - 1.00 - - - - invlpga %rax, %ecx +# CHECK-NEXT: - - - 1.00 - - - - invlpga # CHECK-NEXT: - - - - - 0.50 0.50 - lahf # CHECK-NEXT: - - - - - 0.50 0.50 - leave # CHECK-NEXT: - - - 1.00 - - - - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s index 70850ef..1df4761 100644 --- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 * * U int $7 # CHECK-NEXT: 1 100 0.33 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.33 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.67 * leave # CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al @@ -2310,7 +2310,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax) -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s index 05deb0e..c0da94b 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 # CHECK-NEXT: 1 100 0.25 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.25 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al @@ -2312,7 +2312,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s index 224ec29..907d7cc 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 # CHECK-NEXT: 1 100 0.25 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.25 U invlpga # CHECK-NEXT: 1 1 0.50 lahf # CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al @@ -2312,7 +2312,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) -# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s index d888cb3..34c3336 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s @@ -1383,7 +1383,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 # CHECK-NEXT: 1 100 0.25 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.25 U invlpga # CHECK-NEXT: 1 100 0.25 lahf # CHECK-NEXT: 2 8 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al @@ -2314,7 +2314,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - - - - - - - - - - int $7 # CHECK-NEXT: - - - - - - - - - - - - invlpg (%rax) -# CHECK-NEXT: - - - - - - - - - - - - invlpga %rax, %ecx +# CHECK-NEXT: - - - - - - - - - - - - invlpga # CHECK-NEXT: - - - - - - - - - - - - lahf # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - leave # CHECK-NEXT: - - - - - - - - - - - - lodsb (%rsi), %al diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s index 8849e32..c290729 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s @@ -1185,7 +1185,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 # CHECK-NEXT: 1 100 0.25 U invlpg (%rax) -# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx +# CHECK-NEXT: 1 100 0.25 U invlpga # CHECK-NEXT: 1 100 0.25 lahf # CHECK-NEXT: 2 8 0.33 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al @@ -1986,7 +1986,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - - - - - - - - - - - int $7 # CHECK-NEXT: - - - - - - - - - - - - - invlpg (%rax) -# CHECK-NEXT: - - - - - - - - - - - - - invlpga %rax, %ecx +# CHECK-NEXT: - - - - - - - - - - - - - invlpga # CHECK-NEXT: - - - - - - - - - - - - - lahf # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - leave # CHECK-NEXT: - - - - - - - - - - - - - lodsb (%rsi), %al