double5.ref 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. %dx.types.splitdouble = type { i32, i32 }
  2. define void @main() {
  3. entry:
  4. %0 = call i32 @dx.op.loadInput.i32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  5. %1 = call i32 @dx.op.loadInput.i32(i32 4, i32 0, i32 0, i8 1, i32 undef)
  6. %2 = call double @dx.op.makeDouble.f64(i32 101, i32 %0, i32 %1)
  7. %3 = call float @dx.op.legacyDoubleToFloat(i32 132, double %2)
  8. %4 = fpext float %3 to double
  9. %5 = call i32 @dx.op.loadInput.i32(i32 4, i32 1, i32 0, i8 0, i32 undef)
  10. %6 = call i32 @dx.op.loadInput.i32(i32 4, i32 1, i32 0, i8 1, i32 undef)
  11. %7 = call double @dx.op.makeDouble.f64(i32 101, i32 %5, i32 %6)
  12. %8 = call i32 @dx.op.legacyDoubleToSInt32(i32 133, double %7)
  13. %9 = sitofp i32 %8 to double
  14. %10 = fadd fast double %9, %4
  15. %11 = fadd fast double %9, %10
  16. %12 = fadd fast double %4, %11
  17. %13 = fadd fast double %9, %12
  18. %14 = call i32 @dx.op.loadInput.i32(i32 4, i32 2, i32 0, i8 0, i32 undef)
  19. %15 = call i32 @dx.op.loadInput.i32(i32 4, i32 2, i32 0, i8 1, i32 undef)
  20. %16 = call double @dx.op.makeDouble.f64(i32 101, i32 %14, i32 %15)
  21. %17 = call i32 @dx.op.legacyDoubleToUInt32(i32 134, double %16)
  22. %18 = uitofp i32 %17 to double
  23. %19 = fadd fast double %18, %13
  24. %20 = call %dx.types.splitdouble @dx.op.splitDouble.f64(i32 102, double %19)
  25. %21 = extractvalue %dx.types.splitdouble %20, 0
  26. %22 = extractvalue %dx.types.splitdouble %20, 1
  27. call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 0, i32 %21)
  28. call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 1, i32 %22)
  29. call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 2, i32 %21)
  30. call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 3, i32 %22)
  31. ret void
  32. }
  33. ; Function Attrs: nounwind readnone
  34. declare i32 @dx.op.loadInput.i32(i32, i32, i32, i8, i32) #0
  35. ; Function Attrs: nounwind
  36. declare void @dx.op.tempRegStore.i32(i32, i32, i32) #1
  37. ; Function Attrs: nounwind readonly
  38. declare i32 @dx.op.tempRegLoad.i32(i32, i32) #2
  39. ; Function Attrs: nounwind readnone
  40. declare double @dx.op.makeDouble.f64(i32, i32, i32) #0
  41. ; Function Attrs: nounwind readnone
  42. declare float @dx.op.legacyDoubleToFloat(i32, double) #0
  43. ; Function Attrs: nounwind
  44. declare void @dx.op.tempRegStore.f32(i32, i32, float) #1
  45. ; Function Attrs: nounwind readonly
  46. declare float @dx.op.tempRegLoad.f32(i32, i32) #2
  47. ; Function Attrs: nounwind readnone
  48. declare %dx.types.splitdouble @dx.op.splitDouble.f64(i32, double) #0
  49. ; Function Attrs: nounwind readnone
  50. declare i32 @dx.op.legacyDoubleToSInt32(i32, double) #0
  51. ; Function Attrs: nounwind readnone
  52. declare i32 @dx.op.legacyDoubleToUInt32(i32, double) #0
  53. ; Function Attrs: nounwind
  54. declare void @dx.op.storeOutput.i32(i32, i32, i32, i8, i32) #1
  55. ; Function Attrs: nounwind readnone
  56. declare i32 @dx.op.bitcastF32toI32(i32, float) #0
  57. ; Function Attrs: nounwind readnone
  58. declare float @dx.op.bitcastI32toF32(i32, i32) #0
  59. attributes #0 = { nounwind readnone }
  60. attributes #1 = { nounwind }
  61. attributes #2 = { nounwind readonly }
  62. !dx.version = !{!0}
  63. !dx.valver = !{!0}
  64. !dx.shaderModel = !{!1}
  65. !dx.entryPoints = !{!2}
  66. !llvm.ident = !{!12}
  67. !0 = !{i32 1, i32 0}
  68. !1 = !{!"ps", i32 6, i32 0}
  69. !2 = !{void ()* @main, !"main", !3, null, !11}
  70. !3 = !{!4, !9, null}
  71. !4 = !{!5, !7, !8}
  72. !5 = !{i32 0, !"AAA", i8 5, i8 0, !6, i8 1, i32 1, i8 4, i32 0, i8 0, null}
  73. !6 = !{i32 0}
  74. !7 = !{i32 1, !"BBB", i8 5, i8 0, !6, i8 1, i32 1, i8 4, i32 1, i8 0, null}
  75. !8 = !{i32 2, !"CCC", i8 5, i8 0, !6, i8 1, i32 1, i8 4, i32 2, i8 0, null}
  76. !9 = !{!10}
  77. !10 = !{i32 0, !"SV_Target", i8 5, i8 16, !6, i8 0, i32 1, i8 4, i32 0, i8 0, null}
  78. !11 = !{i32 0, i64 324}
  79. !12 = !{!"dxbc2dxil 1.2"}