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