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