Changeset View
Changeset View
Standalone View
Standalone View
clang/test/CodeGen/arm-swiftcall.c
// RUN: %clang_cc1 -triple armv7-apple-darwin9 -emit-llvm -o - %s | FileCheck %s | // RUN: %clang_cc1 -disable-noundef-args -triple armv7-apple-darwin9 -emit-llvm -o - %s | FileCheck %s | ||||
// RUN: %clang_cc1 -triple armv7s-apple-ios9 -emit-llvm -o - %s | FileCheck %s | // RUN: %clang_cc1 -disable-noundef-args -triple armv7s-apple-ios9 -emit-llvm -o - %s | FileCheck %s | ||||
// RUN: %clang_cc1 -triple armv7k-apple-ios9 -emit-llvm -o - %s | FileCheck %s | // RUN: %clang_cc1 -disable-noundef-args -triple armv7k-apple-ios9 -emit-llvm -o - %s | FileCheck %s | ||||
#define SWIFTCALL __attribute__((swiftcall)) | #define SWIFTCALL __attribute__((swiftcall)) | ||||
#define OUT __attribute__((swift_indirect_result)) | #define OUT __attribute__((swift_indirect_result)) | ||||
Context not available. | |||||
// CHECK-LABEL: define void @test_int8() | // CHECK-LABEL: define void @test_int8() | ||||
// CHECK: [[TMP1:%.*]] = alloca [[REC]], align | // CHECK: [[TMP1:%.*]] = alloca [[REC]], align | ||||
// CHECK: [[TMP2:%.*]] = alloca [[REC]], align | // CHECK: [[TMP2:%.*]] = alloca [[REC]], align | ||||
// CHECK: [[CALL:%.*]] = call [[SWIFTCC]] [[UAGG]] @return_int8() | // CHECK: [[CALL:%.*]] = call [[SWIFTCC]] noundef [[UAGG]] @return_int8() | ||||
// CHECK: [[CAST_TMP:%.*]] = bitcast [[REC]]* [[TMP1]] to [[AGG]]* | // CHECK: [[CAST_TMP:%.*]] = bitcast [[REC]]* [[TMP1]] to [[AGG]]* | ||||
// CHECK: [[T0:%.*]] = getelementptr inbounds [[AGG]], [[AGG]]* [[CAST_TMP]], i32 0, i32 0 | // CHECK: [[T0:%.*]] = getelementptr inbounds [[AGG]], [[AGG]]* [[CAST_TMP]], i32 0, i32 0 | ||||
// CHECK: [[T1:%.*]] = extractvalue [[UAGG]] [[CALL]], 0 | // CHECK: [[T1:%.*]] = extractvalue [[UAGG]] [[CALL]], 0 | ||||
Context not available. | |||||
// CHECK-LABEL: define void @test_int5() | // CHECK-LABEL: define void @test_int5() | ||||
// CHECK: [[TMP1:%.*]] = alloca [[REC]], align | // CHECK: [[TMP1:%.*]] = alloca [[REC]], align | ||||
// CHECK: [[TMP2:%.*]] = alloca [[REC]], align | // CHECK: [[TMP2:%.*]] = alloca [[REC]], align | ||||
// CHECK: [[CALL:%.*]] = call [[SWIFTCC]] [[UAGG]] @return_int5() | // CHECK: [[CALL:%.*]] = call [[SWIFTCC]] noundef [[UAGG]] @return_int5() | ||||
// CHECK: [[CAST_TMP:%.*]] = bitcast [[REC]]* [[TMP1]] to [[AGG]]* | // CHECK: [[CAST_TMP:%.*]] = bitcast [[REC]]* [[TMP1]] to [[AGG]]* | ||||
// CHECK: [[T0:%.*]] = getelementptr inbounds [[AGG]], [[AGG]]* [[CAST_TMP]], i32 0, i32 0 | // CHECK: [[T0:%.*]] = getelementptr inbounds [[AGG]], [[AGG]]* [[CAST_TMP]], i32 0, i32 0 | ||||
// CHECK: [[T1:%.*]] = extractvalue [[UAGG]] [[CALL]], 0 | // CHECK: [[T1:%.*]] = extractvalue [[UAGG]] [[CALL]], 0 | ||||
Context not available. |