llvm.org GIT mirror llvm / e03d7f3
[X86][SSE] Updated storeu fast-isel tests to match clang builtin tests Since rL271214 the headers have no longer used the storeu intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271222 91177308-0d34-0410-b5e6-96231b3b80d8 Simon Pilgrim 3 years ago
3 changed file(s) with 19 addition(s) and 29 deletion(s). Raw diff Collapse all Expand all
31433143 ; X64-NEXT: vmovups %xmm0, (%rsi)
31443144 ; X64-NEXT: vzeroupper
31453145 ; X64-NEXT: retq
3146 %arg0 = bitcast float* %a0 to i8*
3146 %arg0 = bitcast float* %a0 to <4 x float>*
31473147 %lo = shufflevector <8 x float> %a2, <8 x float> %a2, <4 x i32>
3148 call void @llvm.x86.sse.storeu.ps(i8* %arg0, <4 x float> %lo)
3149 %arg1 = bitcast float* %a1 to i8*
3148 store <4 x float> %lo, <4 x float>* %arg0, align 1
3149 %arg1 = bitcast float* %a1 to <4 x float>*
31503150 %hi = shufflevector <8 x float> %a2, <8 x float> %a2, <4 x i32>
3151 call void @llvm.x86.sse.storeu.ps(i8* %arg1, <4 x float> %hi)
3151 store <4 x float> %hi, <4 x float>* %arg1, align 1
31523152 ret void
31533153 }
3154 declare void @llvm.x86.sse.storeu.ps(i8*, <4 x float>) nounwind readnone
31553154
31563155 define void @test_mm256_storeu2_m128d(double* %a0, double* %a1, <4 x double> %a2) nounwind {
31573156 ; X32-LABEL: test_mm256_storeu2_m128d:
31713170 ; X64-NEXT: vmovups %xmm0, (%rsi)
31723171 ; X64-NEXT: vzeroupper
31733172 ; X64-NEXT: retq
3174 %arg0 = bitcast double* %a0 to i8*
3173 %arg0 = bitcast double* %a0 to <2 x double>*
31753174 %lo = shufflevector <4 x double> %a2, <4 x double> %a2, <2 x i32>
3176 call void @llvm.x86.sse2.storeu.pd(i8* %arg0, <2 x double> %lo)
3177 %arg1 = bitcast double* %a1 to i8*
3175 store <2 x double> %lo, <2 x double>* %arg0, align 1
3176 %arg1 = bitcast double* %a1 to <2 x double>*
31783177 %hi = shufflevector <4 x double> %a2, <4 x double> %a2, <2 x i32>
3179 call void @llvm.x86.sse2.storeu.pd(i8* %arg1, <2 x double> %hi)
3178 store <2 x double> %hi, <2 x double>* %arg1, align 1
31803179 ret void
31813180 }
3182 declare void @llvm.x86.sse2.storeu.pd(i8*, <2 x double>) nounwind readnone
31833181
31843182 define void @test_mm256_storeu2_m128i(<2 x i64>* %a0, <2 x i64>* %a1, <4 x i64> %a2) nounwind {
31853183 ; X32-LABEL: test_mm256_storeu2_m128i:
31993197 ; X64-NEXT: vmovups %xmm0, (%rsi)
32003198 ; X64-NEXT: vzeroupper
32013199 ; X64-NEXT: retq
3202 %arg0 = bitcast <2 x i64>* %a0 to i8*
3203 %lo2 = shufflevector <4 x i64> %a2, <4 x i64> %a2, <2 x i32>
3204 %lo = bitcast <2 x i64> %lo2 to <16 x i8>
3205 call void @llvm.x86.sse2.storeu.dq(i8* %arg0, <16 x i8> %lo)
3206 %arg1 = bitcast <2 x i64>* %a1 to i8*
3207 %hi2 = shufflevector <4 x i64> %a2, <4 x i64> %a2, <2 x i32>
3208 %hi = bitcast <2 x i64> %hi2 to <16 x i8>
3209 call void @llvm.x86.sse2.storeu.dq(i8* %arg1, <16 x i8> %hi)
3200 %arg0 = bitcast <2 x i64>* %a0 to <2 x i64>*
3201 %lo = shufflevector <4 x i64> %a2, <4 x i64> %a2, <2 x i32>
3202 store <2 x i64> %lo, <2 x i64>* %arg0, align 1
3203 %arg1 = bitcast <2 x i64>* %a1 to <2 x i64>*
3204 %hi = shufflevector <4 x i64> %a2, <4 x i64> %a2, <2 x i32>
3205 store <2 x i64> %hi, <2 x i64>* %arg1, align 1
32103206 ret void
32113207 }
3212 declare void @llvm.x86.sse2.storeu.dq(i8*, <16 x i8>) nounwind readnone
32133208
32143209 define void @test_mm256_stream_pd(double *%a0, <4 x double> %a1) nounwind {
32153210 ; X32-LABEL: test_mm256_stream_pd:
19191919 ; X64: # BB#0:
19201920 ; X64-NEXT: movups %xmm0, (%rdi)
19211921 ; X64-NEXT: retq
1922 %arg0 = bitcast float* %a0 to i8*
1923 call void @llvm.x86.sse.storeu.ps(i8* %arg0, <4 x float> %a1)
1922 %arg0 = bitcast float* %a0 to <4 x float>*
1923 store <4 x float> %a1, <4 x float>* %arg0, align 1
19241924 ret void
19251925 }
1926 declare void @llvm.x86.sse.storeu.ps(i8*, <4 x float>) nounwind
19271926
19281927 define void @test_mm_stream_ps(float *%a0, <4 x float> %a1) {
19291928 ; X32-LABEL: test_mm_stream_ps:
32543254 ; X64: # BB#0:
32553255 ; X64-NEXT: movups %xmm0, (%rdi)
32563256 ; X64-NEXT: retq
3257 %arg0 = bitcast double* %a0 to i8*
3258 call void @llvm.x86.sse2.storeu.pd(i8* %arg0, <2 x double> %a1)
3257 %arg0 = bitcast double* %a0 to <2 x double>*
3258 store <2 x double> %a1, <2 x double>* %arg0, align 1
32593259 ret void
32603260 }
3261 declare void @llvm.x86.sse2.storeu.pd(i8*, <2 x double>) nounwind
32623261
32633262 define void @test_mm_storeu_si128(<2 x i64> *%a0, <2 x i64> %a1) {
32643263 ; X32-LABEL: test_mm_storeu_si128:
32713270 ; X64: # BB#0:
32723271 ; X64-NEXT: movups %xmm0, (%rdi)
32733272 ; X64-NEXT: retq
3274 %arg0 = bitcast <2 x i64>* %a0 to i8*
3275 %arg1 = bitcast <2 x i64> %a1 to <16 x i8>
3276 call void @llvm.x86.sse2.storeu.dq(i8* %arg0, <16 x i8> %arg1)
3273 store <2 x i64> %a1, <2 x i64>* %a0, align 1
32773274 ret void
32783275 }
3279 declare void @llvm.x86.sse2.storeu.dq(i8*, <16 x i8>) nounwind
32803276
32813277 define void @test_mm_stream_pd(double *%a0, <2 x double> %a1) {
32823278 ; X32-LABEL: test_mm_stream_pd: