Index: clang/test/CodeGen/ext-int-cc.c =================================================================== --- clang/test/CodeGen/ext-int-cc.c +++ clang/test/CodeGen/ext-int-cc.c @@ -3,6 +3,31 @@ // RUN: %clang_cc1 -triple i386-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LIN32 // RUN: %clang_cc1 -triple i386-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WIN32 +// TODO +// RUN: %clang_cc1 -triple mips-nacl-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NACL +// RUN: %clang_cc1 -triple nvptx64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NVPTX64 +// RUN: %clang_cc1 -triple nvptx-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NVPTX +// RUN: %clang_cc1 -triple sparcv9-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPARCV9 +// RUN: %clang_cc1 -triple mips64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=MIPS64 +// RUN: %clang_cc1 -triple mips-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=MIPS +// RUN: %clang_cc1 -triple spirv64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=DEFAULT +// RUN: %clang_cc1 -triple PPC-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=PPC32 +// RUN: %clang_cc1 -triple hexagon-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=HEX +// RUN: %clang_cc1 -triple lanai-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LANAI +// RUN: %clang_cc1 -triple r600-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=R600 +// RUN: %clang_cc1 -triple sparc-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPARC +// RUN: %clang_cc1 -triple arc-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=ARC +// RUN: %clang_cc1 -triple xcore-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=XCORE +// RUN: %clang_cc1 -triple riscv64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=RISCV64 +// RUN: %clang_cc1 -triple riscv32-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=RISCV32 +// RUN: %clang_cc1 -triple wasm64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WASM64 +// RUN: %clang_cc1 -triple wasm32-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WASM32 +// RUN: %clang_cc1 -triple ppc64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=PPC64 +// RUN: %clang_cc1 -triple aarch64-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64 +// RUN: %clang_cc1 -triple aarch64_32-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64_32 +// RUN: %clang_cc1 -triple arm-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=ARM +// RUN: %clang_cc1 -triple systemz-unknown-unknown -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SYSTEMZ + // Make sure 128 and 64 bit versions are passed like integers, and that >128 // is passed indirectly. void ParamPassing(_ExtInt(129) a, _ExtInt(128) b, _ExtInt(64) c) {} @@ -10,33 +35,194 @@ // WIN64: define dso_local void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) // LIN32: define void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) // WIN32: define dso_local void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL void ParamPassing2(_ExtInt(129) a, _ExtInt(127) b, _ExtInt(63) c) {} // LIN64: define void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}) // WIN64: define dso_local void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) // LIN32: define void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) // WIN32: define dso_local void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL _ExtInt(63) ReturnPassing(){} // LIN64: define i64 @ReturnPassing( // WIN64: define dso_local i63 @ReturnPassing( // LIN32: define i63 @ReturnPassing( // WIN32: define dso_local i63 @ReturnPassing( +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL _ExtInt(64) ReturnPassing2(){} // LIN64: define i64 @ReturnPassing2( // WIN64: define dso_local i64 @ReturnPassing2( // LIN32: define i64 @ReturnPassing2( // WIN32: define dso_local i64 @ReturnPassing2( +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL _ExtInt(127) ReturnPassing3(){} // LIN64: define { i64, i64 } @ReturnPassing3( // WIN64: define dso_local void @ReturnPassing3(i127* noalias sret // LIN32: define i127 @ReturnPassing3( // WIN32: define dso_local i127 @ReturnPassing3( +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL _ExtInt(128) ReturnPassing4(){} // LIN64: define { i64, i64 } @ReturnPassing4( // WIN64: define dso_local void @ReturnPassing4(i128* noalias sret // LIN32: define i128 @ReturnPassing4( // WIN32: define dso_local i128 @ReturnPassing4( +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL _ExtInt(129) ReturnPassing5(){} // LIN64: define void @ReturnPassing5(i129* noalias sret // WIN64: define dso_local void @ReturnPassing5(i129* noalias sret // LIN32: define i129 @ReturnPassing5( // WIN32: define dso_local i129 @ReturnPassing5( +// NACL: FAIL +// NVPTX64: FAIL +// NVPTX: FAIL +// SPARCV9: FAIL +// MIPS64: FAIL +// MIPS: FAIL +// DEFAULT: FAIL +// PPC32: FAIL +// HEX: FAIL +// LANAI: FAIL +// R600: FAIL +// SPARC: FAIL +// ARC: FAIL +// XCORE: FAIL +// RISCV64: FAIL +// RISCV32: FAIL +// WASM64: FAIL +// WASM32: FAIL +// PPC64: FAIL +// AARCH64: FAIL +// AARCH64_32: FAIL +// ARM: FAIL +// SYSTEMZ: FAIL