getdim.ref 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. %dx.types.Handle = type { i8* }
  2. %dx.types.Dimensions = type { i32, i32, i32, i32 }
  3. %dx.types.f32 = type { float }
  4. define void @main() {
  5. entry:
  6. %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 0, i1 false)
  7. %1 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 1, i1 false)
  8. %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 2, i32 2, i1 false)
  9. %3 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 3, i32 3, i1 false)
  10. %4 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 1, i1 false)
  11. %5 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 3, i32 undef)
  12. %6 = fptoui float %5 to i32
  13. %7 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %0, i32 %6)
  14. %8 = extractvalue %dx.types.Dimensions %7, 0
  15. %9 = extractvalue %dx.types.Dimensions %7, 1
  16. %10 = extractvalue %dx.types.Dimensions %7, 3
  17. %11 = add i32 %8, %6
  18. %12 = add i32 %9, %11
  19. %13 = add i32 %10, %12
  20. %14 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %0, i32 0)
  21. %15 = extractvalue %dx.types.Dimensions %14, 0
  22. %16 = extractvalue %dx.types.Dimensions %14, 1
  23. %17 = add i32 %6, %15
  24. %18 = add i32 %16, %17
  25. %19 = add i32 %10, %18
  26. %20 = uitofp i32 %13 to float
  27. %21 = uitofp i32 %19 to float
  28. %22 = fadd fast float %21, %20
  29. %23 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %1, i32 %6)
  30. %24 = extractvalue %dx.types.Dimensions %23, 0
  31. %25 = extractvalue %dx.types.Dimensions %23, 1
  32. %26 = extractvalue %dx.types.Dimensions %23, 2
  33. %27 = extractvalue %dx.types.Dimensions %23, 3
  34. %28 = add i32 %6, %24
  35. %29 = add i32 %25, %28
  36. %30 = add i32 %26, %29
  37. %31 = add i32 %27, %30
  38. %32 = uitofp i32 %31 to float
  39. %33 = fadd fast float %32, %22
  40. %34 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %2, i32 %6)
  41. %35 = extractvalue %dx.types.Dimensions %34, 0
  42. %36 = extractvalue %dx.types.Dimensions %34, 1
  43. %37 = extractvalue %dx.types.Dimensions %34, 2
  44. %38 = extractvalue %dx.types.Dimensions %34, 3
  45. %39 = add i32 %6, %35
  46. %40 = add i32 %36, %39
  47. %41 = add i32 %37, %40
  48. %42 = add i32 %38, %41
  49. %43 = uitofp i32 %42 to float
  50. %44 = fadd fast float %43, %33
  51. %45 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %3, i32 0)
  52. %46 = extractvalue %dx.types.Dimensions %45, 0
  53. %47 = extractvalue %dx.types.Dimensions %45, 1
  54. %48 = extractvalue %dx.types.Dimensions %45, 2
  55. %49 = add i32 %6, %46
  56. %50 = add i32 %47, %49
  57. %51 = add i32 %48, %50
  58. %52 = add i32 %38, %51
  59. %53 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %3, i32 0)
  60. %54 = extractvalue %dx.types.Dimensions %53, 3
  61. %55 = add i32 %54, %52
  62. %56 = uitofp i32 %55 to float
  63. %57 = fadd fast float %56, %44
  64. %58 = call %dx.types.Dimensions @dx.op.getDimensions(i32 72, %dx.types.Handle %4, i32 0)
  65. %59 = extractvalue %dx.types.Dimensions %58, 0
  66. %60 = extractvalue %dx.types.Dimensions %58, 1
  67. %61 = add i32 %6, %59
  68. %62 = add i32 %60, %61
  69. %63 = add i32 %48, %62
  70. %64 = add i32 %38, %63
  71. %65 = add i32 %54, %64
  72. %66 = uitofp i32 %65 to float
  73. %67 = fadd fast float %66, %57
  74. %68 = fadd fast float %66, %57
  75. %69 = fadd fast float %66, %57
  76. %70 = fadd fast float %66, %57
  77. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %67)
  78. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %68)
  79. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %69)
  80. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float %70)
  81. ret void
  82. }
  83. ; Function Attrs: nounwind readonly
  84. declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
  85. ; Function Attrs: nounwind readnone
  86. declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #1
  87. ; Function Attrs: nounwind
  88. declare void @dx.op.tempRegStore.i32(i32, i32, i32) #2
  89. ; Function Attrs: nounwind readonly
  90. declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0
  91. ; Function Attrs: nounwind readonly
  92. declare %dx.types.Dimensions @dx.op.getDimensions(i32, %dx.types.Handle, i32) #0
  93. ; Function Attrs: nounwind
  94. declare void @dx.op.tempRegStore.f32(i32, i32, float) #2
  95. ; Function Attrs: nounwind readonly
  96. declare float @dx.op.tempRegLoad.f32(i32, i32) #0
  97. ; Function Attrs: nounwind
  98. declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #2
  99. ; Function Attrs: nounwind readnone
  100. declare float @dx.op.bitcastI32toF32(i32, i32) #1
  101. ; Function Attrs: nounwind readnone
  102. declare i32 @dx.op.bitcastF32toI32(i32, float) #1
  103. attributes #0 = { nounwind readonly }
  104. attributes #1 = { nounwind readnone }
  105. attributes #2 = { nounwind }
  106. !dx.version = !{!0}
  107. !dx.valver = !{!0}
  108. !dx.shaderModel = !{!1}
  109. !dx.resources = !{!2}
  110. !dx.entryPoints = !{!11}
  111. !llvm.ident = !{!19}
  112. !0 = !{i32 1, i32 0}
  113. !1 = !{!"ps", i32 6, i32 0}
  114. !2 = !{!3, !9, null, null}
  115. !3 = !{!4, !6, !7, !8}
  116. !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 0, i32 0, i32 1, i32 2, i32 0, !5}
  117. !5 = !{i32 0, i32 9}
  118. !6 = !{i32 1, %dx.types.f32 addrspace(1)* undef, !"T1", i32 0, i32 1, i32 1, i32 7, i32 0, !5}
  119. !7 = !{i32 2, %dx.types.f32 addrspace(1)* undef, !"T2", i32 0, i32 2, i32 1, i32 9, i32 0, !5}
  120. !8 = !{i32 3, %dx.types.f32 addrspace(1)* undef, !"T3", i32 0, i32 3, i32 1, i32 8, i32 0, !5}
  121. !9 = !{!10}
  122. !10 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"U0", i32 0, i32 1, i32 1, i32 2, i1 false, i1 false, i1 false, !5}
  123. !11 = !{void ()* @main, !"main", !12, !2, !18}
  124. !12 = !{!13, !16, null}
  125. !13 = !{!14}
  126. !14 = !{i32 0, !"A", i8 9, i8 0, !15, i8 2, i32 1, i8 4, i32 0, i8 0, null}
  127. !15 = !{i32 0}
  128. !16 = !{!17}
  129. !17 = !{i32 0, !"SV_Target", i8 9, i8 16, !15, i8 0, i32 1, i8 4, i32 0, i8 0, null}
  130. !18 = !{i32 0, i64 256}
  131. !19 = !{!"dxbc2dxil 1.2"}