summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/rem.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/InstCombine/rem.ll')
-rw-r--r--test/Transforms/InstCombine/rem.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/rem.ll b/test/Transforms/InstCombine/rem.ll
index 4e90b337b09c..f71a0fb4c621 100644
--- a/test/Transforms/InstCombine/rem.ll
+++ b/test/Transforms/InstCombine/rem.ll
@@ -593,3 +593,17 @@ define <2 x i32> @test23(<2 x i32> %A) {
%mul = srem <2 x i32> %and, <i32 2147483647, i32 2147483647>
ret <2 x i32> %mul
}
+
+; FP division-by-zero is not UB.
+
+define double @PR34870(i1 %cond, double %x, double %y) {
+; CHECK-LABEL: @PR34870(
+; CHECK-NEXT: [[SEL:%.*]] = select i1 %cond, double %y, double 0.000000e+00
+; CHECK-NEXT: [[FMOD:%.*]] = frem double %x, [[SEL]]
+; CHECK-NEXT: ret double [[FMOD]]
+;
+ %sel = select i1 %cond, double %y, double 0.0
+ %fmod = frem double %x, %sel
+ ret double %fmod
+}
+