; RUN: opt -S --passes="print-dx-shader-flags" 2>&1 %s | FileCheck %s

target triple = "dxil-pc-shadermodel6.7-library"

; CHECK: ; Combined Shader Flags for Module
; CHECK-NEXT: ; Shader Flags Value: 0x00100044

; CHECK: ; Note: shader requires additional functionality:
; CHECK-NEXT: ;       Double-precision floating point
; CHECK-NEXT: ;       Double-precision extensions for 11.1
; CHECK-NEXT: ;       64-Bit integer
; CHECK-NEXT: ; Note: extra DXIL module flags:
; CHECK-NEXT: ;
; CHECK-NEXT: ; Shader Flags for Module Functions

;CHECK: ; Function top_level : 0x00100044
define double @top_level() #0 {
  %r = call double @test_uitofp_i64(i64 5)
  ret double %r
}


; CHECK: ; Function test_fdiv_double : 0x00000044
define double @test_fdiv_double(double %a, double %b) #0 {
  %res = fdiv double %a, %b
  ret double %res
}

; CHECK: ; Function test_fma_double : 0x00000044
define double @test_fma_double(double %a, double %b, double %c) #0 {
  %r = call double @llvm.fma.f64(double %a, double %b, double %c)
  ret double %r
}

; CHECK: ; Function test_uitofp_i64 : 0x00100044
define double @test_uitofp_i64(i64 %a) #0 {
  %r = uitofp i64 %a to double
  ret double %r
}

; CHECK: ; Function test_sitofp_i64 : 0x00100044
define double @test_sitofp_i64(i64 %a) #0 {
  %r = sitofp i64 %a to double
  ret double %r
}

; CHECK: ; Function test_fptoui_i32 : 0x00000044
define i32 @test_fptoui_i32(double %a) #0 {
  %r = fptoui double %a to i32
  ret i32 %r
}

; CHECK: ; Function test_fptosi_i64 : 0x00100044
define i64 @test_fptosi_i64(double %a) #0 {
  %r = fptosi double %a to i64
  ret i64 %r
}

declare double @llvm.fma.f64(double, double, double)

attributes #0 = { convergent norecurse nounwind "hlsl.export"}
