samplepos.ref 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. %dx.types.Handle = type { i8* }
  2. %dx.types.SamplePos = type { float, float }
  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 float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 2, i32 undef)
  9. %3 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 3, i32 undef)
  10. %4 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  11. %5 = fptosi float %2 to i32
  12. %6 = fptosi float %3 to i32
  13. %7 = fptosi float %4 to i32
  14. %8 = call %dx.types.SamplePos @dx.op.texture2DMSGetSamplePosition(i32 75, %dx.types.Handle %0, i32 %5)
  15. %9 = extractvalue %dx.types.SamplePos %8, 0
  16. %10 = extractvalue %dx.types.SamplePos %8, 1
  17. %11 = call %dx.types.SamplePos @dx.op.texture2DMSGetSamplePosition(i32 75, %dx.types.Handle %1, i32 %6)
  18. %12 = extractvalue %dx.types.SamplePos %11, 0
  19. %13 = extractvalue %dx.types.SamplePos %11, 1
  20. %14 = call %dx.types.SamplePos @dx.op.renderTargetGetSamplePosition(i32 76, i32 %7)
  21. %15 = extractvalue %dx.types.SamplePos %14, 0
  22. %16 = extractvalue %dx.types.SamplePos %14, 1
  23. %17 = fadd fast float %9, %12
  24. %18 = fadd fast float %10, %13
  25. %19 = call %dx.types.SamplePos @dx.op.renderTargetGetSamplePosition(i32 76, i32 3)
  26. %20 = extractvalue %dx.types.SamplePos %19, 0
  27. %21 = extractvalue %dx.types.SamplePos %19, 1
  28. %22 = fadd fast float %17, %20
  29. %23 = fadd fast float %18, %21
  30. %24 = fadd fast float %15, %22
  31. %25 = fadd fast float %16, %23
  32. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %24)
  33. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %25)
  34. %26 = fadd fast float %24, 5.000000e+00
  35. %27 = fadd fast float %25, 5.000000e+00
  36. call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 0, float %26)
  37. call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 1, float %27)
  38. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float 0.000000e+00)
  39. call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float 0.000000e+00)
  40. call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 2, float 5.000000e+00)
  41. call void @dx.op.storeOutput.f32(i32 5, i32 1, i32 0, i8 3, float 5.000000e+00)
  42. ret void
  43. }
  44. ; Function Attrs: nounwind readonly
  45. declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
  46. ; Function Attrs: nounwind readnone
  47. declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #1
  48. ; Function Attrs: nounwind
  49. declare void @dx.op.tempRegStore.i32(i32, i32, i32) #2
  50. ; Function Attrs: nounwind readonly
  51. declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0
  52. ; Function Attrs: nounwind readonly
  53. declare %dx.types.SamplePos @dx.op.texture2DMSGetSamplePosition(i32, %dx.types.Handle, i32) #0
  54. ; Function Attrs: nounwind
  55. declare void @dx.op.tempRegStore.f32(i32, i32, float) #2
  56. ; Function Attrs: nounwind readonly
  57. declare %dx.types.SamplePos @dx.op.renderTargetGetSamplePosition(i32, i32) #0
  58. ; Function Attrs: nounwind readonly
  59. declare float @dx.op.tempRegLoad.f32(i32, i32) #0
  60. ; Function Attrs: nounwind
  61. declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #2
  62. ; Function Attrs: nounwind readnone
  63. declare float @dx.op.bitcastI32toF32(i32, i32) #1
  64. ; Function Attrs: nounwind readnone
  65. declare i32 @dx.op.bitcastF32toI32(i32, float) #1
  66. attributes #0 = { nounwind readonly }
  67. attributes #1 = { nounwind readnone }
  68. attributes #2 = { nounwind }
  69. !dx.version = !{!0}
  70. !dx.valver = !{!0}
  71. !dx.shaderModel = !{!1}
  72. !dx.resources = !{!2}
  73. !dx.entryPoints = !{!7}
  74. !llvm.ident = !{!17}
  75. !0 = !{i32 1, i32 0}
  76. !1 = !{!"ps", i32 6, i32 0}
  77. !2 = !{!3, null, null, null}
  78. !3 = !{!4, !6}
  79. !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 0, i32 0, i32 1, i32 3, i32 0, !5}
  80. !5 = !{i32 0, i32 9}
  81. !6 = !{i32 1, %dx.types.f32 addrspace(1)* undef, !"T1", i32 0, i32 1, i32 1, i32 8, i32 0, !5}
  82. !7 = !{void ()* @main, !"main", !8, !2, !16}
  83. !8 = !{!9, !12, null}
  84. !9 = !{!10}
  85. !10 = !{i32 0, !"A", i8 9, i8 0, !11, i8 2, i32 1, i8 4, i32 0, i8 0, null}
  86. !11 = !{i32 0}
  87. !12 = !{!13, !14}
  88. !13 = !{i32 0, !"SV_Target", i8 9, i8 16, !11, i8 0, i32 1, i8 4, i32 0, i8 0, null}
  89. !14 = !{i32 1, !"SV_Target", i8 9, i8 16, !15, i8 0, i32 1, i8 4, i32 1, i8 0, null}
  90. !15 = !{i32 1}
  91. !16 = !{i32 0, i64 256}
  92. !17 = !{!"dxbc2dxil 1.2"}