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