aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86InstrSSE.td
diff options
context:
space:
mode:
authorBen Langmuir <ben.langmuir@intel.com>2013-09-12 15:51:31 +0000
committerBen Langmuir <ben.langmuir@intel.com>2013-09-12 15:51:31 +0000
commit1f1bd9a54d25d4e2c5da13c2cae7fa5e3d8acc9f (patch)
tree6a4093eec10f724f5f8bc99e58474ecfa2ec66e8 /lib/Target/X86/X86InstrSSE.td
parentc0b12dfd0a83081c1ebbb55a89c7a2c1f98f1842 (diff)
downloadexternal_llvm-1f1bd9a54d25d4e2c5da13c2cae7fa5e3d8acc9f.zip
external_llvm-1f1bd9a54d25d4e2c5da13c2cae7fa5e3d8acc9f.tar.gz
external_llvm-1f1bd9a54d25d4e2c5da13c2cae7fa5e3d8acc9f.tar.bz2
Partial support for Intel SHA Extensions (sha1rnds4)
Add basic assembly/disassembly support for the first Intel SHA instruction 'sha1rnds4'. Also includes feature flag, and test cases. Support for the remaining instructions will follow in a separate patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190611 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrSSE.td')
-rw-r--r--lib/Target/X86/X86InstrSSE.td16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td
index f36c042..83dd320 100644
--- a/lib/Target/X86/X86InstrSSE.td
+++ b/lib/Target/X86/X86InstrSSE.td
@@ -7321,6 +7321,22 @@ let Constraints = "$src1 = $dst" in {
}
//===----------------------------------------------------------------------===//
+// SHA-NI Instructions
+//===----------------------------------------------------------------------===//
+
+let Constraints = "$src1 = $dst", hasSideEffects = 0, Predicates = [HasSHA] in {
+ def SHA1RNDS4rri : Ii8<0xCC, MRMSrcReg, (outs VR128:$dst),
+ (ins VR128:$src1, VR128:$src2, i8imm:$src3),
+ "sha1rnds4\t{$src3, $src2, $dst|$dst, $src2, $src3}",
+ []>, TA;
+ let mayLoad = 1 in
+ def SHA1RNDS4rmi : Ii8<0xCC, MRMSrcMem, (outs VR128:$dst),
+ (ins VR128:$src1, i128mem:$src2, i8imm:$src3),
+ "sha1rnds4\t{$src3, $src2, $dst|$dst, $src2, $src3}",
+ []>, TA;
+}
+
+//===----------------------------------------------------------------------===//
// AES-NI Instructions
//===----------------------------------------------------------------------===//