Skip to content

Commit 56f72b8

Browse files
committed
modify relevant tests
1 parent 62647bf commit 56f72b8

File tree

3 files changed

+31
-19
lines changed

3 files changed

+31
-19
lines changed

clang/test/CodeGen/X86/avx-builtins.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,13 @@ TEST_CONSTEXPR(match_m128i(_mm256_castsi256_si128((__m256i)(__v4du){0xBFF0000000
246246

247247
__m256d test_mm256_ceil_pd(__m256d x) {
248248
// CHECK-LABEL: test_mm256_ceil_pd
249-
// CHECK: call {{.*}}<4 x double> @llvm.x86.avx.round.pd.256(<4 x double> %{{.*}}, i32 2)
249+
// CHECK: %{{.*}} = call <4 x double> @llvm.ceil.v4f64(<4 x double> %{{.*}})
250250
return _mm256_ceil_pd(x);
251251
}
252252

253253
__m256 test_mm_ceil_ps(__m256 x) {
254254
// CHECK-LABEL: test_mm_ceil_ps
255-
// CHECK: call {{.*}}<8 x float> @llvm.x86.avx.round.ps.256(<8 x float> %{{.*}}, i32 2)
255+
// CHECK: %{{.*}} = call <8 x float> @llvm.ceil.v8f32(<8 x float> %{{.*}})
256256
return _mm256_ceil_ps(x);
257257
}
258258

@@ -1095,13 +1095,13 @@ TEST_CONSTEXPR(match_m128i(_mm256_extractf128_si256(((__m256i){0ULL, 1ULL, 2ULL,
10951095

10961096
__m256d test_mm256_floor_pd(__m256d x) {
10971097
// CHECK-LABEL: test_mm256_floor_pd
1098-
// CHECK: call {{.*}}<4 x double> @llvm.x86.avx.round.pd.256(<4 x double> %{{.*}}, i32 1)
1098+
// CHECK: %{{.*}} = call <4 x double> @llvm.floor.v4f64(<4 x double> %{{.*}})
10991099
return _mm256_floor_pd(x);
11001100
}
11011101

11021102
__m256 test_mm_floor_ps(__m256 x) {
11031103
// CHECK-LABEL: test_mm_floor_ps
1104-
// CHECK: call {{.*}}<8 x float> @llvm.x86.avx.round.ps.256(<8 x float> %{{.*}}, i32 1)
1104+
// CHECK: %{{.*}} = call <8 x float> @llvm.floor.v8f32(<8 x float> %{{.*}})
11051105
return _mm256_floor_ps(x);
11061106
}
11071107

@@ -1511,13 +1511,13 @@ __m256 test_mm256_rcp_ps(__m256 A) {
15111511

15121512
__m256d test_mm256_round_pd(__m256d x) {
15131513
// CHECK-LABEL: test_mm256_round_pd
1514-
// CHECK: call {{.*}}<4 x double> @llvm.x86.avx.round.pd.256(<4 x double> %{{.*}}, i32 4)
1514+
// CHECK: %{{.*}} = call <4 x double> @llvm.experimental.constrained.floor.v4f64(<4 x double> %{{.*}}, metadata !"fpexcept.strict")
15151515
return _mm256_round_pd(x, 4);
15161516
}
15171517

15181518
__m256 test_mm256_round_ps(__m256 x) {
15191519
// CHECK-LABEL: test_mm256_round_ps
1520-
// CHECK: call {{.*}}<8 x float> @llvm.x86.avx.round.ps.256(<8 x float> %{{.*}}, i32 4)
1520+
// CHECK: %{{.*}} = call <8 x float> @llvm.experimental.constrained.floor.v8f32(<8 x float> %{{.*}}, metadata !"fpexcept.strict")
15211521
return _mm256_round_ps(x, 4);
15221522
}
15231523

clang/test/CodeGen/X86/pr51324.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// Make sure brackets work after macro intrinsics.
1010
float pr51324(__m128 a) {
1111
// CHECK-LABEL: pr51324
12-
// CHECK: call <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 0)
12+
// call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %{{.*}})
1313
// CHECK: extractelement <4 x float> %{{.*}}, i32 0
1414
return _mm_round_ps(a, 0)[0];
1515
}

clang/test/CodeGen/X86/sse41-builtins.c

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,29 @@ TEST_CONSTEXPR(match_m128(_mm_blendv_ps((__m128)(__v4sf){0.0f, 1.0f, 2.0f, 3.0f}
7575

7676
__m128d test_mm_ceil_pd(__m128d x) {
7777
// CHECK-LABEL: test_mm_ceil_pd
78-
// CHECK: call {{.*}}<2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 2)
78+
// CHECK %{{.*}} = call <2 x double> @llvm.ceil.v2f64(<2 x double> %{{.*}})
7979
return _mm_ceil_pd(x);
8080
}
8181

8282
__m128 test_mm_ceil_ps(__m128 x) {
8383
// CHECK-LABEL: test_mm_ceil_ps
84-
// CHECK: call {{.*}}<4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 2)
84+
// CHECK: %{{.*}} = call <4 x float> @llvm.ceil.v4f32(<4 x float> %{{.*}})
8585
return _mm_ceil_ps(x);
8686
}
8787

8888
__m128d test_mm_ceil_sd(__m128d x, __m128d y) {
8989
// CHECK-LABEL: test_mm_ceil_sd
90-
// CHECK: call {{.*}}<2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 2)
90+
// CHECK: %[[A:.*]] = extractelement <2 x double> %{{.*}}, i32 0
91+
// CHECK: %[[B:.*]] = call double @llvm.ceil.f64(double %[[A:.*]])
92+
// CHECK: %{{.*}} = insertelement <2 x double> %0, double %[[B:.*]], i32 0
9193
return _mm_ceil_sd(x, y);
9294
}
9395

9496
__m128 test_mm_ceil_ss(__m128 x, __m128 y) {
9597
// CHECK-LABEL: test_mm_ceil_ss
96-
// CHECK: call {{.*}}<4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 2)
98+
// CHECK: %[[A:.*]] = extractelement <4 x float> %{{.*}}, i32 0
99+
// CHECK: %[[B:.*]] = call float @llvm.ceil.f32(float %[[A:.*]])
100+
// CHECK: %{{.*}} = insertelement <4 x float> %0, float %[[B:.*]], i32 0
97101
return _mm_ceil_ss(x, y);
98102
}
99103

@@ -256,25 +260,29 @@ TEST_CONSTEXPR(_mm_extract_ps(((__m128){1.25f, 2.5f, 3.75f, 5.0f}), 6) == __buil
256260

257261
__m128d test_mm_floor_pd(__m128d x) {
258262
// CHECK-LABEL: test_mm_floor_pd
259-
// CHECK: call {{.*}}<2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 1)
263+
// CHECK: %{{.*}} = call <2 x double> @llvm.floor.v2f64(<2 x double> %{{.*}})
260264
return _mm_floor_pd(x);
261265
}
262266

263267
__m128 test_mm_floor_ps(__m128 x) {
264268
// CHECK-LABEL: test_mm_floor_ps
265-
// CHECK: call {{.*}}<4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 1)
269+
// CHECK: %{{.*}} = call <4 x float> @llvm.floor.v4f32(<4 x float> %{{.*}})
266270
return _mm_floor_ps(x);
267271
}
268272

269273
__m128d test_mm_floor_sd(__m128d x, __m128d y) {
270274
// CHECK-LABEL: test_mm_floor_sd
271-
// CHECK: call {{.*}}<2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 1)
275+
// CHECK: %[[A:.*]] = extractelement <2 x double> %{{.*}}, i32 0
276+
// CHECK: %[[B:.*]] = call double @llvm.floor.f64(double %[[A:.*]])
277+
// CHECK: %{{.*}} = insertelement <2 x double> %0, double %[[B:.*]], i32 0
272278
return _mm_floor_sd(x, y);
273279
}
274280

275281
__m128 test_mm_floor_ss(__m128 x, __m128 y) {
276282
// CHECK-LABEL: test_mm_floor_ss
277-
// CHECK: call {{.*}}<4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 1)
283+
// CHECK: %[[A:.*]] = extractelement <4 x float> %{{.*}}, i32 0
284+
// CHECK: %[[B:.*]] = call float @llvm.floor.f32(float %[[A:.*]])
285+
// CHECK: %{{.*}} = insertelement <4 x float> %0, float %[[B:.*]], i32 0
278286
return _mm_floor_ss(x, y);
279287
}
280288

@@ -430,25 +438,29 @@ TEST_CONSTEXPR(match_v8hi(_mm_packus_epi32((__m128i)(__v4si){40000, -50000, 3276
430438

431439
__m128d test_mm_round_pd(__m128d x) {
432440
// CHECK-LABEL: test_mm_round_pd
433-
// CHECK: call {{.*}}<2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 4)
441+
// CHECK: %{{.*}} = call <2 x double> @llvm.experimental.constrained.floor.v2f64(<2 x double> %{{.*}}, metadata !"fpexcept.strict")
434442
return _mm_round_pd(x, 4);
435443
}
436444

437445
__m128 test_mm_round_ps(__m128 x) {
438446
// CHECK-LABEL: test_mm_round_ps
439-
// CHECK: call {{.*}}<4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 4)
447+
// CHECK: %{{.*}} = call <4 x float> @llvm.experimental.constrained.floor.v4f32(<4 x float> %{{.*}}, metadata !"fpexcept.strict")
440448
return _mm_round_ps(x, 4);
441449
}
442450

443451
__m128d test_mm_round_sd(__m128d x, __m128d y) {
444452
// CHECK-LABEL: test_mm_round_sd
445-
// CHECK: call {{.*}}<2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 4)
453+
// CHECK: %[[A:.*]] = extractelement <2 x double> %{{.*}}, i32 0
454+
// CHECK: %[[B:.*]] = call double @llvm.experimental.constrained.floor.f64(double %[[A:.*]], metadata !"fpexcept.strict")
455+
// CHECK: %{{.*}} = insertelement <2 x double> %0, double %[[B:.*]], i32 0
446456
return _mm_round_sd(x, y, 4);
447457
}
448458

449459
__m128 test_mm_round_ss(__m128 x, __m128 y) {
450460
// CHECK-LABEL: test_mm_round_ss
451-
// CHECK: call {{.*}}<4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 4)
461+
// CHECK: %[[A:.*]] = extractelement <4 x float> %{{.*}}, i32 0
462+
// CHECK: %[[B:.*]] = call float @llvm.experimental.constrained.floor.f32(float %[[A:.*]], metadata !"fpexcept.strict")
463+
// CHECK: %{{.*}} = insertelement <4 x float> %0, float %[[B:.*]], i32 0
452464
return _mm_round_ss(x, y, 4);
453465
}
454466

0 commit comments

Comments
 (0)