Skip to content

Commit 290c2a7

Browse files
authored
[Headers][X86] Allow _mm_max_pu8 / _mm_min_pu8 to be used in constexpr (#160489)
These were missed in an earlier patch
1 parent 5887006 commit 290c2a7

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

clang/lib/Headers/xmmintrin.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2363,9 +2363,8 @@ _mm_max_pi16(__m64 __a, __m64 __b) {
23632363
/// \param __b
23642364
/// A 64-bit integer vector containing one of the source operands.
23652365
/// \returns A 64-bit integer vector containing the comparison results.
2366-
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
2367-
_mm_max_pu8(__m64 __a, __m64 __b)
2368-
{
2366+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
2367+
_mm_max_pu8(__m64 __a, __m64 __b) {
23692368
return (__m64)__builtin_elementwise_max((__v8qu)__a, (__v8qu)__b);
23702369
}
23712370

@@ -2400,9 +2399,8 @@ _mm_min_pi16(__m64 __a, __m64 __b) {
24002399
/// \param __b
24012400
/// A 64-bit integer vector containing one of the source operands.
24022401
/// \returns A 64-bit integer vector containing the comparison results.
2403-
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
2404-
_mm_min_pu8(__m64 __a, __m64 __b)
2405-
{
2402+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
2403+
_mm_min_pu8(__m64 __a, __m64 __b) {
24062404
return (__m64)__builtin_elementwise_min((__v8qu)__a, (__v8qu)__b);
24072405
}
24082406

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,28 +371,28 @@ __m64 test_mm_max_pi16(__m64 a, __m64 b) {
371371
// CHECK: call <4 x i16> @llvm.smax.v4i16(
372372
return _mm_max_pi16(a, b);
373373
}
374-
375374
TEST_CONSTEXPR(match_v4hi(_mm_max_pi16((__m64)(__v4hi){+1, -2, +3, -4}, (__m64)(__v4hi){-1, 2, -3, 4}), 1, 2, 3, 4));
376375

377376
__m64 test_mm_max_pu8(__m64 a, __m64 b) {
378377
// CHECK-LABEL: test_mm_max_pu8
379378
// CHECK: call <8 x i8> @llvm.umax.v8i8(
380379
return _mm_max_pu8(a, b);
381380
}
381+
TEST_CONSTEXPR(match_v8qi(_mm_max_pu8((__m64)(__v8qs){ 16, 17, 18, -19, -20, 21, -22, -23}, (__m64)(__v8qs){ 1, -2, -3, 4, 5, 0, 7, -8}), 16, -2, -3, -19, -20, 21, -22, -8));
382382

383383
__m64 test_mm_min_pi16(__m64 a, __m64 b) {
384384
// CHECK-LABEL: test_mm_min_pi16
385385
// CHECK: call <4 x i16> @llvm.smin.v4i16(
386386
return _mm_min_pi16(a, b);
387387
}
388-
389388
TEST_CONSTEXPR(match_v4hi(_mm_min_pi16((__m64)(__v4hi){+1, -2, +3, -4}, (__m64)(__v4hi){-1, 2, -3, 4}), -1, -2, -3, -4));
390389

391390
__m64 test_mm_min_pu8(__m64 a, __m64 b) {
392391
// CHECK-LABEL: test_mm_min_pu8
393392
// CHECK: call <8 x i8> @llvm.umin.v8i8(
394393
return _mm_min_pu8(a, b);
395394
}
395+
TEST_CONSTEXPR(match_v8qi(_mm_min_pu8((__m64)(__v8qs){ 16, 17, 18, -19, -20, 21, -22, -23}, (__m64)(__v8qs){ 1, -2, -3, 4, 5, 0, 7, -8}), 1, 17, 18, 4, 5, 0, 7, -23));
396396

397397
int test_mm_movemask_pi8(__m64 a) {
398398
// CHECK-LABEL: test_mm_movemask_pi8

0 commit comments

Comments
 (0)