// Control register.
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
def int_x86_sse_stmxcsr :
- Intrinsic<[], [llvm_ptr_ty], []>;
+ Intrinsic<[], [llvm_ptr_ty],
+ [IntrWriteMem, IntrArgMemOnly,
+ // This prevents reordering with ldmxcsr
+ IntrHasSideEffects]>;
def int_x86_sse_ldmxcsr :
- Intrinsic<[], [llvm_ptr_ty], []>;
+ Intrinsic<[], [llvm_ptr_ty],
+ [IntrReadMem, IntrArgMemOnly, IntrHasSideEffects,
+ // FIXME: LDMXCSR does not actualy write to memory,
+ // but Fast and DAG Isel both use writing to memory
+ // as a proxy for having side effects.
+ IntrWriteMem]>;
}
// Misc.
// SSE 1 & 2 - Load/Store XCSR register
//===----------------------------------------------------------------------===//
+let mayLoad=1, hasSideEffects=1 in
def VLDMXCSR : VPSI<0xAE, MRM2m, (outs), (ins i32mem:$src),
"ldmxcsr\t$src", [(int_x86_sse_ldmxcsr addr:$src)]>,
VEX, Sched<[WriteLDMXCSR]>, VEX_WIG;
+let mayStore=1, hasSideEffects=1 in
def VSTMXCSR : VPSI<0xAE, MRM3m, (outs), (ins i32mem:$dst),
"stmxcsr\t$dst", [(int_x86_sse_stmxcsr addr:$dst)]>,
VEX, Sched<[WriteSTMXCSR]>, VEX_WIG;
+let mayLoad=1, hasSideEffects=1 in
def LDMXCSR : I<0xAE, MRM2m, (outs), (ins i32mem:$src),
"ldmxcsr\t$src", [(int_x86_sse_ldmxcsr addr:$src)]>,
TB, Sched<[WriteLDMXCSR]>;
+let mayStore=1, hasSideEffects=1 in
def STMXCSR : I<0xAE, MRM3m, (outs), (ins i32mem:$dst),
"stmxcsr\t$dst", [(int_x86_sse_stmxcsr addr:$dst)]>,
TB, Sched<[WriteSTMXCSR]>;
# CHECK-NEXT: 1 70 35.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 34 17.00 divss %xmm0, %xmm2
# CHECK-NEXT: 1 34 17.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 1 5 2.50 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 1 5 2.50 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 5 5.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 1 5 5.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 1 70 35.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 34 17.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 34 17.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 1 15 7.50 * * U stmxcsr (%rax)
+# CHECK-NEXT: 1 15 7.50 * U stmxcsr (%rax)
# CHECK-NEXT: 1 5 5.00 subps %xmm0, %xmm2
# CHECK-NEXT: 1 5 5.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 5 5.00 subss %xmm0, %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 100 0.50 * * U int3
-# CHECK-NEXT: 2 1 18.00 * * U stmxcsr (%rsp)
+# CHECK-NEXT: 2 1 18.00 * U stmxcsr (%rsp)
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789 0123456789
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 1.0 0.5 0.0 int3
-# CHECK-NEXT: 1. 2 100.5 0.0 0.0 stmxcsr (%rsp)
+# CHECK-NEXT: 0. 2 51.5 0.5 0.0 int3
+# CHECK-NEXT: 1. 2 151.0 0.0 0.0 stmxcsr (%rsp)
# CHECK-NEXT: 1 7 1.50 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 2 5 1.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 1 5 0.50 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 1 5 0.50 * U vldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.50 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 6 2.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 6 2.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 1 14 4.50 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 9 4.50 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 14 4.50 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 2 1 18.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 2 1 18.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 5 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 10 1.50 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 5 1.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 14 4.50 * divps (%rax), %xmm2
# CHECK-NEXT: 1 9 4.50 divss %xmm0, %xmm2
# CHECK-NEXT: 1 14 4.50 * divss (%rax), %xmm2
-# CHECK-NEXT: 1 5 0.50 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 1 5 0.50 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 2 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 2 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.50 * maxps (%rax), %xmm2
# CHECK-NEXT: 1 14 4.50 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 9 4.50 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 14 4.50 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 2 1 18.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 2 1 18.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 5 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 1 10 1.50 * subps (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 subss %xmm0, %xmm2
# CHECK-NEXT: 2 6 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 3 7 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 2 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 3 7 2.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 3 8 2.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 2 21 14.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 4.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 16 7.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 8 1.00 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 16 5.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 11 3.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 16 5.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 2 8 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 2 16 7.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 11 4.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 2 16 7.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 2 8 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 100 0.50 * * U int3
-# CHECK-NEXT: 1 1 1.00 * * U stmxcsr (%rsp)
+# CHECK-NEXT: 1 1 1.00 * U stmxcsr (%rsp)
# CHECK: Timeline view:
# CHECK-NEXT: 0123456789 0123456789 0123456789 0123456789 0123456789
# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage
# CHECK: [0] [1] [2] [3]
-# CHECK-NEXT: 0. 2 1.0 0.5 0.0 int3
-# CHECK-NEXT: 1. 2 100.5 0.0 0.0 stmxcsr (%rsp)
+# CHECK-NEXT: 0. 2 51.0 0.5 0.0 int3
+# CHECK-NEXT: 1. 2 151.0 0.0 0.0 stmxcsr (%rsp)
# CHECK-NEXT: 1 6 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 5 1.00 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 5 1.00 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 1 3 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 1 3 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 6 1.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 6 2.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 1 32 27.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 21 21.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 26 21.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 1 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 1 1 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 8 1.00 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 2 3 2.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 24 19.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 19 19.00 divss %xmm0, %xmm2
# CHECK-NEXT: 1 24 19.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 1 3 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 0.50 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 2 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 1 7 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 1 26 21.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 21 21.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 26 21.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 1 1 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 1 8 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
# CHECK-NEXT: 2 7 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 7 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 4 5 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 3 8 1.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 3 9 1.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 2 27 21.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 14 14.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 20 14.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 20 14.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 14 14.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 20 14.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 2 20 14.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 14 14.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 2 20 14.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
# CHECK-NEXT: 2 7 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 7 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 3 7 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 2 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 3 8 2.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 3 9 2.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 2 21 14.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 11 7.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 16 7.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 19 7.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 13 7.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 18 7.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 2 17 7.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 11 7.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 2 16 7.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
# CHECK-NEXT: 1 42 39.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 19 17.00 divss %xmm0, %xmm2
# CHECK-NEXT: 1 22 17.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 1 3 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 1 3 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 1 6 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 1 44 40.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 20 20.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 23 20.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 1 1 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 1 1 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 1 6 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
# CHECK-NEXT: 2 7 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 7 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 4 5 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 3 8 1.00 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 3 9 1.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 2 27 21.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 14 14.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 20 14.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 9 1.00 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 20 14.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 14 14.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 20 14.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 2 20 14.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 14 14.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 2 20 14.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 4 5 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 4 5 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 2 9 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2
# CHECK-NEXT: 2 7 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 7 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 3 7 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 2 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 2 7 0.50 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 8 0.50 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 2 23 6.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 12 3.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 17 3.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 4 0.50 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 10 0.50 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 0.50 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 17 5.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 11 3.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 16 3.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 4 0.50 maxps %xmm0, %xmm2
# CHECK-NEXT: 2 10 0.50 * maxps (%rax), %xmm2
# CHECK-NEXT: 2 18 3.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 12 3.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 2 17 3.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 4 0.50 subps %xmm0, %xmm2
# CHECK-NEXT: 2 10 0.50 * subps (%rax), %xmm2
# CHECK-NEXT: 1 4 0.50 subss %xmm0, %xmm2
# CHECK-NEXT: 2 7 1.00 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 6 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 7 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 3 7 1.00 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U vldmxcsr (%rax)
# CHECK-NEXT: 2 1 1.00 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 2 7 0.50 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 8 0.50 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 2 23 6.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 12 3.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 17 3.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 4 0.50 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 10 0.50 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 0.50 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 17 5.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 11 3.00 divss %xmm0, %xmm2
# CHECK-NEXT: 2 16 3.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 3 7 1.00 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 3 7 1.00 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 1 1.00 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 4 0.50 maxps %xmm0, %xmm2
# CHECK-NEXT: 2 10 0.50 * maxps (%rax), %xmm2
# CHECK-NEXT: 2 18 3.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 12 3.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 2 17 3.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 3 2 1.00 * * U stmxcsr (%rax)
+# CHECK-NEXT: 3 2 1.00 * U stmxcsr (%rax)
# CHECK-NEXT: 1 4 0.50 subps %xmm0, %xmm2
# CHECK-NEXT: 2 10 0.50 * subps (%rax), %xmm2
# CHECK-NEXT: 1 4 0.50 subss %xmm0, %xmm2
# CHECK-NEXT: 1 8 0.50 * vinsertps $1, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 8 0.50 * vlddqu (%rax), %xmm2
# CHECK-NEXT: 1 8 0.50 * vlddqu (%rax), %ymm2
-# CHECK-NEXT: 1 100 0.25 * * U vldmxcsr (%rax)
+# CHECK-NEXT: 1 100 0.25 * U vldmxcsr (%rax)
# CHECK-NEXT: 1 100 0.25 * * U vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: 1 8 0.50 * vmaskmovpd (%rax), %xmm0, %xmm2
# CHECK-NEXT: 2 8 1.00 * vmaskmovpd (%rax), %ymm0, %ymm2
# CHECK-NEXT: 1 27 20.00 * vsqrtsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 20 20.00 vsqrtss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 27 20.00 * vsqrtss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: 1 100 0.25 * * U vstmxcsr (%rax)
+# CHECK-NEXT: 1 100 0.25 * U vstmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 vsubpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 1 10 1.00 * vsubpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 3 1.00 vsubpd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 22 1.00 * divps (%rax), %xmm2
# CHECK-NEXT: 1 15 1.00 divss %xmm0, %xmm2
# CHECK-NEXT: 1 22 1.00 * divss (%rax), %xmm2
-# CHECK-NEXT: 1 100 0.25 * * U ldmxcsr (%rax)
+# CHECK-NEXT: 1 100 0.25 * U ldmxcsr (%rax)
# CHECK-NEXT: 1 100 0.25 * * U maskmovq %mm0, %mm1
# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2
# CHECK-NEXT: 1 10 1.00 * maxps (%rax), %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtps (%rax), %xmm2
# CHECK-NEXT: 1 20 20.00 sqrtss %xmm0, %xmm2
# CHECK-NEXT: 1 27 20.00 * sqrtss (%rax), %xmm2
-# CHECK-NEXT: 1 100 0.25 * * U stmxcsr (%rax)
+# CHECK-NEXT: 1 100 0.25 * U stmxcsr (%rax)
# CHECK-NEXT: 1 3 1.00 subps %xmm0, %xmm2
# CHECK-NEXT: 1 10 1.00 * subps (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 subss %xmm0, %xmm2