Clang Project

clang_source_code/test/CodeGen/target-data.c
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-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-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-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-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-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-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-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 thumb-unknown-gnueabi -o - -emit-llvm %s | \
167// RUN: FileCheck %s -check-prefix=THUMB
168// THUMB: target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
169
170// RUN: %clang_cc1 -triple arm-unknown-gnueabi -o - -emit-llvm %s | \
171// RUN: FileCheck %s -check-prefix=ARM
172// ARM: 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 thumb-unknown -o - -emit-llvm -target-abi apcs-gnu \
175// RUN: %s | FileCheck %s -check-prefix=THUMB-GNU
176// 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"
177
178// RUN: %clang_cc1 -triple arm-unknown -o - -emit-llvm -target-abi apcs-gnu \
179// RUN: %s | FileCheck %s -check-prefix=ARM-GNU
180// 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"
181
182// RUN: %clang_cc1 -triple arc-unknown-unknown -o - -emit-llvm %s | \
183// RUN: FileCheck %s -check-prefix=ARC
184// 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"
185
186// RUN: %clang_cc1 -triple hexagon-unknown -o - -emit-llvm %s | \
187// RUN: FileCheck %s -check-prefix=HEXAGON
188// 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"
189
190// RUN: %clang_cc1 -triple s390x-unknown -o - -emit-llvm %s | \
191// RUN: FileCheck %s -check-prefix=SYSTEMZ
192// SYSTEMZ: target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64"
193
194// RUN: %clang_cc1 -triple s390x-unknown -target-cpu z13 -o - -emit-llvm %s | \
195// RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
196// RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch11 -o - -emit-llvm %s | \
197// RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
198// RUN: %clang_cc1 -triple s390x-unknown -target-cpu z14 -o - -emit-llvm %s | \
199// RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
200// RUN: %clang_cc1 -triple s390x-unknown -target-cpu arch12 -o - -emit-llvm %s | \
201// RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
202// SYSTEMZ-VECTOR: target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
203
204// RUN: %clang_cc1 -triple msp430-unknown -o - -emit-llvm %s | \
205// RUN: FileCheck %s -check-prefix=MSP430
206// MSP430: target datalayout = "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16"
207
208// RUN: %clang_cc1 -triple tce-unknown -o - -emit-llvm %s | \
209// RUN: FileCheck %s -check-prefix=TCE
210// 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"
211
212// RUN: %clang_cc1 -triple tcele-unknown -o - -emit-llvm %s | \
213// RUN: FileCheck %s -check-prefix=TCELE
214// 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"
215
216// RUN: %clang_cc1 -triple spir-unknown -o - -emit-llvm %s | \
217// RUN: FileCheck %s -check-prefix=SPIR
218// 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"
219
220// RUN: %clang_cc1 -triple spir64-unknown -o - -emit-llvm %s | \
221// RUN: FileCheck %s -check-prefix=SPIR64
222// SPIR64: target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
223
224// RUN: %clang_cc1 -triple bpfel -o - -emit-llvm %s | \
225// RUN: FileCheck %s -check-prefix=BPFEL
226// BPFEL: target datalayout = "e-m:e-p:64:64-i64:64-n32:64-S128"
227
228// RUN: %clang_cc1 -triple bpfeb -o - -emit-llvm %s | \
229// RUN: FileCheck %s -check-prefix=BPFEB
230// BPFEB: target datalayout = "E-m:e-p:64:64-i64:64-n32:64-S128"
231