Jay Foad | ceb68ee | 2023-09-15 11:29:24 +0100 | [diff] [blame] | 1 | ;RUN: llc < %s -mtriple=amdgcn-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,GCN %s |
Jay Foad | 2cbfe4a | 2024-05-09 10:59:25 +0100 | [diff] [blame] | 2 | ;RUN: llc < %s -mtriple=r600-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,R600 %s |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 3 | |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 4 | %struct.S = type { ptr addrspace(5), ptr addrspace(1), ptr addrspace(4), ptr addrspace(3), ptr, ptr addrspace(2)} |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 5 | |
| 6 | ; CHECK-LABEL: nullptr_priv: |
Matt Arsenault | bb10fa3 | 2020-05-24 12:28:59 -0400 | [diff] [blame] | 7 | ; CHECK-NEXT: .long -1 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 8 | @nullptr_priv = global ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 9 | |
| 10 | ; CHECK-LABEL: nullptr_glob: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 11 | ; GCN-NEXT: .quad 0 |
| 12 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 13 | @nullptr_glob = global ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 14 | |
| 15 | ; CHECK-LABEL: nullptr_const: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 16 | ; GCN-NEXT: .quad 0 |
| 17 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 18 | @nullptr_const = global ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 19 | |
| 20 | ; CHECK-LABEL: nullptr_local: |
| 21 | ; CHECK-NEXT: .long -1 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 22 | @nullptr_local = global ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 23 | |
| 24 | ; CHECK-LABEL: nullptr_region: |
| 25 | ; CHECK-NEXT: .long -1 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 26 | @nullptr_region = global ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 27 | |
| 28 | ; CHECK-LABEL: nullptr6: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 29 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 30 | @nullptr6 = global ptr addrspace(6) addrspacecast (ptr null to ptr addrspace(6)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 31 | |
Krzysztof Drewniak | f0415f2 | 2023-05-03 16:21:59 +0000 | [diff] [blame] | 32 | ; FIXME: AsmPrinter can't handle 128-bit constants |
| 33 | ; FIXME-LABEL: nullptr7: |
| 34 | ; FIXME-R600-NEXT: .long 0 |
| 35 | ; FIXME @nullptr7 = global ptr addrspace(7) addrspacecast (ptr null to ptr addrspace(7)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 36 | |
Krzysztof Drewniak | f0415f2 | 2023-05-03 16:21:59 +0000 | [diff] [blame] | 37 | ; FIXME-LABEL: nullptr8: |
| 38 | ; FIXME-R600-NEXT: .long 0 |
| 39 | ; FIXME @nullptr8 = global ptr addrspace(8) addrspacecast (ptr null to ptr addrspace(8)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 40 | |
Jessica Del | 32f9983 | 2023-12-15 15:49:25 +0100 | [diff] [blame] | 41 | ; FIXME-LABEL: nullptr9: |
| 42 | ; FIXME-R600-NEXT: .long 0 |
| 43 | ; FIXME @nullptr9 = global ptr addrspace(9) addrspacecast (ptr null to ptr addrspace(9)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 44 | |
| 45 | ; CHECK-LABEL: nullptr10: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 46 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 47 | @nullptr10 = global ptr addrspace(10) addrspacecast (ptr null to ptr addrspace(10)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 48 | |
| 49 | ; CHECK-LABEL: nullptr11: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 50 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 51 | @nullptr11 = global ptr addrspace(11) addrspacecast (ptr null to ptr addrspace(11)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 52 | |
| 53 | ; CHECK-LABEL: nullptr12: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 54 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 55 | @nullptr12 = global ptr addrspace(12) addrspacecast (ptr null to ptr addrspace(12)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 56 | |
| 57 | ; CHECK-LABEL: nullptr13: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 58 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 59 | @nullptr13 = global ptr addrspace(13) addrspacecast (ptr null to ptr addrspace(13)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 60 | |
| 61 | ; CHECK-LABEL: nullptr14: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 62 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 63 | @nullptr14 = global ptr addrspace(14) addrspacecast (ptr null to ptr addrspace(14)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 64 | |
| 65 | ; CHECK-LABEL: nullptr15: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 66 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 67 | @nullptr15 = global ptr addrspace(15) addrspacecast (ptr null to ptr addrspace(15)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 68 | |
| 69 | ; CHECK-LABEL: nullptr16: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 70 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 71 | @nullptr16 = global ptr addrspace(16) addrspacecast (ptr null to ptr addrspace(16)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 72 | |
| 73 | ; CHECK-LABEL: nullptr17: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 74 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 75 | @nullptr17 = global ptr addrspace(17) addrspacecast (ptr null to ptr addrspace(17)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 76 | |
| 77 | ; CHECK-LABEL: nullptr18: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 78 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 79 | @nullptr18 = global ptr addrspace(18) addrspacecast (ptr null to ptr addrspace(18)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 80 | |
| 81 | ; CHECK-LABEL: nullptr19: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 82 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 83 | @nullptr19 = global ptr addrspace(19) addrspacecast (ptr null to ptr addrspace(19)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 84 | |
| 85 | ; CHECK-LABEL: nullptr20: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 86 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 87 | @nullptr20 = global ptr addrspace(20) addrspacecast (ptr null to ptr addrspace(20)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 88 | |
| 89 | ; CHECK-LABEL: nullptr21: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 90 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 91 | @nullptr21 = global ptr addrspace(21) addrspacecast (ptr null to ptr addrspace(21)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 92 | |
| 93 | ; CHECK-LABEL: nullptr22: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 94 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 95 | @nullptr22 = global ptr addrspace(22) addrspacecast (ptr null to ptr addrspace(22)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 96 | |
| 97 | ; CHECK-LABEL: nullptr23: |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 98 | ; R600-NEXT: .long 0 |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 99 | @nullptr23 = global ptr addrspace(23) addrspacecast (ptr null to ptr addrspace(23)) |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 100 | |
| 101 | ; CHECK-LABEL: structWithPointers: |
Matt Arsenault | bb10fa3 | 2020-05-24 12:28:59 -0400 | [diff] [blame] | 102 | ; CHECK-NEXT: .long -1 |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 103 | ; GCN-NEXT: .zero 4 |
| 104 | ; GCN-NEXT: .quad 0 |
| 105 | ; R600-NEXT: .long 0 |
| 106 | ; GCN-NEXT: .quad 0 |
| 107 | ; R600-NEXT: .long 0 |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 108 | ; CHECK-NEXT: .long -1 |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 109 | ; GCN-NEXT: .zero 4 |
| 110 | ; GCN-NEXT: .quad 0 |
| 111 | ; R600-NEXT: .long 0 |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 112 | ; CHECK-NEXT: .long -1 |
Yaxun Liu | dcb6067 | 2017-11-27 20:48:21 +0000 | [diff] [blame] | 113 | ; GCN-NEXT: .zero 4 |
Yaxun Liu | 8f844f3 | 2017-02-07 00:43:21 +0000 | [diff] [blame] | 114 | @structWithPointers = addrspace(1) global %struct.S { |
Matt Arsenault | d85e849 | 2022-12-01 21:33:26 -0500 | [diff] [blame] | 115 | ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5)), |
| 116 | ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)), |
| 117 | ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4)), |
| 118 | ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3)), |
| 119 | ptr null, |
| 120 | ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2))}, align 4 |