@@ -12,48 +12,48 @@ void pass_BitInt129(_BitInt(129));
12
12
// LA32-SAME: ) #[[ATTR0:[0-9]+]] {
13
13
// LA32-NEXT: [[ENTRY:.*:]]
14
14
// LA32-NEXT: [[L7:%.*]] = alloca i8, align 1
15
- // LA32-NEXT: [[L65:%.*]] = alloca i128, align 8
16
- // LA32-NEXT: [[L129:%.*]] = alloca i192 , align 8
17
- // LA32-NEXT: [[BYVAL_TEMP:%.*]] = alloca i128, align 8
18
- // LA32-NEXT: [[BYVAL_TEMP3:%.*]] = alloca i192 , align 8
15
+ // LA32-NEXT: [[L65:%.*]] = alloca i128, align 16
16
+ // LA32-NEXT: [[L129:%.*]] = alloca [32 x i8] , align 16
17
+ // LA32-NEXT: [[BYVAL_TEMP:%.*]] = alloca i128, align 16
18
+ // LA32-NEXT: [[BYVAL_TEMP3:%.*]] = alloca [32 x i8] , align 16
19
19
// LA32-NEXT: store i8 0, ptr [[L7]], align 1
20
- // LA32-NEXT: store i128 0, ptr [[L65]], align 8
21
- // LA32-NEXT: store i192 0, ptr [[L129]], align 8
20
+ // LA32-NEXT: store i128 0, ptr [[L65]], align 16
21
+ // LA32-NEXT: store i256 0, ptr [[L129]], align 16
22
22
// LA32-NEXT: [[TMP0:%.*]] = load i8, ptr [[L7]], align 1
23
23
// LA32-NEXT: [[LOADEDV:%.*]] = trunc i8 [[TMP0]] to i7
24
24
// LA32-NEXT: call void @pass_BitInt7(i7 noundef signext [[LOADEDV]])
25
- // LA32-NEXT: [[TMP1:%.*]] = load i128, ptr [[L65]], align 8
25
+ // LA32-NEXT: [[TMP1:%.*]] = load i128, ptr [[L65]], align 16
26
26
// LA32-NEXT: [[LOADEDV1:%.*]] = trunc i128 [[TMP1]] to i65
27
27
// LA32-NEXT: [[STOREDV:%.*]] = sext i65 [[LOADEDV1]] to i128
28
- // LA32-NEXT: store i128 [[STOREDV]], ptr [[BYVAL_TEMP]], align 8
28
+ // LA32-NEXT: store i128 [[STOREDV]], ptr [[BYVAL_TEMP]], align 16
29
29
// LA32-NEXT: call void @pass_BitInt65(ptr noundef [[BYVAL_TEMP]])
30
- // LA32-NEXT: [[TMP2:%.*]] = load i192 , ptr [[L129]], align 8
31
- // LA32-NEXT: [[LOADEDV2:%.*]] = trunc i192 [[TMP2]] to i129
32
- // LA32-NEXT: [[STOREDV4:%.*]] = sext i129 [[LOADEDV2]] to i192
33
- // LA32-NEXT: store i192 [[STOREDV4]], ptr [[BYVAL_TEMP3]], align 8
30
+ // LA32-NEXT: [[TMP2:%.*]] = load i256 , ptr [[L129]], align 16
31
+ // LA32-NEXT: [[LOADEDV2:%.*]] = trunc i256 [[TMP2]] to i129
32
+ // LA32-NEXT: [[STOREDV4:%.*]] = sext i129 [[LOADEDV2]] to i256
33
+ // LA32-NEXT: store i256 [[STOREDV4]], ptr [[BYVAL_TEMP3]], align 16
34
34
// LA32-NEXT: call void @pass_BitInt129(ptr noundef [[BYVAL_TEMP3]])
35
35
// LA32-NEXT: ret void
36
36
//
37
37
// LA64-LABEL: define dso_local void @example_BitInt(
38
38
// LA64-SAME: ) #[[ATTR0:[0-9]+]] {
39
39
// LA64-NEXT: [[ENTRY:.*:]]
40
40
// LA64-NEXT: [[L7:%.*]] = alloca i8, align 1
41
- // LA64-NEXT: [[L65:%.*]] = alloca i128, align 8
42
- // LA64-NEXT: [[L129:%.*]] = alloca [24 x i8] , align 8
43
- // LA64-NEXT: [[BYVAL_TEMP:%.*]] = alloca [24 x i8] , align 8
41
+ // LA64-NEXT: [[L65:%.*]] = alloca i128, align 16
42
+ // LA64-NEXT: [[L129:%.*]] = alloca i256 , align 16
43
+ // LA64-NEXT: [[BYVAL_TEMP:%.*]] = alloca i256 , align 16
44
44
// LA64-NEXT: store i8 0, ptr [[L7]], align 1
45
- // LA64-NEXT: store i128 0, ptr [[L65]], align 8
46
- // LA64-NEXT: store i192 0, ptr [[L129]], align 8
45
+ // LA64-NEXT: store i128 0, ptr [[L65]], align 16
46
+ // LA64-NEXT: store i256 0, ptr [[L129]], align 16
47
47
// LA64-NEXT: [[TMP0:%.*]] = load i8, ptr [[L7]], align 1
48
48
// LA64-NEXT: [[LOADEDV:%.*]] = trunc i8 [[TMP0]] to i7
49
49
// LA64-NEXT: call void @pass_BitInt7(i7 noundef signext [[LOADEDV]])
50
- // LA64-NEXT: [[TMP1:%.*]] = load i128, ptr [[L65]], align 8
50
+ // LA64-NEXT: [[TMP1:%.*]] = load i128, ptr [[L65]], align 16
51
51
// LA64-NEXT: [[LOADEDV1:%.*]] = trunc i128 [[TMP1]] to i65
52
52
// LA64-NEXT: call void @pass_BitInt65(i65 noundef [[LOADEDV1]])
53
- // LA64-NEXT: [[TMP2:%.*]] = load i192 , ptr [[L129]], align 8
54
- // LA64-NEXT: [[LOADEDV2:%.*]] = trunc i192 [[TMP2]] to i129
55
- // LA64-NEXT: [[STOREDV:%.*]] = sext i129 [[LOADEDV2]] to i192
56
- // LA64-NEXT: store i192 [[STOREDV]], ptr [[BYVAL_TEMP]], align 8
53
+ // LA64-NEXT: [[TMP2:%.*]] = load i256 , ptr [[L129]], align 16
54
+ // LA64-NEXT: [[LOADEDV2:%.*]] = trunc i256 [[TMP2]] to i129
55
+ // LA64-NEXT: [[STOREDV:%.*]] = sext i129 [[LOADEDV2]] to i256
56
+ // LA64-NEXT: store i256 [[STOREDV]], ptr [[BYVAL_TEMP]], align 16
57
57
// LA64-NEXT: call void @pass_BitInt129(ptr noundef [[BYVAL_TEMP]])
58
58
// LA64-NEXT: ret void
59
59
//
@@ -78,15 +78,15 @@ void example_BitInt(void) {
78
78
//
79
79
_BitInt (7 ) return_large_BitInt7 (void ) { return 0 ; }
80
80
// LA32-LABEL: define dso_local void @return_large_BitInt65(
81
- // LA32-SAME: ptr dead_on_unwind noalias writable sret(i128) align 8 [[AGG_RESULT:%.*]]) #[[ATTR0]] {
81
+ // LA32-SAME: ptr dead_on_unwind noalias writable sret(i128) align 16 [[AGG_RESULT:%.*]]) #[[ATTR0]] {
82
82
// LA32-NEXT: [[ENTRY:.*:]]
83
83
// LA32-NEXT: [[RESULT_PTR:%.*]] = alloca ptr, align 4
84
84
// LA32-NEXT: store ptr [[AGG_RESULT]], ptr [[RESULT_PTR]], align 4
85
- // LA32-NEXT: store i128 0, ptr [[AGG_RESULT]], align 8
86
- // LA32-NEXT: [[TMP0:%.*]] = load i128, ptr [[AGG_RESULT]], align 8
85
+ // LA32-NEXT: store i128 0, ptr [[AGG_RESULT]], align 16
86
+ // LA32-NEXT: [[TMP0:%.*]] = load i128, ptr [[AGG_RESULT]], align 16
87
87
// LA32-NEXT: [[LOADEDV:%.*]] = trunc i128 [[TMP0]] to i65
88
88
// LA32-NEXT: [[STOREDV:%.*]] = sext i65 [[LOADEDV]] to i128
89
- // LA32-NEXT: store i128 [[STOREDV]], ptr [[AGG_RESULT]], align 8
89
+ // LA32-NEXT: store i128 [[STOREDV]], ptr [[AGG_RESULT]], align 16
90
90
// LA32-NEXT: ret void
91
91
//
92
92
// LA64-LABEL: define dso_local i65 @return_large_BitInt65(
@@ -96,27 +96,27 @@ _BitInt(7) return_large_BitInt7(void) { return 0; }
96
96
//
97
97
_BitInt (65 ) return_large_BitInt65 (void ) { return 0 ; }
98
98
// LA32-LABEL: define dso_local void @return_large_BitInt129(
99
- // LA32-SAME: ptr dead_on_unwind noalias writable sret(i192 ) align 8 [[AGG_RESULT:%.*]]) #[[ATTR0]] {
99
+ // LA32-SAME: ptr dead_on_unwind noalias writable sret([32 x i8] ) align 16 [[AGG_RESULT:%.*]]) #[[ATTR0]] {
100
100
// LA32-NEXT: [[ENTRY:.*:]]
101
101
// LA32-NEXT: [[RESULT_PTR:%.*]] = alloca ptr, align 4
102
102
// LA32-NEXT: store ptr [[AGG_RESULT]], ptr [[RESULT_PTR]], align 4
103
- // LA32-NEXT: store i192 0, ptr [[AGG_RESULT]], align 8
104
- // LA32-NEXT: [[TMP0:%.*]] = load i192 , ptr [[AGG_RESULT]], align 8
105
- // LA32-NEXT: [[LOADEDV:%.*]] = trunc i192 [[TMP0]] to i129
106
- // LA32-NEXT: [[STOREDV:%.*]] = sext i129 [[LOADEDV]] to i192
107
- // LA32-NEXT: store i192 [[STOREDV]], ptr [[AGG_RESULT]], align 8
103
+ // LA32-NEXT: store i256 0, ptr [[AGG_RESULT]], align 16
104
+ // LA32-NEXT: [[TMP0:%.*]] = load i256 , ptr [[AGG_RESULT]], align 16
105
+ // LA32-NEXT: [[LOADEDV:%.*]] = trunc i256 [[TMP0]] to i129
106
+ // LA32-NEXT: [[STOREDV:%.*]] = sext i129 [[LOADEDV]] to i256
107
+ // LA32-NEXT: store i256 [[STOREDV]], ptr [[AGG_RESULT]], align 16
108
108
// LA32-NEXT: ret void
109
109
//
110
110
// LA64-LABEL: define dso_local void @return_large_BitInt129(
111
- // LA64-SAME: ptr dead_on_unwind noalias writable sret([24 x i8] ) align 8 [[AGG_RESULT:%.*]]) #[[ATTR0]] {
111
+ // LA64-SAME: ptr dead_on_unwind noalias writable sret(i256 ) align 16 [[AGG_RESULT:%.*]]) #[[ATTR0]] {
112
112
// LA64-NEXT: [[ENTRY:.*:]]
113
113
// LA64-NEXT: [[RESULT_PTR:%.*]] = alloca ptr, align 8
114
114
// LA64-NEXT: store ptr [[AGG_RESULT]], ptr [[RESULT_PTR]], align 8
115
- // LA64-NEXT: store i192 0, ptr [[AGG_RESULT]], align 8
116
- // LA64-NEXT: [[TMP0:%.*]] = load i192 , ptr [[AGG_RESULT]], align 8
117
- // LA64-NEXT: [[LOADEDV:%.*]] = trunc i192 [[TMP0]] to i129
118
- // LA64-NEXT: [[STOREDV:%.*]] = sext i129 [[LOADEDV]] to i192
119
- // LA64-NEXT: store i192 [[STOREDV]], ptr [[AGG_RESULT]], align 8
115
+ // LA64-NEXT: store i256 0, ptr [[AGG_RESULT]], align 16
116
+ // LA64-NEXT: [[TMP0:%.*]] = load i256 , ptr [[AGG_RESULT]], align 16
117
+ // LA64-NEXT: [[LOADEDV:%.*]] = trunc i256 [[TMP0]] to i129
118
+ // LA64-NEXT: [[STOREDV:%.*]] = sext i129 [[LOADEDV]] to i256
119
+ // LA64-NEXT: store i256 [[STOREDV]], ptr [[AGG_RESULT]], align 16
120
120
// LA64-NEXT: ret void
121
121
//
122
122
_BitInt (129 ) return_large_BitInt129 (void ) { return 0 ; }
0 commit comments