summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/CodeGen/AArch64/fp-const-fold.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/fp-const-fold.ll b/llvm/test/CodeGen/AArch64/fp-const-fold.ll
new file mode 100644
index 00000000000..b8b4722ade1
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/fp-const-fold.ll
@@ -0,0 +1,27 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s
+
+; https://bugs.llvm.org/show_bug.cgi?id=41668
+
+define double @constant_fold_fdiv_by_zero(double* %p) {
+; CHECK-LABEL: constant_fold_fdiv_by_zero:
+; CHECK: // %bb.0:
+; CHECK-NEXT: mov x8, #1
+; CHECK-NEXT: fmov d0, xzr
+; CHECK-NEXT: fmov d1, x8
+; CHECK-NEXT: fdiv d0, d1, d0
+; CHECK-NEXT: ret
+ %r = fdiv double 4.940660e-324, 0.0
+ ret double %r
+}
+
+define double @constant_fold_frem_by_zero(double* %p) {
+; CHECK-LABEL: constant_fold_frem_by_zero:
+; CHECK: // %bb.0:
+; CHECK-NEXT: mov x8, #1
+; CHECK-NEXT: fmov d1, xzr
+; CHECK-NEXT: fmov d0, x8
+; CHECK-NEXT: b fmod
+ %r = frem double 4.940660e-324, 0.0
+ ret double %r
+}
OpenPOWER on IntegriCloud