precise1.ref 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. %dx.types.Handle = type { i8* }
  2. %dx.types.ResRet.f32 = type { float, float, float, float, i32 }
  3. %dx.types.CBufRet.f32 = type { float, float, float, float }
  4. %dx.types.f32 = type { float }
  5. %dx.types.i8x48 = type { [48 x i8] }
  6. %dx.types.Sampler = type opaque
  7. define void @main() {
  8. entry:
  9. %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 0, i1 false)
  10. %1 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 0, i32 0, i1 false)
  11. %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 0, i1 false)
  12. %3 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  13. %4 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  14. %5 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %0, %dx.types.Handle %2, float %3, float %4, float undef, float undef, i32 0, i32 0, i32 undef, float 0.000000e+00), !dx.precise !19
  15. %6 = extractvalue %dx.types.ResRet.f32 %5, 0
  16. %7 = extractvalue %dx.types.ResRet.f32 %5, 1
  17. %8 = extractvalue %dx.types.ResRet.f32 %5, 2
  18. %9 = extractvalue %dx.types.ResRet.f32 %5, 3
  19. %10 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 0)
  20. %11 = extractvalue %dx.types.CBufRet.f32 %10, 0
  21. %12 = extractvalue %dx.types.CBufRet.f32 %10, 1
  22. %13 = extractvalue %dx.types.CBufRet.f32 %10, 2
  23. %14 = extractvalue %dx.types.CBufRet.f32 %10, 3
  24. %15 = fmul float %6, %11
  25. %16 = fmul float %7, %12
  26. %17 = fmul float %8, %13
  27. %18 = fmul float %9, %14
  28. %19 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 1)
  29. %20 = extractvalue %dx.types.CBufRet.f32 %19, 0
  30. %21 = extractvalue %dx.types.CBufRet.f32 %19, 1
  31. %22 = extractvalue %dx.types.CBufRet.f32 %19, 2
  32. %23 = extractvalue %dx.types.CBufRet.f32 %19, 3
  33. %24 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %1, i32 2)
  34. %25 = extractvalue %dx.types.CBufRet.f32 %24, 0
  35. %26 = extractvalue %dx.types.CBufRet.f32 %24, 1
  36. %27 = extractvalue %dx.types.CBufRet.f32 %24, 2
  37. %28 = extractvalue %dx.types.CBufRet.f32 %24, 3
  38. %29 = call float @dx.op.tertiary.f32(i32 46, float %15, float %20, float %25), !dx.precise !19
  39. %30 = call float @dx.op.tertiary.f32(i32 46, float %16, float %21, float %26), !dx.precise !19
  40. %31 = call float @dx.op.tertiary.f32(i32 46, float %17, float %22, float %27), !dx.precise !19
  41. %32 = call float @dx.op.tertiary.f32(i32 46, float %18, float %23, float %28), !dx.precise !19
  42. %33 = fsub float -0.000000e+00, %29
  43. %34 = fsub float -0.000000e+00, %30
  44. %35 = fsub float -0.000000e+00, %31
  45. %36 = fsub float -0.000000e+00, %32
  46. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %33), !dx.precise !19
  47. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %34), !dx.precise !19
  48. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %35), !dx.precise !19
  49. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float %36), !dx.precise !19
  50. ret void
  51. }
  52. ; Function Attrs: nounwind readonly
  53. declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
  54. ; Function Attrs: nounwind readnone
  55. declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #1
  56. ; Function Attrs: nounwind readonly
  57. declare %dx.types.ResRet.f32 @dx.op.sample.f32(i32, %dx.types.Handle, %dx.types.Handle, float, float, float, float, i32, i32, i32, float) #0
  58. ; Function Attrs: nounwind
  59. declare void @dx.op.tempRegStore.f32(i32, i32, float) #2
  60. ; Function Attrs: nounwind readonly
  61. declare float @dx.op.tempRegLoad.f32(i32, i32) #0
  62. ; Function Attrs: nounwind readonly
  63. declare %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32, %dx.types.Handle, i32) #0
  64. ; Function Attrs: nounwind readnone
  65. declare float @dx.op.tertiary.f32(i32, float, float, float) #1
  66. ; Function Attrs: nounwind
  67. declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #2
  68. attributes #0 = { nounwind readonly }
  69. attributes #1 = { nounwind readnone }
  70. attributes #2 = { nounwind }
  71. !dx.version = !{!0}
  72. !dx.valver = !{!0}
  73. !dx.shaderModel = !{!1}
  74. !dx.resources = !{!2}
  75. !dx.entryPoints = !{!10}
  76. !llvm.ident = !{!18}
  77. !0 = !{i32 1, i32 0}
  78. !1 = !{!"ps", i32 6, i32 0}
  79. !2 = !{!3, null, !6, !8}
  80. !3 = !{!4}
  81. !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 0, i32 0, i32 1, i32 2, i32 0, !5}
  82. !5 = !{i32 0, i32 9}
  83. !6 = !{!7}
  84. !7 = !{i32 0, %dx.types.i8x48 addrspace(2)* undef, !"CB0", i32 0, i32 0, i32 1, i32 48, null}
  85. !8 = !{!9}
  86. !9 = !{i32 0, %dx.types.Sampler addrspace(1)* undef, !"S0", i32 0, i32 0, i32 1, i32 0, null}
  87. !10 = !{void ()* @main, !"main", !11, !2, !17}
  88. !11 = !{!12, !15, null}
  89. !12 = !{!13}
  90. !13 = !{i32 0, !"COORD", i8 9, i8 0, !14, i8 2, i32 1, i8 4, i32 0, i8 0, null}
  91. !14 = !{i32 0}
  92. !15 = !{!16}
  93. !16 = !{i32 0, !"SV_Target", i8 9, i8 16, !14, i8 0, i32 1, i8 4, i32 0, i8 0, null}
  94. !17 = !{i32 0, i64 256}
  95. !18 = !{!"dxbc2dxil 1.2"}
  96. !19 = !{i32 1}