1;RUN: llc < %s -mtriple=amdgcn-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,GCN %s 2;RUN: llc < %s -mtriple=r600-- -verify-machineinstrs | FileCheck -check-prefixes=CHECK,R600 %s 3 4%struct.S = type { ptr addrspace(5), ptr addrspace(1), ptr addrspace(4), ptr addrspace(3), ptr, ptr addrspace(2)} 5 6; CHECK-LABEL: nullptr_priv: 7; CHECK-NEXT: .long -1 8@nullptr_priv = global ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5)) 9 10; CHECK-LABEL: nullptr_glob: 11; GCN-NEXT: .quad 0 12; R600-NEXT: .long 0 13@nullptr_glob = global ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)) 14 15; CHECK-LABEL: nullptr_const: 16; GCN-NEXT: .quad 0 17; R600-NEXT: .long 0 18@nullptr_const = global ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4)) 19 20; CHECK-LABEL: nullptr_local: 21; CHECK-NEXT: .long -1 22@nullptr_local = global ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3)) 23 24; CHECK-LABEL: nullptr_region: 25; CHECK-NEXT: .long -1 26@nullptr_region = global ptr addrspace(2) addrspacecast (ptr null to ptr addrspace(2)) 27 28; CHECK-LABEL: nullptr6: 29; R600-NEXT: .long 0 30@nullptr6 = global ptr addrspace(6) addrspacecast (ptr null to ptr addrspace(6)) 31 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)) 36 37; FIXME-LABEL: nullptr8: 38; FIXME-R600-NEXT: .long 0 39; FIXME @nullptr8 = global ptr addrspace(8) addrspacecast (ptr null to ptr addrspace(8)) 40 41; FIXME-LABEL: nullptr9: 42; FIXME-R600-NEXT: .long 0 43; FIXME @nullptr9 = global ptr addrspace(9) addrspacecast (ptr null to ptr addrspace(9)) 44 45; CHECK-LABEL: nullptr10: 46; R600-NEXT: .long 0 47@nullptr10 = global ptr addrspace(10) addrspacecast (ptr null to ptr addrspace(10)) 48 49; CHECK-LABEL: nullptr11: 50; R600-NEXT: .long 0 51@nullptr11 = global ptr addrspace(11) addrspacecast (ptr null to ptr addrspace(11)) 52 53; CHECK-LABEL: nullptr12: 54; R600-NEXT: .long 0 55@nullptr12 = global ptr addrspace(12) addrspacecast (ptr null to ptr addrspace(12)) 56 57; CHECK-LABEL: nullptr13: 58; R600-NEXT: .long 0 59@nullptr13 = global ptr addrspace(13) addrspacecast (ptr null to ptr addrspace(13)) 60 61; CHECK-LABEL: nullptr14: 62; R600-NEXT: .long 0 63@nullptr14 = global ptr addrspace(14) addrspacecast (ptr null to ptr addrspace(14)) 64 65; CHECK-LABEL: nullptr15: 66; R600-NEXT: .long 0 67@nullptr15 = global ptr addrspace(15) addrspacecast (ptr null to ptr addrspace(15)) 68 69; CHECK-LABEL: nullptr16: 70; R600-NEXT: .long 0 71@nullptr16 = global ptr addrspace(16) addrspacecast (ptr null to ptr addrspace(16)) 72 73; CHECK-LABEL: nullptr17: 74; R600-NEXT: .long 0 75@nullptr17 = global ptr addrspace(17) addrspacecast (ptr null to ptr addrspace(17)) 76 77; CHECK-LABEL: nullptr18: 78; R600-NEXT: .long 0 79@nullptr18 = global ptr addrspace(18) addrspacecast (ptr null to ptr addrspace(18)) 80 81; CHECK-LABEL: nullptr19: 82; R600-NEXT: .long 0 83@nullptr19 = global ptr addrspace(19) addrspacecast (ptr null to ptr addrspace(19)) 84 85; CHECK-LABEL: nullptr20: 86; R600-NEXT: .long 0 87@nullptr20 = global ptr addrspace(20) addrspacecast (ptr null to ptr addrspace(20)) 88 89; CHECK-LABEL: nullptr21: 90; R600-NEXT: .long 0 91@nullptr21 = global ptr addrspace(21) addrspacecast (ptr null to ptr addrspace(21)) 92 93; CHECK-LABEL: nullptr22: 94; R600-NEXT: .long 0 95@nullptr22 = global ptr addrspace(22) addrspacecast (ptr null to ptr addrspace(22)) 96 97; CHECK-LABEL: nullptr23: 98; R600-NEXT: .long 0 99@nullptr23 = global ptr addrspace(23) addrspacecast (ptr null to ptr addrspace(23)) 100 101; CHECK-LABEL: structWithPointers: 102; CHECK-NEXT: .long -1 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 108; CHECK-NEXT: .long -1 109; GCN-NEXT: .zero 4 110; GCN-NEXT: .quad 0 111; R600-NEXT: .long 0 112; CHECK-NEXT: .long -1 113; GCN-NEXT: .zero 4 114@structWithPointers = addrspace(1) global %struct.S { 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 121