Hi Robin,
On 2023/8/24 17:59, Robin Dapp wrote:
Hi Lehua,
thanks, just tiny non-functional nits.
- rtx ops[] = {operands[0], quarter};
- icode = code_for_pred_trunc (<V_QUAD_TRUNC>mode);
- riscv_vector::emit_vlmax_insn (icode, riscv_vector::RVV_UNOP, ops);
+ rtx half = gen_reg_rtx (<V_QUAD_TRUNC>mode);
Not really a half anymore now? :)
Yes, it's better to call it one_quad.
+#include <stdint.h>
+
+#define DEF_LOOP(OLD_TYPE, NEW_TYPE)
\
+ void __attribute__ ((noipa))
\
+ test_##OLD_TYPE##_2_##NEW_TYPE (NEW_TYPE *__restrict r,
\
+ OLD_TYPE *__restrict a, \
+ NEW_TYPE *__restrict b, \
+ OLD_TYPE *__restrict pred, int n) \
+ {
\
+ for (int i = 0; i < n; ++i)
\
+ {
\
+ NEW_TYPE bi = b[i]; \
Is this necessary for recognizing a different pattern?
Are you saying that the testcases xxx-1 and xxx-2 are duplicated? If so,
I have no problem removing it and just keeping xxx-1 testcase since it
is still possible to cover my code.
+/* wider-width Integer Type => Integer Type */
Isn't it the other way around or am I just confused?
Yes, I changed it to the following which might be better understood:
/* INT -> wider-INT */
+/* narrower-width Integer Type => Integer Type */
+#define TEST_ALL_X2X_NARROWER(T)
\
+ T (uint16_t, uint8_t)
\
Same here.
Regards
Robin
--
Best,
Lehua