Issue |
144651
|
Summary |
[RISCV] combineOp_VLToVWOp_VL can miscompile or crash with Zvfbfwma
|
Labels |
new issue
|
Assignees |
|
Reporter |
topperc
|
This test case that mixes bf16 and f16 miscompiles to a vfwmacc.vv instruction when both Zvfh and Zvfbfwma are enabled.
```
define <4 x float> @fixed(<4 x float> %rd, <4 x half> %a, <4 x bfloat> %b) local_unnamed_addr #0 {
%a_ext = fpext <4 x half> %a to <4 x float>
%b_ext = fpext <4 x bfloat> %b to <4 x float>
%fma = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %a_ext, <4 x float> %b_ext, <4 x float> %rd)
ret <4 x float> %fma
}
```
This test case crashes with Zvfbfwma
```
define <4 x float> @fixed(<4 x float> %rd, <2 x bfloat> %a, <4 x bfloat> %b) local_unnamed_addr #0 {
%b_ext = fpext <4 x bfloat> %b to <4 x float>
%1 = extractelement <2 x bfloat> %a, i64 1
%a_extract = fpext bfloat %1 to float
%a_insert = insertelement <4 x float> poison, float %a_extract, i64 0
%a_shuffle = shufflevector <4 x float> %a_insert, <4 x float> poison, <4 x i32> zeroinitializer
%fma = tail call <4 x float> @llvm.fma.v4f32(<4 x float> %a_shuffle, <4 x float> %b_ext, <4 x float> %rd)
ret <4 x float> %fma
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs