[llvm] r324595 - [X86][MC]: Adding test coverage of MC encoding for several small extensions.<NFC>

Gadi Haber via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 8 03:16:02 PST 2018


Author: gadi.haber
Date: Thu Feb  8 03:16:02 2018
New Revision: 324595

URL: http://llvm.org/viewvc/llvm-project?rev=324595&view=rev
Log:
[X86][MC]: Adding test coverage of MC encoding for several small extensions.<NFC>

NFC.
 Adding MC regressions tests to cover several small x86 extensions as follows:
 CLWB, CLZERO, F16C, INVPCID, PKU, POPCNT, RTM, SGX, SHA, SVM, VMFUNC, VTX

This patch is part of a larger task to cover MC encoding of all X86 isa sets started in revision: https://reviews.llvm.org/D39952

Reviewers: RKSimon, craig.topper, zvi, AndreiGrischenko
Differential Revision: https://reviews.llvm.org/D41388

Change-Id: I254508cd17faca00b780be0fc2abf6c71b61faab

Added:
    llvm/trunk/test/MC/X86/CLWB-32.s
    llvm/trunk/test/MC/X86/CLWB-64.s
    llvm/trunk/test/MC/X86/CLZERO-32.s
    llvm/trunk/test/MC/X86/CLZERO-64.s
    llvm/trunk/test/MC/X86/F16C-32.s
    llvm/trunk/test/MC/X86/F16C-64.s
    llvm/trunk/test/MC/X86/INVPCID-32.s
    llvm/trunk/test/MC/X86/INVPCID-64.s
    llvm/trunk/test/MC/X86/PKU-32.s
    llvm/trunk/test/MC/X86/PKU-64.s
    llvm/trunk/test/MC/X86/POPCNT-32.s
    llvm/trunk/test/MC/X86/POPCNT-64.s
    llvm/trunk/test/MC/X86/RTM.s
    llvm/trunk/test/MC/X86/SGX-32.s
    llvm/trunk/test/MC/X86/SGX-64.s
    llvm/trunk/test/MC/X86/SHA-32.s
    llvm/trunk/test/MC/X86/SHA-64.s
    llvm/trunk/test/MC/X86/SVM-32.s
    llvm/trunk/test/MC/X86/SVM-64.s
    llvm/trunk/test/MC/X86/VMFUNC-32.s
    llvm/trunk/test/MC/X86/VMFUNC-64.s
    llvm/trunk/test/MC/X86/VTX-32.s
    llvm/trunk/test/MC/X86/VTX-64.s

Added: llvm/trunk/test/MC/X86/CLWB-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/CLWB-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/CLWB-32.s (added)
+++ llvm/trunk/test/MC/X86/CLWB-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,26 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: clwb -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x66,0x0f,0xae,0xb4,0x82,0x10,0xe3,0x0f,0xe3]         
+clwb -485498096(%edx,%eax,4) 
+
+// CHECK: clwb 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x66,0x0f,0xae,0xb4,0x82,0xf0,0x1c,0xf0,0x1c]         
+clwb 485498096(%edx,%eax,4) 
+
+// CHECK: clwb 485498096(%edx) 
+// CHECK: encoding: [0x66,0x0f,0xae,0xb2,0xf0,0x1c,0xf0,0x1c]         
+clwb 485498096(%edx) 
+
+// CHECK: clwb 485498096 
+// CHECK: encoding: [0x66,0x0f,0xae,0x35,0xf0,0x1c,0xf0,0x1c]         
+clwb 485498096 
+
+// CHECK: clwb 64(%edx,%eax) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x74,0x02,0x40]         
+clwb 64(%edx,%eax) 
+
+// CHECK: clwb (%edx) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x32]         
+clwb (%edx) 
+

Added: llvm/trunk/test/MC/X86/CLWB-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/CLWB-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/CLWB-64.s (added)
+++ llvm/trunk/test/MC/X86/CLWB-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,26 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: clwb 485498096 
+// CHECK: encoding: [0x66,0x0f,0xae,0x34,0x25,0xf0,0x1c,0xf0,0x1c]         
+clwb 485498096 
+
+// CHECK: clwb 64(%rdx) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x72,0x40]         
+clwb 64(%rdx) 
+
+// CHECK: clwb 64(%rdx,%rax,4) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x74,0x82,0x40]         
+clwb 64(%rdx,%rax,4) 
+
+// CHECK: clwb -64(%rdx,%rax,4) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x74,0x82,0xc0]         
+clwb -64(%rdx,%rax,4) 
+
+// CHECK: clwb 64(%rdx,%rax) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x74,0x02,0x40]         
+clwb 64(%rdx,%rax) 
+
+// CHECK: clwb (%rdx) 
+// CHECK: encoding: [0x66,0x0f,0xae,0x32]         
+clwb (%rdx) 
+

Added: llvm/trunk/test/MC/X86/CLZERO-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/CLZERO-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/CLZERO-32.s (added)
+++ llvm/trunk/test/MC/X86/CLZERO-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,6 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: clzero 
+// CHECK: encoding: [0x0f,0x01,0xfc]          
+clzero 
+

Added: llvm/trunk/test/MC/X86/CLZERO-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/CLZERO-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/CLZERO-64.s (added)
+++ llvm/trunk/test/MC/X86/CLZERO-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,6 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: clzero 
+// CHECK: encoding: [0x0f,0x01,0xfc]          
+clzero 
+

Added: llvm/trunk/test/MC/X86/F16C-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/F16C-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/F16C-32.s (added)
+++ llvm/trunk/test/MC/X86/F16C-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,114 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vcvtph2ps -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+vcvtph2ps -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: vcvtph2ps 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: vcvtph2ps -485498096(%edx,%eax,4), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xa4,0x82,0x10,0xe3,0x0f,0xe3]        
+vcvtph2ps -485498096(%edx,%eax,4), %ymm4 
+
+// CHECK: vcvtph2ps 485498096(%edx,%eax,4), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xa4,0x82,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx,%eax,4), %ymm4 
+
+// CHECK: vcvtph2ps 485498096(%edx), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x8a,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx), %xmm1 
+
+// CHECK: vcvtph2ps 485498096(%edx), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xa2,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx), %ymm4 
+
+// CHECK: vcvtph2ps 485498096, %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x0d,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096, %xmm1 
+
+// CHECK: vcvtph2ps 485498096, %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0x25,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096, %ymm4 
+
+// CHECK: vcvtph2ps 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x4c,0x02,0x40]        
+vcvtph2ps 64(%edx,%eax), %xmm1 
+
+// CHECK: vcvtph2ps 64(%edx,%eax), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0x64,0x02,0x40]        
+vcvtph2ps 64(%edx,%eax), %ymm4 
+
+// CHECK: vcvtph2ps (%edx), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x0a]        
+vcvtph2ps (%edx), %xmm1 
+
+// CHECK: vcvtph2ps (%edx), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0x22]        
+vcvtph2ps (%edx), %ymm4 
+
+// CHECK: vcvtph2ps %xmm1, %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0xc9]        
+vcvtph2ps %xmm1, %xmm1 
+
+// CHECK: vcvtph2ps %xmm1, %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xe1]        
+vcvtph2ps %xmm1, %ymm4 
+
+// CHECK: vcvtps2ph $0, %xmm1, -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00]       
+vcvtps2ph $0, %xmm1, -485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %xmm1, 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %xmm1, 485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %xmm1, 485498096(%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x8a,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %xmm1, 485498096(%edx) 
+
+// CHECK: vcvtps2ph $0, %xmm1, 485498096 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x0d,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %xmm1, 485498096 
+
+// CHECK: vcvtps2ph $0, %xmm1, 64(%edx,%eax) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x4c,0x02,0x40,0x00]       
+vcvtps2ph $0, %xmm1, 64(%edx,%eax) 
+
+// CHECK: vcvtps2ph $0, %xmm1, (%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x0a,0x00]       
+vcvtps2ph $0, %xmm1, (%edx) 
+
+// CHECK: vcvtps2ph $0, %xmm1, %xmm1 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0xc9,0x00]       
+vcvtps2ph $0, %xmm1, %xmm1 
+
+// CHECK: vcvtps2ph $0, %ymm4, -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xa4,0x82,0x10,0xe3,0x0f,0xe3,0x00]       
+vcvtps2ph $0, %ymm4, -485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %ymm4, 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xa4,0x82,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %ymm4, 485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %ymm4, 485498096(%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xa2,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %ymm4, 485498096(%edx) 
+
+// CHECK: vcvtps2ph $0, %ymm4, 485498096 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0x25,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %ymm4, 485498096 
+
+// CHECK: vcvtps2ph $0, %ymm4, 64(%edx,%eax) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0x64,0x02,0x40,0x00]       
+vcvtps2ph $0, %ymm4, 64(%edx,%eax) 
+
+// CHECK: vcvtps2ph $0, %ymm4, (%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0x22,0x00]       
+vcvtps2ph $0, %ymm4, (%edx) 
+
+// CHECK: vcvtps2ph $0, %ymm4, %xmm1 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xe1,0x00]       
+vcvtps2ph $0, %ymm4, %xmm1 
+

Added: llvm/trunk/test/MC/X86/F16C-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/F16C-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/F16C-64.s (added)
+++ llvm/trunk/test/MC/X86/F16C-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,114 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vcvtph2ps -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+vcvtph2ps -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: vcvtph2ps 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: vcvtph2ps -485498096(%edx,%eax,4), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xa4,0x82,0x10,0xe3,0x0f,0xe3]        
+vcvtph2ps -485498096(%edx,%eax,4), %ymm4 
+
+// CHECK: vcvtph2ps 485498096(%edx,%eax,4), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xa4,0x82,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx,%eax,4), %ymm4 
+
+// CHECK: vcvtph2ps 485498096(%edx), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x8a,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx), %xmm1 
+
+// CHECK: vcvtph2ps 485498096(%edx), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xa2,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096(%edx), %ymm4 
+
+// CHECK: vcvtph2ps 485498096, %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x0d,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096, %xmm1 
+
+// CHECK: vcvtph2ps 485498096, %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0x25,0xf0,0x1c,0xf0,0x1c]        
+vcvtph2ps 485498096, %ymm4 
+
+// CHECK: vcvtph2ps 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x4c,0x02,0x40]        
+vcvtph2ps 64(%edx,%eax), %xmm1 
+
+// CHECK: vcvtph2ps 64(%edx,%eax), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0x64,0x02,0x40]        
+vcvtph2ps 64(%edx,%eax), %ymm4 
+
+// CHECK: vcvtph2ps (%edx), %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0x0a]        
+vcvtph2ps (%edx), %xmm1 
+
+// CHECK: vcvtph2ps (%edx), %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0x22]        
+vcvtph2ps (%edx), %ymm4 
+
+// CHECK: vcvtph2ps %xmm1, %xmm1 
+// CHECK: encoding: [0xc4,0xe2,0x79,0x13,0xc9]        
+vcvtph2ps %xmm1, %xmm1 
+
+// CHECK: vcvtph2ps %xmm1, %ymm4 
+// CHECK: encoding: [0xc4,0xe2,0x7d,0x13,0xe1]        
+vcvtph2ps %xmm1, %ymm4 
+
+// CHECK: vcvtps2ph $0, %xmm1, -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00]       
+vcvtps2ph $0, %xmm1, -485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %xmm1, 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %xmm1, 485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %xmm1, 485498096(%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x8a,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %xmm1, 485498096(%edx) 
+
+// CHECK: vcvtps2ph $0, %xmm1, 485498096 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x0d,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %xmm1, 485498096 
+
+// CHECK: vcvtps2ph $0, %xmm1, 64(%edx,%eax) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x4c,0x02,0x40,0x00]       
+vcvtps2ph $0, %xmm1, 64(%edx,%eax) 
+
+// CHECK: vcvtps2ph $0, %xmm1, (%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0x0a,0x00]       
+vcvtps2ph $0, %xmm1, (%edx) 
+
+// CHECK: vcvtps2ph $0, %xmm1, %xmm1 
+// CHECK: encoding: [0xc4,0xe3,0x79,0x1d,0xc9,0x00]       
+vcvtps2ph $0, %xmm1, %xmm1 
+
+// CHECK: vcvtps2ph $0, %ymm4, -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xa4,0x82,0x10,0xe3,0x0f,0xe3,0x00]       
+vcvtps2ph $0, %ymm4, -485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %ymm4, 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xa4,0x82,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %ymm4, 485498096(%edx,%eax,4) 
+
+// CHECK: vcvtps2ph $0, %ymm4, 485498096(%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xa2,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %ymm4, 485498096(%edx) 
+
+// CHECK: vcvtps2ph $0, %ymm4, 485498096 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0x25,0xf0,0x1c,0xf0,0x1c,0x00]       
+vcvtps2ph $0, %ymm4, 485498096 
+
+// CHECK: vcvtps2ph $0, %ymm4, 64(%edx,%eax) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0x64,0x02,0x40,0x00]       
+vcvtps2ph $0, %ymm4, 64(%edx,%eax) 
+
+// CHECK: vcvtps2ph $0, %ymm4, (%edx) 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0x22,0x00]       
+vcvtps2ph $0, %ymm4, (%edx) 
+
+// CHECK: vcvtps2ph $0, %ymm4, %xmm1 
+// CHECK: encoding: [0xc4,0xe3,0x7d,0x1d,0xe1,0x00]       
+vcvtps2ph $0, %ymm4, %xmm1 
+

Added: llvm/trunk/test/MC/X86/INVPCID-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/INVPCID-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/INVPCID-32.s (added)
+++ llvm/trunk/test/MC/X86/INVPCID-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,26 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: invpcid 3809469200(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x82,0x84,0x82,0x10,0xe3,0x0f,0xe3]        
+invpcid 3809469200(%edx,%eax,4), %eax 
+
+// CHECK: invpcid 485498096, %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x82,0x05,0xf0,0x1c,0xf0,0x1c]        
+invpcid 485498096, %eax 
+
+// CHECK: invpcid 485498096(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x82,0x84,0x82,0xf0,0x1c,0xf0,0x1c]        
+invpcid 485498096(%edx,%eax,4), %eax 
+
+// CHECK: invpcid 485498096(%edx), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x82,0x82,0xf0,0x1c,0xf0,0x1c]        
+invpcid 485498096(%edx), %eax 
+
+// CHECK: invpcid 64(%edx,%eax), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x82,0x44,0x02,0x40]        
+invpcid 64(%edx,%eax), %eax 
+
+// CHECK: invpcid (%edx), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x82,0x02]        
+invpcid (%edx), %eax 
+

Added: llvm/trunk/test/MC/X86/INVPCID-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/INVPCID-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/INVPCID-64.s (added)
+++ llvm/trunk/test/MC/X86/INVPCID-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,26 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: invpcid 485498096, %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x82,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+invpcid 485498096, %r15 
+
+// CHECK: invpcid 64(%rdx), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x82,0x7a,0x40]        
+invpcid 64(%rdx), %r15 
+
+// CHECK: invpcid 64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x82,0x7c,0x82,0x40]        
+invpcid 64(%rdx,%rax,4), %r15 
+
+// CHECK: invpcid -64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x82,0x7c,0x82,0xc0]        
+invpcid -64(%rdx,%rax,4), %r15 
+
+// CHECK: invpcid 64(%rdx,%rax), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x82,0x7c,0x02,0x40]        
+invpcid 64(%rdx,%rax), %r15 
+
+// CHECK: invpcid (%rdx), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x82,0x3a]        
+invpcid (%rdx), %r15 
+

Added: llvm/trunk/test/MC/X86/PKU-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/PKU-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/PKU-32.s (added)
+++ llvm/trunk/test/MC/X86/PKU-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: rdpkru 
+// CHECK: encoding: [0x0f,0x01,0xee]          
+rdpkru 
+
+// CHECK: wrpkru 
+// CHECK: encoding: [0x0f,0x01,0xef]          
+wrpkru 
+

Added: llvm/trunk/test/MC/X86/PKU-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/PKU-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/PKU-64.s (added)
+++ llvm/trunk/test/MC/X86/PKU-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: rdpkru 
+// CHECK: encoding: [0x0f,0x01,0xee]          
+rdpkru 
+
+// CHECK: wrpkru 
+// CHECK: encoding: [0x0f,0x01,0xef]          
+wrpkru 
+

Added: llvm/trunk/test/MC/X86/POPCNT-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/POPCNT-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/POPCNT-32.s (added)
+++ llvm/trunk/test/MC/X86/POPCNT-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,34 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: popcntl %eax, %eax 
+// CHECK: encoding: [0xf3,0x0f,0xb8,0xc0]        
+popcntl %eax, %eax 
+
+// CHECK: popcntl 4096(%eax), %eax
+// CHECK: encoding: [0xf3,0x0f,0xb8,0x80,0x00,0x10,0x00,0x00]
+popcntl 4096(%eax), %eax
+
+// CHECK: popcntl 64(%edx,%eax), %ecx     
+// CHECK: encoding: [0xf3,0x0f,0xb8,0x4c,0x02,0x40]
+popcntl 64(%edx,%eax), %ecx     
+
+// CHECK: popcntl 64(%edx,%eax,4), %ecx   
+// CHECK: encoding: [0xf3,0x0f,0xb8,0x4c,0x82,0x40]
+popcntl 64(%edx,%eax,4), %ecx   
+
+// CHECK: popcntw %ax, %ax 
+// CHECK: encoding: [0x66,0xf3,0x0f,0xb8,0xc0]        
+popcntw %ax, %ax 
+
+// CHECK: popcntw 4096(%eax), %ax
+// CHECK: encoding: [0x66,0xf3,0x0f,0xb8,0x80,0x00,0x10,0x00,0x00]
+popcntw 4096(%eax), %ax
+
+// CHECK: popcntw 64(%edx,%eax), %cx      
+// CHECK: encoding: [0x66,0xf3,0x0f,0xb8,0x4c,0x02,0x40]
+popcntw 64(%edx,%eax), %cx      
+
+// CHECK: popcntw 64(%edx,%eax,4), %cx    
+// CHECK: encoding: [0x66,0xf3,0x0f,0xb8,0x4c,0x82,0x40]
+popcntw 64(%edx,%eax,4), %cx    
+

Added: llvm/trunk/test/MC/X86/POPCNT-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/POPCNT-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/POPCNT-64.s (added)
+++ llvm/trunk/test/MC/X86/POPCNT-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,50 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: popcntl %r13d, %r13d 
+// CHECK: encoding: [0xf3,0x45,0x0f,0xb8,0xed]        
+popcntl %r13d, %r13d 
+
+// CHECK: popcntl 4096(%rax), %r13d
+// CHECK: encoding: [0xf3,0x44,0x0f,0xb8,0xa8,0x00,0x10,0x00,0x00]
+popcntl 4096(%rax), %r13d  
+
+// CHECK: popcntl 64(%rdx,%rax), %r13d    
+// CHECK: encoding: [0xf3,0x44,0x0f,0xb8,0x6c,0x02,0x40]
+popcntl 64(%rdx,%rax), %r13d    
+
+// CHECK: popcntl 64(%rdx,%rax,4), %r13d  
+// CHECK: encoding: [0xf3,0x44,0x0f,0xb8,0x6c,0x82,0x40]
+popcntl 64(%rdx,%rax,4), %r13d  
+
+// CHECK: popcntq %r13, %r13 
+// CHECK: encoding: [0xf3,0x4d,0x0f,0xb8,0xed]        
+popcntq %r13, %r13 
+
+// CHECK: popcntq 4096(%rax), %r13
+// CHECK: encoding: [0xf3,0x4c,0x0f,0xb8,0xa8,0x00,0x10,0x00,0x00]
+popcntq 4096(%rax), %r13        
+
+// CHECK: popcntq 64(%rdx,%rax), %r13     
+// CHECK: encoding: [0xf3,0x4c,0x0f,0xb8,0x6c,0x02,0x40]
+popcntq 64(%rdx,%rax), %r13     
+
+// CHECK: popcntq 64(%rdx,%rax,4), %r13   
+// CHECK: encoding: [0xf3,0x4c,0x0f,0xb8,0x6c,0x82,0x40]
+popcntq 64(%rdx,%rax,4), %r13   
+
+// CHECK: popcntw %r13w, %r13w 
+// CHECK: encoding: [0x66,0xf3,0x45,0x0f,0xb8,0xed]        
+popcntw %r13w, %r13w 
+
+// CHECK: popcntw 4096(%rax), %r13w
+// CHECK: encoding: [0x66,0xf3,0x44,0x0f,0xb8,0xa8,0x00,0x10,0x00,0x00]
+popcntw 4096(%rax), %r13w       
+
+// CHECK: popcntw 64(%rdx,%rax), %r13w    
+// CHECK: encoding: [0x66,0xf3,0x44,0x0f,0xb8,0x6c,0x02,0x40]
+popcntw 64(%rdx,%rax), %r13w    
+
+// CHECK: popcntw 64(%rdx,%rax,4), %r13w  
+// CHECK: encoding: [0x66,0xf3,0x44,0x0f,0xb8,0x6c,0x82,0x40]
+popcntw 64(%rdx,%rax,4), %r13w  
+

Added: llvm/trunk/test/MC/X86/RTM.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/RTM.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/RTM.s (added)
+++ llvm/trunk/test/MC/X86/RTM.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,18 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: xabort $0 
+// CHECK: encoding: [0xc6,0xf8,0x00]         
+xabort $0 
+
+// CHECK: xbegin 64 
+// CHECK: encoding: [0xc7,0xf8,A,A,A,A]         
+xbegin 64 
+
+// CHECK: xend 
+// CHECK: encoding: [0x0f,0x01,0xd5]          
+xend 
+
+// CHECK: xtest 
+// CHECK: encoding: [0x0f,0x01,0xd6]          
+xtest 
+

Added: llvm/trunk/test/MC/X86/SGX-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/SGX-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/SGX-32.s (added)
+++ llvm/trunk/test/MC/X86/SGX-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: encls 
+// CHECK: encoding: [0x0f,0x01,0xcf]          
+encls 
+
+// CHECK: enclu 
+// CHECK: encoding: [0x0f,0x01,0xd7]          
+enclu 
+

Added: llvm/trunk/test/MC/X86/SGX-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/SGX-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/SGX-64.s (added)
+++ llvm/trunk/test/MC/X86/SGX-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: encls 
+// CHECK: encoding: [0x0f,0x01,0xcf]          
+encls 
+
+// CHECK: enclu 
+// CHECK: encoding: [0x0f,0x01,0xd7]          
+enclu 
+

Added: llvm/trunk/test/MC/X86/SHA-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/SHA-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/SHA-32.s (added)
+++ llvm/trunk/test/MC/X86/SHA-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,202 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: sha1msg1 -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+sha1msg1 -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1msg1 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+sha1msg1 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1msg1 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x8a,0xf0,0x1c,0xf0,0x1c]        
+sha1msg1 485498096(%edx), %xmm1 
+
+// CHECK: sha1msg1 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x0d,0xf0,0x1c,0xf0,0x1c]        
+sha1msg1 485498096, %xmm1 
+
+// CHECK: sha1msg1 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x4c,0x02,0x40]        
+sha1msg1 64(%edx,%eax), %xmm1 
+
+// CHECK: sha1msg1 (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x0a]        
+sha1msg1 (%edx), %xmm1 
+
+// CHECK: sha1msg1 %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,        
+sha1msg1 %xmm1, %xmm1 
+
+// CHECK: sha1msg1 %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc9,0xc9]        
+sha1msg1 %xmm1, %xmm1 
+
+// CHECK: sha1msg2 -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+sha1msg2 -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1msg2 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+sha1msg2 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1msg2 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0x8a,0xf0,0x1c,0xf0,0x1c]        
+sha1msg2 485498096(%edx), %xmm1 
+
+// CHECK: sha1msg2 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0x0d,0xf0,0x1c,0xf0,0x1c]        
+sha1msg2 485498096, %xmm1 
+
+// CHECK: sha1msg2 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0x4c,0x02,0x40]        
+sha1msg2 64(%edx,%eax), %xmm1 
+
+// CHECK: sha1msg2 (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0x0a]        
+sha1msg2 (%edx), %xmm1 
+
+// CHECK: sha1msg2 %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xca,0xc9]        
+sha1msg2 %xmm1, %xmm1 
+
+// CHECK: sha1nexte -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+sha1nexte -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1nexte 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+sha1nexte 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1nexte 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x8a,0xf0,0x1c,0xf0,0x1c]        
+sha1nexte 485498096(%edx), %xmm1 
+
+// CHECK: sha1nexte 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x0d,0xf0,0x1c,0xf0,0x1c]        
+sha1nexte 485498096, %xmm1 
+
+// CHECK: sha1nexte 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x4c,0x02,0x40]        
+sha1nexte 64(%edx,%eax), %xmm1 
+
+// CHECK: sha1nexte (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x0a]        
+sha1nexte (%edx), %xmm1 
+
+// CHECK: sha1nexte %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xc8,0xc9]        
+sha1nexte %xmm1, %xmm1 
+
+// CHECK: sha1rnds4 $0, -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x8c,0x82,0x10,0xe3,0x0f,0xe3,0x00]       
+sha1rnds4 $0, -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1rnds4 $0, 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c,0x00]       
+sha1rnds4 $0, 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha1rnds4 $0, 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x8a,0xf0,0x1c,0xf0,0x1c,0x00]       
+sha1rnds4 $0, 485498096(%edx), %xmm1 
+
+// CHECK: sha1rnds4 $0, 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x0d,0xf0,0x1c,0xf0,0x1c,0x00]       
+sha1rnds4 $0, 485498096, %xmm1 
+
+// CHECK: sha1rnds4 $0, 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x4c,0x02,0x40,0x00]       
+sha1rnds4 $0, 64(%edx,%eax), %xmm1 
+
+// CHECK: sha1rnds4 $0, (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x0a,0x00]       
+sha1rnds4 $0, (%edx), %xmm1 
+
+// CHECK: sha1rnds4 $0, %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0xc9,0x00]       
+sha1rnds4 $0, %xmm1, %xmm1 
+
+// CHECK: sha256msg1 -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+sha256msg1 -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha256msg1 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+sha256msg1 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha256msg1 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x8a,0xf0,0x1c,0xf0,0x1c]        
+sha256msg1 485498096(%edx), %xmm1 
+
+// CHECK: sha256msg1 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x0d,0xf0,0x1c,0xf0,0x1c]        
+sha256msg1 485498096, %xmm1 
+
+// CHECK: sha256msg1 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x4c,0x02,0x40]        
+sha256msg1 64(%edx,%eax), %xmm1 
+
+// CHECK: sha256msg1 (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x0a]        
+sha256msg1 (%edx), %xmm1 
+
+// CHECK: sha256msg1 %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcc,0xc9]        
+sha256msg1 %xmm1, %xmm1 
+
+// CHECK: sha256msg2 -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x8c,0x82,0x10,0xe3,0x0f,0xe3]        
+sha256msg2 -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha256msg2 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]        
+sha256msg2 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha256msg2 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x8a,0xf0,0x1c,0xf0,0x1c]        
+sha256msg2 485498096(%edx), %xmm1 
+
+// CHECK: sha256msg2 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x0d,0xf0,0x1c,0xf0,0x1c]        
+sha256msg2 485498096, %xmm1 
+
+// CHECK: sha256msg2 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x4c,0x02,0x40]        
+sha256msg2 64(%edx,%eax), %xmm1 
+
+// CHECK: sha256msg2 (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x0a]        
+sha256msg2 (%edx), %xmm1 
+
+// CHECK: sha256msg2 %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcd,0xc9]        
+sha256msg2 %xmm1, %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, -485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x8c,0x82,0x10,0xe3,0x0f,0xe3]       
+sha256rnds2 %xmm0, -485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, 485498096(%edx,%eax,4), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x8c,0x82,0xf0,0x1c,0xf0,0x1c]       
+sha256rnds2 %xmm0, 485498096(%edx,%eax,4), %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, 485498096(%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x8a,0xf0,0x1c,0xf0,0x1c]       
+sha256rnds2 %xmm0, 485498096(%edx), %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, 485498096, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x0d,0xf0,0x1c,0xf0,0x1c]       
+sha256rnds2 %xmm0, 485498096, %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, 64(%edx,%eax), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x4c,0x02,0x40]       
+sha256rnds2 %xmm0, 64(%edx,%eax), %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, (%edx), %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x0a]       
+sha256rnds2 %xmm0, (%edx), %xmm1 
+
+// CHECK: sha256rnds2 %xmm0, %xmm1, %xmm1 
+// CHECK: encoding: [0x0f,0x38,0xcb,0xc9]       
+sha256rnds2 %xmm0, %xmm1, %xmm1 
+

Added: llvm/trunk/test/MC/X86/SHA-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/SHA-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/SHA-64.s (added)
+++ llvm/trunk/test/MC/X86/SHA-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,394 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: sha1msg1 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha1msg1 485498096, %xmm15 
+
+// CHECK: sha1msg1 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x34,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha1msg1 485498096, %xmm6 
+
+// CHECK: sha1msg1 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7c,0x82,0x40]        
+sha1msg1 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1msg1 -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7c,0x82,0xc0]        
+sha1msg1 -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1msg1 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x74,0x82,0x40]        
+sha1msg1 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1msg1 -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x74,0x82,0xc0]        
+sha1msg1 -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1msg1 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7c,0x02,0x40]        
+sha1msg1 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha1msg1 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x74,0x02,0x40]        
+sha1msg1 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha1msg1 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x7a,0x40]        
+sha1msg1 64(%rdx), %xmm15 
+
+// CHECK: sha1msg1 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x72,0x40]        
+sha1msg1 64(%rdx), %xmm6 
+
+// CHECK: sha1msg1 (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc9,0x3a]        
+sha1msg1 (%rdx), %xmm15 
+
+// CHECK: sha1msg1 (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0x32]        
+sha1msg1 (%rdx), %xmm6 
+
+// CHECK: sha1msg1 %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x38,0xc9,0xff]        
+sha1msg1 %xmm15, %xmm15 
+
+// CHECK: sha1msg1 %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc9,0xf6]        
+sha1msg1 %xmm6, %xmm6 
+
+// CHECK: sha1msg2 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xca,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha1msg2 485498096, %xmm15 
+
+// CHECK: sha1msg2 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0x34,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha1msg2 485498096, %xmm6 
+
+// CHECK: sha1msg2 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7c,0x82,0x40]        
+sha1msg2 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1msg2 -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7c,0x82,0xc0]        
+sha1msg2 -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1msg2 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0x74,0x82,0x40]        
+sha1msg2 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1msg2 -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0x74,0x82,0xc0]        
+sha1msg2 -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1msg2 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7c,0x02,0x40]        
+sha1msg2 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha1msg2 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0x74,0x02,0x40]        
+sha1msg2 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha1msg2 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xca,0x7a,0x40]        
+sha1msg2 64(%rdx), %xmm15 
+
+// CHECK: sha1msg2 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0x72,0x40]        
+sha1msg2 64(%rdx), %xmm6 
+
+// CHECK: sha1msg2 (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xca,0x3a]        
+sha1msg2 (%rdx), %xmm15 
+
+// CHECK: sha1msg2 (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0x32]        
+sha1msg2 (%rdx), %xmm6 
+
+// CHECK: sha1msg2 %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x38,0xca,0xff]        
+sha1msg2 %xmm15, %xmm15 
+
+// CHECK: sha1msg2 %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xca,0xf6]        
+sha1msg2 %xmm6, %xmm6 
+
+// CHECK: sha1nexte 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha1nexte 485498096, %xmm15 
+
+// CHECK: sha1nexte 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x34,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha1nexte 485498096, %xmm6 
+
+// CHECK: sha1nexte 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7c,0x82,0x40]        
+sha1nexte 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1nexte -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7c,0x82,0xc0]        
+sha1nexte -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1nexte 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x74,0x82,0x40]        
+sha1nexte 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1nexte -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x74,0x82,0xc0]        
+sha1nexte -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1nexte 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7c,0x02,0x40]        
+sha1nexte 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha1nexte 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x74,0x02,0x40]        
+sha1nexte 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha1nexte 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x7a,0x40]        
+sha1nexte 64(%rdx), %xmm15 
+
+// CHECK: sha1nexte 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x72,0x40]        
+sha1nexte 64(%rdx), %xmm6 
+
+// CHECK: sha1nexte (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xc8,0x3a]        
+sha1nexte (%rdx), %xmm15 
+
+// CHECK: sha1nexte (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0x32]        
+sha1nexte (%rdx), %xmm6 
+
+// CHECK: sha1nexte %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x38,0xc8,0xff]        
+sha1nexte %xmm15, %xmm15 
+
+// CHECK: sha1nexte %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xc8,0xf6]        
+sha1nexte %xmm6, %xmm6 
+
+// CHECK: sha1rnds4 $0, 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c,0x00]       
+sha1rnds4 $0, 485498096, %xmm15 
+
+// CHECK: sha1rnds4 $0, 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x34,0x25,0xf0,0x1c,0xf0,0x1c,0x00]       
+sha1rnds4 $0, 485498096, %xmm6 
+
+// CHECK: sha1rnds4 $0, 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7c,0x82,0x40,0x00]       
+sha1rnds4 $0, 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1rnds4 $0, -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7c,0x82,0xc0,0x00]       
+sha1rnds4 $0, -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha1rnds4 $0, 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x74,0x82,0x40,0x00]       
+sha1rnds4 $0, 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1rnds4 $0, -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x74,0x82,0xc0,0x00]       
+sha1rnds4 $0, -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha1rnds4 $0, 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7c,0x02,0x40,0x00]       
+sha1rnds4 $0, 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha1rnds4 $0, 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x74,0x02,0x40,0x00]       
+sha1rnds4 $0, 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha1rnds4 $0, 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x7a,0x40,0x00]       
+sha1rnds4 $0, 64(%rdx), %xmm15 
+
+// CHECK: sha1rnds4 $0, 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x72,0x40,0x00]       
+sha1rnds4 $0, 64(%rdx), %xmm6 
+
+// CHECK: sha1rnds4 $0, (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x3a,0xcc,0x3a,0x00]       
+sha1rnds4 $0, (%rdx), %xmm15 
+
+// CHECK: sha1rnds4 $0, (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0x32,0x00]       
+sha1rnds4 $0, (%rdx), %xmm6 
+
+// CHECK: sha1rnds4 $0, %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x3a,0xcc,0xff,0x00]       
+sha1rnds4 $0, %xmm15, %xmm15 
+
+// CHECK: sha1rnds4 $0, %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x3a,0xcc,0xf6,0x00]       
+sha1rnds4 $0, %xmm6, %xmm6 
+
+// CHECK: sha256msg1 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha256msg1 485498096, %xmm15 
+
+// CHECK: sha256msg1 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x34,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha256msg1 485498096, %xmm6 
+
+// CHECK: sha256msg1 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7c,0x82,0x40]        
+sha256msg1 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha256msg1 -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7c,0x82,0xc0]        
+sha256msg1 -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha256msg1 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x74,0x82,0x40]        
+sha256msg1 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha256msg1 -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x74,0x82,0xc0]        
+sha256msg1 -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha256msg1 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7c,0x02,0x40]        
+sha256msg1 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha256msg1 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x74,0x02,0x40]        
+sha256msg1 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha256msg1 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x7a,0x40]        
+sha256msg1 64(%rdx), %xmm15 
+
+// CHECK: sha256msg1 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x72,0x40]        
+sha256msg1 64(%rdx), %xmm6 
+
+// CHECK: sha256msg1 (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcc,0x3a]        
+sha256msg1 (%rdx), %xmm15 
+
+// CHECK: sha256msg1 (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0x32]        
+sha256msg1 (%rdx), %xmm6 
+
+// CHECK: sha256msg1 %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x38,0xcc,0xff]        
+sha256msg1 %xmm15, %xmm15 
+
+// CHECK: sha256msg1 %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcc,0xf6]        
+sha256msg1 %xmm6, %xmm6 
+
+// CHECK: sha256msg2 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha256msg2 485498096, %xmm15 
+
+// CHECK: sha256msg2 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x34,0x25,0xf0,0x1c,0xf0,0x1c]        
+sha256msg2 485498096, %xmm6 
+
+// CHECK: sha256msg2 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7c,0x82,0x40]        
+sha256msg2 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha256msg2 -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7c,0x82,0xc0]        
+sha256msg2 -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha256msg2 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x74,0x82,0x40]        
+sha256msg2 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha256msg2 -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x74,0x82,0xc0]        
+sha256msg2 -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha256msg2 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7c,0x02,0x40]        
+sha256msg2 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha256msg2 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x74,0x02,0x40]        
+sha256msg2 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha256msg2 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x7a,0x40]        
+sha256msg2 64(%rdx), %xmm15 
+
+// CHECK: sha256msg2 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x72,0x40]        
+sha256msg2 64(%rdx), %xmm6 
+
+// CHECK: sha256msg2 (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcd,0x3a]        
+sha256msg2 (%rdx), %xmm15 
+
+// CHECK: sha256msg2 (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0x32]        
+sha256msg2 (%rdx), %xmm6 
+
+// CHECK: sha256msg2 %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x38,0xcd,0xff]        
+sha256msg2 %xmm15, %xmm15 
+
+// CHECK: sha256msg2 %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcd,0xf6]        
+sha256msg2 %xmm6, %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, 485498096, %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]       
+sha256rnds2 %xmm0, 485498096, %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, 485498096, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x34,0x25,0xf0,0x1c,0xf0,0x1c]       
+sha256rnds2 %xmm0, 485498096, %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7c,0x82,0x40]       
+sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7c,0x82,0xc0]       
+sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x74,0x82,0x40]       
+sha256rnds2 %xmm0, 64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x74,0x82,0xc0]       
+sha256rnds2 %xmm0, -64(%rdx,%rax,4), %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7c,0x02,0x40]       
+sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x74,0x02,0x40]       
+sha256rnds2 %xmm0, 64(%rdx,%rax), %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, 64(%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x7a,0x40]       
+sha256rnds2 %xmm0, 64(%rdx), %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, 64(%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x72,0x40]       
+sha256rnds2 %xmm0, 64(%rdx), %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, (%rdx), %xmm15 
+// CHECK: encoding: [0x44,0x0f,0x38,0xcb,0x3a]       
+sha256rnds2 %xmm0, (%rdx), %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, (%rdx), %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0x32]       
+sha256rnds2 %xmm0, (%rdx), %xmm6 
+
+// CHECK: sha256rnds2 %xmm0, %xmm15, %xmm15 
+// CHECK: encoding: [0x45,0x0f,0x38,0xcb,0xff]       
+sha256rnds2 %xmm0, %xmm15, %xmm15 
+
+// CHECK: sha256rnds2 %xmm0, %xmm6, %xmm6 
+// CHECK: encoding: [0x0f,0x38,0xcb,0xf6]       
+sha256rnds2 %xmm0, %xmm6, %xmm6 
+

Added: llvm/trunk/test/MC/X86/SVM-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/SVM-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/SVM-32.s (added)
+++ llvm/trunk/test/MC/X86/SVM-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,34 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: clgi 
+// CHECK: encoding: [0x0f,0x01,0xdd]          
+clgi 
+
+// CHECK: invlpga %ecx, %eax 
+// CHECK: encoding: [0x0f,0x01,0xdf]        
+invlpga %ecx, %eax 
+
+// CHECK: skinit %eax 
+// CHECK: encoding: [0x0f,0x01,0xde]         
+skinit %eax 
+
+// CHECK: stgi 
+// CHECK: encoding: [0x0f,0x01,0xdc]          
+stgi 
+
+// CHECK: vmload %eax 
+// CHECK: encoding: [0x0f,0x01,0xda]         
+vmload %eax 
+
+// CHECK: vmmcall 
+// CHECK: encoding: [0x0f,0x01,0xd9]          
+vmmcall 
+
+// CHECK: vmrun %eax 
+// CHECK: encoding: [0x0f,0x01,0xd8]         
+vmrun %eax 
+
+// CHECK: vmsave %eax 
+// CHECK: encoding: [0x0f,0x01,0xdb]         
+vmsave %eax 
+

Added: llvm/trunk/test/MC/X86/SVM-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/SVM-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/SVM-64.s (added)
+++ llvm/trunk/test/MC/X86/SVM-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,34 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: clgi 
+// CHECK: encoding: [0x0f,0x01,0xdd]          
+clgi 
+
+// CHECK: invlpga %ecx, %rax 
+// CHECK: encoding: [0x0f,0x01,0xdf]        
+invlpga %ecx, %rax 
+
+// CHECK: skinit %eax 
+// CHECK: encoding: [0x0f,0x01,0xde]         
+skinit %eax 
+
+// CHECK: stgi 
+// CHECK: encoding: [0x0f,0x01,0xdc]          
+stgi 
+
+// CHECK: vmload %rax 
+// CHECK: encoding: [0x0f,0x01,0xda]         
+vmload %rax 
+
+// CHECK: vmmcall 
+// CHECK: encoding: [0x0f,0x01,0xd9]          
+vmmcall 
+
+// CHECK: vmrun %rax 
+// CHECK: encoding: [0x0f,0x01,0xd8]         
+vmrun %rax 
+
+// CHECK: vmsave %rax 
+// CHECK: encoding: [0x0f,0x01,0xdb]         
+vmsave %rax 
+

Added: llvm/trunk/test/MC/X86/VMFUNC-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/VMFUNC-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/VMFUNC-32.s (added)
+++ llvm/trunk/test/MC/X86/VMFUNC-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,6 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vmfunc 
+// CHECK: encoding: [0x0f,0x01,0xd4]          
+vmfunc 
+

Added: llvm/trunk/test/MC/X86/VMFUNC-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/VMFUNC-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/VMFUNC-64.s (added)
+++ llvm/trunk/test/MC/X86/VMFUNC-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,6 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: vmfunc 
+// CHECK: encoding: [0x0f,0x01,0xd4]          
+vmfunc 
+

Added: llvm/trunk/test/MC/X86/VTX-32.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/VTX-32.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/VTX-32.s (added)
+++ llvm/trunk/test/MC/X86/VTX-32.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,222 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: invept 3809469200(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x80,0x84,0x82,0x10,0xe3,0x0f,0xe3]        
+invept 3809469200(%edx,%eax,4), %eax 
+
+// CHECK: invept 485498096, %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x80,0x05,0xf0,0x1c,0xf0,0x1c]        
+invept 485498096, %eax 
+
+// CHECK: invept 485498096(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x80,0x84,0x82,0xf0,0x1c,0xf0,0x1c]        
+invept 485498096(%edx,%eax,4), %eax 
+
+// CHECK: invept 485498096(%edx), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x80,0x82,0xf0,0x1c,0xf0,0x1c]        
+invept 485498096(%edx), %eax 
+
+// CHECK: invept 64(%edx,%eax), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x80,0x44,0x02,0x40]        
+invept 64(%edx,%eax), %eax 
+
+// CHECK: invept (%edx), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x80,0x02]        
+invept (%edx), %eax 
+
+// CHECK: invvpid 3809469200(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x81,0x84,0x82,0x10,0xe3,0x0f,0xe3]        
+invvpid 3809469200(%edx,%eax,4), %eax 
+
+// CHECK: invvpid 485498096, %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x81,0x05,0xf0,0x1c,0xf0,0x1c]        
+invvpid 485498096, %eax 
+
+// CHECK: invvpid 485498096(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x81,0x84,0x82,0xf0,0x1c,0xf0,0x1c]        
+invvpid 485498096(%edx,%eax,4), %eax 
+
+// CHECK: invvpid 485498096(%edx), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x81,0x82,0xf0,0x1c,0xf0,0x1c]        
+invvpid 485498096(%edx), %eax 
+
+// CHECK: invvpid 64(%edx,%eax), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x81,0x44,0x02,0x40]        
+invvpid 64(%edx,%eax), %eax 
+
+// CHECK: invvpid (%edx), %eax 
+// CHECK: encoding: [0x66,0x0f,0x38,0x81,0x02]        
+invvpid (%edx), %eax 
+
+// CHECK: vmcall 
+// CHECK: encoding: [0x0f,0x01,0xc1]          
+vmcall 
+
+// CHECK: vmclear -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0xb4,0x82,0x10,0xe3,0x0f,0xe3]         
+vmclear -485498096(%edx,%eax,4) 
+
+// CHECK: vmclear 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0xb4,0x82,0xf0,0x1c,0xf0,0x1c]         
+vmclear 485498096(%edx,%eax,4) 
+
+// CHECK: vmclear 485498096(%edx) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0xb2,0xf0,0x1c,0xf0,0x1c]         
+vmclear 485498096(%edx) 
+
+// CHECK: vmclear 485498096 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x35,0xf0,0x1c,0xf0,0x1c]         
+vmclear 485498096 
+
+// CHECK: vmclear 64(%edx,%eax) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x74,0x02,0x40]         
+vmclear 64(%edx,%eax) 
+
+// CHECK: vmclear (%edx) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x32]         
+vmclear (%edx) 
+
+// CHECK: vmlaunch 
+// CHECK: encoding: [0x0f,0x01,0xc2]          
+vmlaunch 
+
+// CHECK: vmptrld -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x0f,0xc7,0xb4,0x82,0x10,0xe3,0x0f,0xe3]         
+vmptrld -485498096(%edx,%eax,4) 
+
+// CHECK: vmptrld 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x0f,0xc7,0xb4,0x82,0xf0,0x1c,0xf0,0x1c]         
+vmptrld 485498096(%edx,%eax,4) 
+
+// CHECK: vmptrld 485498096(%edx) 
+// CHECK: encoding: [0x0f,0xc7,0xb2,0xf0,0x1c,0xf0,0x1c]         
+vmptrld 485498096(%edx) 
+
+// CHECK: vmptrld 485498096 
+// CHECK: encoding: [0x0f,0xc7,0x35,0xf0,0x1c,0xf0,0x1c]         
+vmptrld 485498096 
+
+// CHECK: vmptrld 64(%edx,%eax) 
+// CHECK: encoding: [0x0f,0xc7,0x74,0x02,0x40]         
+vmptrld 64(%edx,%eax) 
+
+// CHECK: vmptrld (%edx) 
+// CHECK: encoding: [0x0f,0xc7,0x32]         
+vmptrld (%edx) 
+
+// CHECK: vmptrst -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x0f,0xc7,0xbc,0x82,0x10,0xe3,0x0f,0xe3]         
+vmptrst -485498096(%edx,%eax,4) 
+
+// CHECK: vmptrst 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x0f,0xc7,0xbc,0x82,0xf0,0x1c,0xf0,0x1c]         
+vmptrst 485498096(%edx,%eax,4) 
+
+// CHECK: vmptrst 485498096(%edx) 
+// CHECK: encoding: [0x0f,0xc7,0xba,0xf0,0x1c,0xf0,0x1c]         
+vmptrst 485498096(%edx) 
+
+// CHECK: vmptrst 485498096 
+// CHECK: encoding: [0x0f,0xc7,0x3d,0xf0,0x1c,0xf0,0x1c]         
+vmptrst 485498096 
+
+// CHECK: vmptrst 64(%edx,%eax) 
+// CHECK: encoding: [0x0f,0xc7,0x7c,0x02,0x40]         
+vmptrst 64(%edx,%eax) 
+
+// CHECK: vmptrst (%edx) 
+// CHECK: encoding: [0x0f,0xc7,0x3a]         
+vmptrst (%edx) 
+
+// CHECK: vmreadl %eax, 3809469200(%edx,%eax,4) 
+// CHECK: encoding: [0x0f,0x78,0x84,0x82,0x10,0xe3,0x0f,0xe3]        
+vmreadl %eax, 3809469200(%edx,%eax,4) 
+
+// CHECK: vmreadl %eax, 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0x0f,0x78,0x84,0x82,0xf0,0x1c,0xf0,0x1c]        
+vmreadl %eax, 485498096(%edx,%eax,4) 
+
+// CHECK: vmreadl %eax, 485498096(%edx) 
+// CHECK: encoding: [0x0f,0x78,0x82,0xf0,0x1c,0xf0,0x1c]        
+vmreadl %eax, 485498096(%edx) 
+
+// CHECK: vmreadl %eax, 485498096 
+// CHECK: encoding: [0x0f,0x78,0x05,0xf0,0x1c,0xf0,0x1c]        
+vmreadl %eax, 485498096 
+
+// CHECK: vmreadl %eax, 64(%edx,%eax) 
+// CHECK: encoding: [0x0f,0x78,0x44,0x02,0x40]        
+vmreadl %eax, 64(%edx,%eax) 
+
+// CHECK: vmreadl %eax, %eax 
+// CHECK: encoding: [0x0f,0x78,0xc0]        
+vmreadl %eax, %eax 
+
+// CHECK: vmreadl %eax, (%edx) 
+// CHECK: encoding: [0x0f,0x78,0x02]        
+vmreadl %eax, (%edx) 
+
+// CHECK: vmresume 
+// CHECK: encoding: [0x0f,0x01,0xc3]          
+vmresume 
+
+// CHECK: vmwritel 3809469200(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x0f,0x79,0x84,0x82,0x10,0xe3,0x0f,0xe3]        
+vmwritel 3809469200(%edx,%eax,4), %eax 
+
+// CHECK: vmwritel 485498096, %eax 
+// CHECK: encoding: [0x0f,0x79,0x05,0xf0,0x1c,0xf0,0x1c]        
+vmwritel 485498096, %eax 
+
+// CHECK: vmwritel 485498096(%edx,%eax,4), %eax 
+// CHECK: encoding: [0x0f,0x79,0x84,0x82,0xf0,0x1c,0xf0,0x1c]        
+vmwritel 485498096(%edx,%eax,4), %eax 
+
+// CHECK: vmwritel 485498096(%edx), %eax 
+// CHECK: encoding: [0x0f,0x79,0x82,0xf0,0x1c,0xf0,0x1c]        
+vmwritel 485498096(%edx), %eax 
+
+// CHECK: vmwritel 64(%edx,%eax), %eax 
+// CHECK: encoding: [0x0f,0x79,0x44,0x02,0x40]        
+vmwritel 64(%edx,%eax), %eax 
+
+// CHECK: vmwritel %eax, %eax 
+// CHECK: encoding: [0x0f,0x79,0xc0]        
+vmwritel %eax, %eax 
+
+// CHECK: vmwritel (%edx), %eax 
+// CHECK: encoding: [0x0f,0x79,0x02]        
+vmwritel (%edx), %eax 
+
+// CHECK: vmxoff 
+// CHECK: encoding: [0x0f,0x01,0xc4]          
+vmxoff 
+
+// CHECK: vmxon -485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0xb4,0x82,0x10,0xe3,0x0f,0xe3]         
+vmxon -485498096(%edx,%eax,4) 
+
+// CHECK: vmxon 485498096(%edx,%eax,4) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0xb4,0x82,0xf0,0x1c,0xf0,0x1c]         
+vmxon 485498096(%edx,%eax,4) 
+
+// CHECK: vmxon 485498096(%edx) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0xb2,0xf0,0x1c,0xf0,0x1c]         
+vmxon 485498096(%edx) 
+
+// CHECK: vmxon 485498096 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x35,0xf0,0x1c,0xf0,0         
+vmxon 485498096 
+
+// CHECK: vmxon 485498096 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x35,0xf0,0x1c,0xf0,0x1c]         
+vmxon 485498096 
+
+// CHECK: vmxon 64(%edx,%eax) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x74,0x02,0x40]         
+vmxon 64(%edx,%eax) 
+
+// CHECK: vmxon (%edx) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x32]         
+vmxon (%edx) 
+

Added: llvm/trunk/test/MC/X86/VTX-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/VTX-64.s?rev=324595&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/VTX-64.s (added)
+++ llvm/trunk/test/MC/X86/VTX-64.s Thu Feb  8 03:16:02 2018
@@ -0,0 +1,218 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
+
+// CHECK: invept 485498096, %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x80,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+invept 485498096, %r15 
+
+// CHECK: invept 64(%rdx), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x80,0x7a,0x40]        
+invept 64(%rdx), %r15 
+
+// CHECK: invept 64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x80,0x7c,0x82,0x40]        
+invept 64(%rdx,%rax,4), %r15 
+
+// CHECK: invept -64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x80,0x7c,0x82,0xc0]        
+invept -64(%rdx,%rax,4), %r15 
+
+// CHECK: invept 64(%rdx,%rax), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x80,0x7c,0x02,0x40]        
+invept 64(%rdx,%rax), %r15 
+
+// CHECK: invept (%rdx), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x80,0x3a]        
+invept (%rdx), %r15 
+
+// CHECK: invvpid 485498096, %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x81,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+invvpid 485498096, %r15 
+
+// CHECK: invvpid 64(%rdx), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x81,0x7a,0x40]        
+invvpid 64(%rdx), %r15 
+
+// CHECK: invvpid 64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x81,0x7c,0x82,0x40]        
+invvpid 64(%rdx,%rax,4), %r15 
+
+// CHECK: invvpid -64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x81,0x7c,0x82,0xc0]        
+invvpid -64(%rdx,%rax,4), %r15 
+
+// CHECK: invvpid 64(%rdx,%rax), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x81,0x7c,0x02,0x40]        
+invvpid 64(%rdx,%rax), %r15 
+
+// CHECK: invvpid (%rdx), %r15 
+// CHECK: encoding: [0x66,0x44,0x0f,0x38,0x81,0x3a]        
+invvpid (%rdx), %r15 
+
+// CHECK: vmcall 
+// CHECK: encoding: [0x0f,0x01,0xc1]          
+vmcall 
+
+// CHECK: vmclear 485498096 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x34,0x25,0xf0,0x1c,0xf0,0x1c]         
+vmclear 485498096 
+
+// CHECK: vmclear 64(%rdx) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x72,0x40]         
+vmclear 64(%rdx) 
+
+// CHECK: vmclear 64(%rdx,%rax,4) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x74,0x82,0x40]         
+vmclear 64(%rdx,%rax,4) 
+
+// CHECK: vmclear -64(%rdx,%rax,4) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x74,0x82,0xc0]         
+vmclear -64(%rdx,%rax,4) 
+
+// CHECK: vmclear 64(%rdx,%rax) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x74,0x02,0x40]         
+vmclear 64(%rdx,%rax) 
+
+// CHECK: vmclear (%rdx) 
+// CHECK: encoding: [0x66,0x0f,0xc7,0x32]         
+vmclear (%rdx) 
+
+// CHECK: vmlaunch 
+// CHECK: encoding: [0x0f,0x01,0xc2]          
+vmlaunch 
+
+// CHECK: vmptrld 485498096 
+// CHECK: encoding: [0x0f,0xc7,0x34,0x25,0xf0,0x1c,0xf0,0x1c]         
+vmptrld 485498096 
+
+// CHECK: vmptrld 64(%rdx) 
+// CHECK: encoding: [0x0f,0xc7,0x72,0x40]         
+vmptrld 64(%rdx) 
+
+// CHECK: vmptrld 64(%rdx,%rax,4) 
+// CHECK: encoding: [0x0f,0xc7,0x74,0x82,0x40]         
+vmptrld 64(%rdx,%rax,4) 
+
+// CHECK: vmptrld -64(%rdx,%rax,4) 
+// CHECK: encoding: [0x0f,0xc7,0x74,0x82,0xc0]         
+vmptrld -64(%rdx,%rax,4) 
+
+// CHECK: vmptrld 64(%rdx,%rax) 
+// CHECK: encoding: [0x0f,0xc7,0x74,0x02,0x40]         
+vmptrld 64(%rdx,%rax) 
+
+// CHECK: vmptrld (%rdx) 
+// CHECK: encoding: [0x0f,0xc7,0x32]         
+vmptrld (%rdx) 
+
+// CHECK: vmptrst 485498096 
+// CHECK: encoding: [0x0f,0xc7,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]         
+vmptrst 485498096 
+
+// CHECK: vmptrst 64(%rdx) 
+// CHECK: encoding: [0x0f,0xc7,0x7a,0x40]         
+vmptrst 64(%rdx) 
+
+// CHECK: vmptrst 64(%rdx,%rax,4) 
+// CHECK: encoding: [0x0f,0xc7,0x7c,0x82,0x40]         
+vmptrst 64(%rdx,%rax,4) 
+
+// CHECK: vmptrst -64(%rdx,%rax,4) 
+// CHECK: encoding: [0x0f,0xc7,0x7c,0x82,0xc0]         
+vmptrst -64(%rdx,%rax,4) 
+
+// CHECK: vmptrst 64(%rdx,%rax) 
+// CHECK: encoding: [0x0f,0xc7,0x7c,0x02,0x40]         
+vmptrst 64(%rdx,%rax) 
+
+// CHECK: vmptrst (%rdx) 
+// CHECK: encoding: [0x0f,0xc7,0x3a]         
+vmptrst (%rdx) 
+
+// CHECK: vmreadq %r15, 485498096 
+// CHECK: encoding: [0x44,0x0f,0x78,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+vmreadq %r15, 485498096 
+
+// CHECK: vmreadq %r15, 64(%rdx) 
+// CHECK: encoding: [0x44,0x0f,0x78,0x7a,0x40]        
+vmreadq %r15, 64(%rdx) 
+
+// CHECK: vmreadq %r15, 64(%rdx,%rax,4) 
+// CHECK: encoding: [0x44,0x0f,0x78,0x7c,0x82,0x40]        
+vmreadq %r15, 64(%rdx,%rax,4) 
+
+// CHECK: vmreadq %r15, -64(%rdx,%rax,4) 
+// CHECK: encoding: [0x44,0x0f,0x78,0x7c,0x82,0xc0]        
+vmreadq %r15, -64(%rdx,%rax,4) 
+
+// CHECK: vmreadq %r15, 64(%rdx,%rax) 
+// CHECK: encoding: [0x44,0x0f,0x78,0x7c,0x02,0x40]        
+vmreadq %r15, 64(%rdx,%rax) 
+
+// CHECK: vmreadq %r15, %r15 
+// CHECK: encoding: [0x45,0x0f,0x78,0xff]        
+vmreadq %r15, %r15 
+
+// CHECK: vmreadq %r15, (%rdx) 
+// CHECK: encoding: [0x44,0x0f,0x78,0x3a]        
+vmreadq %r15, (%rdx) 
+
+// CHECK: vmresume 
+// CHECK: encoding: [0x0f,0x01,0xc3]          
+vmresume 
+
+// CHECK: vmwriteq 485498096, %r15 
+// CHECK: encoding: [0x44,0x0f,0x79,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]        
+vmwriteq 485498096, %r15 
+
+// CHECK: vmwriteq 64(%rdx), %r15 
+// CHECK: encoding: [0x44,0x0f,0x79,0x7a,0x40]        
+vmwriteq 64(%rdx), %r15 
+
+// CHECK: vmwriteq 64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x44,0x0f,0x79,0x7c,0x82,0x40]        
+vmwriteq 64(%rdx,%rax,4), %r15 
+
+// CHECK: vmwriteq -64(%rdx,%rax,4), %r15 
+// CHECK: encoding: [0x44,0x0f,0x79,0x7c,0x82,0xc0]        
+vmwriteq -64(%rdx,%rax,4), %r15 
+
+// CHECK: vmwriteq 64(%rdx,%rax), %r15 
+// CHECK: encoding: [0x44,0x0f,0x79,0x7c,0x02,0x40]        
+vmwriteq 64(%rdx,%rax), %r15 
+
+// CHECK: vmwriteq %r15, %r15 
+// CHECK: encoding: [0x45,0x0f,0x79,0xff]        
+vmwriteq %r15, %r15 
+
+// CHECK: vmwriteq (%rdx), %r15 
+// CHECK: encoding: [0x44,0x0f,0x79,0x3a]        
+vmwriteq (%rdx), %r15 
+
+// CHECK: vmxoff 
+// CHECK: encoding: [0x0f,0x01,0xc4]          
+vmxoff 
+
+// CHECK: vmxon 485498096 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x34,0x25,0xf0,0x1c,0xf0,0x1c]         
+vmxon 485498096 
+
+// CHECK: vmxon 64(%rdx) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x72,0x40]         
+vmxon 64(%rdx) 
+
+// CHECK: vmxon 64(%rdx,%rax,4) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x74,0x82,0x40]         
+vmxon 64(%rdx,%rax,4) 
+
+// CHECK: vmxon -64(%rdx,%rax,4) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x74,0x82,0xc0]         
+vmxon -64(%rdx,%rax,4) 
+
+// CHECK: vmxon 64(%rdx,%rax) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x74,0x02,0x40]         
+vmxon 64(%rdx,%rax) 
+
+// CHECK: vmxon (%rdx) 
+// CHECK: encoding: [0xf3,0x0f,0xc7,0x32]         
+vmxon (%rdx) 
+




More information about the llvm-commits mailing list