Skip to content

Commit 687fd71

Browse files
DingliZhangRealFYang
authored andcommittedDec 2, 2022
8297549: RISC-V: Add support for Vector API vector load const operation
Reviewed-by: fyang, gcao
1 parent d50015a commit 687fd71

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed
 

‎src/hotspot/cpu/riscv/riscv_v.ad

+17-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ source %{
7474
case Op_VectorCastL2X:
7575
case Op_VectorCastS2X:
7676
case Op_VectorInsert:
77-
case Op_VectorLoadConst:
7877
case Op_VectorLoadMask:
7978
case Op_VectorLoadShuffle:
8079
case Op_VectorMaskCmp:
@@ -2077,3 +2076,20 @@ instruct vclearArray_reg_reg(iRegL_R29 cnt, iRegP_R28 base, Universe dummy,
20772076

20782077
ins_pipe(pipe_class_memory);
20792078
%}
2079+
2080+
// Vector Load Const
2081+
instruct vloadcon(vReg dst, immI0 src) %{
2082+
match(Set dst (VectorLoadConst src));
2083+
ins_cost(VEC_COST);
2084+
format %{ "vloadcon $dst\t# generate iota indices" %}
2085+
ins_encode %{
2086+
BasicType bt = Matcher::vector_element_basic_type(this);
2087+
Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
2088+
__ vsetvli(t0, x0, sew);
2089+
__ vid_v(as_VectorRegister($dst$$reg));
2090+
if (is_floating_point_type(bt)) {
2091+
__ vfcvt_f_x_v(as_VectorRegister($dst$$reg), as_VectorRegister($dst$$reg));
2092+
}
2093+
%}
2094+
ins_pipe(pipe_slow);
2095+
%}

1 commit comments

Comments
 (1)

openjdk-notifier[bot] commented on Dec 2, 2022

@openjdk-notifier[bot]
Please sign in to comment.