interface1.ref 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. %dx.types.Handle = type { i8* }
  2. %dx.types.CBufRet.i32 = type { i32, i32, i32, i32 }
  3. %dx.types.ResRet.f32 = type { float, float, float, float, i32 }
  4. %dx.types.CBufRet.f32 = type { float, float, float, float }
  5. %dx.types.f32 = type { float }
  6. %dx.types.i8x16 = type { [16 x i8] }
  7. %dx.types.i8x8096 = type { [8096 x i8] }
  8. %dx.types.i8x65536 = type { [65536 x i8] }
  9. %dx.types.Sampler = type opaque
  10. @dx.v32.r0 = internal global i32 undef, align 4
  11. @dx.v32.r2 = internal global float undef, align 4
  12. @dx.v32.r3 = internal global i32 undef, align 4
  13. @dx.v32.r1 = internal global float undef, align 4
  14. define internal void @dx.fb.0() {
  15. entry:
  16. %0 = load i32, i32* @dx.v32.r0
  17. %1 = add i32 253, %0
  18. %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  19. %3 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %2, i32 %1)
  20. %4 = extractvalue %dx.types.CBufRet.i32 %3, 2
  21. %5 = call float @dx.op.bitcastI32toF32(i32 126, i32 %4)
  22. %6 = extractvalue %dx.types.CBufRet.i32 %3, 3
  23. store float %5, float* @dx.v32.r2
  24. store i32 %6, i32* @dx.v32.r3
  25. %7 = load float, float* @dx.v32.r2
  26. %8 = call i32 @dx.op.bitcastF32toI32(i32 127, float %7)
  27. %9 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %8, i1 false)
  28. %10 = load i32, i32* @dx.v32.r3
  29. %11 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 %10, i1 false)
  30. %12 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %9, %dx.types.Handle %11, float 1.250000e-01, float 8.750000e-01, float undef, float undef, i32 0, i32 0, i32 undef, float 0.000000e+00)
  31. %13 = extractvalue %dx.types.ResRet.f32 %12, 0
  32. store float %13, float* @dx.v32.r2
  33. %14 = load i32, i32* @dx.v32.r0
  34. %15 = add i32 253, %14
  35. %16 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  36. %17 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %16, i32 %15)
  37. %18 = extractvalue %dx.types.CBufRet.i32 %17, 1
  38. store i32 %18, i32* @dx.v32.r3
  39. %19 = load i32, i32* @dx.v32.r0
  40. %20 = add i32 253, %19
  41. %21 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  42. %22 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %21, i32 %20)
  43. %23 = extractvalue %dx.types.CBufRet.i32 %22, 0
  44. %24 = load float, float* @dx.v32.r2
  45. %25 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 2, i32 %23, i1 false)
  46. %26 = load i32, i32* @dx.v32.r3
  47. %27 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %25, i32 %26)
  48. %28 = extractvalue %dx.types.CBufRet.f32 %27, 0
  49. %29 = fadd fast float %24, %28
  50. store float %29, float* @dx.v32.r1
  51. ret void
  52. }
  53. define internal void @dx.fb.1() {
  54. entry:
  55. %0 = load i32, i32* @dx.v32.r0
  56. %1 = add i32 253, %0
  57. %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  58. %3 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %2, i32 %1)
  59. %4 = extractvalue %dx.types.CBufRet.i32 %3, 2
  60. %5 = call float @dx.op.bitcastI32toF32(i32 126, i32 %4)
  61. %6 = extractvalue %dx.types.CBufRet.i32 %3, 3
  62. store float %5, float* @dx.v32.r2
  63. store i32 %6, i32* @dx.v32.r3
  64. %7 = load float, float* @dx.v32.r2
  65. %8 = call i32 @dx.op.bitcastF32toI32(i32 127, float %7)
  66. %9 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %8, i1 false)
  67. %10 = load i32, i32* @dx.v32.r3
  68. %11 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 %10, i1 false)
  69. %12 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %9, %dx.types.Handle %11, float 2.500000e-01, float 7.500000e-01, float undef, float undef, i32 0, i32 0, i32 undef, float 0.000000e+00)
  70. %13 = extractvalue %dx.types.ResRet.f32 %12, 0
  71. store float %13, float* @dx.v32.r2
  72. %14 = load i32, i32* @dx.v32.r0
  73. %15 = add i32 253, %14
  74. %16 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  75. %17 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %16, i32 %15)
  76. %18 = extractvalue %dx.types.CBufRet.i32 %17, 1
  77. store i32 %18, i32* @dx.v32.r3
  78. %19 = load i32, i32* @dx.v32.r0
  79. %20 = add i32 253, %19
  80. %21 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  81. %22 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %21, i32 %20)
  82. %23 = extractvalue %dx.types.CBufRet.i32 %22, 0
  83. store i32 %23, i32* @dx.v32.r0
  84. %24 = load float, float* @dx.v32.r2
  85. %25 = load i32, i32* @dx.v32.r0
  86. %26 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 2, i32 %25, i1 false)
  87. %27 = load i32, i32* @dx.v32.r3
  88. %28 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %26, i32 %27)
  89. %29 = extractvalue %dx.types.CBufRet.f32 %28, 0
  90. %30 = fmul fast float %24, %29
  91. store float %30, float* @dx.v32.r1
  92. ret void
  93. }
  94. define void @main() {
  95. entry:
  96. %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 0, i32 0, i1 false)
  97. %1 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %0, i32 0)
  98. %2 = extractvalue %dx.types.CBufRet.i32 %1, 0
  99. store i32 %2, i32* @dx.v32.r0
  100. %3 = load i32, i32* @dx.v32.r0
  101. %4 = add i32 0, %3
  102. %5 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
  103. %6 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %5, i32 %4)
  104. %7 = extractvalue %dx.types.CBufRet.i32 %6, 0
  105. switch i32 %7, label %fcall0.end [
  106. i32 0, label %fcall0.case0
  107. i32 1, label %fcall0.case1
  108. ]
  109. fcall0.case0: ; preds = %entry
  110. call void @dx.fb.0()
  111. br label %fcall0.end
  112. fcall0.case1: ; preds = %entry
  113. call void @dx.fb.1()
  114. br label %fcall0.end
  115. fcall0.end: ; preds = %fcall0.case1, %fcall0.case0, %entry
  116. %8 = load float, float* @dx.v32.r1
  117. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %8)
  118. ret void
  119. }
  120. ; Function Attrs: nounwind readonly
  121. declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
  122. ; Function Attrs: nounwind readonly
  123. declare %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32, %dx.types.Handle, i32) #0
  124. ; Function Attrs: nounwind
  125. declare void @dx.op.tempRegStore.i32(i32, i32, i32) #1
  126. ; Function Attrs: nounwind readonly
  127. declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0
  128. ; Function Attrs: nounwind readonly
  129. declare float @dx.op.tempRegLoad.f32(i32, i32) #0
  130. ; Function Attrs: nounwind
  131. declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #1
  132. ; Function Attrs: nounwind readonly
  133. 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
  134. ; Function Attrs: nounwind
  135. declare void @dx.op.tempRegStore.f32(i32, i32, float) #1
  136. ; Function Attrs: nounwind readonly
  137. declare %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32, %dx.types.Handle, i32) #0
  138. ; Function Attrs: nounwind readnone
  139. declare float @dx.op.bitcastI32toF32(i32, i32) #2
  140. ; Function Attrs: nounwind readnone
  141. declare i32 @dx.op.bitcastF32toI32(i32, float) #2
  142. attributes #0 = { nounwind readonly }
  143. attributes #1 = { nounwind }
  144. attributes #2 = { nounwind readnone }
  145. !dx.version = !{!0}
  146. !dx.valver = !{!0}
  147. !dx.shaderModel = !{!1}
  148. !dx.resources = !{!2}
  149. !dx.entryPoints = !{!13}
  150. !llvm.ident = !{!18}
  151. !0 = !{i32 1, i32 0}
  152. !1 = !{!"ps", i32 6, i32 0}
  153. !2 = !{!3, null, !6, !10}
  154. !3 = !{!4}
  155. !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 1, i32 0, i32 128, i32 2, i32 0, !5}
  156. !5 = !{i32 0, i32 9}
  157. !6 = !{!7, !8, !9}
  158. !7 = !{i32 0, %dx.types.i8x16 addrspace(2)* undef, !"CB0", i32 0, i32 0, i32 1, i32 16, null}
  159. !8 = !{i32 1, %dx.types.i8x8096 addrspace(2)* undef, !"CB1", i32 0, i32 14, i32 1, i32 8096, null}
  160. !9 = !{i32 2, %dx.types.i8x65536 addrspace(2)* undef, !"CB2", i32 1, i32 0, i32 14, i32 65536, null}
  161. !10 = !{!11, !12}
  162. !11 = !{i32 0, %dx.types.Sampler addrspace(1)* undef, !"S0", i32 1, i32 0, i32 16, i32 0, null}
  163. !12 = !{i32 1, %dx.types.Sampler addrspace(1)* undef, !"S1", i32 2, i32 0, i32 16, i32 1, null}
  164. !13 = !{void ()* @main, !"main", !14, !2, null}
  165. !14 = !{null, !15, null}
  166. !15 = !{!16}
  167. !16 = !{i32 0, !"SV_Target", i8 9, i8 16, !17, i8 0, i32 1, i8 1, i32 0, i8 0, null}
  168. !17 = !{i32 0}
  169. !18 = !{!"dxbc2dxil 1.2"}