4
4
;.
5
5
; CHECK: @G = global i32 5
6
6
; CHECK: @.memset_pattern = private unnamed_addr constant [2 x ptr] [ptr @G, ptr @G], align 16
7
- ; CHECK: @.memset_pattern.1 = private unnamed_addr constant [2 x ptr] [ptr @G, ptr @G], align 16
8
- ; CHECK: @.memset_pattern.2 = private unnamed_addr constant [2 x i64] [i64 -6148895925951734307, i64 -6148895925951734307], align 16
9
- ; CHECK: @.memset_pattern.3 = private unnamed_addr constant [2 x i64] [i64 -6148895925951734307, i64 -6148895925951734307], align 16
10
- ; CHECK: @.memset_pattern.4 = private unnamed_addr constant [2 x i64] [i64 -6148895925951734307, i64 -6148895925951734307], align 16
11
- ; CHECK: @.memset_pattern.5 = private unnamed_addr constant [2 x i64] [i64 4614256656552045848, i64 4614256656552045848], align 16
12
- ; CHECK: @.memset_pattern.6 = private unnamed_addr constant [8 x i16] [i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555], align 16
13
- ; CHECK: @.memset_pattern.7 = private unnamed_addr constant i128 -113427455635030943652277463699152839203, align 16
14
- ; CHECK: @.memset_pattern.8 = private unnamed_addr constant i128 -113427455635030943652277463699152839203, align 16
15
- ; CHECK: @.memset_pattern.9 = private unnamed_addr constant i128 -113427455635030943652277463699152839203, align 16
16
- ; CHECK: @.memset_pattern.10 = private unnamed_addr constant i128 -113427455635030943652277463699152839203, align 16
7
+ ; CHECK: @.memset_pattern.1 = private unnamed_addr constant [2 x i64] [i64 -6148895925951734307, i64 -6148895925951734307], align 16
8
+ ; CHECK: @.memset_pattern.2 = private unnamed_addr constant [2 x i64] [i64 4614256656552045848, i64 4614256656552045848], align 16
9
+ ; CHECK: @.memset_pattern.3 = private unnamed_addr constant [8 x i16] [i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555, i16 -21555], align 16
10
+ ; CHECK: @.memset_pattern.4 = private unnamed_addr constant i128 -113427455635030943652277463699152839203, align 16
17
11
;.
18
12
define void @memset_pattern_i128_1_dynvalue (ptr %a , i128 %value ) nounwind {
19
13
; CHECK-LABEL: define void @memset_pattern_i128_1_dynvalue(
@@ -36,7 +30,7 @@ define void @memset_pattern_i128_1_dynvalue(ptr %a, i128 %value) nounwind {
36
30
define void @memset_pattern_i128_1 (ptr %a , i128 %value ) nounwind {
37
31
; CHECK-LABEL: define void @memset_pattern_i128_1(
38
32
; CHECK-SAME: ptr [[A:%.*]], i128 [[VALUE:%.*]]) #[[ATTR0]] {
39
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.7 , i64 16)
33
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.4 , i64 16)
40
34
; CHECK-NEXT: ret void
41
35
;
42
36
tail call void @llvm.experimental.memset.pattern (ptr %a , i128 u0xaaaaaaaabbbbbbbbccccccccdddddddd, i64 1 , i1 false )
@@ -64,7 +58,7 @@ define void @memset_pattern_i128_1_nz_as(ptr addrspace(1) %a, i128 %value) nounw
64
58
define void @memset_pattern_i128_1_align_attr (ptr align (16 ) %a , i128 %value ) nounwind {
65
59
; CHECK-LABEL: define void @memset_pattern_i128_1_align_attr(
66
60
; CHECK-SAME: ptr align 16 [[A:%.*]], i128 [[VALUE:%.*]]) #[[ATTR0]] {
67
- ; CHECK-NEXT: call void @memset_pattern16(ptr align 16 [[A]], ptr @.memset_pattern.8 , i64 16)
61
+ ; CHECK-NEXT: call void @memset_pattern16(ptr align 16 [[A]], ptr @.memset_pattern.4 , i64 16)
68
62
; CHECK-NEXT: ret void
69
63
;
70
64
tail call void @llvm.experimental.memset.pattern (ptr align (16 ) %a , i128 u0xaaaaaaaabbbbbbbbccccccccdddddddd, i64 1 , i1 false )
@@ -74,7 +68,7 @@ define void @memset_pattern_i128_1_align_attr(ptr align(16) %a, i128 %value) nou
74
68
define void @memset_pattern_i128_16 (ptr %a ) nounwind {
75
69
; CHECK-LABEL: define void @memset_pattern_i128_16(
76
70
; CHECK-SAME: ptr [[A:%.*]]) #[[ATTR0]] {
77
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.9 , i64 256)
71
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.4 , i64 256)
78
72
; CHECK-NEXT: ret void
79
73
;
80
74
tail call void @llvm.experimental.memset.pattern (ptr %a , i128 u0xaaaaaaaabbbbbbbbccccccccdddddddd, i64 16 , i1 false )
@@ -85,7 +79,7 @@ define void @memset_pattern_i128_x(ptr %a, i64 %x) nounwind {
85
79
; CHECK-LABEL: define void @memset_pattern_i128_x(
86
80
; CHECK-SAME: ptr [[A:%.*]], i64 [[X:%.*]]) #[[ATTR0]] {
87
81
; CHECK-NEXT: [[TMP1:%.*]] = mul i64 16, [[X]]
88
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.10 , i64 [[TMP1]])
82
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.4 , i64 [[TMP1]])
89
83
; CHECK-NEXT: ret void
90
84
;
91
85
tail call void @llvm.experimental.memset.pattern (ptr %a , i128 u0xaaaaaaaabbbbbbbbccccccccdddddddd, i64 %x , i1 false )
@@ -115,7 +109,7 @@ define void @memset_pattern_i16_x(ptr %a, i64 %x) nounwind {
115
109
; CHECK-LABEL: define void @memset_pattern_i16_x(
116
110
; CHECK-SAME: ptr [[A:%.*]], i64 [[X:%.*]]) #[[ATTR0]] {
117
111
; CHECK-NEXT: [[TMP1:%.*]] = mul i64 2, [[X]]
118
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.6 , i64 [[TMP1]])
112
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.3 , i64 [[TMP1]])
119
113
; CHECK-NEXT: ret void
120
114
;
121
115
tail call void @llvm.experimental.memset.pattern (ptr %a , i16 u0xabcd, i64 %x , i1 false )
@@ -126,7 +120,7 @@ define void @memset_pattern_i64_x(ptr %a, i64 %x) nounwind {
126
120
; CHECK-LABEL: define void @memset_pattern_i64_x(
127
121
; CHECK-SAME: ptr [[A:%.*]], i64 [[X:%.*]]) #[[ATTR0]] {
128
122
; CHECK-NEXT: [[TMP1:%.*]] = mul i64 8, [[X]]
129
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.4 , i64 [[TMP1]])
123
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.1 , i64 [[TMP1]])
130
124
; CHECK-NEXT: ret void
131
125
;
132
126
tail call void @llvm.experimental.memset.pattern (ptr %a , i64 u0xaaaabbbbccccdddd, i64 %x , i1 false )
@@ -137,7 +131,7 @@ define void @memset_pattern_i64_x(ptr %a, i64 %x) nounwind {
137
131
define void @memset_pattern_i64_128_tbaa (ptr %a ) nounwind {
138
132
; CHECK-LABEL: define void @memset_pattern_i64_128_tbaa(
139
133
; CHECK-SAME: ptr [[A:%.*]]) #[[ATTR0]] {
140
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.5 , i64 1024), !tbaa [[TBAA0:![0-9]+]]
134
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.2 , i64 1024), !tbaa [[TBAA0:![0-9]+]]
141
135
; CHECK-NEXT: ret void
142
136
;
143
137
tail call void @llvm.experimental.memset.pattern (ptr %a , i64 u0x400921fb54442d18, i64 128 , i1 false ), !tbaa !5
@@ -154,7 +148,7 @@ define void @memset_pattern_i64_narrow_idx(ptr %a, i32 %x) nounwind {
154
148
; CHECK-SAME: ptr [[A:%.*]], i32 [[X:%.*]]) #[[ATTR0]] {
155
149
; CHECK-NEXT: [[TMP1:%.*]] = zext i32 [[X]] to i64
156
150
; CHECK-NEXT: [[TMP2:%.*]] = mul i64 8, [[TMP1]]
157
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.3 , i64 [[TMP2]])
151
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.1 , i64 [[TMP2]])
158
152
; CHECK-NEXT: ret void
159
153
;
160
154
tail call void @llvm.experimental.memset.pattern (ptr %a , i64 u0xaaaabbbbccccdddd, i32 %x , i1 false )
@@ -166,7 +160,7 @@ define void @memset_pattern_i64_wide_idx(ptr %a, i128 %x) nounwind {
166
160
; CHECK-SAME: ptr [[A:%.*]], i128 [[X:%.*]]) #[[ATTR0]] {
167
161
; CHECK-NEXT: [[TMP1:%.*]] = trunc i128 [[X]] to i64
168
162
; CHECK-NEXT: [[TMP2:%.*]] = mul i64 8, [[TMP1]]
169
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.2 , i64 [[TMP2]])
163
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.1 , i64 [[TMP2]])
170
164
; CHECK-NEXT: ret void
171
165
;
172
166
tail call void @llvm.experimental.memset.pattern (ptr %a , i64 u0xaaaabbbbccccdddd, i128 %x , i1 false )
@@ -189,7 +183,7 @@ define void @memset_pattern_i64_x_fromptr(ptr %a, i64 %x) nounwind {
189
183
; CHECK-LABEL: define void @memset_pattern_i64_x_fromptr(
190
184
; CHECK-SAME: ptr [[A:%.*]], i64 [[X:%.*]]) #[[ATTR0]] {
191
185
; CHECK-NEXT: [[TMP2:%.*]] = mul i64 8, [[X]]
192
- ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern.1 , i64 [[TMP2]])
186
+ ; CHECK-NEXT: call void @memset_pattern16(ptr [[A]], ptr @.memset_pattern, i64 [[TMP2]])
193
187
; CHECK-NEXT: ret void
194
188
;
195
189
tail call void @llvm.experimental.memset.pattern (ptr %a , ptr @G , i64 %x , i1 false )
0 commit comments