sample_cmp1.ref 5.5 KB

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