Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about naming of overloaded policy load functions #232

Closed
kuanlinchentw opened this issue Jun 1, 2023 · 4 comments · Fixed by #233
Closed

Question about naming of overloaded policy load functions #232

kuanlinchentw opened this issue Jun 1, 2023 · 4 comments · Fixed by #233
Assignees

Comments

@kuanlinchentw
Copy link
Contributor

Hi,
Why _mu series load intrinsics cannot be overloaded without type in the function name?

In vector_loads_and_stores_functions, __riscv_vle16_v_f16mf4_mu, __riscv_vle16_v_f16mf2_mu, etc., are with type in the function name.
But __riscv_vle16_tumu,__riscv_vle16_tum, etc., are without types in the function name.

Thanks.

@eopXD
Copy link
Collaborator

eopXD commented Jun 1, 2023

Thank you for posting this, I think you have found a miss in the specification (and the generated unit tests). I have just checked the latest upstream LLVM compiler and it is able to compile the following.

vfloat16mf2_t test_vle16_mu(vbool32_t mask, vfloat16mf2_t maskedoff, const _Float16 *base, size_t vl) {
  return __riscv_vle16_mu(mask, maskedoff, base, vl);
}

I will submit a patch to fix this. Thanks again for checking.

@eopXD eopXD changed the title question about naming of overloaded policy load functions Question about naming of overloaded policy load functions Jun 1, 2023
@eopXD eopXD added the Bug label Jun 1, 2023
@eopXD eopXD self-assigned this Jun 1, 2023
@kito-cheng
Copy link
Collaborator

Seem like GCC has honor the spec...:P

https://godbolt.org/z/xP5e4csnv

@kuanlinchentw
Copy link
Contributor Author

BTW, __riscv_viota_m_u8mf8_mu is the same.

@zhongjuzhe
Copy link

Seem like GCC has honor the spec...:P

https://godbolt.org/z/xP5e4csnv

Yeah, GCC has strictly followed SPEC:

bool can_be_overloaded_p (enum predication_type_index pred) const override
{
if (STORE_P || LST_TYPE == LST_INDEXED)
return true;
return pred != PRED_TYPE_none && pred != PRED_TYPE_mu;
}

....

It seems that I need to remove pred != PRED_TYPE_mu;

eopXD added a commit that referenced this issue Jun 1, 2023
Resolves #232

Signed-off-by: eop Chen <eop.chen@sifive.com>
wangliu-iscas pushed a commit to plctlab/patchwork-gcc that referenced this issue Jun 1, 2023
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

gcc/ChangeLog:

        * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
wangliu-iscas pushed a commit to plctlab/patchwork-gcc that referenced this issue Jun 2, 2023
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

        * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
        * config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
wangliu-iscas pushed a commit to plctlab/patchwork-gcc that referenced this issue Jun 2, 2023
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

        * config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
        * config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
tschwinge pushed a commit to tschwinge/gcc that referenced this issue Jun 2, 2023
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
@eopXD eopXD closed this as completed in #233 Jun 3, 2023
eopXD added a commit that referenced this issue Jun 3, 2023
Resolves #232

Signed-off-by: eop Chen <eop.chen@sifive.com>
fanghuaqi pushed a commit to riscv-mcu/riscv-gcc that referenced this issue Jul 31, 2023
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
rsh-raj pushed a commit to rsh-raj/gcc that referenced this issue Oct 6, 2023
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
XYenChi pushed a commit to XYenChi/gcc that referenced this issue Feb 28, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 12, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 12, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 12, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 13, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 13, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 13, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
yulong18 pushed a commit to yulong18/ruyisdk-gcc that referenced this issue Mar 13, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 15, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/ruyi-gcc that referenced this issue Mar 17, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/gcc that referenced this issue Mar 19, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/gcc that referenced this issue Mar 20, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/gcc that referenced this issue Mar 25, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
XYenChi pushed a commit to XYenChi/gcc that referenced this issue Mar 25, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/gcc that referenced this issue Mar 27, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Liaoshihua pushed a commit to Liaoshihua/gcc that referenced this issue Mar 27, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
XYenChi pushed a commit to XYenChi/gcc that referenced this issue Apr 8, 2024
Base on these:
riscv-non-isa/rvv-intrinsic-doc#232
riscv-non-isa/rvv-intrinsic-doc#233

Add _mu C++ overloaded intrinsics for load && viota && vid.

Co-authored-by: KuanLin Chen <best124612@gmail.com>

gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc: Add _mu overloaded intrinsics.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct fault_load_def): Ditto.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants