前回の続きなのだが、実際にPASSしたテストケースが何をやっているのかベクトル命令を切り出して確認する。
rvv_int_arithmetic_1_3828467586_2
なんかvslideup
ばかりやっているな?
3 0x000000008000139c vsetivli s3, 4, e32, m1, ta, ma x19 0x0000000000000004 3 0x00000000800013a8 vslide1up.vx v24, v9, s3 3 0x00000000800013bc vslide1up.vx v9, v24, s3 3 0x00000000800013c8 vslide1up.vx v24, v9, s3 3 0x00000000800013dc vslide1up.vx v9, v24, s3 3 0x00000000800013e0 vmv.v.v v24, v9 3 0x00000000800013f4 vslide1up.vx v30, v26, s3 3 0x0000000080001400 vslide1up.vx v26, v30, s3 3 0x000000008000140c vslide1up.vx v30, v26, s3 3 0x0000000080001420 vslide1up.vx v26, v30, s3 3 0x0000000080001424 vmv.v.v v30, v26 3 0x0000000080001430 vmaxu.vx v30, v24, s5 3 0x000000008000143c vmv.x.s s0, v30 x 8 0xffffffff8acf763a 3 0x0000000080001444 vslide1down.vx v21, v30, zero 3 0x0000000080001450 vmv.x.s s0, v21 x 8 0x0000000071010810 3 0x0000000080001458 vslide1down.vx v30, v21, zero 3 0x0000000080001464 vmv.x.s s0, v30 x 8 0xffffffff8d41f927 3 0x000000008000146c vslide1down.vx v21, v30, zero 3 0x0000000080001478 vmv.x.s s0, v21 x 8 0x000000003d80261a 3 0x0000000080001b58 vsetivli s3, 4, e32, m1, ta, ma x19 0x0000000000000004 3 0x0000000080001b64 vslide1up.vx v9, v26, s3 3 0x0000000080001b70 vslide1up.vx v26, v9, s3 3 0x0000000080001b84 vslide1up.vx v9, v26, s3 3 0x0000000080001b98 vslide1up.vx v26, v9, s3 3 0x0000000080001b9c vmv.v.v v9, v26 3 0x0000000080001ba8 vslide1up.vx v15, v7, s3 3 0x0000000080001bbc vslide1up.vx v7, v15, s3 3 0x0000000080001bd0 vslide1up.vx v15, v7, s3 3 0x0000000080001be4 vslide1up.vx v7, v15, s3 3 0x0000000080001be8 vmv.v.v v15, v7 3 0x0000000080001bf0 vslideup.vx v15, v9, ra 3 0x0000000080001bfc vmv.x.s t1, v15 x 6 0xffffffff9110f2c6 3 0x0000000080001c04 vslide1down.vx v10, v15, zero 3 0x0000000080001c10 vmv.x.s t1, v10 x 6 0xfffffffff0108610 3 0x0000000080001c18 vslide1down.vx v15, v10, zero 3 0x0000000080001c24 vmv.x.s t1, v15 x 6 0xffffffff96e62891 3 0x0000000080001c2c vslide1down.vx v10, v15, zero 3 0x0000000080001c38 vmv.x.s t1, v10 x 6 0x0000000018b80eb1 3 0x0000000080001c74 vsetivli t5, 4, e32, m1, ta, ma x30 0x0000000000000004 3 0x0000000080001c88 vslide1up.vx v21, v24, t5 3 0x0000000080001c9c vslide1up.vx v24, v21, t5 3 0x0000000080001cb0 vslide1up.vx v21, v24, t5 3 0x0000000080001cbc vslide1up.vx v24, v21, t5 3 0x0000000080001cc0 vmv.v.v v21, v24 3 0x0000000080001cd4 vslide1up.vx v16, v17, t5 3 0x0000000080001ce8 vslide1up.vx v17, v16, t5 3 0x0000000080001cfc vslide1up.vx v16, v17, t5 3 0x0000000080001d10 vslide1up.vx v17, v16, t5 3 0x0000000080001d14 vmv.v.v v16, v17 3 0x0000000080001d30 vsub.vx v16, v21, s9 3 0x0000000080001d3c vmv.x.s t1, v16 x 6 0xffffffffeb50abd0 3 0x0000000080001d44 vslide1down.vx v31, v16, zero
rvv_opivi_1_1051636734_2
これもひたすらvslideupやってるな?
3 0x0000000080001400 vmv.x.s sp, v7 x 2 0x0000000000000000 3 0x0000000080001408 vslide1down.vx v11, v7, zero 3 0x0000000080001410 vmv.x.s sp, v11 x 2 0x0000000000000000 3 0x0000000080001750 vsetivli s2, 4, e32, m1, ta, ma x18 0x0000000000000004 3 0x000000008000175c vslide1up.vx v1, v15, s2 3 0x0000000080001768 vslide1up.vx v15, v1, s2 3 0x000000008000177c vslide1up.vx v1, v15, s2 3 0x0000000080001790 vslide1up.vx v15, v1, s2 3 0x0000000080001794 vmv.v.v v1, v15 3 0x00000000800017a8 vslide1up.vx v17, v28, s2 3 0x00000000800017bc vslide1up.vx v28, v17, s2 3 0x00000000800017c8 vslide1up.vx v17, v28, s2 3 0x00000000800017dc vslide1up.vx v28, v17, s2 3 0x00000000800017e0 vmv.v.v v17, v28 3 0x00000000800017e4 vrsub.vi v17, v1, -16 3 0x00000000800017f0 vmv.x.s a1, v17 x11 0x0000000059ef0302 3 0x00000000800017f8 vslide1down.vx v6, v17, zero 3 0x0000000080001804 vmv.x.s a1, v6 x11 0x0000000035ef3159 3 0x000000008000180c vslide1down.vx v17, v6, zero 3 0x0000000080001818 vmv.x.s a1, v17 x11 0xffffffffeed0c15b 3 0x0000000080001820 vslide1down.vx v6, v17, zero 3 0x000000008000182c vmv.x.s a1, v6 x11 0xffffffffa87be052
rvv_opivv_1_194588150_2 2
うーん、vrgatherとかも入っているな。でも、あまり大したことはやってなさそうだ。
3 0x00000000800014cc vslide1up.vx v27, v7, t5 3 0x00000000800014d8 vslide1up.vx v7, v27, t5 3 0x00000000800014e4 vslide1up.vx v27, v7, t5 3 0x00000000800014f0 vslide1up.vx v7, v27, t5 3 0x00000000800014f4 vmv.v.v v27, v7 3 0x00000000800014f8 vrgather.vv v27, v29, v3 3 0x0000000080001500 vmv.x.s s7, v27 x23 0x0000000000000000 3 0x0000000080001508 vslide1down.vx v21, v27, zero 3 0x0000000080001510 vmv.x.s s7, v21 x23 0x0000000000000000 3 0x0000000080001518 vslide1down.vx v27, v21, zero 3 0x0000000080001520 vmv.x.s s7, v27 x23 0x0000000000000000 3 0x0000000080001528 vslide1down.vx v21, v27, zero 3 0x0000000080001530 vmv.x.s s7, v21 x23 0x0000000000000000 3 0x000000008000156c vsetivli s1, 4, e32, m1, ta, ma x 9 0x0000000000000004 3 0x0000000080001580 vslide1up.vx v8, v2, s1 3 0x0000000080001594 vslide1up.vx v2, v8, s1 3 0x00000000800015a0 vslide1up.vx v8, v2, s1 3 0x00000000800015ac vslide1up.vx v2, v8, s1 3 0x00000000800015b0 vmv.v.v v8, v2 3 0x00000000800015bc vslide1up.vx v11, v3, s1 3 0x00000000800015c8 vslide1up.vx v3, v11, s1 3 0x00000000800015d4 vslide1up.vx v11, v3, s1 3 0x00000000800015e0 vslide1up.vx v3, v11, s1