// RUN: %clang_cc1 -triple x86_64-windows-gnu -emit-llvm -o - %s \
// RUN:    | FileCheck %s --check-prefix=GNU64
// RUN: %clang_cc1 -triple x86_64-windows-msvc -emit-llvm -o - %s \
// RUN:    | FileCheck %s --check-prefix=MSC64

typedef int int128_t __attribute__((mode(TI)));

int128_t foo() { return 0; }

// GNU64: define dso_local <2 x i64> @foo()
// MSC64: define dso_local <2 x i64> @foo()

int128_t bar(int128_t a, int128_t b) { return a * b; }

// GNU64: define dso_local <2 x i64> @bar(i128* %0, i128* %1)
// MSC64: define dso_local <2 x i64> @bar(i128* %0, i128* %1)

void vararg(int a, ...) {
  // GNU64-LABEL: define{{.*}} void @vararg
  // MSC64-LABEL: define{{.*}} void @vararg
  __builtin_va_list ap;
  __builtin_va_start(ap, a);
  int128_t i = __builtin_va_arg(ap, int128_t);
  // GNU64: load i128*, i128**
  // GNU64: load i128, i128*
  // MSC64: load i128*, i128**
  // MSC64: load i128, i128*
  __builtin_va_end(ap);
}
