Home | History | Annotate | Download | only in CodeGen
      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 // MIPS-32EL: target datalayout = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
     36 
     37 // RUN: %clang_cc1 -triple mips-linux-gnu -o - -emit-llvm %s | \
     38 // RUN: FileCheck %s -check-prefix=MIPS-32EB
     39 // MIPS-32EB: target datalayout = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
     40 
     41 // RUN: %clang_cc1 -triple mips64el-linux-gnu -o - -emit-llvm %s | \
     42 // RUN: FileCheck %s -check-prefix=MIPS-64EL
     43 // MIPS-64EL: target datalayout = "e-m:m-i8:8:32-i16:16:32-i64:64-n32:64-S128"
     44 
     45 // RUN: %clang_cc1 -triple mips64el-linux-gnu -o - -emit-llvm -target-abi n32 \
     46 // RUN: %s | FileCheck %s -check-prefix=MIPS-64EL-N32
     47 // MIPS-64EL-N32: target datalayout = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32:64-S128"
     48 
     49 // RUN: %clang_cc1 -triple mips64-linux-gnu -o - -emit-llvm %s | \
     50 // RUN: FileCheck %s -check-prefix=MIPS-64EB
     51 // MIPS-64EB: target datalayout = "E-m:m-i8:8:32-i16:16:32-i64:64-n32:64-S128"
     52 
     53 // RUN: %clang_cc1 -triple mips64-linux-gnu -o - -emit-llvm %s -target-abi n32 \
     54 // RUN: | FileCheck %s -check-prefix=MIPS-64EB-N32
     55 // MIPS-64EB-N32: target datalayout = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32:64-S128"
     56 
     57 // RUN: %clang_cc1 -triple powerpc64-lv2 -o - -emit-llvm %s | \
     58 // RUN: FileCheck %s -check-prefix=PS3
     59 // PS3: target datalayout = "E-m:e-p:32:32-i64:64-n32:64"
     60 
     61 // RUN: %clang_cc1 -triple i686-nacl -o - -emit-llvm %s | \
     62 // RUN: FileCheck %s -check-prefix=I686-NACL
     63 // I686-NACL: target datalayout = "e-m:e-p:32:32-i64:64-n8:16:32-S128"
     64 
     65 // RUN: %clang_cc1 -triple x86_64-nacl -o - -emit-llvm %s | \
     66 // RUN: FileCheck %s -check-prefix=X86_64-NACL
     67 // X86_64-NACL: target datalayout = "e-m:e-p:32:32-i64:64-n8:16:32:64-S128"
     68 
     69 // RUN: %clang_cc1 -triple arm-nacl -o - -emit-llvm %s | \
     70 // RUN: FileCheck %s -check-prefix=ARM-NACL
     71 // ARM-NACL: target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S128"
     72 
     73 // RUN: %clang_cc1 -triple mipsel-nacl -o - -emit-llvm %s | \
     74 // RUN: FileCheck %s -check-prefix=MIPS-NACL
     75 // MIPS-NACL: target datalayout = "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
     76 
     77 // RUN: %clang_cc1 -triple le32-nacl -o - -emit-llvm %s | \
     78 // RUN: FileCheck %s -check-prefix=LE32-NACL
     79 // LE32-NACL: target datalayout = "e-p:32:32-i64:64"
     80 
     81 // RUN: %clang_cc1 -triple wasm32-unknown-unknown -o - -emit-llvm %s | \
     82 // RUN: FileCheck %s -check-prefix=WEBASSEMBLY32
     83 // WEBASSEMBLY32: target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
     84 
     85 // RUN: %clang_cc1 -triple wasm64-unknown-unknown -o - -emit-llvm %s | \
     86 // RUN: FileCheck %s -check-prefix=WEBASSEMBLY64
     87 // WEBASSEMBLY64: target datalayout = "e-m:e-p:64:64-i64:64-n32:64-S128"
     88 
     89 // RUN: %clang_cc1 -triple lanai-unknown-unknown -o - -emit-llvm %s | \
     90 // RUN: FileCheck %s -check-prefix=LANAI
     91 // LANAI: target datalayout = "E-m:e-p:32:32-i64:64-a:0:32-n32-S64"
     92 
     93 // RUN: %clang_cc1 -triple powerpc-unknown -o - -emit-llvm %s | \
     94 // RUN: FileCheck %s -check-prefix=PPC
     95 // PPC: target datalayout = "E-m:e-p:32:32-i64:64-n32"
     96 
     97 // RUN: %clang_cc1 -triple powerpc64-freebsd -o - -emit-llvm %s | \
     98 // RUN: FileCheck %s -check-prefix=PPC64-FREEBSD
     99 // PPC64-FREEBSD: target datalayout = "E-m:e-i64:64-n32:64"
    100 
    101 // RUN: %clang_cc1 -triple powerpc64-linux -o - -emit-llvm %s | \
    102 // RUN: FileCheck %s -check-prefix=PPC64-LINUX
    103 // PPC64-LINUX: target datalayout = "E-m:e-i64:64-n32:64"
    104 
    105 // RUN: %clang_cc1 -triple powerpc64le-linux -o - -emit-llvm %s | \
    106 // RUN: FileCheck %s -check-prefix=PPC64LE-LINUX
    107 // PPC64LE-LINUX: target datalayout = "e-m:e-i64:64-n32:64"
    108 
    109 // RUN: %clang_cc1 -triple powerpc-darwin -o - -emit-llvm %s | \
    110 // RUN: FileCheck %s -check-prefix=PPC32-DARWIN
    111 // PPC32-DARWIN: target datalayout = "E-m:o-p:32:32-f64:32:64-n32"
    112 
    113 // RUN: %clang_cc1 -triple powerpc64-darwin -o - -emit-llvm %s | \
    114 // RUN: FileCheck %s -check-prefix=PPC64-DARWIN
    115 // PPC64-DARWIN: target datalayout = "E-m:o-i64:64-n32:64"
    116 
    117 // RUN: %clang_cc1 -triple nvptx-unknown -o - -emit-llvm %s | \
    118 // RUN: FileCheck %s -check-prefix=NVPTX
    119 // NVPTX: target datalayout = "e-p:32:32-i64:64-v16:16-v32:32-n16:32:64"
    120 
    121 // RUN: %clang_cc1 -triple nvptx64-unknown -o - -emit-llvm %s | \
    122 // RUN: FileCheck %s -check-prefix=NVPTX64
    123 // NVPTX64: target datalayout = "e-i64:64-v16:16-v32:32-n16:32:64"
    124 
    125 // RUN: %clang_cc1 -triple r600-unknown -o - -emit-llvm %s | \
    126 // RUN: FileCheck %s -check-prefix=R600
    127 // 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"
    128 
    129 // RUN: %clang_cc1 -triple r600-unknown -target-cpu cayman -o - -emit-llvm %s \
    130 // RUN: | FileCheck %s -check-prefix=R600D
    131 // 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"
    132 
    133 // RUN: %clang_cc1 -triple amdgcn-unknown -target-cpu hawaii -o - -emit-llvm %s \
    134 // RUN: | FileCheck %s -check-prefix=R600SI
    135 // R600SI: target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5: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"
    136 
    137 // Test default -target-cpu
    138 // RUN: %clang_cc1 -triple amdgcn-unknown -o - -emit-llvm %s \
    139 // RUN: | FileCheck %s -check-prefix=R600SIDefault
    140 // R600SIDefault: target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5: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"
    141 
    142 // RUN: %clang_cc1 -triple arm64-unknown -o - -emit-llvm %s | \
    143 // RUN: FileCheck %s -check-prefix=AARCH64
    144 // AARCH64: target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
    145 
    146 // RUN: %clang_cc1 -triple thumb-unknown-gnueabi -o - -emit-llvm %s | \
    147 // RUN: FileCheck %s -check-prefix=THUMB
    148 // THUMB: target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
    149 
    150 // RUN: %clang_cc1 -triple arm-unknown-gnueabi -o - -emit-llvm %s | \
    151 // RUN: FileCheck %s -check-prefix=ARM
    152 // ARM: target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
    153 
    154 // RUN: %clang_cc1 -triple thumb-unknown -o - -emit-llvm -target-abi apcs-gnu \
    155 // RUN: %s | FileCheck %s -check-prefix=THUMB-GNU
    156 // THUMB-GNU: target datalayout = "e-m:e-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
    157 
    158 // RUN: %clang_cc1 -triple arm-unknown -o - -emit-llvm -target-abi apcs-gnu \
    159 // RUN: %s | FileCheck %s -check-prefix=ARM-GNU
    160 // ARM-GNU: target datalayout = "e-m:e-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
    161 
    162 // RUN: %clang_cc1 -triple hexagon-unknown -o - -emit-llvm %s | \
    163 // RUN: FileCheck %s -check-prefix=HEXAGON
    164 // 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"
    165 
    166 // RUN: %clang_cc1 -triple s390x-unknown -o - -emit-llvm %s | \
    167 // RUN: FileCheck %s -check-prefix=SYSTEMZ
    168 // SYSTEMZ: target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64"
    169 
    170 // RUN: %clang_cc1 -triple s390x-unknown -target-cpu z13 -o - -emit-llvm %s | \
    171 // RUN: FileCheck %s -check-prefix=SYSTEMZ-VECTOR
    172 // SYSTEMZ-VECTOR: target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
    173 
    174 // RUN: %clang_cc1 -triple msp430-unknown -o - -emit-llvm %s | \
    175 // RUN: FileCheck %s -check-prefix=MSP430
    176 // MSP430: target datalayout = "e-m:e-p:16:16-i32:16:32-a:16-n8:16"
    177 
    178 // RUN: %clang_cc1 -triple tce-unknown -o - -emit-llvm %s | \
    179 // RUN: FileCheck %s -check-prefix=TCE
    180 // TCE: target datalayout = "E-p:32:32-i8:8:32-i16:16:32-i64:32-f64:32-v64:32-v128:32-a:0:32-n32"
    181 
    182 // RUN: %clang_cc1 -triple spir-unknown -o - -emit-llvm %s | \
    183 // RUN: FileCheck %s -check-prefix=SPIR
    184 // 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"
    185 
    186 // RUN: %clang_cc1 -triple spir64-unknown -o - -emit-llvm %s | \
    187 // RUN: FileCheck %s -check-prefix=SPIR64
    188 // SPIR64: target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
    189 
    190 // RUN: %clang_cc1 -triple bpfel -o - -emit-llvm %s | \
    191 // RUN: FileCheck %s -check-prefix=BPFEL
    192 // BPFEL: target datalayout = "e-m:e-p:64:64-i64:64-n32:64-S128"
    193 
    194 // RUN: %clang_cc1 -triple bpfeb -o - -emit-llvm %s | \
    195 // RUN: FileCheck %s -check-prefix=BPFEB
    196 // BPFEB: target datalayout = "E-m:e-p:64:64-i64:64-n32:64-S128"
    197