abs2_m.ll 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. ; RUN: %dxv %s | FileCheck %s
  2. ; CHECK: DXIL intrinsic overload must be valid
  3. ; Change dx.op.loadInput.i32(i32 4 to dx.op.loadInput.i32(i32 3
  4. ;
  5. ; Input signature:
  6. ;
  7. ; Name Index Mask Register SysValue Format Used
  8. ; -------------------- ----- ------ -------- -------- ------- ------
  9. ; A 0 xyzw 0 NONE int
  10. ;
  11. ;
  12. ; Output signature:
  13. ;
  14. ; Name Index Mask Register SysValue Format Used
  15. ; -------------------- ----- ------ -------- -------- ------- ------
  16. ; SV_Target 0 xyzw 0 TARGET int xyzw
  17. ;
  18. ;
  19. ; Pipeline Runtime Information:
  20. ;
  21. ; Pixel Shader
  22. ; DepthOutput=0
  23. ; SampleFrequency=0
  24. ;
  25. ;
  26. ; Input signature:
  27. ;
  28. ; Name Index InterpMode
  29. ; -------------------- ----- ----------------------
  30. ; A 0 nointerpolation
  31. ;
  32. ; Output signature:
  33. ;
  34. ; Name Index InterpMode
  35. ; -------------------- ----- ----------------------
  36. ; SV_Target 0
  37. ;
  38. ; Buffer Definitions:
  39. ;
  40. ;
  41. ; Resource Bindings:
  42. ;
  43. ; Name Type Format Dim ID HLSL Bind Count
  44. ; ------------------------------ ---------- ------- ----------- ------- -------------- ------
  45. ;
  46. target datalayout = "e-m:e-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
  47. target triple = "dxil-ms-dx"
  48. ; Function Attrs: nounwind
  49. define void @"\01?main@@YA?AV?$vector@H$03@@V1@@Z.flat"(<4 x i32>, <4 x i32>* nocapture readnone) #0 {
  50. entry:
  51. %2 = tail call i32 @dx.op.loadInput.i32(i32 3, i32 0, i32 0, i8 0, i32 undef) ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
  52. %3 = tail call i32 @dx.op.loadInput.i32(i32 4, i32 0, i32 0, i8 1, i32 undef) ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
  53. %4 = tail call i32 @dx.op.loadInput.i32(i32 4, i32 0, i32 0, i8 2, i32 undef) ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
  54. %5 = tail call i32 @dx.op.loadInput.i32(i32 4, i32 0, i32 0, i8 3, i32 undef) ; LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)
  55. %.i0 = xor i32 %3, -2147483648
  56. %.i1 = xor i32 %2, -2147483648
  57. %add.i0 = add i32 %.i0, %2
  58. %add.i1 = add i32 %3, %.i1
  59. %add.i2 = add i32 %4, %.i1
  60. %add.i3 = add i32 %5, %.i1
  61. tail call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 0, i32 %add.i0) ; StoreOutput(outputSigId,rowIndex,colIndex,value)
  62. tail call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 1, i32 %add.i1) ; StoreOutput(outputSigId,rowIndex,colIndex,value)
  63. tail call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 2, i32 %add.i2) ; StoreOutput(outputSigId,rowIndex,colIndex,value)
  64. tail call void @dx.op.storeOutput.i32(i32 5, i32 0, i32 0, i8 3, i32 %add.i3) ; StoreOutput(outputSigId,rowIndex,colIndex,value)
  65. ret void
  66. }
  67. ; Function Attrs: nounwind readnone
  68. declare i32 @dx.op.loadInput.i32(i32, i32, i32, i8, i32) #1
  69. ; Function Attrs: nounwind
  70. declare void @dx.op.storeOutput.i32(i32, i32, i32, i8, i32) #0
  71. attributes #0 = { nounwind }
  72. attributes #1 = { nounwind readnone }
  73. !llvm.ident = !{!0}
  74. !dx.version = !{!1}
  75. !dx.shaderModel = !{!2}
  76. !dx.typeAnnotations = !{!3}
  77. !dx.entryPoints = !{!12}
  78. !0 = !{!"clang version 3.7.0 (tags/RELEASE_370/final)"}
  79. !1 = !{i32 1, i32 0}
  80. !2 = !{!"ps", i32 6, i32 0}
  81. !3 = !{i32 1, void (<4 x i32>, <4 x i32>*)* @"\01?main@@YA?AV?$vector@H$03@@V1@@Z.flat", !4}
  82. !4 = !{!5, !7, !10}
  83. !5 = !{i32 0, !6, !6}
  84. !6 = !{}
  85. !7 = !{i32 0, !8, !9}
  86. !8 = !{i32 4, !"A", i32 7, i32 4}
  87. !9 = !{i32 0}
  88. !10 = !{i32 1, !11, !9}
  89. !11 = !{i32 4, !"SV_TARGET", i32 7, i32 4}
  90. !12 = !{void (<4 x i32>, <4 x i32>*)* @"\01?main@@YA?AV?$vector@H$03@@V1@@Z.flat", !"", !13, null, null}
  91. !13 = !{!14, !16, null}
  92. !14 = !{!15}
  93. !15 = !{i32 0, !"A", i8 4, i8 0, !9, i8 1, i32 1, i8 4, i32 0, i8 0, null}
  94. !16 = !{!17}
  95. !17 = !{i32 0, !"SV_Target", i8 4, i8 16, !9, i8 0, i32 1, i8 4, i32 0, i8 0, null}