1 // RUN: %clang_cc1 -triple i686-unknown-unknown -emit-llvm -o - %s | \
2 // RUN:     FileCheck --check-prefix=I686-UNKNOWN %s
3 // I686-UNKNOWN: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128"
4 
5 // RUN: %clang_cc1 -triple i686-apple-darwin9 -emit-llvm -o - %s | \
6 // RUN:     FileCheck --check-prefix=I686-DARWIN %s
7 // I686-DARWIN: target datalayout = "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:128-n8:16:32-S128"
8 
9 // RUN: %clang_cc1 -triple i686-unknown-win32 -emit-llvm -o - %s | \
10 // RUN:     FileCheck --check-prefix=I686-WIN32 %s
11 // I686-WIN32: target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:32-n8:16:32-a:0:32-S32"
12 
13 // RUN: %clang_cc1 -triple i686-unknown-cygwin -emit-llvm -o - %s | \
14 // RUN:     FileCheck --check-prefix=I686-CYGWIN %s
15 // I686-CYGWIN: target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:32-n8:16:32-a:0:32-S32"
16 
17 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | \
18 // RUN:     FileCheck --check-prefix=X86_64 %s
19 // X86_64: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
20 
21 // RUN: %clang_cc1 -triple xcore-unknown-unknown -emit-llvm -o - %s | \
22 // RUN:     FileCheck --check-prefix=XCORE %s
23 // XCORE: target datalayout = "e-m:e-p:32:32-i1:8:32-i8:8:32-i16:16:32-i64:32-f64:32-a:0:32-n32"
24 
25 // RUN: %clang_cc1 -triple sparc-sun-solaris -emit-llvm -o - %s | \
26 // RUN:     FileCheck %s --check-prefix=SPARC-V8
27 // SPARC-V8: target datalayout = "E-m:e-p:32:32-i64:64-f128:64-n32-S64"
28 
29 // RUN: %clang_cc1 -triple sparcv9-sun-solaris -emit-llvm -o - %s | \
30 // RUN: FileCheck %s --check-prefix=SPARC-V9
31 // SPARC-V9: target datalayout = "E-m:e-i64:64-n32:64-S128"
32 
33 // RUN: %clang_cc1 -triple mipsel-linux-gnu -o - -emit-llvm %s |     \
34 // RUN: FileCheck %s -check-prefix=MIPS-32EL
35 // RUN: %clang_cc1 -triple mipsisa32r6el-linux-gnu -o - -emit-llvm %s |     \
36 // RUN: FileCheck %s -check-prefix=MIPS-32EL
37 // MIPS-32EL: target datalayout = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
38 
39 // RUN: %clang_cc1 -triple mips-linux-gnu -o - -emit-llvm %s | \
40 // RUN: FileCheck %s -check-prefix=MIPS-32EB
41 // RUN: %clang_cc1 -triple mipsisa32r6-linux-gnu -o - -emit-llvm %s | \
42 // RUN: FileCheck %s -check-prefix=MIPS-32EB
43 // MIPS-32EB: target datalayout = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
44 
45 // RUN: %clang_cc1 -triple mips64el-linux-gnu -o - -emit-llvm %s | \
46 // RUN: FileCheck %s -check-prefix=MIPS-64EL
47 // RUN: %clang_cc1 -triple mips64el-linux-gnuabi64 -o - -emit-llvm %s | \
48 // RUN: FileCheck %s -check-prefix=MIPS-64EL
49 // RUN: %clang_cc1 -triple mipsisa64r6el-linux-gnu -o - -emit-llvm %s | \
50 // RUN: FileCheck %s -check-prefix=MIPS-64EL
51 // RUN: %clang_cc1 -triple mipsisa64r6el-linux-gnuabi64 -o - -emit-llvm %s | \
52 // RUN: FileCheck %s -check-prefix=MIPS-64EL
53 // MIPS-64EL: target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128"
54 
55 // RUN: %clang_cc1 -triple mips64el-linux-gnu -o - -emit-llvm -target-abi n32 \
56 // RUN: %s | FileCheck %s -check-prefix=MIPS-64EL-N32
57 // RUN: %clang_cc1 -triple mips64el-linux-gnuabin32 -o - -emit-llvm \
58 // RUN: %s | FileCheck %s -check-prefix=MIPS-64EL-N32
59 // RUN: %clang_cc1 -triple mipsisa64r6el-linux-gnu -o - -emit-llvm -target-abi n32 \
60 // RUN: %s | FileCheck %s -check-prefix=MIPS-64EL-N32
61 // RUN: %clang_cc1 -triple mipsisa64r6el-linux-gnuabin32 -o - -emit-llvm \
62 // RUN: %s | FileCheck %s -check-prefix=MIPS-64EL-N32
63 // MIPS-64EL-N32: target datalayout = "e-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-n32:64-S128"
64 
65 // RUN: %clang_cc1 -triple mips64-linux-gnu -o - -emit-llvm %s | \
66 // RUN: FileCheck %s -check-prefix=MIPS-64EB
67 // RUN: %clang_cc1 -triple mips64-linux-gnuabi64 -o - -emit-llvm %s | \
68 // RUN: FileCheck %s -check-prefix=MIPS-64EB
69 // RUN: %clang_cc1 -triple mipsisa64r6-linux-gnu -o - -emit-llvm %s | \
70 // RUN: FileCheck %s -check-prefix=MIPS-64EB
71 // RUN: %clang_cc1 -triple mipsisa64r6-linux-gnuabi64 -o - -emit-llvm %s | \
72 // RUN: FileCheck %s -check-prefix=MIPS-64EB
73 // MIPS-64EB: target datalayout = "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128"
74 
75 // RUN: %clang_cc1 -triple mips64-linux-gnu -o - -emit-llvm %s -target-abi n32 \
76 // RUN: | FileCheck %s -check-prefix=MIPS-64EB-N32
77 // RUN: %clang_cc1 -triple mips64-linux-gnuabin32 -o - -emit-llvm %s \
78 // RUN: | FileCheck %s -check-prefix=MIPS-64EB-N32
79 // RUN: %clang_cc1 -triple mipsisa64r6-linux-gnu -o - -emit-llvm %s -target-abi n32 \
80 // RUN: | FileCheck %s -check-prefix=MIPS-64EB-N32
81 // RUN: %clang_cc1 -triple mipsisa64r6-linux-gnuabin32 -o - -emit-llvm %s \
82 // RUN: | FileCheck %s -check-prefix=MIPS-64EB-N32
83 // MIPS-64EB-N32: target datalayout = "E-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-n32:64-S128"
84 
85 // RUN: %clang_cc1 -triple powerpc64-lv2 -o - -emit-llvm %s | \
86 // RUN: FileCheck %s -check-prefix=PS3
87 // PS3: target datalayout = "E-m:e-p:32:32-i64:64-n32:64"
88 
89 // RUN: %clang_cc1 -triple i686-nacl -o - -emit-llvm %s | \
90 // RUN: FileCheck %s -check-prefix=I686-NACL
91 // I686-NACL: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-n8:16:32-S128"
92 
93 // RUN: %clang_cc1 -triple x86_64-nacl -o - -emit-llvm %s | \
94 // RUN: FileCheck %s -check-prefix=X86_64-NACL
95 // X86_64-NACL: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-n8:16:32:64-S128"
96 
97 // RUN: %clang_cc1 -triple arm-nacl -o - -emit-llvm %s | \
98 // RUN: FileCheck %s -check-prefix=ARM-NACL
99 // ARM-NACL: target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S128"
100 
101 // RUN: %clang_cc1 -triple mipsel-nacl -o - -emit-llvm %s | \
102 // RUN: FileCheck %s -check-prefix=MIPS-NACL
103 // MIPS-NACL: target datalayout = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
104 
105 // RUN: %clang_cc1 -triple le32-nacl -o - -emit-llvm %s | \
106 // RUN: FileCheck %s -check-prefix=LE32-NACL
107 // LE32-NACL: target datalayout = "e-p:32:32-i64:64"
108 
109 // RUN: %clang_cc1 -triple wasm32-unknown-unknown -o - -emit-llvm %s | \
110 // RUN: FileCheck %s -check-prefix=WEBASSEMBLY32
111 // WEBASSEMBLY32: target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
112 
113 // RUN: %clang_cc1 -triple wasm64-unknown-unknown -o - -emit-llvm %s | \
114 // RUN: FileCheck %s -check-prefix=WEBASSEMBLY64
115 // WEBASSEMBLY64: target datalayout = "e-m:e-p:64:64-i64:64-n32:64-S128"
116 
117 // RUN: %clang_cc1 -triple lanai-unknown-unknown -o - -emit-llvm %s | \
118 // RUN: FileCheck %s -check-prefix=LANAI
119 // LANAI: target datalayout = "E-m:e-p:32:32-i64:64-a:0:32-n32-S64"
120 
121 // RUN: %clang_cc1 -triple powerpc-unknown -o - -emit-llvm %s | \
122 // RUN: FileCheck %s -check-prefix=PPC
123 // PPC: target datalayout = "E-m:e-p:32:32-i64:64-n32"
124 
125 // RUN: %clang_cc1 -triple powerpc64-freebsd -o - -emit-llvm %s | \
126 // RUN: FileCheck %s -check-prefix=PPC64-FREEBSD
127 // PPC64-FREEBSD: target datalayout = "E-m:e-i64:64-n32:64"
128 
129 // RUN: %clang_cc1 -triple powerpc64-linux -o - -emit-llvm %s | \
130 // RUN: FileCheck %s -check-prefix=PPC64-LINUX
131 // PPC64-LINUX: target datalayout = "E-m:e-i64:64-n32:64"
132 
133 // RUN: %clang_cc1 -triple powerpc64le-linux -o - -emit-llvm %s | \
134 // RUN: FileCheck %s -check-prefix=PPC64LE-LINUX
135 // PPC64LE-LINUX: target datalayout = "e-m:e-i64:64-n32:64"
136 
137 // RUN: %clang_cc1 -triple nvptx-unknown -o - -emit-llvm %s | \
138 // RUN: FileCheck %s -check-prefix=NVPTX
139 // NVPTX: target datalayout = "e-p:32:32-i64:64-i128:128-v16:16-v32:32-n16:32:64"
140 
141 // RUN: %clang_cc1 -triple nvptx64-unknown -o - -emit-llvm %s | \
142 // RUN: FileCheck %s -check-prefix=NVPTX64
143 // NVPTX64: target datalayout = "e-i64:64-i128:128-v16:16-v32:32-n16:32:64"
144 
145 // RUN: %clang_cc1 -triple r600-unknown -o - -emit-llvm %s | \
146 // RUN: FileCheck %s -check-prefix=R600
147 // R600: target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"
148 
149 // RUN: %clang_cc1 -triple r600-unknown -target-cpu cayman -o - -emit-llvm %s \
150 // RUN: | FileCheck %s -check-prefix=R600D
151 // R600D: target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5"
152 
153 // RUN: %clang_cc1 -triple amdgcn-unknown -target-cpu hawaii -o - -emit-llvm %s \
154 // RUN: | FileCheck %s -check-prefix=R600SI
155 // R600SI: target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7"
156 
157 // Test default -target-cpu
158 // RUN: %clang_cc1 -triple amdgcn-unknown -o - -emit-llvm %s \
159 // RUN: | FileCheck %s -check-prefix=R600SIDefault
160 // R600SIDefault: target datalayout = "e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-ni:7"
161 
162 // RUN: %clang_cc1 -triple arm64-unknown -o - -emit-llvm %s | \
163 // RUN: FileCheck %s -check-prefix=AARCH64
164 // AARCH64: target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
165 
166 // RUN: %clang_cc1 -triple arm64_32-apple-ios7.0 -o - -emit-llvm %s | \
167 // RUN: FileCheck %s -check-prefix=AARCH64-ILP32
168 // AARCH64-ILP32: target datalayout = "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128"
169 
170 // RUN: %clang_cc1 -triple thumb-unknown-gnueabi -o - -emit-llvm %s | \
171 // RUN: FileCheck %s -check-prefix=THUMB
172 // THUMB: target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
173 
174 // RUN: %clang_cc1 -triple arm-unknown-gnueabi -o - -emit-llvm %s | \
175 // RUN: FileCheck %s -check-prefix=ARM
176 // ARM: target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
177 
178 // RUN: %clang_cc1 -triple thumb-unknown -o - -emit-llvm -target-abi apcs-gnu \
179 // RUN: %s | FileCheck %s -check-prefix=THUMB-GNU
180 // THUMB-GNU: target datalayout = "e-m:e-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
181 
182 // RUN: %clang_cc1 -triple arm-unknown -o - -emit-llvm -target-abi apcs-gnu \
183 // RUN: %s | FileCheck %s -check-prefix=ARM-GNU
184 // ARM-GNU: target datalayout = "e-m:e-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
185 
186 // RUN: %clang_cc1 -triple arc-unknown-unknown -o - -emit-llvm %s | \
187 // RUN: FileCheck %s -check-prefix=ARC
188 // ARC: target datalayout = "e-m:e-p:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-f32:32:32-i64:32-f64:32-a:0:32-n32"
189 
190 // RUN: %clang_cc1 -triple hexagon-unknown -o - -emit-llvm %s | \
191 // RUN: FileCheck %s -check-prefix=HEXAGON
192 // HEXAGON: target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"
193 
194 // RUN: %clang_cc1 -triple s390x-unknown -o - -emit-llvm %s | \
195 // RUN: FileCheck %s -check-prefix=SYSTEMZ
196 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z10 -o - -emit-llvm %s | \
197 // RUN: FileCheck %s -check-prefix=SYSTEMZ
198 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch8 -o - -emit-llvm %s | \
199 // RUN: FileCheck %s -check-prefix=SYSTEMZ
200 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z196 -o - -emit-llvm %s | \
201 // RUN: FileCheck %s -check-prefix=SYSTEMZ
202 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch9 -o - -emit-llvm %s | \
203 // RUN: FileCheck %s -check-prefix=SYSTEMZ
204 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu zEC12 -o - -emit-llvm %s | \
205 // RUN: FileCheck %s -check-prefix=SYSTEMZ
206 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch10 -o - -emit-llvm %s | \
207 // RUN: FileCheck %s -check-prefix=SYSTEMZ
208 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z13 -target-feature +soft-float -o - -emit-llvm %s | \
209 // RUN: FileCheck %s -check-prefix=SYSTEMZ
210 // SYSTEMZ: target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64"
211 
212 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z13 -o - -emit-llvm %s | \
213 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
214 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch11 -o - -emit-llvm %s | \
215 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
216 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z14 -o - -emit-llvm %s | \
217 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
218 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch12 -o - -emit-llvm %s | \
219 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
220 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z15 -o - -emit-llvm %s | \
221 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
222 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch13 -o - -emit-llvm %s | \
223 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
224 // SYSTEMZ-VECTOR: target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
225 
226 // RUN: %clang_cc1 -triple msp430-unknown -o - -emit-llvm %s | \
227 // RUN: FileCheck %s -check-prefix=MSP430
228 // MSP430: target datalayout = "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16"
229 
230 // RUN: %clang_cc1 -triple tce-unknown -o - -emit-llvm %s | \
231 // RUN: FileCheck %s -check-prefix=TCE
232 // TCE: target datalayout = "E-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-v256:32:32-v512:32:32-v1024:32:32-a0:0:32-n32"
233 
234 // RUN: %clang_cc1 -triple tcele-unknown -o - -emit-llvm %s | \
235 // RUN: FileCheck %s -check-prefix=TCELE
236 // TCELE: target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:32-v128:32:32-v256:32:32-v512:32:32-v1024:32:32-a0:0:32-n32"
237 
238 // RUN: %clang_cc1 -triple spir-unknown -o - -emit-llvm %s | \
239 // RUN: FileCheck %s -check-prefix=SPIR
240 // SPIR: target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
241 
242 // RUN: %clang_cc1 -triple spir64-unknown -o - -emit-llvm %s | \
243 // RUN: FileCheck %s -check-prefix=SPIR64
244 // SPIR64: target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
245 
246 // RUN: %clang_cc1 -triple bpfel -o - -emit-llvm %s | \
247 // RUN: FileCheck %s -check-prefix=BPFEL
248 // BPFEL: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
249 
250 // RUN: %clang_cc1 -triple bpfeb -o - -emit-llvm %s | \
251 // RUN: FileCheck %s -check-prefix=BPFEB
252 // BPFEB: target datalayout = "E-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
253 
254 // RUN: %clang_cc1 -triple ve -o - -emit-llvm %s | \
255 // RUN: FileCheck %s -check-prefix=VE
256 // VE: target datalayout = "e-m:e-i64:64-n32:64-S128"
257