Skip to content

Commit 24f177d

Browse files
authored
[X86][AVX10.2-BF16] Update VCOMISBF16 intrinsics and instructions (llvm#123307)
- Add `I` to intrinsics and instructions - Add `_` before sbf16 in intrinsics Ref.: https://cdrdv2.intel.com/v1/dl/getContent/828965
1 parent 969eb4e commit 24f177d

File tree

14 files changed

+166
-171
lines changed

14 files changed

+166
-171
lines changed

clang/include/clang/Basic/BuiltinsX86.td

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5375,14 +5375,9 @@ let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<
53755375
def vsubnepbf16512 : X86Builtin<"_Vector<32, __bf16>(_Vector<32, __bf16>, _Vector<32, __bf16>)">;
53765376
}
53775377

5378-
let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in {
5379-
def vcomsbf16eq : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
5380-
def vcomsbf16lt : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
5381-
def vcomsbf16neq : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
5382-
def vcomsbf16ge : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
5383-
def vcomsbf16gt : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
5384-
def vcomsbf16le : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
5385-
}
5378+
let Features = "avx10.2-256", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in
5379+
foreach Cmp = ["eq", "lt", "le", "gt", "ge", "neq"] in
5380+
def vcomisbf16#Cmp : X86Builtin<"int(_Vector<8, __bf16>, _Vector<8, __bf16>)">;
53865381

53875382
let Features = "avx10.2-512", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in {
53885383
def vcmppbf16512_mask : X86Builtin<"unsigned int(_Vector<32, __bf16>, _Vector<32, __bf16>, _Constant int, unsigned int)">;

clang/lib/Headers/avx10_2bf16intrin.h

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -523,34 +523,34 @@ _mm_maskz_min_pbh(__mmask8 __U, __m128bh __A, __m128bh __B) {
523523
(__mmask8)__U, (__v8bf)_mm_min_pbh(__A, __B), (__v8bf)_mm_setzero_pbh());
524524
}
525525

526-
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comeqsbh(__m128bh A,
527-
__m128bh B) {
528-
return __builtin_ia32_vcomsbf16eq((__v8bf)A, (__v8bf)B);
526+
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comieq_sbh(__m128bh A,
527+
__m128bh B) {
528+
return __builtin_ia32_vcomisbf16eq((__v8bf)A, (__v8bf)B);
529529
}
530530

531-
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comltsbh(__m128bh A,
532-
__m128bh B) {
533-
return __builtin_ia32_vcomsbf16lt((__v8bf)A, (__v8bf)B);
531+
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comilt_sbh(__m128bh A,
532+
__m128bh B) {
533+
return __builtin_ia32_vcomisbf16lt((__v8bf)A, (__v8bf)B);
534534
}
535535

536-
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comlesbh(__m128bh A,
537-
__m128bh B) {
538-
return __builtin_ia32_vcomsbf16le((__v8bf)A, (__v8bf)B);
536+
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comile_sbh(__m128bh A,
537+
__m128bh B) {
538+
return __builtin_ia32_vcomisbf16le((__v8bf)A, (__v8bf)B);
539539
}
540540

541-
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comgtsbh(__m128bh A,
542-
__m128bh B) {
543-
return __builtin_ia32_vcomsbf16gt((__v8bf)A, (__v8bf)B);
541+
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comigt_sbh(__m128bh A,
542+
__m128bh B) {
543+
return __builtin_ia32_vcomisbf16gt((__v8bf)A, (__v8bf)B);
544544
}
545545

546-
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comgesbh(__m128bh A,
547-
__m128bh B) {
548-
return __builtin_ia32_vcomsbf16ge((__v8bf)A, (__v8bf)B);
546+
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comige_sbh(__m128bh A,
547+
__m128bh B) {
548+
return __builtin_ia32_vcomisbf16ge((__v8bf)A, (__v8bf)B);
549549
}
550550

551-
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comneqsbh(__m128bh A,
552-
__m128bh B) {
553-
return __builtin_ia32_vcomsbf16neq((__v8bf)A, (__v8bf)B);
551+
static __inline__ int __DEFAULT_FN_ATTRS128 _mm_comineq_sbh(__m128bh A,
552+
__m128bh B) {
553+
return __builtin_ia32_vcomisbf16neq((__v8bf)A, (__v8bf)B);
554554
}
555555

556556
#define _mm256_cmp_pbh_mask(__A, __B, __P) \

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

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -648,40 +648,40 @@ __m128bh test_mm_maskz_min_pbh(__mmask16 __U, __m128bh __A, __m128bh __B) {
648648
return _mm_maskz_min_pbh(__U, __A, __B);
649649
}
650650

651-
int test_mm_comeqsbh(__m128bh __A, __m128bh __B) {
652-
// CHECK-LABEL: test_mm_comeqsbh
653-
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomsbf16eq(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
654-
return _mm_comeqsbh(__A, __B);
651+
int test_mm_comieq_sbh(__m128bh __A, __m128bh __B) {
652+
// CHECK-LABEL: test_mm_comieq_sbh
653+
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomisbf16eq(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
654+
return _mm_comieq_sbh(__A, __B);
655655
}
656656

657-
int test_mm_comltsbh(__m128bh __A, __m128bh __B) {
658-
// CHECK-LABEL: test_mm_comltsbh
659-
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomsbf16lt(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
660-
return _mm_comltsbh(__A, __B);
657+
int test_mm_comilt_sbh(__m128bh __A, __m128bh __B) {
658+
// CHECK-LABEL: test_mm_comilt_sbh
659+
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomisbf16lt(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
660+
return _mm_comilt_sbh(__A, __B);
661661
}
662662

663-
int test_mm_comlesbh(__m128bh __A, __m128bh __B) {
664-
// CHECK-LABEL: test_mm_comlesbh
665-
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomsbf16le(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
666-
return _mm_comlesbh(__A, __B);
663+
int test_mm_comile_sbh(__m128bh __A, __m128bh __B) {
664+
// CHECK-LABEL: test_mm_comile_sbh
665+
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomisbf16le(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
666+
return _mm_comile_sbh(__A, __B);
667667
}
668668

669-
int test_mm_comgtsbh(__m128bh __A, __m128bh __B) {
670-
// CHECK-LABEL: test_mm_comgtsbh
671-
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomsbf16gt(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
672-
return _mm_comgtsbh(__A, __B);
669+
int test_mm_comigt_sbh(__m128bh __A, __m128bh __B) {
670+
// CHECK-LABEL: test_mm_comigt_sbh
671+
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomisbf16gt(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
672+
return _mm_comigt_sbh(__A, __B);
673673
}
674674

675-
int test_mm_comgesbh(__m128bh __A, __m128bh __B) {
676-
// CHECK-LABEL: test_mm_comgesbh
677-
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomsbf16ge(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
678-
return _mm_comgesbh(__A, __B);
675+
int test_mm_comige_sbh(__m128bh __A, __m128bh __B) {
676+
// CHECK-LABEL: test_mm_comige_sbh
677+
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomisbf16ge(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
678+
return _mm_comige_sbh(__A, __B);
679679
}
680680

681-
int test_mm_comneqsbh(__m128bh __A, __m128bh __B) {
682-
// CHECK-LABEL: test_mm_comneqsbh
683-
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomsbf16neq(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
684-
return _mm_comneqsbh(__A, __B);
681+
int test_mm_comineq_sbh(__m128bh __A, __m128bh __B) {
682+
// CHECK-LABEL: test_mm_comineq_sbh
683+
// CHECK: %{{.}} = call i32 @llvm.x86.avx10.vcomisbf16neq(<8 x bfloat> %{{.}}, <8 x bfloat> %{{.}})
684+
return _mm_comineq_sbh(__A, __B);
685685
}
686686

687687
__mmask16 test_mm256_cmp_pbh_mask_eq_oq(__m256bh a, __m256bh b) {

llvm/include/llvm/IR/IntrinsicsX86.td

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7642,22 +7642,22 @@ def int_x86_avx10_vminpbf16256 : ClangBuiltin<"__builtin_ia32_vminpbf16256">,
76427642
def int_x86_avx10_vminpbf16128 : ClangBuiltin<"__builtin_ia32_vminpbf16128">,
76437643
DefaultAttrsIntrinsic<[llvm_v8bf16_ty], [llvm_v8bf16_ty, llvm_v8bf16_ty],
76447644
[IntrNoMem]>;
7645-
def int_x86_avx10_vcomsbf16eq : ClangBuiltin<"__builtin_ia32_vcomsbf16eq">,
7645+
def int_x86_avx10_vcomisbf16eq : ClangBuiltin<"__builtin_ia32_vcomisbf16eq">,
76467646
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v8bf16_ty, llvm_v8bf16_ty],
76477647
[IntrNoMem]>;
7648-
def int_x86_avx10_vcomsbf16lt : ClangBuiltin<"__builtin_ia32_vcomsbf16lt">,
7648+
def int_x86_avx10_vcomisbf16lt : ClangBuiltin<"__builtin_ia32_vcomisbf16lt">,
76497649
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v8bf16_ty,llvm_v8bf16_ty],
76507650
[IntrNoMem]>;
7651-
def int_x86_avx10_vcomsbf16le : ClangBuiltin<"__builtin_ia32_vcomsbf16le">,
7651+
def int_x86_avx10_vcomisbf16le : ClangBuiltin<"__builtin_ia32_vcomisbf16le">,
76527652
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v8bf16_ty, llvm_v8bf16_ty],
76537653
[IntrNoMem]>;
7654-
def int_x86_avx10_vcomsbf16gt : ClangBuiltin<"__builtin_ia32_vcomsbf16gt">,
7654+
def int_x86_avx10_vcomisbf16gt : ClangBuiltin<"__builtin_ia32_vcomisbf16gt">,
76557655
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v8bf16_ty, llvm_v8bf16_ty],
76567656
[IntrNoMem]>;
7657-
def int_x86_avx10_vcomsbf16ge : ClangBuiltin<"__builtin_ia32_vcomsbf16ge">,
7657+
def int_x86_avx10_vcomisbf16ge : ClangBuiltin<"__builtin_ia32_vcomisbf16ge">,
76587658
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v8bf16_ty, llvm_v8bf16_ty],
76597659
[IntrNoMem]>;
7660-
def int_x86_avx10_vcomsbf16neq : ClangBuiltin<"__builtin_ia32_vcomsbf16neq">,
7660+
def int_x86_avx10_vcomisbf16neq : ClangBuiltin<"__builtin_ia32_vcomisbf16neq">,
76617661
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_v8bf16_ty, llvm_v8bf16_ty],
76627662
[IntrNoMem]>;
76637663
def int_x86_avx10_mask_rsqrt_nepbf16_128 : ClangBuiltin<"__builtin_ia32_vrsqrtpbf16128_mask">,

llvm/lib/Target/X86/X86InstrAVX10.td

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,19 +1359,19 @@ defm VMINPBF16 : avx10_fp_binopne_int_pbf16<0x5D, "vmin", SchedWriteFCmpSizes, 0
13591359
defm VMAXPBF16 : avx10_fp_binopne_int_pbf16<0x5F, "vmax", SchedWriteFCmpSizes, 0>;
13601360
}
13611361

1362-
// VCOMSBF16
1362+
// VCOMISBF16
13631363
let Uses = []<Register>, mayRaiseFPException = 0,
13641364
Defs = [EFLAGS], Predicates = [HasAVX10_2] in {
13651365
//TODO: Replace null_frag with X86fcmp to support lowering `fcmp oeq bfloat *`
13661366
//which may require extend supports on BFR16X, loadbf16, ...
1367-
defm VCOMSBF16Z : sse12_ord_cmp<0x2F, FR16X, null_frag, bf16, f16mem, loadf16,
1368-
"comsbf16", SSEPackedSingle>, T_MAP5, PD, EVEX,
1369-
VEX_LIG, EVEX_CD8<16, CD8VT1>;
1367+
defm VCOMISBF16Z : sse12_ord_cmp<0x2F, FR16X, null_frag, bf16, f16mem, loadf16,
1368+
"comisbf16", SSEPackedSingle>, T_MAP5, PD, EVEX,
1369+
VEX_LIG, EVEX_CD8<16, CD8VT1>;
13701370

13711371
let isCodeGenOnly = 1 in {
1372-
defm VCOMSBF16Z : sse12_ord_cmp_int<0x2F, VR128X, X86comi, v8bf16, f16mem,
1373-
sse_load_bf16, "comsbf16", SSEPackedSingle>,
1374-
T_MAP5, PD, EVEX, VEX_LIG, EVEX_CD8<16, CD8VT1>;
1372+
defm VCOMISBF16Z : sse12_ord_cmp_int<0x2F, VR128X, X86comi, v8bf16, f16mem,
1373+
sse_load_bf16, "comisbf16", SSEPackedSingle>,
1374+
T_MAP5, PD, EVEX, VEX_LIG, EVEX_CD8<16, CD8VT1>;
13751375
}
13761376
}
13771377

llvm/lib/Target/X86/X86IntrinsicsInfo.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -751,12 +751,12 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
751751
X86ISD::FADD_RND),
752752
X86_INTRINSIC_DATA(avx10_vaddps256, INTR_TYPE_2OP, ISD::FADD,
753753
X86ISD::FADD_RND),
754-
X86_INTRINSIC_DATA(avx10_vcomsbf16eq, COMI, X86ISD::COMI, ISD::SETEQ),
755-
X86_INTRINSIC_DATA(avx10_vcomsbf16ge, COMI, X86ISD::COMI, ISD::SETGE),
756-
X86_INTRINSIC_DATA(avx10_vcomsbf16gt, COMI, X86ISD::COMI, ISD::SETGT),
757-
X86_INTRINSIC_DATA(avx10_vcomsbf16le, COMI, X86ISD::COMI, ISD::SETLE),
758-
X86_INTRINSIC_DATA(avx10_vcomsbf16lt, COMI, X86ISD::COMI, ISD::SETLT),
759-
X86_INTRINSIC_DATA(avx10_vcomsbf16neq, COMI, X86ISD::COMI, ISD::SETNE),
754+
X86_INTRINSIC_DATA(avx10_vcomisbf16eq, COMI, X86ISD::COMI, ISD::SETEQ),
755+
X86_INTRINSIC_DATA(avx10_vcomisbf16ge, COMI, X86ISD::COMI, ISD::SETGE),
756+
X86_INTRINSIC_DATA(avx10_vcomisbf16gt, COMI, X86ISD::COMI, ISD::SETGT),
757+
X86_INTRINSIC_DATA(avx10_vcomisbf16le, COMI, X86ISD::COMI, ISD::SETLE),
758+
X86_INTRINSIC_DATA(avx10_vcomisbf16lt, COMI, X86ISD::COMI, ISD::SETLT),
759+
X86_INTRINSIC_DATA(avx10_vcomisbf16neq, COMI, X86ISD::COMI, ISD::SETNE),
760760
X86_INTRINSIC_DATA(avx10_vcvt2ph2bf8128, INTR_TYPE_2OP, X86ISD::VCVT2PH2BF8,
761761
0),
762762
X86_INTRINSIC_DATA(avx10_vcvt2ph2bf8256, INTR_TYPE_2OP, X86ISD::VCVT2PH2BF8,

llvm/test/CodeGen/X86/avx10_2bf16-intrinsics.ll

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -118,69 +118,69 @@ define <8 x bfloat> @test_int_x86_avx10_maskz_max_nepbf16_128(<8 x bfloat> %x1,
118118
ret <8 x bfloat> %res1
119119
}
120120

121-
declare i32 @llvm.x86.avx10.vcomsbf16eq(<8 x bfloat>, <8 x bfloat>)
122-
declare i32 @llvm.x86.avx10.vcomsbf16lt(<8 x bfloat>, <8 x bfloat>)
123-
declare i32 @llvm.x86.avx10.vcomsbf16le(<8 x bfloat>, <8 x bfloat>)
124-
declare i32 @llvm.x86.avx10.vcomsbf16gt(<8 x bfloat>, <8 x bfloat>)
125-
declare i32 @llvm.x86.avx10.vcomsbf16ge(<8 x bfloat>, <8 x bfloat>)
126-
declare i32 @llvm.x86.avx10.vcomsbf16neq(<8 x bfloat>, <8 x bfloat>)
121+
declare i32 @llvm.x86.avx10.vcomisbf16eq(<8 x bfloat>, <8 x bfloat>)
122+
declare i32 @llvm.x86.avx10.vcomisbf16lt(<8 x bfloat>, <8 x bfloat>)
123+
declare i32 @llvm.x86.avx10.vcomisbf16le(<8 x bfloat>, <8 x bfloat>)
124+
declare i32 @llvm.x86.avx10.vcomisbf16gt(<8 x bfloat>, <8 x bfloat>)
125+
declare i32 @llvm.x86.avx10.vcomisbf16ge(<8 x bfloat>, <8 x bfloat>)
126+
declare i32 @llvm.x86.avx10.vcomisbf16neq(<8 x bfloat>, <8 x bfloat>)
127127

128128
define i32 @test_x86_avx10_com_nesbf16_eq(<8 x bfloat> %a0, <8 x bfloat> %a1) {
129129
; CHECK-LABEL: test_x86_avx10_com_nesbf16_eq:
130130
; CHECK: # %bb.0:
131-
; CHECK-NEXT: vcomsbf16 %xmm1, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc1]
131+
; CHECK-NEXT: vcomisbf16 %xmm1, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc1]
132132
; CHECK-NEXT: setnp %al # encoding: [0x0f,0x9b,0xc0]
133133
; CHECK-NEXT: sete %cl # encoding: [0x0f,0x94,0xc1]
134134
; CHECK-NEXT: andb %al, %cl # encoding: [0x20,0xc1]
135135
; CHECK-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
136136
; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
137-
%res = call i32 @llvm.x86.avx10.vcomsbf16eq(<8 x bfloat> %a0, <8 x bfloat> %a1)
137+
%res = call i32 @llvm.x86.avx10.vcomisbf16eq(<8 x bfloat> %a0, <8 x bfloat> %a1)
138138
ret i32 %res
139139
}
140140

141141
define i32 @test_x86_avx10_com_nesbf16_lt(<8 x bfloat> %a0, <8 x bfloat> %a1) {
142142
; CHECK-LABEL: test_x86_avx10_com_nesbf16_lt:
143143
; CHECK: # %bb.0:
144144
; CHECK-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
145-
; CHECK-NEXT: vcomsbf16 %xmm0, %xmm1 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc8]
145+
; CHECK-NEXT: vcomisbf16 %xmm0, %xmm1 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc8]
146146
; CHECK-NEXT: seta %al # encoding: [0x0f,0x97,0xc0]
147147
; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
148-
%res = call i32 @llvm.x86.avx10.vcomsbf16lt(<8 x bfloat> %a0, <8 x bfloat> %a1)
148+
%res = call i32 @llvm.x86.avx10.vcomisbf16lt(<8 x bfloat> %a0, <8 x bfloat> %a1)
149149
ret i32 %res
150150
}
151151

152152
define i32 @test_x86_avx10_com_nesbf16_le(<8 x bfloat> %a0, <8 x bfloat> %a1) {
153153
; CHECK-LABEL: test_x86_avx10_com_nesbf16_le:
154154
; CHECK: # %bb.0:
155155
; CHECK-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
156-
; CHECK-NEXT: vcomsbf16 %xmm0, %xmm1 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc8]
156+
; CHECK-NEXT: vcomisbf16 %xmm0, %xmm1 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc8]
157157
; CHECK-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
158158
; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
159-
%res = call i32 @llvm.x86.avx10.vcomsbf16le(<8 x bfloat> %a0, <8 x bfloat> %a1)
159+
%res = call i32 @llvm.x86.avx10.vcomisbf16le(<8 x bfloat> %a0, <8 x bfloat> %a1)
160160
ret i32 %res
161161
}
162162

163163
define i32 @test_x86_avx10_com_nesbf16_gt(<8 x bfloat> %a0, <8 x bfloat> %a1) {
164164
; CHECK-LABEL: test_x86_avx10_com_nesbf16_gt:
165165
; CHECK: # %bb.0:
166166
; CHECK-NEXT: xorl %eax, %eax # encoding: [0x31,0xc0]
167-
; CHECK-NEXT: vcomsbf16 %xmm1, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc1]
167+
; CHECK-NEXT: vcomisbf16 %xmm1, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc1]
168168
; CHECK-NEXT: setae %al # encoding: [0x0f,0x93,0xc0]
169169
; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
170-
%res = call i32 @llvm.x86.avx10.vcomsbf16ge(<8 x bfloat> %a0, <8 x bfloat> %a1)
170+
%res = call i32 @llvm.x86.avx10.vcomisbf16ge(<8 x bfloat> %a0, <8 x bfloat> %a1)
171171
ret i32 %res
172172
}
173173

174174
define i32 @test_x86_avx10_com_nesbf16_neq(<8 x bfloat> %a0, <8 x bfloat> %a1) {
175175
; CHECK-LABEL: test_x86_avx10_com_nesbf16_neq:
176176
; CHECK: # %bb.0:
177-
; CHECK-NEXT: vcomsbf16 %xmm1, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc1]
177+
; CHECK-NEXT: vcomisbf16 %xmm1, %xmm0 # encoding: [0x62,0xf5,0x7d,0x08,0x2f,0xc1]
178178
; CHECK-NEXT: setp %al # encoding: [0x0f,0x9a,0xc0]
179179
; CHECK-NEXT: setne %cl # encoding: [0x0f,0x95,0xc1]
180180
; CHECK-NEXT: orb %al, %cl # encoding: [0x08,0xc1]
181181
; CHECK-NEXT: movzbl %cl, %eax # encoding: [0x0f,0xb6,0xc1]
182182
; CHECK-NEXT: ret{{[l|q]}} # encoding: [0xc3]
183-
%res = call i32 @llvm.x86.avx10.vcomsbf16neq(<8 x bfloat> %a0, <8 x bfloat> %a1)
183+
%res = call i32 @llvm.x86.avx10.vcomisbf16neq(<8 x bfloat> %a0, <8 x bfloat> %a1)
184184
ret i32 %res
185185
}
186186

llvm/test/MC/Disassembler/X86/avx10.2-bf16-32.txt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -205,32 +205,32 @@
205205
# INTEL: vcmppbf16 k5 {k7}, ymm3, word ptr [edx - 256]{1to16}, 123
206206
0x62,0xf3,0x67,0x3f,0xc2,0x6a,0x80,0x7b
207207

208-
# ATT: vcomsbf16 %xmm3, %xmm2
209-
# INTEL: vcomsbf16 xmm2, xmm3
208+
# ATT: vcomisbf16 %xmm3, %xmm2
209+
# INTEL: vcomisbf16 xmm2, xmm3
210210
0x62,0xf5,0x7d,0x08,0x2f,0xd3
211211

212-
# ATT: vcomsbf16 268435456(%esp,%esi,8), %xmm2
213-
# INTEL: vcomsbf16 xmm2, word ptr [esp + 8*esi + 268435456]
212+
# ATT: vcomisbf16 268435456(%esp,%esi,8), %xmm2
213+
# INTEL: vcomisbf16 xmm2, word ptr [esp + 8*esi + 268435456]
214214
0x62,0xf5,0x7d,0x08,0x2f,0x94,0xf4,0x00,0x00,0x00,0x10
215215

216-
# ATT: vcomsbf16 291(%edi,%eax,4), %xmm2
217-
# INTEL: vcomsbf16 xmm2, word ptr [edi + 4*eax + 291]
216+
# ATT: vcomisbf16 291(%edi,%eax,4), %xmm2
217+
# INTEL: vcomisbf16 xmm2, word ptr [edi + 4*eax + 291]
218218
0x62,0xf5,0x7d,0x08,0x2f,0x94,0x87,0x23,0x01,0x00,0x00
219219

220-
# ATT: vcomsbf16 (%eax), %xmm2
221-
# INTEL: vcomsbf16 xmm2, word ptr [eax]
220+
# ATT: vcomisbf16 (%eax), %xmm2
221+
# INTEL: vcomisbf16 xmm2, word ptr [eax]
222222
0x62,0xf5,0x7d,0x08,0x2f,0x10
223223

224-
# ATT: vcomsbf16 -64(,%ebp,2), %xmm2
225-
# INTEL: vcomsbf16 xmm2, word ptr [2*ebp - 64]
224+
# ATT: vcomisbf16 -64(,%ebp,2), %xmm2
225+
# INTEL: vcomisbf16 xmm2, word ptr [2*ebp - 64]
226226
0x62,0xf5,0x7d,0x08,0x2f,0x14,0x6d,0xc0,0xff,0xff,0xff
227227

228-
# ATT: vcomsbf16 254(%ecx), %xmm2
229-
# INTEL: vcomsbf16 xmm2, word ptr [ecx + 254]
228+
# ATT: vcomisbf16 254(%ecx), %xmm2
229+
# INTEL: vcomisbf16 xmm2, word ptr [ecx + 254]
230230
0x62,0xf5,0x7d,0x08,0x2f,0x51,0x7f
231231

232-
# ATT: vcomsbf16 -256(%edx), %xmm2
233-
# INTEL: vcomsbf16 xmm2, word ptr [edx - 256]
232+
# ATT: vcomisbf16 -256(%edx), %xmm2
233+
# INTEL: vcomisbf16 xmm2, word ptr [edx - 256]
234234
0x62,0xf5,0x7d,0x08,0x2f,0x52,0x80
235235

236236
# ATT: vdivnepbf16 %ymm4, %ymm3, %ymm2

llvm/test/MC/Disassembler/X86/avx10.2-bf16-64.txt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -205,32 +205,32 @@
205205
# INTEL: vcmppbf16 k5 {k7}, ymm23, word ptr [rdx - 256]{1to16}, 123
206206
0x62,0xf3,0x47,0x37,0xc2,0x6a,0x80,0x7b
207207

208-
# ATT: vcomsbf16 %xmm23, %xmm22
209-
# INTEL: vcomsbf16 xmm22, xmm23
208+
# ATT: vcomisbf16 %xmm23, %xmm22
209+
# INTEL: vcomisbf16 xmm22, xmm23
210210
0x62,0xa5,0x7d,0x08,0x2f,0xf7
211211

212-
# ATT: vcomsbf16 268435456(%rbp,%r14,8), %xmm22
213-
# INTEL: vcomsbf16 xmm22, word ptr [rbp + 8*r14 + 268435456]
212+
# ATT: vcomisbf16 268435456(%rbp,%r14,8), %xmm22
213+
# INTEL: vcomisbf16 xmm22, word ptr [rbp + 8*r14 + 268435456]
214214
0x62,0xa5,0x7d,0x08,0x2f,0xb4,0xf5,0x00,0x00,0x00,0x10
215215

216-
# ATT: vcomsbf16 291(%r8,%rax,4), %xmm22
217-
# INTEL: vcomsbf16 xmm22, word ptr [r8 + 4*rax + 291]
216+
# ATT: vcomisbf16 291(%r8,%rax,4), %xmm22
217+
# INTEL: vcomisbf16 xmm22, word ptr [r8 + 4*rax + 291]
218218
0x62,0xc5,0x7d,0x08,0x2f,0xb4,0x80,0x23,0x01,0x00,0x00
219219

220-
# ATT: vcomsbf16 (%rip), %xmm22
221-
# INTEL: vcomsbf16 xmm22, word ptr [rip]
220+
# ATT: vcomisbf16 (%rip), %xmm22
221+
# INTEL: vcomisbf16 xmm22, word ptr [rip]
222222
0x62,0xe5,0x7d,0x08,0x2f,0x35,0x00,0x00,0x00,0x00
223223

224-
# ATT: vcomsbf16 -64(,%rbp,2), %xmm22
225-
# INTEL: vcomsbf16 xmm22, word ptr [2*rbp - 64]
224+
# ATT: vcomisbf16 -64(,%rbp,2), %xmm22
225+
# INTEL: vcomisbf16 xmm22, word ptr [2*rbp - 64]
226226
0x62,0xe5,0x7d,0x08,0x2f,0x34,0x6d,0xc0,0xff,0xff,0xff
227227

228-
# ATT: vcomsbf16 254(%rcx), %xmm22
229-
# INTEL: vcomsbf16 xmm22, word ptr [rcx + 254]
228+
# ATT: vcomisbf16 254(%rcx), %xmm22
229+
# INTEL: vcomisbf16 xmm22, word ptr [rcx + 254]
230230
0x62,0xe5,0x7d,0x08,0x2f,0x71,0x7f
231231

232-
# ATT: vcomsbf16 -256(%rdx), %xmm22
233-
# INTEL: vcomsbf16 xmm22, word ptr [rdx - 256]
232+
# ATT: vcomisbf16 -256(%rdx), %xmm22
233+
# INTEL: vcomisbf16 xmm22, word ptr [rdx - 256]
234234
0x62,0xe5,0x7d,0x08,0x2f,0x72,0x80
235235

236236
# ATT: vdivnepbf16 %ymm24, %ymm23, %ymm22

0 commit comments

Comments
 (0)