Issue 143294
Summary RISC-V: clang generates bcmp for memcmp for small comparisons
Labels clang
Assignees
Reporter hiraditya
    As per the presentation by @asb memcmp should be generating `vmsne` https://blogs.igalia.com/compilers/2025/05/28/improvements-to-risc-v-vector-code-generation-in-llvm
?

```cpp
bool equal(char* dest, char* src) {
    return memcmp(dest, src, 16) ==0;
}

/*
*/
```

but on latest clang
$ clang -march=rva23u64 -O3

```asm
equal(char*, char*):
        addi    sp, sp, -16
        sd ra, 8(sp)
        li      a2, 16
        call    bcmp
        seqz a0, a0
        ld      ra, 8(sp)
        addi    sp, sp, 16
 ret
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to