sample3.ref 6.4 KB

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