code-object-metadata-from-llvm-ir-full.ll 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262
  1. ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX700 --check-prefix=NOTES %s
  2. ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx800 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX800 --check-prefix=NOTES %s
  3. ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX900 --check-prefix=NOTES %s
  4. ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -amdgpu-dump-comd -amdgpu-verify-comd -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
  5. ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx800 -amdgpu-dump-comd -amdgpu-verify-comd -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
  6. ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-dump-comd -amdgpu-verify-comd -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
  7. %struct.A = type { i8, float }
  8. %opencl.image1d_t = type opaque
  9. %opencl.image2d_t = type opaque
  10. %opencl.image3d_t = type opaque
  11. %opencl.queue_t = type opaque
  12. %opencl.pipe_t = type opaque
  13. %struct.B = type { i32 addrspace(1)*}
  14. %opencl.clk_event_t = type opaque
  15. ; CHECK: ---
  16. ; CHECK: Version: [ 1, 0 ]
  17. ; CHECK: Printf:
  18. ; CHECK: - '1:1:4:%d\n'
  19. ; CHECK: - '2:1:8:%g\n'
  20. ; CHECK: Kernels:
  21. ; CHECK: - Name: test_char
  22. ; CHECK-NEXT: Language: OpenCL C
  23. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  24. ; CHECK-NEXT: Args:
  25. ; CHECK-NEXT: - Size: 1
  26. ; CHECK-NEXT: Align: 1
  27. ; CHECK-NEXT: ValueKind: ByValue
  28. ; CHECK-NEXT: ValueType: I8
  29. ; CHECK-NEXT: AccQual: Default
  30. ; CHECK-NEXT: TypeName: char
  31. ; CHECK-NEXT: - Size: 8
  32. ; CHECK-NEXT: Align: 8
  33. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  34. ; CHECK-NEXT: ValueType: I64
  35. ; CHECK-NEXT: - Size: 8
  36. ; CHECK-NEXT: Align: 8
  37. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  38. ; CHECK-NEXT: ValueType: I64
  39. ; CHECK-NEXT: - Size: 8
  40. ; CHECK-NEXT: Align: 8
  41. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  42. ; CHECK-NEXT: ValueType: I64
  43. ; CHECK-NEXT: - Size: 8
  44. ; CHECK-NEXT: Align: 8
  45. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  46. ; CHECK-NEXT: ValueType: I8
  47. ; CHECK-NEXT: AddrSpaceQual: Global
  48. define amdgpu_kernel void @test_char(i8 %a)
  49. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9
  50. !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
  51. ret void
  52. }
  53. ; CHECK: - Name: test_ushort2
  54. ; CHECK-NEXT: Language: OpenCL C
  55. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  56. ; CHECK-NEXT: Args:
  57. ; CHECK-NEXT: - Size: 4
  58. ; CHECK-NEXT: Align: 4
  59. ; CHECK-NEXT: ValueKind: ByValue
  60. ; CHECK-NEXT: ValueType: U16
  61. ; CHECK-NEXT: AccQual: Default
  62. ; CHECK-NEXT: TypeName: ushort2
  63. ; CHECK-NEXT: - Size: 8
  64. ; CHECK-NEXT: Align: 8
  65. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  66. ; CHECK-NEXT: ValueType: I64
  67. ; CHECK-NEXT: - Size: 8
  68. ; CHECK-NEXT: Align: 8
  69. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  70. ; CHECK-NEXT: ValueType: I64
  71. ; CHECK-NEXT: - Size: 8
  72. ; CHECK-NEXT: Align: 8
  73. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  74. ; CHECK-NEXT: ValueType: I64
  75. ; CHECK-NEXT: - Size: 8
  76. ; CHECK-NEXT: Align: 8
  77. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  78. ; CHECK-NEXT: ValueType: I8
  79. ; CHECK-NEXT: AddrSpaceQual: Global
  80. define amdgpu_kernel void @test_ushort2(<2 x i16> %a)
  81. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10
  82. !kernel_arg_base_type !10 !kernel_arg_type_qual !4 {
  83. ret void
  84. }
  85. ; CHECK: - Name: test_int3
  86. ; CHECK-NEXT: Language: OpenCL C
  87. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  88. ; CHECK-NEXT: Args:
  89. ; CHECK-NEXT: - Size: 16
  90. ; CHECK-NEXT: Align: 16
  91. ; CHECK-NEXT: ValueKind: ByValue
  92. ; CHECK-NEXT: ValueType: I32
  93. ; CHECK-NEXT: AccQual: Default
  94. ; CHECK-NEXT: TypeName: int3
  95. ; CHECK-NEXT: - Size: 8
  96. ; CHECK-NEXT: Align: 8
  97. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  98. ; CHECK-NEXT: ValueType: I64
  99. ; CHECK-NEXT: - Size: 8
  100. ; CHECK-NEXT: Align: 8
  101. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  102. ; CHECK-NEXT: ValueType: I64
  103. ; CHECK-NEXT: - Size: 8
  104. ; CHECK-NEXT: Align: 8
  105. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  106. ; CHECK-NEXT: ValueType: I64
  107. ; CHECK-NEXT: - Size: 8
  108. ; CHECK-NEXT: Align: 8
  109. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  110. ; CHECK-NEXT: ValueType: I8
  111. ; CHECK-NEXT: AddrSpaceQual: Global
  112. define amdgpu_kernel void @test_int3(<3 x i32> %a)
  113. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11
  114. !kernel_arg_base_type !11 !kernel_arg_type_qual !4 {
  115. ret void
  116. }
  117. ; CHECK: - Name: test_ulong4
  118. ; CHECK-NEXT: Language: OpenCL C
  119. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  120. ; CHECK-NEXT: Args:
  121. ; CHECK-NEXT: - Size: 32
  122. ; CHECK-NEXT: Align: 32
  123. ; CHECK-NEXT: ValueKind: ByValue
  124. ; CHECK-NEXT: ValueType: U64
  125. ; CHECK-NEXT: AccQual: Default
  126. ; CHECK-NEXT: TypeName: ulong4
  127. ; CHECK-NEXT: - Size: 8
  128. ; CHECK-NEXT: Align: 8
  129. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  130. ; CHECK-NEXT: ValueType: I64
  131. ; CHECK-NEXT: - Size: 8
  132. ; CHECK-NEXT: Align: 8
  133. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  134. ; CHECK-NEXT: ValueType: I64
  135. ; CHECK-NEXT: - Size: 8
  136. ; CHECK-NEXT: Align: 8
  137. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  138. ; CHECK-NEXT: ValueType: I64
  139. ; CHECK-NEXT: - Size: 8
  140. ; CHECK-NEXT: Align: 8
  141. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  142. ; CHECK-NEXT: ValueType: I8
  143. ; CHECK-NEXT: AddrSpaceQual: Global
  144. define amdgpu_kernel void @test_ulong4(<4 x i64> %a)
  145. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12
  146. !kernel_arg_base_type !12 !kernel_arg_type_qual !4 {
  147. ret void
  148. }
  149. ; CHECK: - Name: test_half8
  150. ; CHECK-NEXT: Language: OpenCL C
  151. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  152. ; CHECK-NEXT: Args:
  153. ; CHECK-NEXT: - Size: 16
  154. ; CHECK-NEXT: Align: 16
  155. ; CHECK-NEXT: ValueKind: ByValue
  156. ; CHECK-NEXT: ValueType: F16
  157. ; CHECK-NEXT: AccQual: Default
  158. ; CHECK-NEXT: TypeName: half8
  159. ; CHECK-NEXT: - Size: 8
  160. ; CHECK-NEXT: Align: 8
  161. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  162. ; CHECK-NEXT: ValueType: I64
  163. ; CHECK-NEXT: - Size: 8
  164. ; CHECK-NEXT: Align: 8
  165. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  166. ; CHECK-NEXT: ValueType: I64
  167. ; CHECK-NEXT: - Size: 8
  168. ; CHECK-NEXT: Align: 8
  169. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  170. ; CHECK-NEXT: ValueType: I64
  171. ; CHECK-NEXT: - Size: 8
  172. ; CHECK-NEXT: Align: 8
  173. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  174. ; CHECK-NEXT: ValueType: I8
  175. ; CHECK-NEXT: AddrSpaceQual: Global
  176. define amdgpu_kernel void @test_half8(<8 x half> %a)
  177. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13
  178. !kernel_arg_base_type !13 !kernel_arg_type_qual !4 {
  179. ret void
  180. }
  181. ; CHECK: - Name: test_float16
  182. ; CHECK-NEXT: Language: OpenCL C
  183. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  184. ; CHECK-NEXT: Args:
  185. ; CHECK-NEXT: - Size: 64
  186. ; CHECK-NEXT: Align: 64
  187. ; CHECK-NEXT: ValueKind: ByValue
  188. ; CHECK-NEXT: ValueType: F32
  189. ; CHECK-NEXT: AccQual: Default
  190. ; CHECK-NEXT: TypeName: float16
  191. ; CHECK-NEXT: - Size: 8
  192. ; CHECK-NEXT: Align: 8
  193. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  194. ; CHECK-NEXT: ValueType: I64
  195. ; CHECK-NEXT: - Size: 8
  196. ; CHECK-NEXT: Align: 8
  197. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  198. ; CHECK-NEXT: ValueType: I64
  199. ; CHECK-NEXT: - Size: 8
  200. ; CHECK-NEXT: Align: 8
  201. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  202. ; CHECK-NEXT: ValueType: I64
  203. ; CHECK-NEXT: - Size: 8
  204. ; CHECK-NEXT: Align: 8
  205. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  206. ; CHECK-NEXT: ValueType: I8
  207. ; CHECK-NEXT: AddrSpaceQual: Global
  208. define amdgpu_kernel void @test_float16(<16 x float> %a)
  209. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14
  210. !kernel_arg_base_type !14 !kernel_arg_type_qual !4 {
  211. ret void
  212. }
  213. ; CHECK: - Name: test_double16
  214. ; CHECK-NEXT: Language: OpenCL C
  215. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  216. ; CHECK-NEXT: Args:
  217. ; CHECK-NEXT: - Size: 128
  218. ; CHECK-NEXT: Align: 128
  219. ; CHECK-NEXT: ValueKind: ByValue
  220. ; CHECK-NEXT: ValueType: F64
  221. ; CHECK-NEXT: AccQual: Default
  222. ; CHECK-NEXT: TypeName: double16
  223. ; CHECK-NEXT: - Size: 8
  224. ; CHECK-NEXT: Align: 8
  225. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  226. ; CHECK-NEXT: ValueType: I64
  227. ; CHECK-NEXT: - Size: 8
  228. ; CHECK-NEXT: Align: 8
  229. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  230. ; CHECK-NEXT: ValueType: I64
  231. ; CHECK-NEXT: - Size: 8
  232. ; CHECK-NEXT: Align: 8
  233. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  234. ; CHECK-NEXT: ValueType: I64
  235. ; CHECK-NEXT: - Size: 8
  236. ; CHECK-NEXT: Align: 8
  237. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  238. ; CHECK-NEXT: ValueType: I8
  239. ; CHECK-NEXT: AddrSpaceQual: Global
  240. define amdgpu_kernel void @test_double16(<16 x double> %a)
  241. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15
  242. !kernel_arg_base_type !15 !kernel_arg_type_qual !4 {
  243. ret void
  244. }
  245. ; CHECK: - Name: test_pointer
  246. ; CHECK-NEXT: Language: OpenCL C
  247. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  248. ; CHECK-NEXT: Args:
  249. ; CHECK-NEXT: - Size: 8
  250. ; CHECK-NEXT: Align: 8
  251. ; CHECK-NEXT: ValueKind: GlobalBuffer
  252. ; CHECK-NEXT: ValueType: I32
  253. ; CHECK-NEXT: AccQual: Default
  254. ; CHECK-NEXT: AddrSpaceQual: Global
  255. ; CHECK-NEXT: TypeName: 'int *'
  256. ; CHECK-NEXT: - Size: 8
  257. ; CHECK-NEXT: Align: 8
  258. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  259. ; CHECK-NEXT: ValueType: I64
  260. ; CHECK-NEXT: - Size: 8
  261. ; CHECK-NEXT: Align: 8
  262. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  263. ; CHECK-NEXT: ValueType: I64
  264. ; CHECK-NEXT: - Size: 8
  265. ; CHECK-NEXT: Align: 8
  266. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  267. ; CHECK-NEXT: ValueType: I64
  268. ; CHECK-NEXT: - Size: 8
  269. ; CHECK-NEXT: Align: 8
  270. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  271. ; CHECK-NEXT: ValueType: I8
  272. ; CHECK-NEXT: AddrSpaceQual: Global
  273. define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a)
  274. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16
  275. !kernel_arg_base_type !16 !kernel_arg_type_qual !4 {
  276. ret void
  277. }
  278. ; CHECK: - Name: test_image
  279. ; CHECK-NEXT: Language: OpenCL C
  280. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  281. ; CHECK-NEXT: Args:
  282. ; CHECK-NEXT: - Size: 8
  283. ; CHECK-NEXT: Align: 8
  284. ; CHECK-NEXT: ValueKind: Image
  285. ; CHECK-NEXT: ValueType: Struct
  286. ; CHECK-NEXT: AccQual: Default
  287. ; CHECK-NEXT: AddrSpaceQual: Global
  288. ; CHECK-NEXT: TypeName: image2d_t
  289. ; CHECK-NEXT: - Size: 8
  290. ; CHECK-NEXT: Align: 8
  291. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  292. ; CHECK-NEXT: ValueType: I64
  293. ; CHECK-NEXT: - Size: 8
  294. ; CHECK-NEXT: Align: 8
  295. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  296. ; CHECK-NEXT: ValueType: I64
  297. ; CHECK-NEXT: - Size: 8
  298. ; CHECK-NEXT: Align: 8
  299. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  300. ; CHECK-NEXT: ValueType: I64
  301. ; CHECK-NEXT: - Size: 8
  302. ; CHECK-NEXT: Align: 8
  303. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  304. ; CHECK-NEXT: ValueType: I8
  305. ; CHECK-NEXT: AddrSpaceQual: Global
  306. define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a)
  307. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17
  308. !kernel_arg_base_type !17 !kernel_arg_type_qual !4 {
  309. ret void
  310. }
  311. ; CHECK: - Name: test_sampler
  312. ; CHECK-NEXT: Language: OpenCL C
  313. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  314. ; CHECK-NEXT: Args:
  315. ; CHECK-NEXT: - Size: 4
  316. ; CHECK-NEXT: Align: 4
  317. ; CHECK-NEXT: ValueKind: Sampler
  318. ; CHECK-NEXT: ValueType: I32
  319. ; CHECK-NEXT: AccQual: Default
  320. ; CHECK-NEXT: TypeName: sampler_t
  321. ; CHECK-NEXT: - Size: 8
  322. ; CHECK-NEXT: Align: 8
  323. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  324. ; CHECK-NEXT: ValueType: I64
  325. ; CHECK-NEXT: - Size: 8
  326. ; CHECK-NEXT: Align: 8
  327. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  328. ; CHECK-NEXT: ValueType: I64
  329. ; CHECK-NEXT: - Size: 8
  330. ; CHECK-NEXT: Align: 8
  331. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  332. ; CHECK-NEXT: ValueType: I64
  333. ; CHECK-NEXT: - Size: 8
  334. ; CHECK-NEXT: Align: 8
  335. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  336. ; CHECK-NEXT: ValueType: I8
  337. ; CHECK-NEXT: AddrSpaceQual: Global
  338. define amdgpu_kernel void @test_sampler(i32 %a)
  339. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18
  340. !kernel_arg_base_type !18 !kernel_arg_type_qual !4 {
  341. ret void
  342. }
  343. ; CHECK: - Name: test_queue
  344. ; CHECK-NEXT: Language: OpenCL C
  345. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  346. ; CHECK-NEXT: Args:
  347. ; CHECK-NEXT: - Size: 8
  348. ; CHECK-NEXT: Align: 8
  349. ; CHECK-NEXT: ValueKind: Queue
  350. ; CHECK-NEXT: ValueType: Struct
  351. ; CHECK-NEXT: AccQual: Default
  352. ; CHECK-NEXT: AddrSpaceQual: Global
  353. ; CHECK-NEXT: TypeName: queue_t
  354. ; CHECK-NEXT: - Size: 8
  355. ; CHECK-NEXT: Align: 8
  356. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  357. ; CHECK-NEXT: ValueType: I64
  358. ; CHECK-NEXT: - Size: 8
  359. ; CHECK-NEXT: Align: 8
  360. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  361. ; CHECK-NEXT: ValueType: I64
  362. ; CHECK-NEXT: - Size: 8
  363. ; CHECK-NEXT: Align: 8
  364. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  365. ; CHECK-NEXT: ValueType: I64
  366. ; CHECK-NEXT: - Size: 8
  367. ; CHECK-NEXT: Align: 8
  368. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  369. ; CHECK-NEXT: ValueType: I8
  370. ; CHECK-NEXT: AddrSpaceQual: Global
  371. define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a)
  372. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19
  373. !kernel_arg_base_type !19 !kernel_arg_type_qual !4 {
  374. ret void
  375. }
  376. ; CHECK: - Name: test_struct
  377. ; CHECK-NEXT: Language: OpenCL C
  378. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  379. ; CHECK-NEXT: Args:
  380. ; CHECK-NEXT: - Size: 4
  381. ; CHECK-NEXT: Align: 4
  382. ; CHECK-NEXT: ValueKind: GlobalBuffer
  383. ; CHECK-NEXT: ValueType: Struct
  384. ; CHECK-NEXT: AccQual: Default
  385. ; CHECK-NEXT: AddrSpaceQual: Private
  386. ; CHECK-NEXT: TypeName: struct A
  387. ; CHECK-NEXT: - Size: 8
  388. ; CHECK-NEXT: Align: 8
  389. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  390. ; CHECK-NEXT: ValueType: I64
  391. ; CHECK-NEXT: - Size: 8
  392. ; CHECK-NEXT: Align: 8
  393. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  394. ; CHECK-NEXT: ValueType: I64
  395. ; CHECK-NEXT: - Size: 8
  396. ; CHECK-NEXT: Align: 8
  397. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  398. ; CHECK-NEXT: ValueType: I64
  399. ; CHECK-NEXT: - Size: 8
  400. ; CHECK-NEXT: Align: 8
  401. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  402. ; CHECK-NEXT: ValueType: I8
  403. ; CHECK-NEXT: AddrSpaceQual: Global
  404. define amdgpu_kernel void @test_struct(%struct.A* byval %a)
  405. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20
  406. !kernel_arg_base_type !20 !kernel_arg_type_qual !4 {
  407. ret void
  408. }
  409. ; CHECK: - Name: test_i128
  410. ; CHECK-NEXT: Language: OpenCL C
  411. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  412. ; CHECK-NEXT: Args:
  413. ; CHECK-NEXT: - Size: 16
  414. ; CHECK-NEXT: Align: 8
  415. ; CHECK-NEXT: ValueKind: ByValue
  416. ; CHECK-NEXT: ValueType: Struct
  417. ; CHECK-NEXT: AccQual: Default
  418. ; CHECK-NEXT: TypeName: i128
  419. ; CHECK-NEXT: - Size: 8
  420. ; CHECK-NEXT: Align: 8
  421. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  422. ; CHECK-NEXT: ValueType: I64
  423. ; CHECK-NEXT: - Size: 8
  424. ; CHECK-NEXT: Align: 8
  425. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  426. ; CHECK-NEXT: ValueType: I64
  427. ; CHECK-NEXT: - Size: 8
  428. ; CHECK-NEXT: Align: 8
  429. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  430. ; CHECK-NEXT: ValueType: I64
  431. ; CHECK-NEXT: - Size: 8
  432. ; CHECK-NEXT: Align: 8
  433. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  434. ; CHECK-NEXT: ValueType: I8
  435. ; CHECK-NEXT: AddrSpaceQual: Global
  436. define amdgpu_kernel void @test_i128(i128 %a)
  437. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21
  438. !kernel_arg_base_type !21 !kernel_arg_type_qual !4 {
  439. ret void
  440. }
  441. ; CHECK: - Name: test_multi_arg
  442. ; CHECK-NEXT: Language: OpenCL C
  443. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  444. ; CHECK-NEXT: Args:
  445. ; CHECK-NEXT: - Size: 4
  446. ; CHECK-NEXT: Align: 4
  447. ; CHECK-NEXT: ValueKind: ByValue
  448. ; CHECK-NEXT: ValueType: I32
  449. ; CHECK-NEXT: AccQual: Default
  450. ; CHECK-NEXT: TypeName: int
  451. ; CHECK-NEXT: - Size: 4
  452. ; CHECK-NEXT: Align: 4
  453. ; CHECK-NEXT: ValueKind: ByValue
  454. ; CHECK-NEXT: ValueType: I16
  455. ; CHECK-NEXT: AccQual: Default
  456. ; CHECK-NEXT: TypeName: short2
  457. ; CHECK-NEXT: - Size: 4
  458. ; CHECK-NEXT: Align: 4
  459. ; CHECK-NEXT: ValueKind: ByValue
  460. ; CHECK-NEXT: ValueType: I8
  461. ; CHECK-NEXT: AccQual: Default
  462. ; CHECK-NEXT: TypeName: char3
  463. ; CHECK-NEXT: - Size: 8
  464. ; CHECK-NEXT: Align: 8
  465. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  466. ; CHECK-NEXT: ValueType: I64
  467. ; CHECK-NEXT: - Size: 8
  468. ; CHECK-NEXT: Align: 8
  469. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  470. ; CHECK-NEXT: ValueType: I64
  471. ; CHECK-NEXT: - Size: 8
  472. ; CHECK-NEXT: Align: 8
  473. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  474. ; CHECK-NEXT: ValueType: I64
  475. ; CHECK-NEXT: - Size: 8
  476. ; CHECK-NEXT: Align: 8
  477. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  478. ; CHECK-NEXT: ValueType: I8
  479. ; CHECK-NEXT: AddrSpaceQual: Global
  480. define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c)
  481. !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24
  482. !kernel_arg_base_type !24 !kernel_arg_type_qual !25 {
  483. ret void
  484. }
  485. ; CHECK: - Name: test_addr_space
  486. ; CHECK-NEXT: Language: OpenCL C
  487. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  488. ; CHECK-NEXT: Args:
  489. ; CHECK-NEXT: - Size: 8
  490. ; CHECK-NEXT: Align: 8
  491. ; CHECK-NEXT: ValueKind: GlobalBuffer
  492. ; CHECK-NEXT: ValueType: I32
  493. ; CHECK-NEXT: AccQual: Default
  494. ; CHECK-NEXT: AddrSpaceQual: Global
  495. ; CHECK-NEXT: TypeName: 'int *'
  496. ; CHECK-NEXT: - Size: 8
  497. ; CHECK-NEXT: Align: 8
  498. ; CHECK-NEXT: ValueKind: GlobalBuffer
  499. ; CHECK-NEXT: ValueType: I32
  500. ; CHECK-NEXT: AccQual: Default
  501. ; CHECK-NEXT: AddrSpaceQual: Constant
  502. ; CHECK-NEXT: TypeName: 'int *'
  503. ; CHECK-NEXT: - Size: 4
  504. ; CHECK-NEXT: Align: 4
  505. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  506. ; CHECK-NEXT: ValueType: I32
  507. ; CHECK-NEXT: PointeeAlign: 4
  508. ; CHECK-NEXT: AccQual: Default
  509. ; CHECK-NEXT: AddrSpaceQual: Local
  510. ; CHECK-NEXT: TypeName: 'int *'
  511. ; CHECK-NEXT: - Size: 8
  512. ; CHECK-NEXT: Align: 8
  513. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  514. ; CHECK-NEXT: ValueType: I64
  515. ; CHECK-NEXT: - Size: 8
  516. ; CHECK-NEXT: Align: 8
  517. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  518. ; CHECK-NEXT: ValueType: I64
  519. ; CHECK-NEXT: - Size: 8
  520. ; CHECK-NEXT: Align: 8
  521. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  522. ; CHECK-NEXT: ValueType: I64
  523. ; CHECK-NEXT: - Size: 8
  524. ; CHECK-NEXT: Align: 8
  525. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  526. ; CHECK-NEXT: ValueType: I8
  527. ; CHECK-NEXT: AddrSpaceQual: Global
  528. define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g,
  529. i32 addrspace(2)* %c,
  530. i32 addrspace(3)* %l)
  531. !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51
  532. !kernel_arg_base_type !51 !kernel_arg_type_qual !25 {
  533. ret void
  534. }
  535. ; CHECK: - Name: test_type_qual
  536. ; CHECK-NEXT: Language: OpenCL C
  537. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  538. ; CHECK-NEXT: Args:
  539. ; CHECK-NEXT: - Size: 8
  540. ; CHECK-NEXT: Align: 8
  541. ; CHECK-NEXT: ValueKind: GlobalBuffer
  542. ; CHECK-NEXT: ValueType: I32
  543. ; CHECK-NEXT: AccQual: Default
  544. ; CHECK-NEXT: AddrSpaceQual: Global
  545. ; CHECK-NEXT: IsVolatile: true
  546. ; CHECK-NEXT: TypeName: 'int *'
  547. ; CHECK-NEXT: - Size: 8
  548. ; CHECK-NEXT: Align: 8
  549. ; CHECK-NEXT: ValueKind: GlobalBuffer
  550. ; CHECK-NEXT: ValueType: I32
  551. ; CHECK-NEXT: AccQual: Default
  552. ; CHECK-NEXT: AddrSpaceQual: Global
  553. ; CHECK-NEXT: IsConst: true
  554. ; CHECK-NEXT: IsRestrict: true
  555. ; CHECK-NEXT: TypeName: 'int *'
  556. ; CHECK-NEXT: - Size: 8
  557. ; CHECK-NEXT: Align: 8
  558. ; CHECK-NEXT: ValueKind: Pipe
  559. ; CHECK-NEXT: ValueType: Struct
  560. ; CHECK-NEXT: AccQual: Default
  561. ; CHECK-NEXT: AddrSpaceQual: Global
  562. ; CHECK-NEXT: IsPipe: true
  563. ; CHECK-NEXT: TypeName: 'int *'
  564. ; CHECK-NEXT: - Size: 8
  565. ; CHECK-NEXT: Align: 8
  566. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  567. ; CHECK-NEXT: ValueType: I64
  568. ; CHECK-NEXT: - Size: 8
  569. ; CHECK-NEXT: Align: 8
  570. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  571. ; CHECK-NEXT: ValueType: I64
  572. ; CHECK-NEXT: - Size: 8
  573. ; CHECK-NEXT: Align: 8
  574. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  575. ; CHECK-NEXT: ValueType: I64
  576. ; CHECK-NEXT: - Size: 8
  577. ; CHECK-NEXT: Align: 8
  578. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  579. ; CHECK-NEXT: ValueType: I8
  580. ; CHECK-NEXT: AddrSpaceQual: Global
  581. define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a,
  582. i32 addrspace(1)* %b,
  583. %opencl.pipe_t addrspace(1)* %c)
  584. !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51
  585. !kernel_arg_base_type !51 !kernel_arg_type_qual !70 {
  586. ret void
  587. }
  588. ; CHECK: - Name: test_access_qual
  589. ; CHECK-NEXT: Language: OpenCL C
  590. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  591. ; CHECK-NEXT: Args:
  592. ; CHECK-NEXT: - Size: 8
  593. ; CHECK-NEXT: Align: 8
  594. ; CHECK-NEXT: ValueKind: Image
  595. ; CHECK-NEXT: ValueType: Struct
  596. ; CHECK-NEXT: AccQual: ReadOnly
  597. ; CHECK-NEXT: AddrSpaceQual: Global
  598. ; CHECK-NEXT: TypeName: image1d_t
  599. ; CHECK-NEXT: - Size: 8
  600. ; CHECK-NEXT: Align: 8
  601. ; CHECK-NEXT: ValueKind: Image
  602. ; CHECK-NEXT: ValueType: Struct
  603. ; CHECK-NEXT: AccQual: WriteOnly
  604. ; CHECK-NEXT: AddrSpaceQual: Global
  605. ; CHECK-NEXT: TypeName: image2d_t
  606. ; CHECK-NEXT: - Size: 8
  607. ; CHECK-NEXT: Align: 8
  608. ; CHECK-NEXT: ValueKind: Image
  609. ; CHECK-NEXT: ValueType: Struct
  610. ; CHECK-NEXT: AccQual: ReadWrite
  611. ; CHECK-NEXT: AddrSpaceQual: Global
  612. ; CHECK-NEXT: TypeName: image3d_t
  613. ; CHECK-NEXT: - Size: 8
  614. ; CHECK-NEXT: Align: 8
  615. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  616. ; CHECK-NEXT: ValueType: I64
  617. ; CHECK-NEXT: - Size: 8
  618. ; CHECK-NEXT: Align: 8
  619. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  620. ; CHECK-NEXT: ValueType: I64
  621. ; CHECK-NEXT: - Size: 8
  622. ; CHECK-NEXT: Align: 8
  623. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  624. ; CHECK-NEXT: ValueType: I64
  625. ; CHECK-NEXT: - Size: 8
  626. ; CHECK-NEXT: Align: 8
  627. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  628. ; CHECK-NEXT: ValueType: I8
  629. ; CHECK-NEXT: AddrSpaceQual: Global
  630. define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro,
  631. %opencl.image2d_t addrspace(1)* %wo,
  632. %opencl.image3d_t addrspace(1)* %rw)
  633. !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62
  634. !kernel_arg_base_type !62 !kernel_arg_type_qual !25 {
  635. ret void
  636. }
  637. ; CHECK: - Name: test_vec_type_hint_half
  638. ; CHECK-NEXT: Language: OpenCL C
  639. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  640. ; CHECK-NEXT: Attrs:
  641. ; CHECK-NEXT: VecTypeHint: half
  642. ; CHECK-NEXT: Args:
  643. ; CHECK-NEXT: - Size: 4
  644. ; CHECK-NEXT: Align: 4
  645. ; CHECK-NEXT: ValueKind: ByValue
  646. ; CHECK-NEXT: ValueType: I32
  647. ; CHECK-NEXT: AccQual: Default
  648. ; CHECK-NEXT: TypeName: int
  649. ; CHECK-NEXT: - Size: 8
  650. ; CHECK-NEXT: Align: 8
  651. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  652. ; CHECK-NEXT: ValueType: I64
  653. ; CHECK-NEXT: - Size: 8
  654. ; CHECK-NEXT: Align: 8
  655. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  656. ; CHECK-NEXT: ValueType: I64
  657. ; CHECK-NEXT: - Size: 8
  658. ; CHECK-NEXT: Align: 8
  659. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  660. ; CHECK-NEXT: ValueType: I64
  661. ; CHECK-NEXT: - Size: 8
  662. ; CHECK-NEXT: Align: 8
  663. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  664. ; CHECK-NEXT: ValueType: I8
  665. ; CHECK-NEXT: AddrSpaceQual: Global
  666. define amdgpu_kernel void @test_vec_type_hint_half(i32 %a)
  667. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  668. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 {
  669. ret void
  670. }
  671. ; CHECK: - Name: test_vec_type_hint_float
  672. ; CHECK-NEXT: Language: OpenCL C
  673. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  674. ; CHECK-NEXT: Attrs:
  675. ; CHECK-NEXT: VecTypeHint: float
  676. ; CHECK-NEXT: Args:
  677. ; CHECK-NEXT: - Size: 4
  678. ; CHECK-NEXT: Align: 4
  679. ; CHECK-NEXT: ValueKind: ByValue
  680. ; CHECK-NEXT: ValueType: I32
  681. ; CHECK-NEXT: AccQual: Default
  682. ; CHECK-NEXT: TypeName: int
  683. ; CHECK-NEXT: - Size: 8
  684. ; CHECK-NEXT: Align: 8
  685. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  686. ; CHECK-NEXT: ValueType: I64
  687. ; CHECK-NEXT: - Size: 8
  688. ; CHECK-NEXT: Align: 8
  689. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  690. ; CHECK-NEXT: ValueType: I64
  691. ; CHECK-NEXT: - Size: 8
  692. ; CHECK-NEXT: Align: 8
  693. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  694. ; CHECK-NEXT: ValueType: I64
  695. ; CHECK-NEXT: - Size: 8
  696. ; CHECK-NEXT: Align: 8
  697. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  698. ; CHECK-NEXT: ValueType: I8
  699. ; CHECK-NEXT: AddrSpaceQual: Global
  700. define amdgpu_kernel void @test_vec_type_hint_float(i32 %a)
  701. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  702. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 {
  703. ret void
  704. }
  705. ; CHECK: - Name: test_vec_type_hint_double
  706. ; CHECK-NEXT: Language: OpenCL C
  707. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  708. ; CHECK-NEXT: Attrs:
  709. ; CHECK-NEXT: VecTypeHint: double
  710. ; CHECK-NEXT: Args:
  711. ; CHECK-NEXT: - Size: 4
  712. ; CHECK-NEXT: Align: 4
  713. ; CHECK-NEXT: ValueKind: ByValue
  714. ; CHECK-NEXT: ValueType: I32
  715. ; CHECK-NEXT: AccQual: Default
  716. ; CHECK-NEXT: TypeName: int
  717. ; CHECK-NEXT: - Size: 8
  718. ; CHECK-NEXT: Align: 8
  719. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  720. ; CHECK-NEXT: ValueType: I64
  721. ; CHECK-NEXT: - Size: 8
  722. ; CHECK-NEXT: Align: 8
  723. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  724. ; CHECK-NEXT: ValueType: I64
  725. ; CHECK-NEXT: - Size: 8
  726. ; CHECK-NEXT: Align: 8
  727. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  728. ; CHECK-NEXT: ValueType: I64
  729. ; CHECK-NEXT: - Size: 8
  730. ; CHECK-NEXT: Align: 8
  731. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  732. ; CHECK-NEXT: ValueType: I8
  733. ; CHECK-NEXT: AddrSpaceQual: Global
  734. define amdgpu_kernel void @test_vec_type_hint_double(i32 %a)
  735. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  736. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 {
  737. ret void
  738. }
  739. ; CHECK: - Name: test_vec_type_hint_char
  740. ; CHECK-NEXT: Language: OpenCL C
  741. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  742. ; CHECK-NEXT: Attrs:
  743. ; CHECK-NEXT: VecTypeHint: char
  744. ; CHECK-NEXT: Args:
  745. ; CHECK-NEXT: - Size: 4
  746. ; CHECK-NEXT: Align: 4
  747. ; CHECK-NEXT: ValueKind: ByValue
  748. ; CHECK-NEXT: ValueType: I32
  749. ; CHECK-NEXT: AccQual: Default
  750. ; CHECK-NEXT: TypeName: int
  751. ; CHECK-NEXT: - Size: 8
  752. ; CHECK-NEXT: Align: 8
  753. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  754. ; CHECK-NEXT: ValueType: I64
  755. ; CHECK-NEXT: - Size: 8
  756. ; CHECK-NEXT: Align: 8
  757. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  758. ; CHECK-NEXT: ValueType: I64
  759. ; CHECK-NEXT: - Size: 8
  760. ; CHECK-NEXT: Align: 8
  761. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  762. ; CHECK-NEXT: ValueType: I64
  763. ; CHECK-NEXT: - Size: 8
  764. ; CHECK-NEXT: Align: 8
  765. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  766. ; CHECK-NEXT: ValueType: I8
  767. ; CHECK-NEXT: AddrSpaceQual: Global
  768. define amdgpu_kernel void @test_vec_type_hint_char(i32 %a)
  769. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  770. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 {
  771. ret void
  772. }
  773. ; CHECK: - Name: test_vec_type_hint_short
  774. ; CHECK-NEXT: Language: OpenCL C
  775. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  776. ; CHECK-NEXT: Attrs:
  777. ; CHECK-NEXT: VecTypeHint: short
  778. ; CHECK-NEXT: Args:
  779. ; CHECK-NEXT: - Size: 4
  780. ; CHECK-NEXT: Align: 4
  781. ; CHECK-NEXT: ValueKind: ByValue
  782. ; CHECK-NEXT: ValueType: I32
  783. ; CHECK-NEXT: AccQual: Default
  784. ; CHECK-NEXT: TypeName: int
  785. ; CHECK-NEXT: - Size: 8
  786. ; CHECK-NEXT: Align: 8
  787. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  788. ; CHECK-NEXT: ValueType: I64
  789. ; CHECK-NEXT: - Size: 8
  790. ; CHECK-NEXT: Align: 8
  791. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  792. ; CHECK-NEXT: ValueType: I64
  793. ; CHECK-NEXT: - Size: 8
  794. ; CHECK-NEXT: Align: 8
  795. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  796. ; CHECK-NEXT: ValueType: I64
  797. ; CHECK-NEXT: - Size: 8
  798. ; CHECK-NEXT: Align: 8
  799. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  800. ; CHECK-NEXT: ValueType: I8
  801. ; CHECK-NEXT: AddrSpaceQual: Global
  802. define amdgpu_kernel void @test_vec_type_hint_short(i32 %a)
  803. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  804. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 {
  805. ret void
  806. }
  807. ; CHECK: - Name: test_vec_type_hint_long
  808. ; CHECK-NEXT: Language: OpenCL C
  809. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  810. ; CHECK-NEXT: Attrs:
  811. ; CHECK-NEXT: VecTypeHint: long
  812. ; CHECK-NEXT: Args:
  813. ; CHECK-NEXT: - Size: 4
  814. ; CHECK-NEXT: Align: 4
  815. ; CHECK-NEXT: ValueKind: ByValue
  816. ; CHECK-NEXT: ValueType: I32
  817. ; CHECK-NEXT: AccQual: Default
  818. ; CHECK-NEXT: TypeName: int
  819. ; CHECK-NEXT: - Size: 8
  820. ; CHECK-NEXT: Align: 8
  821. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  822. ; CHECK-NEXT: ValueType: I64
  823. ; CHECK-NEXT: - Size: 8
  824. ; CHECK-NEXT: Align: 8
  825. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  826. ; CHECK-NEXT: ValueType: I64
  827. ; CHECK-NEXT: - Size: 8
  828. ; CHECK-NEXT: Align: 8
  829. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  830. ; CHECK-NEXT: ValueType: I64
  831. ; CHECK-NEXT: - Size: 8
  832. ; CHECK-NEXT: Align: 8
  833. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  834. ; CHECK-NEXT: ValueType: I8
  835. ; CHECK-NEXT: AddrSpaceQual: Global
  836. define amdgpu_kernel void @test_vec_type_hint_long(i32 %a)
  837. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  838. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 {
  839. ret void
  840. }
  841. ; CHECK: - Name: test_vec_type_hint_unknown
  842. ; CHECK-NEXT: Language: OpenCL C
  843. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  844. ; CHECK-NEXT: Attrs:
  845. ; CHECK-NEXT: VecTypeHint: unknown
  846. ; CHECK-NEXT: Args:
  847. ; CHECK-NEXT: - Size: 4
  848. ; CHECK-NEXT: Align: 4
  849. ; CHECK-NEXT: ValueKind: ByValue
  850. ; CHECK-NEXT: ValueType: I32
  851. ; CHECK-NEXT: AccQual: Default
  852. ; CHECK-NEXT: TypeName: int
  853. ; CHECK-NEXT: - Size: 8
  854. ; CHECK-NEXT: Align: 8
  855. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  856. ; CHECK-NEXT: ValueType: I64
  857. ; CHECK-NEXT: - Size: 8
  858. ; CHECK-NEXT: Align: 8
  859. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  860. ; CHECK-NEXT: ValueType: I64
  861. ; CHECK-NEXT: - Size: 8
  862. ; CHECK-NEXT: Align: 8
  863. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  864. ; CHECK-NEXT: ValueType: I64
  865. ; CHECK-NEXT: - Size: 8
  866. ; CHECK-NEXT: Align: 8
  867. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  868. ; CHECK-NEXT: ValueType: I8
  869. ; CHECK-NEXT: AddrSpaceQual: Global
  870. define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a)
  871. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  872. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 {
  873. ret void
  874. }
  875. ; CHECK: - Name: test_reqd_wgs_vec_type_hint
  876. ; CHECK-NEXT: Language: OpenCL C
  877. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  878. ; CHECK-NEXT: Attrs:
  879. ; CHECK-NEXT: ReqdWorkGroupSize: [ 1, 2, 4 ]
  880. ; CHECK-NEXT: VecTypeHint: int
  881. ; CHECK-NEXT: Args:
  882. ; CHECK-NEXT: - Size: 4
  883. ; CHECK-NEXT: Align: 4
  884. ; CHECK-NEXT: ValueKind: ByValue
  885. ; CHECK-NEXT: ValueType: I32
  886. ; CHECK-NEXT: AccQual: Default
  887. ; CHECK-NEXT: TypeName: int
  888. ; CHECK-NEXT: - Size: 8
  889. ; CHECK-NEXT: Align: 8
  890. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  891. ; CHECK-NEXT: ValueType: I64
  892. ; CHECK-NEXT: - Size: 8
  893. ; CHECK-NEXT: Align: 8
  894. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  895. ; CHECK-NEXT: ValueType: I64
  896. ; CHECK-NEXT: - Size: 8
  897. ; CHECK-NEXT: Align: 8
  898. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  899. ; CHECK-NEXT: ValueType: I64
  900. ; CHECK-NEXT: - Size: 8
  901. ; CHECK-NEXT: Align: 8
  902. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  903. ; CHECK-NEXT: ValueType: I8
  904. ; CHECK-NEXT: AddrSpaceQual: Global
  905. define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a)
  906. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  907. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5
  908. !reqd_work_group_size !6 {
  909. ret void
  910. }
  911. ; CHECK: - Name: test_wgs_hint_vec_type_hint
  912. ; CHECK-NEXT: Language: OpenCL C
  913. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  914. ; CHECK-NEXT: Attrs:
  915. ; CHECK-NEXT: WorkGroupSizeHint: [ 8, 16, 32 ]
  916. ; CHECK-NEXT: VecTypeHint: uint4
  917. ; CHECK-NEXT: Args:
  918. ; CHECK-NEXT: - Size: 4
  919. ; CHECK-NEXT: Align: 4
  920. ; CHECK-NEXT: ValueKind: ByValue
  921. ; CHECK-NEXT: ValueType: I32
  922. ; CHECK-NEXT: AccQual: Default
  923. ; CHECK-NEXT: TypeName: int
  924. ; CHECK-NEXT: - Size: 8
  925. ; CHECK-NEXT: Align: 8
  926. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  927. ; CHECK-NEXT: ValueType: I64
  928. ; CHECK-NEXT: - Size: 8
  929. ; CHECK-NEXT: Align: 8
  930. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  931. ; CHECK-NEXT: ValueType: I64
  932. ; CHECK-NEXT: - Size: 8
  933. ; CHECK-NEXT: Align: 8
  934. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  935. ; CHECK-NEXT: ValueType: I64
  936. ; CHECK-NEXT: - Size: 8
  937. ; CHECK-NEXT: Align: 8
  938. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  939. ; CHECK-NEXT: ValueType: I8
  940. ; CHECK-NEXT: AddrSpaceQual: Global
  941. define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a)
  942. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
  943. !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7
  944. !work_group_size_hint !8 {
  945. ret void
  946. }
  947. ; CHECK: - Name: test_arg_ptr_to_ptr
  948. ; CHECK-NEXT: Language: OpenCL C
  949. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  950. ; CHECK-NEXT: Args:
  951. ; CHECK-NEXT: - Size: 8
  952. ; CHECK-NEXT: Align: 8
  953. ; CHECK-NEXT: ValueKind: GlobalBuffer
  954. ; CHECK-NEXT: ValueType: I32
  955. ; CHECK-NEXT: AccQual: Default
  956. ; CHECK-NEXT: AddrSpaceQual: Global
  957. ; CHECK-NEXT: TypeName: 'int **'
  958. ; CHECK-NEXT: - Size: 8
  959. ; CHECK-NEXT: Align: 8
  960. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  961. ; CHECK-NEXT: ValueType: I64
  962. ; CHECK-NEXT: - Size: 8
  963. ; CHECK-NEXT: Align: 8
  964. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  965. ; CHECK-NEXT: ValueType: I64
  966. ; CHECK-NEXT: - Size: 8
  967. ; CHECK-NEXT: Align: 8
  968. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  969. ; CHECK-NEXT: ValueType: I64
  970. ; CHECK-NEXT: - Size: 8
  971. ; CHECK-NEXT: Align: 8
  972. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  973. ; CHECK-NEXT: ValueType: I8
  974. ; CHECK-NEXT: AddrSpaceQual: Global
  975. define amdgpu_kernel void @test_arg_ptr_to_ptr(i32* addrspace(1)* %a)
  976. !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80
  977. !kernel_arg_base_type !80 !kernel_arg_type_qual !4 {
  978. ret void
  979. }
  980. ; CHECK: - Name: test_arg_struct_contains_ptr
  981. ; CHECK-NEXT: Language: OpenCL C
  982. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  983. ; CHECK-NEXT: Args:
  984. ; CHECK-NEXT: - Size: 4
  985. ; CHECK-NEXT: Align: 4
  986. ; CHECK-NEXT: ValueKind: GlobalBuffer
  987. ; CHECK-NEXT: ValueType: Struct
  988. ; CHECK-NEXT: AccQual: Default
  989. ; CHECK-NEXT: AddrSpaceQual: Private
  990. ; CHECK-NEXT: TypeName: struct B
  991. ; CHECK-NEXT: - Size: 8
  992. ; CHECK-NEXT: Align: 8
  993. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  994. ; CHECK-NEXT: ValueType: I64
  995. ; CHECK-NEXT: - Size: 8
  996. ; CHECK-NEXT: Align: 8
  997. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  998. ; CHECK-NEXT: ValueType: I64
  999. ; CHECK-NEXT: - Size: 8
  1000. ; CHECK-NEXT: Align: 8
  1001. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  1002. ; CHECK-NEXT: ValueType: I64
  1003. ; CHECK-NEXT: - Size: 8
  1004. ; CHECK-NEXT: Align: 8
  1005. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  1006. ; CHECK-NEXT: ValueType: I8
  1007. ; CHECK-NEXT: AddrSpaceQual: Global
  1008. define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B* byval %a)
  1009. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82
  1010. !kernel_arg_base_type !82 !kernel_arg_type_qual !4 {
  1011. ret void
  1012. }
  1013. ; CHECK: - Name: test_arg_vector_of_ptr
  1014. ; CHECK-NEXT: Language: OpenCL C
  1015. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  1016. ; CHECK-NEXT: Args:
  1017. ; CHECK-NEXT: - Size: 16
  1018. ; CHECK-NEXT: Align: 16
  1019. ; CHECK-NEXT: ValueKind: ByValue
  1020. ; CHECK-NEXT: ValueType: I32
  1021. ; CHECK-NEXT: AccQual: Default
  1022. ; CHECK-NEXT: TypeName: 'global int* __attribute__((ext_vector_type(2)))'
  1023. ; CHECK-NEXT: - Size: 8
  1024. ; CHECK-NEXT: Align: 8
  1025. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  1026. ; CHECK-NEXT: ValueType: I64
  1027. ; CHECK-NEXT: - Size: 8
  1028. ; CHECK-NEXT: Align: 8
  1029. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  1030. ; CHECK-NEXT: ValueType: I64
  1031. ; CHECK-NEXT: - Size: 8
  1032. ; CHECK-NEXT: Align: 8
  1033. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  1034. ; CHECK-NEXT: ValueType: I64
  1035. ; CHECK-NEXT: - Size: 8
  1036. ; CHECK-NEXT: Align: 8
  1037. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  1038. ; CHECK-NEXT: ValueType: I8
  1039. ; CHECK-NEXT: AddrSpaceQual: Global
  1040. define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a)
  1041. !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83
  1042. !kernel_arg_base_type !83 !kernel_arg_type_qual !4 {
  1043. ret void
  1044. }
  1045. ; CHECK: - Name: test_arg_unknown_builtin_type
  1046. ; CHECK-NEXT: Language: OpenCL C
  1047. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  1048. ; CHECK-NEXT: Args:
  1049. ; CHECK-NEXT: - Size: 8
  1050. ; CHECK-NEXT: Align: 8
  1051. ; CHECK-NEXT: ValueKind: GlobalBuffer
  1052. ; CHECK-NEXT: ValueType: Struct
  1053. ; CHECK-NEXT: AccQual: Default
  1054. ; CHECK-NEXT: AddrSpaceQual: Global
  1055. ; CHECK-NEXT: TypeName: clk_event_t
  1056. ; CHECK-NEXT: - Size: 8
  1057. ; CHECK-NEXT: Align: 8
  1058. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  1059. ; CHECK-NEXT: ValueType: I64
  1060. ; CHECK-NEXT: - Size: 8
  1061. ; CHECK-NEXT: Align: 8
  1062. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  1063. ; CHECK-NEXT: ValueType: I64
  1064. ; CHECK-NEXT: - Size: 8
  1065. ; CHECK-NEXT: Align: 8
  1066. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  1067. ; CHECK-NEXT: ValueType: I64
  1068. ; CHECK-NEXT: - Size: 8
  1069. ; CHECK-NEXT: Align: 8
  1070. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  1071. ; CHECK-NEXT: ValueType: I8
  1072. ; CHECK-NEXT: AddrSpaceQual: Global
  1073. define amdgpu_kernel void @test_arg_unknown_builtin_type(
  1074. %opencl.clk_event_t addrspace(1)* %a)
  1075. !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84
  1076. !kernel_arg_base_type !84 !kernel_arg_type_qual !4 {
  1077. ret void
  1078. }
  1079. ; CHECK: - Name: test_pointee_align
  1080. ; CHECK-NEXT: Language: OpenCL C
  1081. ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
  1082. ; CHECK-NEXT: Args:
  1083. ; CHECK-NEXT: - Size: 8
  1084. ; CHECK-NEXT: Align: 8
  1085. ; CHECK-NEXT: ValueKind: GlobalBuffer
  1086. ; CHECK-NEXT: ValueType: I64
  1087. ; CHECK-NEXT: AccQual: Default
  1088. ; CHECK-NEXT: AddrSpaceQual: Global
  1089. ; CHECK-NEXT: TypeName: 'long *'
  1090. ; CHECK-NEXT: - Size: 4
  1091. ; CHECK-NEXT: Align: 4
  1092. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  1093. ; CHECK-NEXT: ValueType: I8
  1094. ; CHECK-NEXT: PointeeAlign: 1
  1095. ; CHECK-NEXT: AccQual: Default
  1096. ; CHECK-NEXT: AddrSpaceQual: Local
  1097. ; CHECK-NEXT: TypeName: 'char *'
  1098. ; CHECK-NEXT: - Size: 4
  1099. ; CHECK-NEXT: Align: 4
  1100. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  1101. ; CHECK-NEXT: ValueType: I8
  1102. ; CHECK-NEXT: PointeeAlign: 2
  1103. ; CHECK-NEXT: AccQual: Default
  1104. ; CHECK-NEXT: AddrSpaceQual: Local
  1105. ; CHECK-NEXT: TypeName: 'char2 *'
  1106. ; CHECK-NEXT: - Size: 4
  1107. ; CHECK-NEXT: Align: 4
  1108. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  1109. ; CHECK-NEXT: ValueType: I8
  1110. ; CHECK-NEXT: PointeeAlign: 4
  1111. ; CHECK-NEXT: AccQual: Default
  1112. ; CHECK-NEXT: AddrSpaceQual: Local
  1113. ; CHECK-NEXT: TypeName: 'char3 *'
  1114. ; CHECK-NEXT: - Size: 4
  1115. ; CHECK-NEXT: Align: 4
  1116. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  1117. ; CHECK-NEXT: ValueType: I8
  1118. ; CHECK-NEXT: PointeeAlign: 4
  1119. ; CHECK-NEXT: AccQual: Default
  1120. ; CHECK-NEXT: AddrSpaceQual: Local
  1121. ; CHECK-NEXT: TypeName: 'char4 *'
  1122. ; CHECK-NEXT: - Size: 4
  1123. ; CHECK-NEXT: Align: 4
  1124. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  1125. ; CHECK-NEXT: ValueType: I8
  1126. ; CHECK-NEXT: PointeeAlign: 8
  1127. ; CHECK-NEXT: AccQual: Default
  1128. ; CHECK-NEXT: AddrSpaceQual: Local
  1129. ; CHECK-NEXT: TypeName: 'char8 *'
  1130. ; CHECK-NEXT: - Size: 4
  1131. ; CHECK-NEXT: Align: 4
  1132. ; CHECK-NEXT: ValueKind: DynamicSharedPointer
  1133. ; CHECK-NEXT: ValueType: I8
  1134. ; CHECK-NEXT: PointeeAlign: 16
  1135. ; CHECK-NEXT: AccQual: Default
  1136. ; CHECK-NEXT: AddrSpaceQual: Local
  1137. ; CHECK-NEXT: TypeName: 'char16 *'
  1138. ; CHECK-NEXT: - Size: 8
  1139. ; CHECK-NEXT: Align: 8
  1140. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
  1141. ; CHECK-NEXT: ValueType: I64
  1142. ; CHECK-NEXT: - Size: 8
  1143. ; CHECK-NEXT: Align: 8
  1144. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
  1145. ; CHECK-NEXT: ValueType: I64
  1146. ; CHECK-NEXT: - Size: 8
  1147. ; CHECK-NEXT: Align: 8
  1148. ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
  1149. ; CHECK-NEXT: ValueType: I64
  1150. ; CHECK-NEXT: - Size: 8
  1151. ; CHECK-NEXT: Align: 8
  1152. ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
  1153. ; CHECK-NEXT: ValueType: I8
  1154. ; CHECK-NEXT: AddrSpaceQual: Global
  1155. define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a,
  1156. i8 addrspace(3)* %b,
  1157. <2 x i8> addrspace(3)* %c,
  1158. <3 x i8> addrspace(3)* %d,
  1159. <4 x i8> addrspace(3)* %e,
  1160. <8 x i8> addrspace(3)* %f,
  1161. <16 x i8> addrspace(3)* %g)
  1162. !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
  1163. !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
  1164. ret void
  1165. }
  1166. !llvm.printf.fmts = !{!100, !101}
  1167. !1 = !{i32 0}
  1168. !2 = !{!"none"}
  1169. !3 = !{!"int"}
  1170. !4 = !{!""}
  1171. !5 = !{i32 undef, i32 1}
  1172. !6 = !{i32 1, i32 2, i32 4}
  1173. !7 = !{<4 x i32> undef, i32 0}
  1174. !8 = !{i32 8, i32 16, i32 32}
  1175. !9 = !{!"char"}
  1176. !10 = !{!"ushort2"}
  1177. !11 = !{!"int3"}
  1178. !12 = !{!"ulong4"}
  1179. !13 = !{!"half8"}
  1180. !14 = !{!"float16"}
  1181. !15 = !{!"double16"}
  1182. !16 = !{!"int *"}
  1183. !17 = !{!"image2d_t"}
  1184. !18 = !{!"sampler_t"}
  1185. !19 = !{!"queue_t"}
  1186. !20 = !{!"struct A"}
  1187. !21 = !{!"i128"}
  1188. !22 = !{i32 0, i32 0, i32 0}
  1189. !23 = !{!"none", !"none", !"none"}
  1190. !24 = !{!"int", !"short2", !"char3"}
  1191. !25 = !{!"", !"", !""}
  1192. !26 = !{half undef, i32 1}
  1193. !27 = !{float undef, i32 1}
  1194. !28 = !{double undef, i32 1}
  1195. !29 = !{i8 undef, i32 1}
  1196. !30 = !{i16 undef, i32 1}
  1197. !31 = !{i64 undef, i32 1}
  1198. !32 = !{i32 *undef, i32 1}
  1199. !50 = !{i32 1, i32 2, i32 3}
  1200. !51 = !{!"int *", !"int *", !"int *"}
  1201. !60 = !{i32 1, i32 1, i32 1}
  1202. !61 = !{!"read_only", !"write_only", !"read_write"}
  1203. !62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
  1204. !70 = !{!"volatile", !"const restrict", !"pipe"}
  1205. !80 = !{!"int **"}
  1206. !81 = !{i32 1}
  1207. !82 = !{!"struct B"}
  1208. !83 = !{!"global int* __attribute__((ext_vector_type(2)))"}
  1209. !84 = !{!"clk_event_t"}
  1210. !opencl.ocl.version = !{!90}
  1211. !90 = !{i32 2, i32 0}
  1212. !91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3}
  1213. !92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"}
  1214. !93 = !{!"long *", !"char *", !"char2 *", !"char3 *", !"char4 *", !"char8 *", !"char16 *"}
  1215. !94 = !{!"", !"", !"", !"", !"", !"", !""}
  1216. !100 = !{!"1:1:4:%d\5Cn"}
  1217. !101 = !{!"2:1:8:%g\5Cn"}
  1218. ; NOTES: Displaying notes found at file offset 0x{{[0-9]+}}
  1219. ; NOTES-NEXT: Owner Data size Description
  1220. ; NOTES-NEXT: AMD 0x00000008 Unknown note type: (0x00000001)
  1221. ; NOTES-NEXT: AMD 0x0000001b Unknown note type: (0x00000003)
  1222. ; GFX700: AMD 0x00008b0a Unknown note type: (0x0000000a)
  1223. ; GFX800: AMD 0x00008e6e Unknown note type: (0x0000000a)
  1224. ; GFX900: AMD 0x00008b0a Unknown note type: (0x0000000a)
  1225. ; PARSER: AMDGPU Code Object Metadata Parser Test: PASS