@@ -165,20 +165,23 @@ define <2 x i8> @atomic_vec2_i8(ptr %x) {
165
165
}
166
166
167
167
define <2 x i16 > @atomic_vec2_i16 (ptr %x ) {
168
- ; CHECK-LABEL: atomic_vec2_i16:
169
- ; CHECK: ## %bb.0:
170
- ; CHECK-NEXT: movl (%rdi), %eax
171
- ; CHECK-NEXT: movd %eax, %xmm0
172
- ; CHECK-NEXT: retq
168
+ ; CHECK3-LABEL: atomic_vec2_i16:
169
+ ; CHECK3: ## %bb.0:
170
+ ; CHECK3-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
171
+ ; CHECK3-NEXT: retq
172
+ ;
173
+ ; CHECK0-LABEL: atomic_vec2_i16:
174
+ ; CHECK0: ## %bb.0:
175
+ ; CHECK0-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
176
+ ; CHECK0-NEXT: retq
173
177
%ret = load atomic <2 x i16 >, ptr %x acquire , align 4
174
178
ret <2 x i16 > %ret
175
179
}
176
180
177
181
define <2 x ptr addrspace (270 )> @atomic_vec2_ptr270 (ptr %x ) {
178
182
; CHECK-LABEL: atomic_vec2_ptr270:
179
183
; CHECK: ## %bb.0:
180
- ; CHECK-NEXT: movq (%rdi), %rax
181
- ; CHECK-NEXT: movq %rax, %xmm0
184
+ ; CHECK-NEXT: movq (%rdi), %xmm0
182
185
; CHECK-NEXT: retq
183
186
%ret = load atomic <2 x ptr addrspace (270 )>, ptr %x acquire , align 8
184
187
ret <2 x ptr addrspace (270 )> %ret
@@ -187,8 +190,7 @@ define <2 x ptr addrspace(270)> @atomic_vec2_ptr270(ptr %x) {
187
190
define <2 x i32 > @atomic_vec2_i32_align (ptr %x ) {
188
191
; CHECK-LABEL: atomic_vec2_i32_align:
189
192
; CHECK: ## %bb.0:
190
- ; CHECK-NEXT: movq (%rdi), %rax
191
- ; CHECK-NEXT: movq %rax, %xmm0
193
+ ; CHECK-NEXT: movq (%rdi), %xmm0
192
194
; CHECK-NEXT: retq
193
195
%ret = load atomic <2 x i32 >, ptr %x acquire , align 8
194
196
ret <2 x i32 > %ret
@@ -197,8 +199,7 @@ define <2 x i32> @atomic_vec2_i32_align(ptr %x) {
197
199
define <2 x float > @atomic_vec2_float_align (ptr %x ) {
198
200
; CHECK-LABEL: atomic_vec2_float_align:
199
201
; CHECK: ## %bb.0:
200
- ; CHECK-NEXT: movq (%rdi), %rax
201
- ; CHECK-NEXT: movq %rax, %xmm0
202
+ ; CHECK-NEXT: movq (%rdi), %xmm0
202
203
; CHECK-NEXT: retq
203
204
%ret = load atomic <2 x float >, ptr %x acquire , align 8
204
205
ret <2 x float > %ret
@@ -354,20 +355,23 @@ define <2 x i32> @atomic_vec2_i32(ptr %x) nounwind {
354
355
}
355
356
356
357
define <4 x i8 > @atomic_vec4_i8 (ptr %x ) nounwind {
357
- ; CHECK-LABEL: atomic_vec4_i8:
358
- ; CHECK: ## %bb.0:
359
- ; CHECK-NEXT: movl (%rdi), %eax
360
- ; CHECK-NEXT: movd %eax, %xmm0
361
- ; CHECK-NEXT: retq
358
+ ; CHECK3-LABEL: atomic_vec4_i8:
359
+ ; CHECK3: ## %bb.0:
360
+ ; CHECK3-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero
361
+ ; CHECK3-NEXT: retq
362
+ ;
363
+ ; CHECK0-LABEL: atomic_vec4_i8:
364
+ ; CHECK0: ## %bb.0:
365
+ ; CHECK0-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero
366
+ ; CHECK0-NEXT: retq
362
367
%ret = load atomic <4 x i8 >, ptr %x acquire , align 4
363
368
ret <4 x i8 > %ret
364
369
}
365
370
366
371
define <4 x i16 > @atomic_vec4_i16 (ptr %x ) nounwind {
367
372
; CHECK-LABEL: atomic_vec4_i16:
368
373
; CHECK: ## %bb.0:
369
- ; CHECK-NEXT: movq (%rdi), %rax
370
- ; CHECK-NEXT: movq %rax, %xmm0
374
+ ; CHECK-NEXT: movq (%rdi), %xmm0
371
375
; CHECK-NEXT: retq
372
376
%ret = load atomic <4 x i16 >, ptr %x acquire , align 8
373
377
ret <4 x i16 > %ret
0 commit comments