summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86')
-rw-r--r--llvm/test/CodeGen/X86/fp-fold.ll68
1 files changed, 44 insertions, 24 deletions
diff --git a/llvm/test/CodeGen/X86/fp-fold.ll b/llvm/test/CodeGen/X86/fp-fold.ll
index 917b5d368dd..1102b755130 100644
--- a/llvm/test/CodeGen/X86/fp-fold.ll
+++ b/llvm/test/CodeGen/X86/fp-fold.ll
@@ -113,12 +113,17 @@ define float @fsub_neg_y(float %x, float %y) {
; Y - (X + Y) --> -X
define float @fsub_fadd_common_op_fneg(float %x, float %y) {
-; ANY-LABEL: fsub_fadd_common_op_fneg:
-; ANY: # %bb.0:
-; ANY-NEXT: addss %xmm1, %xmm0
-; ANY-NEXT: subss %xmm0, %xmm1
-; ANY-NEXT: movaps %xmm1, %xmm0
-; ANY-NEXT: retq
+; STRICT-LABEL: fsub_fadd_common_op_fneg:
+; STRICT: # %bb.0:
+; STRICT-NEXT: addss %xmm1, %xmm0
+; STRICT-NEXT: subss %xmm0, %xmm1
+; STRICT-NEXT: movaps %xmm1, %xmm0
+; STRICT-NEXT: retq
+;
+; UNSAFE-LABEL: fsub_fadd_common_op_fneg:
+; UNSAFE: # %bb.0:
+; UNSAFE-NEXT: xorps {{.*}}(%rip), %xmm0
+; UNSAFE-NEXT: retq
%a = fadd float %x, %y
%r = fsub reassoc nsz float %y, %a
ret float %r
@@ -127,12 +132,17 @@ define float @fsub_fadd_common_op_fneg(float %x, float %y) {
; Y - (X + Y) --> -X
define <4 x float> @fsub_fadd_common_op_fneg_vec(<4 x float> %x, <4 x float> %y) {
-; ANY-LABEL: fsub_fadd_common_op_fneg_vec:
-; ANY: # %bb.0:
-; ANY-NEXT: addps %xmm1, %xmm0
-; ANY-NEXT: subps %xmm0, %xmm1
-; ANY-NEXT: movaps %xmm1, %xmm0
-; ANY-NEXT: retq
+; STRICT-LABEL: fsub_fadd_common_op_fneg_vec:
+; STRICT: # %bb.0:
+; STRICT-NEXT: addps %xmm1, %xmm0
+; STRICT-NEXT: subps %xmm0, %xmm1
+; STRICT-NEXT: movaps %xmm1, %xmm0
+; STRICT-NEXT: retq
+;
+; UNSAFE-LABEL: fsub_fadd_common_op_fneg_vec:
+; UNSAFE: # %bb.0:
+; UNSAFE-NEXT: xorps {{.*}}(%rip), %xmm0
+; UNSAFE-NEXT: retq
%a = fadd <4 x float> %x, %y
%r = fsub nsz reassoc <4 x float> %y, %a
ret <4 x float> %r
@@ -142,12 +152,17 @@ define <4 x float> @fsub_fadd_common_op_fneg_vec(<4 x float> %x, <4 x float> %y)
; Commute operands of the 'add'.
define float @fsub_fadd_common_op_fneg_commute(float %x, float %y) {
-; ANY-LABEL: fsub_fadd_common_op_fneg_commute:
-; ANY: # %bb.0:
-; ANY-NEXT: addss %xmm1, %xmm0
-; ANY-NEXT: subss %xmm0, %xmm1
-; ANY-NEXT: movaps %xmm1, %xmm0
-; ANY-NEXT: retq
+; STRICT-LABEL: fsub_fadd_common_op_fneg_commute:
+; STRICT: # %bb.0:
+; STRICT-NEXT: addss %xmm1, %xmm0
+; STRICT-NEXT: subss %xmm0, %xmm1
+; STRICT-NEXT: movaps %xmm1, %xmm0
+; STRICT-NEXT: retq
+;
+; UNSAFE-LABEL: fsub_fadd_common_op_fneg_commute:
+; UNSAFE: # %bb.0:
+; UNSAFE-NEXT: xorps {{.*}}(%rip), %xmm0
+; UNSAFE-NEXT: retq
%a = fadd float %y, %x
%r = fsub reassoc nsz float %y, %a
ret float %r
@@ -156,12 +171,17 @@ define float @fsub_fadd_common_op_fneg_commute(float %x, float %y) {
; Y - (Y + X) --> -X
define <4 x float> @fsub_fadd_common_op_fneg_commute_vec(<4 x float> %x, <4 x float> %y) {
-; ANY-LABEL: fsub_fadd_common_op_fneg_commute_vec:
-; ANY: # %bb.0:
-; ANY-NEXT: addps %xmm1, %xmm0
-; ANY-NEXT: subps %xmm0, %xmm1
-; ANY-NEXT: movaps %xmm1, %xmm0
-; ANY-NEXT: retq
+; STRICT-LABEL: fsub_fadd_common_op_fneg_commute_vec:
+; STRICT: # %bb.0:
+; STRICT-NEXT: addps %xmm1, %xmm0
+; STRICT-NEXT: subps %xmm0, %xmm1
+; STRICT-NEXT: movaps %xmm1, %xmm0
+; STRICT-NEXT: retq
+;
+; UNSAFE-LABEL: fsub_fadd_common_op_fneg_commute_vec:
+; UNSAFE: # %bb.0:
+; UNSAFE-NEXT: xorps {{.*}}(%rip), %xmm0
+; UNSAFE-NEXT: retq
%a = fadd <4 x float> %y, %x
%r = fsub reassoc nsz <4 x float> %y, %a
ret <4 x float> %r
OpenPOWER on IntegriCloud