[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