[llvm] r355212 - [Tests] Add tests for missed optimizations of saturating and idempotent FP atomicrmws
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 1 10:10:37 PST 2019
Author: reames
Date: Fri Mar 1 10:10:37 2019
New Revision: 355212
URL: http://llvm.org/viewvc/llvm-project?rev=355212&view=rev
Log:
[Tests] Add tests for missed optimizations of saturating and idempotent FP atomicrmws
Modified:
llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll
Modified: llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll?rev=355212&r1=355211&r2=355212&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/atomicrmw.ll Fri Mar 1 10:10:37 2019
@@ -90,6 +90,13 @@ define float @atomic_fsub_canon(float* %
%res = atomicrmw fsub float* %addr, float 0.0 release
ret float %res
}
+; CHECK-LABEL: atomic_fadd_canon
+; CHECK-NEXT: %res = atomicrmw fadd float* %addr, float -0.000000e+00 release
+; CHECK-NEXT: ret float %res
+define float @atomic_fadd_canon(float* %addr) {
+ %res = atomicrmw fadd float* %addr, float -0.0 release
+ ret float %res
+}
; Can't replace a volatile w/a load; this would eliminate a volatile store.
; CHECK-LABEL: atomic_sub_zero_volatile
@@ -206,6 +213,22 @@ define i8 @sat_max_smax_char(i8* %addr)
ret i8 %res
}
+; CHECK-LABEL: sat_fadd_nan
+; CHECK-NEXT: %res = atomicrmw fadd double* %addr, double 0x7FF00000FFFFFFFF release
+; CHECK-NEXT: ret double %res
+define double @sat_fadd_nan(double* %addr) {
+ %res = atomicrmw fadd double* %addr, double 0x7FF00000FFFFFFFF release
+ ret double %res
+}
+
+; CHECK-LABEL: sat_fsub_nan
+; CHECK-NEXT: %res = atomicrmw fsub double* %addr, double 0x7FF00000FFFFFFFF release
+; CHECK-NEXT: ret double %res
+define double @sat_fsub_nan(double* %addr) {
+ %res = atomicrmw fsub double* %addr, double 0x7FF00000FFFFFFFF release
+ ret double %res
+}
+
; CHECK-LABEL: xchg_unused_monotonic
; CHECK-NEXT: store atomic i32 0, i32* %addr monotonic, align 4
; CHECK-NEXT: ret void
More information about the llvm-commits
mailing list