1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/CodeGen/X86/intersect-fma-fmf.ll
Michael Berg 29d9b03630 Guard FMF context by excluding some FP operators from FPMathOperator
Summary:
Some FPMathOperators succeed and the retrieve FMF context when they never have it, we should omit these cases to keep from removing FMF context.

For instance when we visit some FPMathOperator mapped Instructions which never have FMF flags and a Node was associated which does have FMF flags, that Node today will have all its flags cleared via the intersect operation.  With this change, we exclude associating Nodes that never have FPMathOperator status under FMF.

Reviewers: spatel, wristow, arsenm, hfinkel, aemerson

Reviewed By: spatel

Subscribers: llvm-commits, wdng

Differential Revision: https://reviews.llvm.org/D51145

llvm-svn: 342081
2018-09-12 21:09:59 +00:00

14 lines
515 B
LLVM

; RUN: llc -mtriple=i686-unknown-unknown -mattr=+avx512f < %s | FileCheck %s
define float @test_x86_fma_intersection_fmf(float %a, float %b) {
; CHECK-LABEL: test_x86_fma_intersection_fmf:
; CHECK: # %bb.0:
; CHECK: vfmadd132ss {{[0-9]+}}(%esp), %xmm0, %xmm0
; CHECK: retl
%tmp8 = fmul fast float %a, %b
%tmp9 = fadd fast float %tmp8, %b
%tmp10 = insertelement <4 x float> undef, float %tmp9, i32 1
%tmp11 = extractelement <4 x float> %tmp10, i32 1
ret float %tmp11
}