sample_l1.ref 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. %dx.types.Handle = type { i8* }
  2. %dx.types.ResRet.f32 = type { float, float, float, float, i32 }
  3. %dx.types.f32 = type { float }
  4. %dx.types.Sampler = type opaque
  5. define void @main() {
  6. entry:
  7. %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 3, i1 false)
  8. %1 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 5, i1 false)
  9. %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 5, i1 false)
  10. %3 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  11. %4 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  12. %5 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  13. %6 = call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62, %dx.types.Handle %0, %dx.types.Handle %2, float %3, float %4, float undef, float undef, i32 0, i32 0, i32 undef, float %5)
  14. %7 = extractvalue %dx.types.ResRet.f32 %6, 0
  15. %8 = extractvalue %dx.types.ResRet.f32 %6, 1
  16. %9 = extractvalue %dx.types.ResRet.f32 %6, 2
  17. %10 = extractvalue %dx.types.ResRet.f32 %6, 3
  18. %11 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  19. %12 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  20. %13 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  21. %14 = call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62, %dx.types.Handle %0, %dx.types.Handle %2, float %11, float %12, float undef, float undef, i32 -5, i32 7, i32 undef, float %13)
  22. %15 = extractvalue %dx.types.ResRet.f32 %14, 0
  23. %16 = extractvalue %dx.types.ResRet.f32 %14, 1
  24. %17 = extractvalue %dx.types.ResRet.f32 %14, 2
  25. %18 = extractvalue %dx.types.ResRet.f32 %14, 3
  26. %19 = fadd fast float %7, %15
  27. %20 = fadd fast float %8, %16
  28. %21 = fadd fast float %9, %17
  29. %22 = fadd fast float %10, %18
  30. %23 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  31. %24 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  32. %25 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  33. %26 = call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62, %dx.types.Handle %0, %dx.types.Handle %2, float %23, float %24, float undef, float undef, i32 -4, i32 1, i32 undef, float %25)
  34. %27 = extractvalue %dx.types.ResRet.f32 %26, 0
  35. %28 = extractvalue %dx.types.ResRet.f32 %26, 1
  36. %29 = extractvalue %dx.types.ResRet.f32 %26, 2
  37. %30 = extractvalue %dx.types.ResRet.f32 %26, 3
  38. %31 = fadd fast float %19, %27
  39. %32 = fadd fast float %20, %28
  40. %33 = fadd fast float %21, %29
  41. %34 = fadd fast float %22, %30
  42. %35 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  43. %36 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  44. %37 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  45. %38 = call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62, %dx.types.Handle %0, %dx.types.Handle %2, float %35, float %36, float undef, float undef, i32 -3, i32 2, i32 undef, float %37)
  46. %39 = extractvalue %dx.types.ResRet.f32 %38, 0
  47. %40 = extractvalue %dx.types.ResRet.f32 %38, 1
  48. %41 = extractvalue %dx.types.ResRet.f32 %38, 2
  49. %42 = extractvalue %dx.types.ResRet.f32 %38, 3
  50. %43 = extractvalue %dx.types.ResRet.f32 %38, 4
  51. %44 = fadd fast float %31, %39
  52. %45 = fadd fast float %32, %40
  53. %46 = fadd fast float %33, %41
  54. %47 = fadd fast float %34, %42
  55. %48 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %43)
  56. %49 = sext i1 %48 to i32
  57. %50 = uitofp i32 %49 to float
  58. %51 = fadd fast float %44, %50
  59. %52 = fadd fast float %45, %50
  60. %53 = fadd fast float %46, %50
  61. %54 = fadd fast float %47, %50
  62. %55 = fadd fast float %39, %51
  63. %56 = fadd fast float %40, %52
  64. %57 = fadd fast float %41, %53
  65. %58 = fadd fast float %42, %54
  66. %59 = fadd fast float %50, %55
  67. %60 = fadd fast float %50, %56
  68. %61 = fadd fast float %50, %57
  69. %62 = fadd fast float %50, %58
  70. %63 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  71. %64 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  72. %65 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 2, i32 undef)
  73. %66 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 3, i32 undef)
  74. %67 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  75. %68 = call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62, %dx.types.Handle %1, %dx.types.Handle %2, float %63, float %64, float %65, float %66, i32 0, i32 0, i32 0, float %67)
  76. %69 = extractvalue %dx.types.ResRet.f32 %68, 0
  77. %70 = extractvalue %dx.types.ResRet.f32 %68, 1
  78. %71 = extractvalue %dx.types.ResRet.f32 %68, 2
  79. %72 = extractvalue %dx.types.ResRet.f32 %68, 3
  80. %73 = call float @dx.op.tertiary.f32(i32 46, float %69, float 3.000000e+00, float %59)
  81. %74 = call float @dx.op.tertiary.f32(i32 46, float %70, float 3.000000e+00, float %60)
  82. %75 = call float @dx.op.tertiary.f32(i32 46, float %71, float 3.000000e+00, float %61)
  83. %76 = call float @dx.op.tertiary.f32(i32 46, float %72, float 3.000000e+00, float %62)
  84. %77 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  85. %78 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  86. %79 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 2, i32 undef)
  87. %80 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 3, i32 undef)
  88. %81 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  89. %82 = call %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32 62, %dx.types.Handle %1, %dx.types.Handle %2, float %77, float %78, float %79, float %80, i32 0, i32 0, i32 0, float %81)
  90. %83 = extractvalue %dx.types.ResRet.f32 %82, 0
  91. %84 = extractvalue %dx.types.ResRet.f32 %82, 1
  92. %85 = extractvalue %dx.types.ResRet.f32 %82, 2
  93. %86 = extractvalue %dx.types.ResRet.f32 %82, 3
  94. %87 = extractvalue %dx.types.ResRet.f32 %82, 4
  95. %88 = fadd fast float %73, %83
  96. %89 = fadd fast float %74, %84
  97. %90 = fadd fast float %75, %85
  98. %91 = fadd fast float %76, %86
  99. %92 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %87)
  100. %93 = sext i1 %92 to i32
  101. %94 = uitofp i32 %93 to float
  102. %95 = fadd fast float %88, %94
  103. %96 = fadd fast float %89, %94
  104. %97 = fadd fast float %90, %94
  105. %98 = fadd fast float %91, %94
  106. %99 = fadd fast float %83, %95
  107. %100 = fadd fast float %84, %96
  108. %101 = fadd fast float %85, %97
  109. %102 = fadd fast float %86, %98
  110. %103 = fadd fast float %94, %99
  111. %104 = fadd fast float %94, %100
  112. %105 = fadd fast float %94, %101
  113. %106 = fadd fast float %94, %102
  114. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %103)
  115. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %104)
  116. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %105)
  117. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float %106)
  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 readnone
  123. declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #1
  124. ; Function Attrs: nounwind readonly
  125. declare %dx.types.ResRet.f32 @dx.op.sampleLevel.f32(i32, %dx.types.Handle, %dx.types.Handle, float, float, float, float, i32, i32, i32, float) #0
  126. ; Function Attrs: nounwind
  127. declare void @dx.op.tempRegStore.f32(i32, i32, float) #2
  128. ; Function Attrs: nounwind readonly
  129. declare float @dx.op.tempRegLoad.f32(i32, i32) #0
  130. ; Function Attrs: nounwind
  131. declare void @dx.op.tempRegStore.i32(i32, i32, i32) #2
  132. ; Function Attrs: nounwind readonly
  133. declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0
  134. ; Function Attrs: nounwind readonly
  135. declare i1 @dx.op.checkAccessFullyMapped.i32(i32, i32) #0
  136. ; Function Attrs: nounwind readnone
  137. declare float @dx.op.tertiary.f32(i32, float, float, float) #1
  138. ; Function Attrs: nounwind
  139. declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #2
  140. ; Function Attrs: nounwind readnone
  141. declare i32 @dx.op.bitcastF32toI32(i32, float) #1
  142. ; Function Attrs: nounwind readnone
  143. declare float @dx.op.bitcastI32toF32(i32, i32) #1
  144. attributes #0 = { nounwind readonly }
  145. attributes #1 = { nounwind readnone }
  146. attributes #2 = { nounwind }
  147. !dx.version = !{!0}
  148. !dx.valver = !{!0}
  149. !dx.shaderModel = !{!1}
  150. !dx.resources = !{!2}
  151. !dx.entryPoints = !{!9}
  152. !llvm.ident = !{!17}
  153. !0 = !{i32 1, i32 0}
  154. !1 = !{!"ps", i32 6, i32 0}
  155. !2 = !{!3, null, null, !7}
  156. !3 = !{!4, !6}
  157. !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 0, i32 3, i32 1, i32 2, i32 0, !5}
  158. !5 = !{i32 0, i32 9}
  159. !6 = !{i32 1, %dx.types.f32 addrspace(1)* undef, !"T1", i32 0, i32 5, i32 1, i32 9, i32 0, !5}
  160. !7 = !{!8}
  161. !8 = !{i32 0, %dx.types.Sampler addrspace(1)* undef, !"S0", i32 0, i32 5, i32 1, i32 0, null}
  162. !9 = !{void ()* @main, !"main", !10, !2, !16}
  163. !10 = !{!11, !14, null}
  164. !11 = !{!12}
  165. !12 = !{i32 0, !"A", i8 9, i8 0, !13, i8 2, i32 1, i8 4, i32 0, i8 0, null}
  166. !13 = !{i32 0}
  167. !14 = !{!15}
  168. !15 = !{i32 0, !"SV_Target", i8 9, i8 16, !13, i8 0, i32 1, i8 4, i32 0, i8 0, null}
  169. !16 = !{i32 0, i64 256}
  170. !17 = !{!"dxbc2dxil 1.2"}