forked from OSchip/llvm-project
[clang] [test] Share patterns in CodeGen/ms_abi_aarch64.c between cases. NFC.
Differential Revision: https://reviews.llvm.org/D100468
This commit is contained in:
parent
efee57925c
commit
ee570e2153
|
@ -18,8 +18,7 @@ void f3(void) {
|
||||||
// LINUX: call win64cc void @f1()
|
// LINUX: call win64cc void @f1()
|
||||||
// WIN64: call void @f1()
|
// WIN64: call void @f1()
|
||||||
f2();
|
f2();
|
||||||
// LINUX: call void @f2()
|
// COMMON: call void @f2()
|
||||||
// WIN64: call void @f2()
|
|
||||||
}
|
}
|
||||||
// LINUX: declare win64cc void @f1()
|
// LINUX: declare win64cc void @f1()
|
||||||
// LINUX: declare void @f2()
|
// LINUX: declare void @f2()
|
||||||
|
@ -32,28 +31,19 @@ void __attribute__((ms_abi)) f4(int a, ...) {
|
||||||
// WIN64-LABEL: define dso_local void @f4
|
// WIN64-LABEL: define dso_local void @f4
|
||||||
__builtin_ms_va_list ap;
|
__builtin_ms_va_list ap;
|
||||||
__builtin_ms_va_start(ap, a);
|
__builtin_ms_va_start(ap, a);
|
||||||
// LINUX: %[[AP:.*]] = alloca i8*
|
// COMMON: %[[AP:.*]] = alloca i8*
|
||||||
// LINUX: call void @llvm.va_start
|
// COMMON: call void @llvm.va_start
|
||||||
// WIN64: %[[AP:.*]] = alloca i8*
|
|
||||||
// WIN64: call void @llvm.va_start
|
|
||||||
int b = __builtin_va_arg(ap, int);
|
int b = __builtin_va_arg(ap, int);
|
||||||
// LINUX: %[[AP_CUR:.*]] = load i8*, i8** %[[AP]]
|
// COMMON: %[[AP_CUR:.*]] = load i8*, i8** %[[AP]]
|
||||||
// LINUX-NEXT: %[[AP_NEXT:.*]] = getelementptr inbounds i8, i8* %[[AP_CUR]], i64 8
|
// COMMON-NEXT: %[[AP_NEXT:.*]] = getelementptr inbounds i8, i8* %[[AP_CUR]], i64 8
|
||||||
// LINUX-NEXT: store i8* %[[AP_NEXT]], i8** %[[AP]]
|
// COMMON-NEXT: store i8* %[[AP_NEXT]], i8** %[[AP]]
|
||||||
// LINUX-NEXT: bitcast i8* %[[AP_CUR]] to i32*
|
// COMMON-NEXT: bitcast i8* %[[AP_CUR]] to i32*
|
||||||
// WIN64: %[[AP_CUR:.*]] = load i8*, i8** %[[AP]]
|
|
||||||
// WIN64-NEXT: %[[AP_NEXT:.*]] = getelementptr inbounds i8, i8* %[[AP_CUR]], i64 8
|
|
||||||
// WIN64-NEXT: store i8* %[[AP_NEXT]], i8** %[[AP]]
|
|
||||||
// WIN64-NEXT: bitcast i8* %[[AP_CUR]] to i32*
|
|
||||||
__builtin_ms_va_list ap2;
|
__builtin_ms_va_list ap2;
|
||||||
__builtin_ms_va_copy(ap2, ap);
|
__builtin_ms_va_copy(ap2, ap);
|
||||||
// LINUX: %[[AP_VAL:.*]] = load i8*, i8** %[[AP]]
|
// COMMON: %[[AP_VAL:.*]] = load i8*, i8** %[[AP]]
|
||||||
// LINUX-NEXT: store i8* %[[AP_VAL]], i8** %[[AP2:.*]]
|
// COMMON-NEXT: store i8* %[[AP_VAL]], i8** %[[AP2:.*]]
|
||||||
// WIN64: %[[AP_VAL:.*]] = load i8*, i8** %[[AP]]
|
|
||||||
// WIN64-NEXT: store i8* %[[AP_VAL]], i8** %[[AP2:.*]]
|
|
||||||
__builtin_ms_va_end(ap);
|
__builtin_ms_va_end(ap);
|
||||||
// LINUX: call void @llvm.va_end
|
// COMMON: call void @llvm.va_end
|
||||||
// WIN64: call void @llvm.va_end
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __attribute__((ms_abi)) f4_2(int a, ...) {
|
void __attribute__((ms_abi)) f4_2(int a, ...) {
|
||||||
|
|
Loading…
Reference in New Issue