Ubuntu 22.04 LTS上でインストールできるclang14を試す。
void vector_test (const long long *a, const long long *b, long long *c) { for (int i = 0; i < 256; i++) { c[i] = a[i] + b[i]; } return; }
clang-14 -c vector_test.c -menable-experimental-extensions -march=rv64gcv -target riscv64 -O3 -mllvm --riscv-v-vector-bits-min=256 riscv64-unknown-elf-objdump -d vector_test.o
4e: 00e507b3 add a5,a0,a4 52: c5827057 vsetivli zero,4,e64,m1,ta,mu 56: 0207f407 vle64.v v8,(a5) 5a: 02078793 addi a5,a5,32 5e: 0207f487 vle64.v v9,(a5) 62: 00e587b3 add a5,a1,a4 66: 0207f507 vle64.v v10,(a5) 6a: 02078793 addi a5,a5,32 6e: 0207f587 vle64.v v11,(a5) 72: 02a40457 vadd.vv v8,v10,v8 76: 02b484d7 vadd.vv v9,v11,v9 7a: 00e607b3 add a5,a2,a4 7e: 0207f427 vse64.v v8,(a5) 82: 02078793 addi a5,a5,32 86: 04070713 addi a4,a4,64 8a: 0207f4a7 vse64.v v9,(a5) 8e: fc5710e3 bne a4,t0,4e <vector_test+0x4e> 92: 8082 ret