brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1013 B · 2d83889 Raw
30 lines · c
1// RUN: %clang_cc1 -triple x86_64-windows-gnu -emit-llvm -o - %s \2// RUN:    | FileCheck %s --check-prefix=GNU643// RUN: %clang_cc1 -triple x86_64-windows-msvc -emit-llvm -o - %s \4// RUN:    | FileCheck %s --check-prefix=MSC645 6typedef int int128_t __attribute__((mode(TI)));7 8int128_t foo(void) { return 0; }9 10// GNU64: define dso_local <2 x i64> @foo()11// MSC64: define dso_local <2 x i64> @foo()12 13int128_t bar(int128_t a, int128_t b) { return a * b; }14 15// GNU64: define dso_local <2 x i64> @bar(ptr dead_on_return noundef %0, ptr dead_on_return noundef %1)16// MSC64: define dso_local <2 x i64> @bar(ptr dead_on_return noundef %0, ptr dead_on_return noundef %1)17 18void vararg(int a, ...) {19  // GNU64-LABEL: define{{.*}} void @vararg20  // MSC64-LABEL: define{{.*}} void @vararg21  __builtin_va_list ap;22  __builtin_va_start(ap, a);23  int128_t i = __builtin_va_arg(ap, int128_t);24  // GNU64: load ptr, ptr25  // GNU64: load i128, ptr26  // MSC64: load ptr, ptr27  // MSC64: load i128, ptr28  __builtin_va_end(ap);29}30