-
Notifications
You must be signed in to change notification settings - Fork 11.7k
Commit
These are really the same as the f16 (and i16) instructions, but we need them for any type that can occur.
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2805,3 +2805,24 @@ define <16 x bfloat> @concat_zero_v8bf16(<8 x bfloat> %x, <8 x bfloat> %y) { | |
%a = shufflevector <8 x bfloat> %x, <8 x bfloat> zeroinitializer, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> | ||
ret <16 x bfloat> %a | ||
} | ||
|
||
define <16 x bfloat> @concat_dup_v8bf16(<8 x bfloat> %x, <8 x bfloat> %y) { | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
d0k
Author
Member
|
||
; X86-LABEL: concat_dup_v8bf16: | ||
; X86: # %bb.0: | ||
; X86-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] | ||
; X86-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0 | ||
; X86-NEXT: retl | ||
; | ||
; SSE2-LABEL: concat_dup_v8bf16: | ||
; SSE2: # %bb.0: | ||
; SSE2-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0,0] | ||
; SSE2-NEXT: retq | ||
; | ||
; AVX-LABEL: concat_dup_v8bf16: | ||
; AVX: # %bb.0: | ||
; AVX-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0] | ||
; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0 | ||
; AVX-NEXT: retq | ||
%a = shufflevector <8 x bfloat> %x, <8 x bfloat> %y, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> | ||
ret <16 x bfloat> %a | ||
} |
I think the test case doesn't show the problem, because it only crashes without
avx512vl
. https://godbolt.org/z/7Gs5qYsKjAnd if I read the code correctly, it doesn't fix the issue either because the
v8bf16x_info
<->v16bf16x_info
patterns requireavx512vl
too.