[llvm] r332756 - adding baseline fp fold tests for unsafe on and off

Michael Berg via llvm-commits llvm-commits at lists.llvm.org
Fri May 18 12:30:49 PDT 2018


Author: mcberg2017
Date: Fri May 18 12:30:49 2018
New Revision: 332756

URL: http://llvm.org/viewvc/llvm-project?rev=332756&view=rev
Log:
adding baseline fp fold tests for unsafe on and off

Added:
    llvm/trunk/test/CodeGen/X86/fp-fold.ll

Added: llvm/trunk/test/CodeGen/X86/fp-fold.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp-fold.ll?rev=332756&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/fp-fold.ll (added)
+++ llvm/trunk/test/CodeGen/X86/fp-fold.ll Fri May 18 12:30:49 2018
@@ -0,0 +1,62 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown                        | FileCheck %s --check-prefixes=ANY,STRICT
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -enable-unsafe-fp-math | FileCheck %s --check-prefixes=ANY,UNSAFE
+
+; This is duplicated from tests for InstSimplify. If you're
+; adding something here, you should probably add it there too.
+
+define float @fadd_zero_1(float %x) {
+; ANY-LABEL: fadd_zero_1:
+; ANY:       # %bb.0:
+; ANY-NEXT:    retq
+  %r = fadd nsz float %x, 0.0
+  ret float %r
+}
+
+define float @fadd_zero_2(float %x) {
+; ANY-LABEL: fadd_zero_2:
+; ANY:       # %bb.0:
+; ANY-NEXT:    retq
+  %r = fadd nsz float %x, -0.0
+  ret float %r
+}
+
+define float @fsub_zero_1(float %x) {
+; UNSAFE-LABEL: fsub_zero_1:
+; UNSAFE:       # %bb.0:
+; UNSAFE-NEXT:    retq
+  %r = fsub float %x, 0.0
+  ret float %r
+}
+
+define float @fsub_zero_2(float %x) {
+; UNSAFE-LABEL: fsub_zero_2:
+; UNSAFE:       # %bb.0:
+; UNSAFE-NEXT:    retq
+  %r = fsub float %x, -0.0
+  ret float %r
+}
+
+; TODO: handle x*0 for fast flags the same as unsafe
+define float @fmul_zero(float %x) {
+; STRICT-LABEL: fmul_zero:
+; STRICT:       # %bb.0:
+; STRICT:         xorps	%xmm1, %xmm1
+; STRICT:         mulss	%xmm1, %xmm0
+; STRICT-NEXT:    retq
+;
+; UNSAFE-LABEL: fmul_zero:
+; UNSAFE:       # %bb.0:
+; UNSAFE:         xorps	%xmm0, %xmm0
+; UNSAFE-NEXT:    retq
+  %r = fmul nnan nsz float %x, 0.0
+  ret float %r
+}
+
+define float @fmul_one(float %x) {
+; ANY-LABEL: fmul_one:
+; ANY:       # %bb.0:
+; ANY-NEXT:    retq
+  %r = fmul float %x, 1.0
+  ret float %r
+}




More information about the llvm-commits mailing list