Add support for movntil/movntiq mnemonics. Reported on llvmdev.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133759 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eli Friedman 2011-06-23 21:07:47 +00:00
parent 00805fae5b
commit a390a1aa48
3 changed files with 26 additions and 14 deletions

View File

@ -1991,11 +1991,11 @@ def : Pat<(alignednontemporalstore (v2i64 VR128:$src), addr:$dst),
// There is no AVX form for instructions below this point
def MOVNTImr : I<0xC3, MRMDestMem, (outs), (ins i32mem:$dst, GR32:$src),
"movnti\t{$src, $dst|$dst, $src}",
"movnti{l}\t{$src, $dst|$dst, $src}",
[(nontemporalstore (i32 GR32:$src), addr:$dst)]>,
TB, Requires<[HasSSE2]>;
def MOVNTI_64mr : RI<0xC3, MRMDestMem, (outs), (ins i64mem:$dst, GR64:$src),
"movnti\t{$src, $dst|$dst, $src}",
"movnti{q}\t{$src, $dst|$dst, $src}",
[(nontemporalstore (i64 GR64:$src), addr:$dst)]>,
TB, Requires<[HasSSE2]>;
}

View File

@ -503,7 +503,7 @@
// CHECK: ud2
ud2
// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
// CHECK: movntil %ecx, 3735928559(%ebx,%ecx,8)
movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
// CHECK: clflush 3735928559(%ebx,%ecx,8)
@ -4505,23 +4505,23 @@
// CHECK: encoding: [0xdf,0xea]
fucomip %st(2),%st
// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
// CHECK: movntil %ecx, 3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0x0f,0xc3,0x8c,0xcb,0xef,0xbe,0xad,0xde]
movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
// CHECK: movnti %ecx, 69
// CHECK: movntil %ecx, 69
// CHECK: encoding: [0x0f,0xc3,0x0d,0x45,0x00,0x00,0x00]
movnti %ecx,0x45
// CHECK: movnti %ecx, 32493
// CHECK: movntil %ecx, 32493
// CHECK: encoding: [0x0f,0xc3,0x0d,0xed,0x7e,0x00,0x00]
movnti %ecx,0x7eed
// CHECK: movnti %ecx, 3133065982
// CHECK: movntil %ecx, 3133065982
// CHECK: encoding: [0x0f,0xc3,0x0d,0xfe,0xca,0xbe,0xba]
movnti %ecx,0xbabecafe
// CHECK: movnti %ecx, 305419896
// CHECK: movntil %ecx, 305419896
// CHECK: encoding: [0x0f,0xc3,0x0d,0x78,0x56,0x34,0x12]
movnti %ecx,0x12345678
@ -14177,19 +14177,19 @@
// CHECK: fucompi %st(2)
fucomip %st(2),%st
// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
// CHECK: movntil %ecx, 3735928559(%ebx,%ecx,8)
movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
// CHECK: movnti %ecx, 69
movnti %ecx,0x45
// CHECK: movntil %ecx, 69
movntil %ecx,0x45
// CHECK: movnti %ecx, 32493
// CHECK: movntil %ecx, 32493
movnti %ecx,0x7eed
// CHECK: movnti %ecx, 3133065982
// CHECK: movntil %ecx, 3133065982
movnti %ecx,0xbabecafe
// CHECK: movnti %ecx, 305419896
// CHECK: movntil %ecx, 305419896
movnti %ecx,0x12345678
// CHECK: clflush 3735928559(%ebx,%ecx,8)

View File

@ -1136,3 +1136,15 @@ xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1]
// CHECK: movd %rdi, %xmm0
// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7]
movd %rdi,%xmm0
// CHECK: movntil %eax, (%rdi)
// CHECK: encoding: [0x0f,0xc3,0x07]
// CHECK: movntil
movntil %eax, (%rdi)
movnti %eax, (%rdi)
// CHECK: movntiq %rax, (%rdi)
// CHECK: encoding: [0x48,0x0f,0xc3,0x07]
// CHECK: movntiq
movntiq %rax, (%rdi)
movnti %rax, (%rdi)