OSDN Git Service

NFC: adding baseline fneg case for fmf
authorMichael Berg <michael_c_berg@apple.com>
Tue, 5 Jun 2018 18:12:25 +0000 (18:12 +0000)
committerMichael Berg <michael_c_berg@apple.com>
Tue, 5 Jun 2018 18:12:25 +0000 (18:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334035 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/PowerPC/fmf-propagation.ll

index b4fb412..3a9c844 100644 (file)
@@ -457,3 +457,31 @@ define double @log2_approx(double %x) nounwind {
   ret double %r
 }
 
+; -(X - Y) --> (Y - X)
+
+; FMFDEBUG-LABEL: Optimized lowered selection DAG: %bb.0 'fneg_fsub_nozeros_1:'
+; FMFDEBUG:         fsub {{t[0-9]+}}, {{t[0-9]+}}
+; FMFDEBUG:       Type-legalized selection DAG: %bb.0 'fneg_fsub_nozeros_1:'
+
+; GLOBALDEBUG-LABEL: Optimized lowered selection DAG: %bb.0 'fneg_fsub_nozeros_1:'
+; GLOBALDEBUG:         fsub {{t[0-9]+}}, {{t[0-9]+}}
+; GLOBALDEBUG:       Type-legalized selection DAG: %bb.0 'fneg_fsub_nozeros_1:'
+
+define float @fneg_fsub_nozeros_1(float %x, float %y, float %z) {
+; FMF-LABEL: fneg_fsub_nozeros_1:
+; FMF:       # %bb.0:
+; FMF-NEXT:    xssubsp 0, 1, 2
+; FMF-NEXT:    xxlxor 13, 13, 13
+; FMF-NEXT:    xssubsp 1, 13, 0
+; FMF-NEXT:    blr
+;
+; GLOBAL-LABEL: fneg_fsub_nozeros_1:
+; GLOBAL:       # %bb.0:
+; GLOBAL-NEXT:    xssubsp 0, 1, 2
+; GLOBAL-NEXT:    xxlxor 13, 13, 13
+; GLOBAL-NEXT:    xssubsp 1, 13, 0
+; GLOBAL-NEXT:    blr
+  %neg = fsub float %x, %y
+  %add = fsub float 0.0, %neg
+  ret float %add
+}