[AVX512] integer comparisions enumeration.
fix Bug 28842 https://llvm.org/bugs/show_bug.cgi?id=28842 Differential Revision: https://reviews.llvm.org/D22212 llvm-svn: 277955
This commit is contained in:
parent
2fabdcc60a
commit
2f344b788c
|
@ -54,6 +54,19 @@ typedef unsigned short __mmask16;
|
|||
#define _MM_FROUND_TO_ZERO 0x03
|
||||
#define _MM_FROUND_CUR_DIRECTION 0x04
|
||||
|
||||
/* Constants for integer comparison predicates */
|
||||
typedef enum {
|
||||
_MM_CMPINT_EQ, /* Equal */
|
||||
_MM_CMPINT_LT, /* Less than */
|
||||
_MM_CMPINT_LE, /* Less than or Equal */
|
||||
_MM_CMPINT_UNUSED,
|
||||
_MM_CMPINT_NE, /* Not Equal */
|
||||
_MM_CMPINT_NLT, /* Not Less than */
|
||||
#define _MM_CMPINT_GE _MM_CMPINT_NLT /* Greater than or Equal */
|
||||
_MM_CMPINT_NLE /* Not Less than or Equal */
|
||||
#define _MM_CMPINT_GT _MM_CMPINT_NLE /* Greater than */
|
||||
} _MM_CMPINT_ENUM;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
_MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02,
|
||||
|
|
|
@ -1342,30 +1342,30 @@ __mmask8 test_mm512_mask_cmpneq_epu64_mask(__mmask8 __u, __m512i __a, __m512i __
|
|||
return (__mmask8)_mm512_mask_cmpneq_epu64_mask(__u, __a, __b);
|
||||
}
|
||||
|
||||
__mmask16 test_mm512_cmp_epi32_mask(__m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_cmp_epi32_mask
|
||||
__mmask16 test_mm512_cmp_eq_epi32_mask(__m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_cmp_eq_epi32_mask
|
||||
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
|
||||
return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, 0);
|
||||
return (__mmask16)_mm512_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask16 test_mm512_mask_cmp_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cmp_epi32_mask
|
||||
__mmask16 test_mm512_mask_cmp_eq_epi32_mask(__mmask16 __u, __m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cmp_eq_epi32_mask
|
||||
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
|
||||
// CHECK: and <16 x i1> %{{.*}}, %{{.*}}
|
||||
return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, 0);
|
||||
return (__mmask16)_mm512_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm512_cmp_epi64_mask(__m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_cmp_epi64_mask
|
||||
__mmask8 test_mm512_cmp_eq_epi64_mask(__m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_cmp_eq_epi64_mask
|
||||
// CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, 0);
|
||||
return (__mmask8)_mm512_cmp_epi64_mask(__a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm512_mask_cmp_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cmp_epi64_mask
|
||||
__mmask8 test_mm512_mask_cmp_eq_epi64_mask(__mmask8 __u, __m512i __a, __m512i __b) {
|
||||
// CHECK-LABEL: @test_mm512_mask_cmp_eq_epi64_mask
|
||||
// CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
|
||||
// CHECK: and <8 x i1> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, 0);
|
||||
return (__mmask8)_mm512_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask16 test_mm512_cmp_epu32_mask(__m512i __a, __m512i __b) {
|
||||
|
|
|
@ -501,56 +501,56 @@ __mmask8 test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __
|
|||
return (__mmask8)_mm256_mask_cmpneq_epu64_mask(__u, __a, __b);
|
||||
}
|
||||
|
||||
__mmask8 test_mm_cmp_epi32_mask(__m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_cmp_epi32_mask
|
||||
__mmask8 test_mm_cmp_eq_epi32_mask(__m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_cmp_eq_epi32_mask
|
||||
// CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm_cmp_epi32_mask(__a, __b, 0);
|
||||
return (__mmask8)_mm_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm_mask_cmp_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_mask_cmp_epi32_mask
|
||||
// CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
|
||||
__mmask8 test_mm_mask_cmp_lt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_mask_cmp_lt_epi32_mask
|
||||
// CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}}
|
||||
// CHECK: and <4 x i1> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, 0);
|
||||
return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LT);
|
||||
}
|
||||
|
||||
__mmask8 test_mm_cmp_epi64_mask(__m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_cmp_epi64_mask
|
||||
// CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm_cmp_epi64_mask(__a, __b, 0);
|
||||
__mmask8 test_mm_cmp_lt_epi64_mask(__m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_cmp_lt_epi64_mask
|
||||
// CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm_cmp_epi64_mask(__a, __b, _MM_CMPINT_LT);
|
||||
}
|
||||
|
||||
__mmask8 test_mm_mask_cmp_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_mask_cmp_epi64_mask
|
||||
__mmask8 test_mm_mask_cmp_eq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) {
|
||||
// CHECK-LABEL: @test_mm_mask_cmp_eq_epi64_mask
|
||||
// CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}}
|
||||
// CHECK: and <2 x i1> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, 0);
|
||||
return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm256_cmp_epi32_mask(__m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_cmp_epi32_mask
|
||||
__mmask8 test_mm256_cmp_eq_epi32_mask(__m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_cmp_eq_epi32_mask
|
||||
// CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, 0);
|
||||
return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm256_mask_cmp_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_mask_cmp_epi32_mask
|
||||
// CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}}
|
||||
__mmask8 test_mm256_mask_cmp_le_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_mask_cmp_le_epi32_mask
|
||||
// CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}}
|
||||
// CHECK: and <8 x i1> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, 0);
|
||||
return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, _MM_CMPINT_LE);
|
||||
}
|
||||
|
||||
__mmask8 test_mm256_cmp_epi64_mask(__m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_cmp_epi64_mask
|
||||
__mmask8 test_mm256_cmp_eq_epi64_mask(__m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_cmp_eq_epi64_mask
|
||||
// CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, 0);
|
||||
return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm256_mask_cmp_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_mask_cmp_epi64_mask
|
||||
__mmask8 test_mm256_mask_cmp_eq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) {
|
||||
// CHECK-LABEL: @test_mm256_mask_cmp_eq_epi64_mask
|
||||
// CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
|
||||
// CHECK: and <4 x i1> %{{.*}}, %{{.*}}
|
||||
return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, 0);
|
||||
return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, _MM_CMPINT_EQ);
|
||||
}
|
||||
|
||||
__mmask8 test_mm_cmp_epu32_mask(__m128i __a, __m128i __b) {
|
||||
|
|
Loading…
Reference in New Issue