index_signedness_src.spvasm 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. ;; Test where signedness of indices are different between src and dst.
  2. OpCapability Shader
  3. %1 = OpExtInstImport "GLSL.std.450"
  4. OpMemoryModel Logical GLSL450
  5. OpEntryPoint GLCompute %4 "main"
  6. OpExecutionMode %4 LocalSize 1 1 1
  7. OpSource ESSL 310
  8. OpName %4 "main"
  9. OpName %13 "BufferOut"
  10. OpMemberName %13 0 "o1"
  11. OpMemberName %13 1 "o2"
  12. OpMemberName %13 2 "o3"
  13. OpName %15 ""
  14. OpName %22 "BufferIn"
  15. OpMemberName %22 0 "i1"
  16. OpMemberName %22 1 "i2"
  17. OpName %24 ""
  18. OpDecorate %8 ArrayStride 4
  19. OpDecorate %9 ArrayStride 4
  20. OpDecorate %11 ArrayStride 4
  21. OpDecorate %12 ArrayStride 8
  22. OpMemberDecorate %13 0 Offset 0
  23. OpMemberDecorate %13 1 Offset 12
  24. OpMemberDecorate %13 2 Offset 24
  25. OpDecorate %13 BufferBlock
  26. OpDecorate %15 DescriptorSet 0
  27. OpDecorate %15 Binding 1
  28. OpDecorate %18 ArrayStride 16
  29. OpDecorate %19 ArrayStride 48
  30. OpDecorate %21 ArrayStride 16
  31. OpMemberDecorate %22 0 Offset 0
  32. OpMemberDecorate %22 1 Offset 96
  33. OpDecorate %22 Block
  34. OpDecorate %24 DescriptorSet 0
  35. OpDecorate %24 Binding 0
  36. %2 = OpTypeVoid
  37. %3 = OpTypeFunction %2
  38. %6 = OpTypeInt 32 0
  39. %7 = OpConstant %6 3
  40. %8 = OpTypeArray %6 %7
  41. %9 = OpTypeArray %6 %7
  42. %10 = OpConstant %6 2
  43. %11 = OpTypeArray %6 %10
  44. %12 = OpTypeArray %11 %10
  45. %13 = OpTypeStruct %8 %9 %12
  46. %14 = OpTypePointer Uniform %13
  47. %15 = OpVariable %14 Uniform
  48. %16 = OpTypeInt 32 1
  49. %17 = OpConstant %16 0
  50. %18 = OpTypeArray %6 %7
  51. %19 = OpTypeArray %18 %10
  52. %20 = OpConstant %6 4
  53. %21 = OpTypeArray %6 %20
  54. %22 = OpTypeStruct %19 %21
  55. %23 = OpTypePointer Uniform %22
  56. %24 = OpVariable %23 Uniform
  57. %25 = OpTypePointer Uniform %6
  58. %28 = OpConstant %6 1
  59. %31 = OpConstant %16 1
  60. %34 = OpConstant %6 0
  61. %37 = OpConstant %16 2
  62. %61 = OpConstant %16 3
  63. %4 = OpFunction %2 None %3
  64. %5 = OpLabel
  65. %26 = OpAccessChain %25 %24 %17 %17 %17
  66. %27 = OpLoad %6 %26
  67. %29 = OpIAdd %6 %27 %28
  68. %30 = OpAccessChain %25 %15 %17 %17
  69. OpStore %30 %29
  70. %32 = OpAccessChain %25 %24 %17 %31 %17
  71. %33 = OpLoad %6 %32
  72. %35 = OpIAdd %6 %33 %34
  73. %36 = OpAccessChain %25 %15 %17 %31
  74. OpStore %36 %35
  75. %38 = OpAccessChain %25 %24 %17 %31 %31
  76. %39 = OpLoad %6 %38
  77. %40 = OpIAdd %6 %39 %10
  78. %41 = OpAccessChain %25 %15 %17 %37
  79. OpStore %41 %40
  80. %42 = OpAccessChain %25 %24 %17 %17 %37
  81. %43 = OpLoad %6 %42
  82. %44 = OpAccessChain %25 %15 %31 %17
  83. OpStore %44 %43
  84. %45 = OpAccessChain %25 %24 %17 %17 %31
  85. %46 = OpLoad %6 %45
  86. %47 = OpIMul %6 %46 %7
  87. %48 = OpAccessChain %25 %15 %31 %31
  88. OpStore %48 %47
  89. %49 = OpAccessChain %25 %24 %17 %31 %37
  90. %50 = OpLoad %6 %49
  91. %51 = OpAccessChain %25 %15 %31 %37
  92. OpStore %51 %50
  93. %52 = OpAccessChain %25 %24 %31 %17
  94. %53 = OpLoad %6 %52
  95. %54 = OpAccessChain %25 %15 %37 %17 %17
  96. OpStore %54 %53
  97. %55 = OpAccessChain %25 %24 %31 %31
  98. %56 = OpLoad %6 %55
  99. %57 = OpAccessChain %25 %15 %37 %17 %31
  100. OpStore %57 %56
  101. %58 = OpAccessChain %25 %24 %31 %37
  102. %59 = OpLoad %6 %58
  103. %60 = OpAccessChain %25 %15 %37 %31 %17
  104. OpStore %60 %59
  105. %62 = OpAccessChain %25 %24 %31 %61
  106. %63 = OpLoad %6 %62
  107. %64 = OpAccessChain %25 %15 %37 %31 %31
  108. OpStore %64 %63
  109. OpReturn
  110. OpFunctionEnd