diff options
Diffstat (limited to 'test/Transforms/InstCombine/rem.ll')
-rw-r--r-- | test/Transforms/InstCombine/rem.ll | 14 |
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 +} + |