]> granicus.if.org Git - llvm/commitdiff
[NFC][FPEnv] Pre-commit tests for canonicalize negated operand of fdiv.
authorCameron McInally <cameron.mcinally@nyu.edu>
Mon, 29 Jul 2019 16:09:56 +0000 (16:09 +0000)
committerCameron McInally <cameron.mcinally@nyu.edu>
Mon, 29 Jul 2019 16:09:56 +0000 (16:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@367233 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/fdiv.ll

index 1cc505283054679f04ed0fa0682c6c201b7cbff7..468df8dd6a1eeb9f2ac982288bc5a9fb7631f046 100644 (file)
@@ -510,6 +510,17 @@ define double @fdiv_fneg1(double %x, double %y) {
   ret double %div
 }
 
+define double @fdiv_unary_fneg1(double %x, double %y) {
+; CHECK-LABEL: @fdiv_unary_fneg1(
+; CHECK-NEXT:    [[TMP1:%.*]] = fdiv double [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    [[DIV:%.*]] = fsub double -0.000000e+00, [[TMP1]]
+; CHECK-NEXT:    ret double [[DIV]]
+;
+  %neg = fneg double %x
+  %div = fdiv double %neg, %y
+  ret double %div
+}
+
 define <2 x float> @fdiv_fneg2(<2 x float> %x, <2 x float> %y) {
 ; CHECK-LABEL: @fdiv_fneg2(
 ; CHECK-NEXT:    [[TMP1:%.*]] = fdiv <2 x float> [[Y:%.*]], [[X:%.*]]
@@ -521,6 +532,17 @@ define <2 x float> @fdiv_fneg2(<2 x float> %x, <2 x float> %y) {
   ret <2 x float> %div
 }
 
+define <2 x float> @fdiv_unary_fneg2(<2 x float> %x, <2 x float> %y) {
+; CHECK-LABEL: @fdiv_unary_fneg2(
+; CHECK-NEXT:    [[TMP1:%.*]] = fdiv <2 x float> [[Y:%.*]], [[X:%.*]]
+; CHECK-NEXT:    [[DIV:%.*]] = fsub <2 x float> <float -0.000000e+00, float -0.000000e+00>, [[TMP1]]
+; CHECK-NEXT:    ret <2 x float> [[DIV]]
+;
+  %neg = fneg <2 x float> %x
+  %div = fdiv <2 x float> %y, %neg
+  ret <2 x float> %div
+}
+
 define float @fdiv_fneg1_extra_use(float %x, float %y) {
 ; CHECK-LABEL: @fdiv_fneg1_extra_use(
 ; CHECK-NEXT:    [[NEG:%.*]] = fsub float -0.000000e+00, [[X:%.*]]