struct_buf1.ref 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. %dx.types.Handle = type { i8* }
  2. %dx.types.ResRet.i32 = type { i32, i32, i32, i32, i32 }
  3. %dx.types.i8x52 = type { [52 x i8] }
  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 1, i32 0, i32 1, i1 false)
  8. %2 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  9. %3 = call float @dx.op.loadInput.f32(i32 4, i32 1, i32 0, i8 0, i32 undef)
  10. %4 = fadd fast float %2, 2.000000e+02
  11. %5 = fadd fast float %3, 2.000000e+02
  12. %6 = fptosi float %4 to i32
  13. %7 = fptosi float %5 to i32
  14. %8 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %6, i32 0)
  15. %9 = extractvalue %dx.types.ResRet.i32 %8, 0
  16. %10 = extractvalue %dx.types.ResRet.i32 %8, 1
  17. %11 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %6, i32 8)
  18. %12 = extractvalue %dx.types.ResRet.i32 %11, 0
  19. %13 = extractvalue %dx.types.ResRet.i32 %11, 1
  20. %14 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %6, i32 16)
  21. %15 = extractvalue %dx.types.ResRet.i32 %14, 0
  22. %16 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %6, i32 20)
  23. %17 = extractvalue %dx.types.ResRet.i32 %16, 0
  24. %18 = extractvalue %dx.types.ResRet.i32 %16, 1
  25. %19 = extractvalue %dx.types.ResRet.i32 %16, 2
  26. %20 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %6, i32 32)
  27. %21 = extractvalue %dx.types.ResRet.i32 %20, 0
  28. %22 = extractvalue %dx.types.ResRet.i32 %20, 1
  29. %23 = extractvalue %dx.types.ResRet.i32 %20, 2
  30. %24 = extractvalue %dx.types.ResRet.i32 %20, 3
  31. %25 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %6, i32 48)
  32. %26 = extractvalue %dx.types.ResRet.i32 %25, 0
  33. %27 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 0)
  34. %28 = extractvalue %dx.types.ResRet.i32 %27, 0
  35. %29 = call float @dx.op.bitcastI32toF32(i32 126, i32 %28)
  36. %30 = extractvalue %dx.types.ResRet.i32 %27, 1
  37. %31 = call float @dx.op.bitcastI32toF32(i32 126, i32 %30)
  38. %32 = extractvalue %dx.types.ResRet.i32 %27, 4
  39. %33 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 0)
  40. %34 = extractvalue %dx.types.ResRet.i32 %33, 2
  41. %35 = extractvalue %dx.types.ResRet.i32 %33, 3
  42. %36 = extractvalue %dx.types.ResRet.i32 %33, 4
  43. %37 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 16)
  44. %38 = extractvalue %dx.types.ResRet.i32 %37, 0
  45. %39 = extractvalue %dx.types.ResRet.i32 %37, 4
  46. %40 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 16)
  47. %41 = extractvalue %dx.types.ResRet.i32 %40, 1
  48. %42 = extractvalue %dx.types.ResRet.i32 %40, 2
  49. %43 = extractvalue %dx.types.ResRet.i32 %40, 3
  50. %44 = extractvalue %dx.types.ResRet.i32 %40, 4
  51. %45 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 32)
  52. %46 = extractvalue %dx.types.ResRet.i32 %45, 0
  53. %47 = extractvalue %dx.types.ResRet.i32 %45, 1
  54. %48 = extractvalue %dx.types.ResRet.i32 %45, 2
  55. %49 = extractvalue %dx.types.ResRet.i32 %45, 3
  56. %50 = extractvalue %dx.types.ResRet.i32 %45, 4
  57. %51 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 48)
  58. %52 = extractvalue %dx.types.ResRet.i32 %51, 0
  59. %53 = extractvalue %dx.types.ResRet.i32 %51, 4
  60. %54 = call float @dx.op.bitcastI32toF32(i32 126, i32 0)
  61. %55 = call float @dx.op.loadInput.f32(i32 4, i32 1, i32 0, i8 0, i32 undef)
  62. %56 = fptoui float %55 to i32
  63. %57 = sub i32 0, %56
  64. %58 = icmp ult i32 %56, 1
  65. %59 = icmp ult i32 %56, 2
  66. %60 = icmp ult i32 %56, 3
  67. %61 = sext i1 %58 to i32
  68. %62 = sext i1 %59 to i32
  69. %63 = sext i1 %60 to i32
  70. %64 = and i32 %57, %62
  71. %65 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  72. %66 = call float @dx.op.loadInput.f32(i32 4, i32 1, i32 0, i8 0, i32 undef)
  73. %67 = fptosi float %65 to i32
  74. %68 = fptosi float %66 to i32
  75. %69 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %67, i32 32)
  76. %70 = extractvalue %dx.types.ResRet.i32 %69, 3
  77. %71 = extractvalue %dx.types.ResRet.i32 %69, 0
  78. %72 = extractvalue %dx.types.ResRet.i32 %69, 1
  79. %73 = extractvalue %dx.types.ResRet.i32 %69, 2
  80. %74 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %67, i32 20)
  81. %75 = extractvalue %dx.types.ResRet.i32 %74, 0
  82. %76 = extractvalue %dx.types.ResRet.i32 %74, 1
  83. %77 = extractvalue %dx.types.ResRet.i32 %74, 2
  84. %78 = and i32 %64, %77
  85. %79 = and i32 %64, %71
  86. %80 = and i32 %61, %75
  87. %81 = and i32 %61, %76
  88. %82 = or i32 %78, %80
  89. %83 = or i32 %79, %81
  90. %84 = add i32 %56, -3
  91. %85 = shl i32 %56, 3
  92. %86 = add i32 %85, 20
  93. %87 = select i1 %59, i32 0, i32 %84
  94. %88 = and i32 %72, %87
  95. %89 = and i32 %73, %87
  96. %90 = or i32 %82, %88
  97. %91 = or i32 %83, %89
  98. %92 = icmp eq i32 %63, 0
  99. %93 = sext i1 %92 to i32
  100. %94 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %67, i32 48)
  101. %95 = extractvalue %dx.types.ResRet.i32 %94, 0
  102. %96 = and i32 %93, %70
  103. %97 = and i32 %93, %95
  104. %98 = or i32 %90, %96
  105. %99 = or i32 %91, %97
  106. %100 = sitofp i32 %98 to float
  107. %101 = sitofp i32 %99 to float
  108. %102 = call float @dx.op.bitcastI32toF32(i32 126, i32 0)
  109. %103 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %67, i32 0)
  110. %104 = extractvalue %dx.types.ResRet.i32 %103, 0
  111. %105 = call float @dx.op.bitcastI32toF32(i32 126, i32 %104)
  112. %106 = extractvalue %dx.types.ResRet.i32 %103, 1
  113. %107 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %67, i32 8)
  114. %108 = extractvalue %dx.types.ResRet.i32 %107, 0
  115. %109 = extractvalue %dx.types.ResRet.i32 %107, 1
  116. %110 = extractvalue %dx.types.ResRet.i32 %107, 2
  117. %111 = call float @dx.op.bitcastI32toF32(i32 126, i32 %110)
  118. %112 = call float @dx.op.bitcastI32toF32(i32 126, i32 %108)
  119. %113 = call float @dx.op.bitcastI32toF32(i32 126, i32 %109)
  120. %114 = call float @dx.op.bitcastI32toF32(i32 126, i32 %106)
  121. %115 = fadd fast float %112, %105
  122. %116 = fadd fast float %113, %114
  123. %117 = fadd fast float %111, %102
  124. %118 = fadd fast float %101, %116
  125. %119 = fadd fast float %100, %54
  126. %120 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %68, i32 0)
  127. %121 = extractvalue %dx.types.ResRet.i32 %120, 0
  128. %122 = extractvalue %dx.types.ResRet.i32 %120, 1
  129. %123 = extractvalue %dx.types.ResRet.i32 %120, 2
  130. %124 = extractvalue %dx.types.ResRet.i32 %120, 3
  131. %125 = extractvalue %dx.types.ResRet.i32 %120, 4
  132. %126 = call float @dx.op.bitcastI32toF32(i32 126, i32 %121)
  133. %127 = call float @dx.op.bitcastI32toF32(i32 126, i32 %122)
  134. %128 = fadd fast float %115, %126
  135. %129 = fadd fast float %118, %127
  136. %130 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %125)
  137. %131 = sext i1 %130 to i32
  138. %132 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %68, i32 16)
  139. %133 = extractvalue %dx.types.ResRet.i32 %132, 0
  140. %134 = extractvalue %dx.types.ResRet.i32 %132, 1
  141. %135 = extractvalue %dx.types.ResRet.i32 %132, 2
  142. %136 = extractvalue %dx.types.ResRet.i32 %132, 3
  143. %137 = extractvalue %dx.types.ResRet.i32 %132, 4
  144. %138 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %137)
  145. %139 = sext i1 %138 to i32
  146. %140 = and i32 %131, %139
  147. %141 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %68, i32 32)
  148. %142 = extractvalue %dx.types.ResRet.i32 %141, 0
  149. %143 = extractvalue %dx.types.ResRet.i32 %141, 1
  150. %144 = extractvalue %dx.types.ResRet.i32 %141, 2
  151. %145 = extractvalue %dx.types.ResRet.i32 %141, 3
  152. %146 = extractvalue %dx.types.ResRet.i32 %141, 4
  153. %147 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %0, i32 %68, i32 48)
  154. %148 = extractvalue %dx.types.ResRet.i32 %147, 0
  155. %149 = extractvalue %dx.types.ResRet.i32 %147, 4
  156. %150 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %146)
  157. %151 = sext i1 %150 to i32
  158. %152 = and i32 %140, %151
  159. %153 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %149)
  160. %154 = sext i1 %153 to i32
  161. %155 = and i32 %152, %154
  162. %156 = uitofp i32 %155 to float
  163. %157 = fadd fast float %156, %128
  164. %158 = fadd fast float %156, %129
  165. %159 = fadd fast float %156, %117
  166. %160 = fmul fast float %156, 1.000000e+00
  167. %161 = fmul fast float %156, 2.000000e+00
  168. %162 = call float @dx.op.bitcastI32toF32(i32 126, i32 %123)
  169. %163 = call float @dx.op.bitcastI32toF32(i32 126, i32 %124)
  170. %164 = call float @dx.op.bitcastI32toF32(i32 126, i32 %133)
  171. %165 = fadd fast float %157, %162
  172. %166 = fadd fast float %158, %163
  173. %167 = fadd fast float %159, %164
  174. %168 = fadd fast float %160, %160
  175. %169 = fadd fast float %160, %166
  176. %170 = fadd fast float %119, %161
  177. %171 = and i32 %61, %135
  178. %172 = and i32 %61, %134
  179. %173 = and i32 %64, %142
  180. %174 = and i32 %64, %136
  181. %175 = or i32 %171, %173
  182. %176 = or i32 %172, %174
  183. %177 = and i32 %87, %144
  184. %178 = and i32 %87, %143
  185. %179 = and i32 %93, %148
  186. %180 = and i32 %93, %145
  187. %181 = or i32 %175, %177
  188. %182 = or i32 %176, %178
  189. %183 = or i32 %181, %179
  190. %184 = or i32 %182, %180
  191. %185 = sitofp i32 %183 to float
  192. %186 = sitofp i32 %184 to float
  193. %187 = fadd fast float %169, %185
  194. %188 = fadd fast float %170, %186
  195. %189 = fadd fast float %165, %168
  196. %190 = fadd fast float %160, %187
  197. %191 = fadd fast float %167, %168
  198. %192 = fadd fast float %160, %188
  199. %193 = call float @dx.op.bitcastI32toF32(i32 126, i32 %9)
  200. %194 = call float @dx.op.bitcastI32toF32(i32 126, i32 %10)
  201. %195 = fadd fast float %193, %189
  202. %196 = fadd fast float %194, %190
  203. %197 = call float @dx.op.bitcastI32toF32(i32 126, i32 %12)
  204. %198 = call float @dx.op.bitcastI32toF32(i32 126, i32 %13)
  205. %199 = call float @dx.op.bitcastI32toF32(i32 126, i32 %15)
  206. %200 = fadd fast float %197, %195
  207. %201 = fadd fast float %198, %196
  208. %202 = fadd fast float %199, %191
  209. %203 = and i32 %17, %61
  210. %204 = and i32 %18, %61
  211. %205 = and i32 %42, %61
  212. %206 = and i32 %41, %61
  213. %207 = and i32 %19, %64
  214. %208 = and i32 %21, %64
  215. %209 = or i32 %203, %207
  216. %210 = or i32 %204, %208
  217. %211 = and i32 %22, %87
  218. %212 = and i32 %23, %87
  219. %213 = and i32 %48, %87
  220. %214 = and i32 %47, %87
  221. %215 = and i32 %24, %93
  222. %216 = and i32 %26, %93
  223. %217 = or i32 %209, %211
  224. %218 = or i32 %210, %212
  225. %219 = or i32 %217, %215
  226. %220 = or i32 %218, %216
  227. %221 = sitofp i32 %219 to float
  228. %222 = sitofp i32 %220 to float
  229. %223 = fadd fast float %222, %201
  230. %224 = fadd fast float %221, %192
  231. %225 = fadd fast float %29, %200
  232. %226 = fadd fast float %31, %223
  233. %227 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %32)
  234. %228 = sext i1 %227 to i32
  235. %229 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 16)
  236. %230 = extractvalue %dx.types.ResRet.i32 %229, 4
  237. %231 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %230)
  238. %232 = sext i1 %231 to i32
  239. %233 = and i32 %228, %232
  240. %234 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 32)
  241. %235 = extractvalue %dx.types.ResRet.i32 %234, 4
  242. %236 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 48)
  243. %237 = extractvalue %dx.types.ResRet.i32 %236, 4
  244. %238 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %237)
  245. %239 = sext i1 %238 to i32
  246. %240 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %235)
  247. %241 = sext i1 %240 to i32
  248. %242 = and i32 %233, %241
  249. %243 = and i32 %242, %239
  250. %244 = uitofp i32 %243 to float
  251. %245 = fadd fast float %244, %225
  252. %246 = fadd fast float %244, %226
  253. %247 = fadd fast float %244, %202
  254. %248 = fadd fast float %244, %224
  255. %249 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %36)
  256. %250 = sext i1 %249 to i32
  257. %251 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %39)
  258. %252 = sext i1 %251 to i32
  259. %253 = and i32 %250, %252
  260. %254 = call float @dx.op.bitcastI32toF32(i32 126, i32 %34)
  261. %255 = call float @dx.op.bitcastI32toF32(i32 126, i32 %35)
  262. %256 = call float @dx.op.bitcastI32toF32(i32 126, i32 %38)
  263. %257 = fadd fast float %245, %254
  264. %258 = fadd fast float %246, %255
  265. %259 = fadd fast float %247, %256
  266. %260 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 32)
  267. %261 = extractvalue %dx.types.ResRet.i32 %260, 4
  268. %262 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %261)
  269. %263 = sext i1 %262 to i32
  270. %264 = and i32 %253, %263
  271. %265 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 48)
  272. %266 = extractvalue %dx.types.ResRet.i32 %265, 4
  273. %267 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 0)
  274. %268 = extractvalue %dx.types.ResRet.i32 %267, 4
  275. %269 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %268)
  276. %270 = sext i1 %269 to i32
  277. %271 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %266)
  278. %272 = sext i1 %271 to i32
  279. %273 = and i32 %264, %272
  280. %274 = uitofp i32 %273 to float
  281. %275 = fadd fast float %274, %257
  282. %276 = fadd fast float %274, %258
  283. %277 = fadd fast float %274, %259
  284. %278 = fadd fast float %274, %248
  285. %279 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %44)
  286. %280 = sext i1 %279 to i32
  287. %281 = and i32 %270, %280
  288. %282 = and i32 %64, %46
  289. %283 = and i32 %64, %43
  290. %284 = or i32 %205, %282
  291. %285 = or i32 %206, %283
  292. %286 = or i32 %284, %213
  293. %287 = or i32 %285, %214
  294. %288 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %50)
  295. %289 = sext i1 %288 to i32
  296. %290 = and i32 %281, %289
  297. %291 = and i32 %93, %52
  298. %292 = and i32 %93, %49
  299. %293 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %53)
  300. %294 = sext i1 %293 to i32
  301. %295 = and i32 %290, %294
  302. %296 = uitofp i32 %295 to float
  303. %297 = or i32 %286, %291
  304. %298 = or i32 %287, %292
  305. %299 = sitofp i32 %297 to float
  306. %300 = sitofp i32 %298 to float
  307. %301 = fadd fast float %299, %276
  308. %302 = fadd fast float %300, %278
  309. %303 = fadd fast float %296, %275
  310. %304 = call i32 @dx.op.bitcastF32toI32(i32 127, float %303)
  311. %305 = fadd fast float %296, %301
  312. %306 = call i32 @dx.op.bitcastF32toI32(i32 127, float %305)
  313. %307 = fadd fast float %296, %277
  314. %308 = call i32 @dx.op.bitcastF32toI32(i32 127, float %307)
  315. %309 = fadd fast float %296, %302
  316. %310 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  317. %311 = fmul fast float %310, 3.000000e+00
  318. %312 = fptoui float %311 to i32
  319. call void @dx.op.bufferStore.i32(i32 69, %dx.types.Handle %1, i32 %312, i32 0, i32 %304, i32 %306, i32 undef, i32 undef, i8 3)
  320. call void @dx.op.bufferStore.i32(i32 69, %dx.types.Handle %1, i32 %312, i32 8, i32 %304, i32 %306, i32 %308, i32 undef, i8 7)
  321. %313 = fptosi float %305 to i32
  322. %314 = fptosi float %309 to i32
  323. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %303)
  324. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %305)
  325. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %307)
  326. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float %309)
  327. call void @dx.op.bufferStore.i32(i32 69, %dx.types.Handle %1, i32 %312, i32 %86, i32 %313, i32 %314, i32 undef, i32 undef, i8 3)
  328. ret void
  329. }
  330. ; Function Attrs: nounwind readonly
  331. declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
  332. ; Function Attrs: nounwind readnone
  333. declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #1
  334. ; Function Attrs: nounwind
  335. declare void @dx.op.tempRegStore.f32(i32, i32, float) #2
  336. ; Function Attrs: nounwind readonly
  337. declare float @dx.op.tempRegLoad.f32(i32, i32) #0
  338. ; Function Attrs: nounwind
  339. declare void @dx.op.tempRegStore.i32(i32, i32, i32) #2
  340. ; Function Attrs: nounwind readonly
  341. declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0
  342. ; Function Attrs: nounwind readonly
  343. declare %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32, %dx.types.Handle, i32, i32) #0
  344. ; Function Attrs: nounwind readonly
  345. declare i1 @dx.op.checkAccessFullyMapped.i32(i32, i32) #0
  346. ; Function Attrs: nounwind
  347. declare void @dx.op.bufferStore.i32(i32, %dx.types.Handle, i32, i32, i32, i32, i32, i32, i8) #2
  348. ; Function Attrs: nounwind
  349. declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #2
  350. ; Function Attrs: nounwind readnone
  351. declare i32 @dx.op.bitcastF32toI32(i32, float) #1
  352. ; Function Attrs: nounwind readnone
  353. declare float @dx.op.bitcastI32toF32(i32, i32) #1
  354. attributes #0 = { nounwind readonly }
  355. attributes #1 = { nounwind readnone }
  356. attributes #2 = { nounwind }
  357. !dx.version = !{!0}
  358. !dx.valver = !{!0}
  359. !dx.shaderModel = !{!1}
  360. !dx.resources = !{!2}
  361. !dx.entryPoints = !{!8}
  362. !llvm.ident = !{!19}
  363. !0 = !{i32 1, i32 0}
  364. !1 = !{!"ps", i32 6, i32 0}
  365. !2 = !{!3, !6, null, null}
  366. !3 = !{!4}
  367. !4 = !{i32 0, %dx.types.i8x52 addrspace(1)* undef, !"T0", i32 0, i32 0, i32 1, i32 12, i32 0, !5}
  368. !5 = !{i32 1, i32 52}
  369. !6 = !{!7}
  370. !7 = !{i32 0, %dx.types.i8x52 addrspace(1)* undef, !"U0", i32 0, i32 1, i32 1, i32 12, i1 false, i1 false, i1 false, !5}
  371. !8 = !{void ()* @main, !"main", !9, !2, !18}
  372. !9 = !{!10, !15, null}
  373. !10 = !{!11, !13}
  374. !11 = !{i32 0, !"Idx", i8 9, i8 0, !12, i8 2, i32 1, i8 1, i32 0, i8 0, null}
  375. !12 = !{i32 1}
  376. !13 = !{i32 1, !"Idx", i8 9, i8 0, !14, i8 2, i32 1, i8 1, i32 0, i8 1, null}
  377. !14 = !{i32 2}
  378. !15 = !{!16}
  379. !16 = !{i32 0, !"SV_Target", i8 9, i8 16, !17, i8 0, i32 1, i8 4, i32 0, i8 0, null}
  380. !17 = !{i32 0}
  381. !18 = !{i32 0, i64 256}
  382. !19 = !{!"dxbc2dxil 1.2"}