aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/tools/dxil-dis/fastmath.ll
blob: 7f4ba5b4cdd9f86c12c831c1f6bb2025aa0ff92a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
; RUN: llc %s --filetype=obj -o - | dxil-dis -o - | FileCheck %s
target triple = "dxil-unknown-shadermodel6.7-library"

define float @fma(float %0, float %1, float %2) #0 {
  ; verify reassoc and contract are converted to fast
  ; CHECK: %4 = fmul fast float %0, %1
  %4 = fmul reassoc float %0, %1
  ; CHECK-NEXT: %5 = fadd fast float %4, %2
  %5 = fadd contract float %4, %2
  ; verify these are converted to a single fast flag
  ; CHECK-NEXT: %6 = fmul fast float %0, %1
  %6 = fmul reassoc contract float %0, %1
  ; verify these flags are maintained
  ; CHECK-NEXT: %7 = fadd nnan ninf nsz arcp float %0, %1
  %7 = fadd nnan ninf nsz arcp float %0, %1
  ; verify that afn is removed
  ; CHECK-NEXT: %8 = fmul float %0, %1
  %8 = fmul afn float %0, %1
  ret float %5
}

attributes #0 = { norecurse nounwind readnone willreturn "disable-tail-calls"="false" "waveops-include-helper-lanes" "fp32-denorm-mode"="any" "hlsl.export" }