blob: 5a736aabd4ee04acb3c18e0e18a43342ffd947fb [file] [log] [blame]
Jay Foadceb68ee2023-09-15 11:29:24 +01001;RUN: llc < %s -mtriple=amdgcn-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,GCN %s
Jay Foad2cbfe4a2024-05-09 10:59:25 +01002;RUN: llc < %s -mtriple=r600-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,R600 %s
Yaxun Liu8f844f32017-02-07 00:43:21 +00003
Matt Arsenaultd85e8492022-12-01 21:33:26 -05004%struct.S = type { ptr addrspace(5), ptr addrspace(1), ptr addrspace(4), ptr addrspace(3), ptr, ptr addrspace(2)}
Yaxun Liu8f844f32017-02-07 00:43:21 +00005
6; CHECK-LABEL: nullptr_priv:
Matt Arsenaultbb10fa32020-05-24 12:28:59 -04007; CHECK-NEXT: .long -1
Matt Arsenaultd85e8492022-12-01 21:33:26 -05008@nullptr_priv = global ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5))
Yaxun Liu8f844f32017-02-07 00:43:21 +00009
10; CHECK-LABEL: nullptr_glob:
Yaxun Liudcb60672017-11-27 20:48:21 +000011; GCN-NEXT: .quad 0
12; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050013@nullptr_glob = global ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1))
Yaxun Liu8f844f32017-02-07 00:43:21 +000014
15; CHECK-LABEL: nullptr_const:
Yaxun Liudcb60672017-11-27 20:48:21 +000016; GCN-NEXT: .quad 0
17; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050018@nullptr_const = global ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4))
Yaxun Liu8f844f32017-02-07 00:43:21 +000019
20; CHECK-LABEL: nullptr_local:
21; CHECK-NEXT: .long -1
Matt Arsenaultd85e8492022-12-01 21:33:26 -050022@nullptr_local = global ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3))
Yaxun Liu8f844f32017-02-07 00:43:21 +000023
24; CHECK-LABEL: nullptr_region:
25; CHECK-NEXT: .long -1
Matt Arsenaultd85e8492022-12-01 21:33:26 -050026@nullptr_region = global ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2))
Yaxun Liu8f844f32017-02-07 00:43:21 +000027
28; CHECK-LABEL: nullptr6:
Yaxun Liudcb60672017-11-27 20:48:21 +000029; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050030@nullptr6 = global ptr addrspace(6) addrspacecast (ptr null to ptr addrspace(6))
Yaxun Liu8f844f32017-02-07 00:43:21 +000031
Krzysztof Drewniakf0415f22023-05-03 16:21:59 +000032; 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 Liu8f844f32017-02-07 00:43:21 +000036
Krzysztof Drewniakf0415f22023-05-03 16:21:59 +000037; FIXME-LABEL: nullptr8:
38; FIXME-R600-NEXT: .long 0
39; FIXME @nullptr8 = global ptr addrspace(8) addrspacecast (ptr null to ptr addrspace(8))
Yaxun Liu8f844f32017-02-07 00:43:21 +000040
Jessica Del32f99832023-12-15 15:49:25 +010041; FIXME-LABEL: nullptr9:
42; FIXME-R600-NEXT: .long 0
43; FIXME @nullptr9 = global ptr addrspace(9) addrspacecast (ptr null to ptr addrspace(9))
Yaxun Liu8f844f32017-02-07 00:43:21 +000044
45; CHECK-LABEL: nullptr10:
Yaxun Liudcb60672017-11-27 20:48:21 +000046; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050047@nullptr10 = global ptr addrspace(10) addrspacecast (ptr null to ptr addrspace(10))
Yaxun Liu8f844f32017-02-07 00:43:21 +000048
49; CHECK-LABEL: nullptr11:
Yaxun Liudcb60672017-11-27 20:48:21 +000050; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050051@nullptr11 = global ptr addrspace(11) addrspacecast (ptr null to ptr addrspace(11))
Yaxun Liu8f844f32017-02-07 00:43:21 +000052
53; CHECK-LABEL: nullptr12:
Yaxun Liudcb60672017-11-27 20:48:21 +000054; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050055@nullptr12 = global ptr addrspace(12) addrspacecast (ptr null to ptr addrspace(12))
Yaxun Liu8f844f32017-02-07 00:43:21 +000056
57; CHECK-LABEL: nullptr13:
Yaxun Liudcb60672017-11-27 20:48:21 +000058; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050059@nullptr13 = global ptr addrspace(13) addrspacecast (ptr null to ptr addrspace(13))
Yaxun Liu8f844f32017-02-07 00:43:21 +000060
61; CHECK-LABEL: nullptr14:
Yaxun Liudcb60672017-11-27 20:48:21 +000062; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050063@nullptr14 = global ptr addrspace(14) addrspacecast (ptr null to ptr addrspace(14))
Yaxun Liu8f844f32017-02-07 00:43:21 +000064
65; CHECK-LABEL: nullptr15:
Yaxun Liudcb60672017-11-27 20:48:21 +000066; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050067@nullptr15 = global ptr addrspace(15) addrspacecast (ptr null to ptr addrspace(15))
Yaxun Liu8f844f32017-02-07 00:43:21 +000068
69; CHECK-LABEL: nullptr16:
Yaxun Liudcb60672017-11-27 20:48:21 +000070; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050071@nullptr16 = global ptr addrspace(16) addrspacecast (ptr null to ptr addrspace(16))
Yaxun Liu8f844f32017-02-07 00:43:21 +000072
73; CHECK-LABEL: nullptr17:
Yaxun Liudcb60672017-11-27 20:48:21 +000074; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050075@nullptr17 = global ptr addrspace(17) addrspacecast (ptr null to ptr addrspace(17))
Yaxun Liu8f844f32017-02-07 00:43:21 +000076
77; CHECK-LABEL: nullptr18:
Yaxun Liudcb60672017-11-27 20:48:21 +000078; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050079@nullptr18 = global ptr addrspace(18) addrspacecast (ptr null to ptr addrspace(18))
Yaxun Liu8f844f32017-02-07 00:43:21 +000080
81; CHECK-LABEL: nullptr19:
Yaxun Liudcb60672017-11-27 20:48:21 +000082; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050083@nullptr19 = global ptr addrspace(19) addrspacecast (ptr null to ptr addrspace(19))
Yaxun Liu8f844f32017-02-07 00:43:21 +000084
85; CHECK-LABEL: nullptr20:
Yaxun Liudcb60672017-11-27 20:48:21 +000086; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050087@nullptr20 = global ptr addrspace(20) addrspacecast (ptr null to ptr addrspace(20))
Yaxun Liu8f844f32017-02-07 00:43:21 +000088
89; CHECK-LABEL: nullptr21:
Yaxun Liudcb60672017-11-27 20:48:21 +000090; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050091@nullptr21 = global ptr addrspace(21) addrspacecast (ptr null to ptr addrspace(21))
Yaxun Liu8f844f32017-02-07 00:43:21 +000092
93; CHECK-LABEL: nullptr22:
Yaxun Liudcb60672017-11-27 20:48:21 +000094; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050095@nullptr22 = global ptr addrspace(22) addrspacecast (ptr null to ptr addrspace(22))
Yaxun Liu8f844f32017-02-07 00:43:21 +000096
97; CHECK-LABEL: nullptr23:
Yaxun Liudcb60672017-11-27 20:48:21 +000098; R600-NEXT: .long 0
Matt Arsenaultd85e8492022-12-01 21:33:26 -050099@nullptr23 = global ptr addrspace(23) addrspacecast (ptr null to ptr addrspace(23))
Yaxun Liu8f844f32017-02-07 00:43:21 +0000100
101; CHECK-LABEL: structWithPointers:
Matt Arsenaultbb10fa32020-05-24 12:28:59 -0400102; CHECK-NEXT: .long -1
Yaxun Liudcb60672017-11-27 20:48:21 +0000103; 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 Liu8f844f32017-02-07 00:43:21 +0000108; CHECK-NEXT: .long -1
Yaxun Liudcb60672017-11-27 20:48:21 +0000109; GCN-NEXT: .zero 4
110; GCN-NEXT: .quad 0
111; R600-NEXT: .long 0
Yaxun Liu8f844f32017-02-07 00:43:21 +0000112; CHECK-NEXT: .long -1
Yaxun Liudcb60672017-11-27 20:48:21 +0000113; GCN-NEXT: .zero 4
Yaxun Liu8f844f32017-02-07 00:43:21 +0000114@structWithPointers = addrspace(1) global %struct.S {
Matt Arsenaultd85e8492022-12-01 21:33:26 -0500115 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