<div dir="ltr"><div>I built llvm + clang from source, a github clone from today:<br></div><div>clang version 11.0.0 (<a href="https://github.com/llvm/llvm-project.git">https://github.com/llvm/llvm-project.git</a> 91aa67bf290bc7f877b1b90128284863bc31aa43)<br></div><div><br></div><div>I compiled a small program:</div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace">#include <stdint.h></font></div><div><font face="monospace"><br></font></div><div><font face="monospace">int main() {</font></div><div><font face="monospace">  uint8_t a = 2;</font></div><div><font face="monospace">  uint8_t b = 5;</font></div><div><font face="monospace">  uint8_t c = a * b;</font></div><div><font face="monospace">}</font></div></blockquote><div>$ clang -c -target riscv32 -march=rv32imc -g main.c</div><div>Works fine.</div><div><br></div><div>The dumped assembly seems to not know about the multiply instruction - is that expected? See offset 1e in the listing below. Happily, the opcode value does appear to match the MUL instruction.</div><div><div><br></div><div>$ llvm-objdump -S main.o</div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font face="monospace">main.o: file format ELF32-riscv</font></div></div><div><div><font face="monospace"><br></font></div></div><div><div><font face="monospace"><br></font></div></div><div><div><font face="monospace">Disassembly of section .text:</font></div></div><div><div><font face="monospace"><br></font></div></div><div><div><font face="monospace">00000000 .text:</font></div></div><div><div><font face="monospace">/usr/local/google/home/pkapsenb/work/llvm-project/build/bin/llvm-objdump: warning: 'main.o': failed to parse debug information for main.o</font></div></div><div><div><font face="monospace">       0: 01 00                         nop</font></div></div><div><div><font face="monospace"><br></font></div></div><div><div><font face="monospace">00000002 main:</font></div></div><div><div><font face="monospace">; int main() {</font></div></div><div><div><font face="monospace">       2: 41 11                         addi    sp, sp, -16</font></div></div><div><div><font face="monospace">       4: 06 c6                         sw      ra, 12(sp)</font></div></div><div><div><font face="monospace">       6: 22 c4                         sw      s0, 8(sp)</font></div></div><div><div><font face="monospace">       8: 00 08                         addi    s0, sp, 16</font></div></div><div><div><font face="monospace">       a: 09 45                         addi    a0, zero, 2</font></div></div><div><div><font face="monospace">;   uint8_t a = 2;</font></div></div><div><div><font face="monospace">       c: a3 0b a4 fe                   sb      a0, -9(s0)</font></div></div><div><div><font face="monospace">      10: 15 45                         addi    a0, zero, 5</font></div></div><div><div><font face="monospace">;   uint8_t b = 5;</font></div></div><div><div><font face="monospace">      12: 23 0b a4 fe                   sb      a0, -10(s0)</font></div></div><div><div><font face="monospace">;   uint8_t c = a * b;</font></div></div><div><div><font face="monospace">      16: 03 05 74 ff                   lb      a0, -9(s0)</font></div></div><div><div><font face="monospace">      1a: 83 05 64 ff                   lb      a1, -10(s0)</font></div></div><div><div><font face="monospace">      1e: 33 05 b5 02                   <b><font color="#ff0000"><unknown></font></b></font></div></div><div><div><font face="monospace">      22: a3 0a a4 fe                   sb      a0, -11(s0)</font></div></div><div><div><font face="monospace">      26: 01 45                         mv      a0, zero</font></div></div><div><div><font face="monospace">; }</font></div></div><div><div><font face="monospace">      28: 22 44                         lw      s0, 8(sp)</font></div></div><div><div><font face="monospace">      2a: b2 40                         lw      ra, 12(sp)</font></div></div><div><div><font face="monospace">      2c: 41 01                         addi    sp, sp, 16</font></div></div><div><div><font face="monospace">      2e: 82 80                         ret</font></div></div></blockquote></div>