# RUN: llvm-mc %s -triple=riscv32 -riscv-no-aliases -show-encoding \ # RUN: | FileCheck -check-prefixes=CHECK-INST,CHECK-ENC %s # RUN: llvm-mc -filetype=obj -triple riscv32 < %s \ # RUN: | llvm-objdump -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST-ALIAS %s ################################## # User Counter and Timers ################################## # cycleh # name # CHECK-INST: csrrs t1, cycleh, zero # CHECK-ENC: encoding: [0x73,0x23,0x00,0xc8] # CHECK-INST-ALIAS: rdcycleh t1 # uimm12 # CHECK-INST: csrrs t2, cycleh, zero # CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc8] # CHECK-INST-ALIAS: rdcycleh t2 # name csrrs t1, cycleh, zero # uimm12 csrrs t2, 0xC80, zero # timeh # name # CHECK-INST: csrrs t1, timeh, zero # CHECK-ENC: encoding: [0x73,0x23,0x10,0xc8] # CHECK-INST-ALIAS: rdtimeh t1 # uimm12 # CHECK-INST: csrrs t2, timeh, zero # CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc8] # CHECK-INST-ALIAS: rdtimeh t2 # name csrrs t1, timeh, zero # uimm12 csrrs t2, 0xC81, zero # instreth # name # CHECK-INST: csrrs t1, instreth, zero # CHECK-ENC: encoding: [0x73,0x23,0x20,0xc8] # CHECK-INST-ALIAS: rdinstreth t1 # uimm12 # CHECK-INST: csrrs t2, instreth, zero # CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc8] # CHECK-INST-ALIAS: rdinstreth t2 # name csrrs t1, instreth, zero # uimm12 csrrs t2, 0xC82, zero # hpmcounter3h # name # CHECK-INST: csrrs t1, hpmcounter3h, zero # CHECK-ENC: encoding: [0x73,0x23,0x30,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter3h # uimm12 # CHECK-INST: csrrs t2, hpmcounter3h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter3h # name csrrs t1, hpmcounter3h, zero # uimm12 csrrs t2, 0xC83, zero # hpmcounter4h # name # CHECK-INST: csrrs t1, hpmcounter4h, zero # CHECK-ENC: encoding: [0x73,0x23,0x40,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter4h # uimm12 # CHECK-INST: csrrs t2, hpmcounter4h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter4h # name csrrs t1, hpmcounter4h, zero # uimm12 csrrs t2, 0xC84, zero # hpmcounter5h # name # CHECK-INST: csrrs t1, hpmcounter5h, zero # CHECK-ENC: encoding: [0x73,0x23,0x50,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter5h # uimm12 # CHECK-INST: csrrs t2, hpmcounter5h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter5h # name csrrs t1, hpmcounter5h, zero # uimm12 csrrs t2, 0xC85, zero # hpmcounter6h # name # CHECK-INST: csrrs t1, hpmcounter6h, zero # CHECK-ENC: encoding: [0x73,0x23,0x60,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter6h # uimm12 # CHECK-INST: csrrs t2, hpmcounter6h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter6h # name csrrs t1, hpmcounter6h, zero # uimm12 csrrs t2, 0xC86, zero # hpmcounter7h # name # CHECK-INST: csrrs t1, hpmcounter7h, zero # CHECK-ENC: encoding: [0x73,0x23,0x70,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter7h # uimm12 # CHECK-INST: csrrs t2, hpmcounter7h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter7h # name csrrs t1, hpmcounter7h, zero # uimm12 csrrs t2, 0xC87, zero # hpmcounter8h # name # CHECK-INST: csrrs t1, hpmcounter8h, zero # CHECK-ENC: encoding: [0x73,0x23,0x80,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter8h # uimm12 # CHECK-INST: csrrs t2, hpmcounter8h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter8h # name csrrs t1, hpmcounter8h, zero # uimm12 csrrs t2, 0xC88, zero # hpmcounter9h # name # CHECK-INST: csrrs t1, hpmcounter9h, zero # CHECK-ENC: encoding: [0x73,0x23,0x90,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter9h # uimm12 # CHECK-INST: csrrs t2, hpmcounter9h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter9h # name csrrs t1, hpmcounter9h, zero # uimm12 csrrs t2, 0xC89, zero # hpmcounter10h # name # CHECK-INST: csrrs t1, hpmcounter10h, zero # CHECK-ENC: encoding: [0x73,0x23,0xa0,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter10h # uimm12 # CHECK-INST: csrrs t2, hpmcounter10h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter10h # name csrrs t1, hpmcounter10h, zero # uimm12 csrrs t2, 0xC8A, zero # hpmcounter11h # name # CHECK-INST: csrrs t1, hpmcounter11h, zero # CHECK-ENC: encoding: [0x73,0x23,0xb0,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter11h # uimm12 # CHECK-INST: csrrs t2, hpmcounter11h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter11h # name csrrs t1, hpmcounter11h, zero # uimm12 csrrs t2, 0xC8B, zero # hpmcounter12h # name # CHECK-INST: csrrs t1, hpmcounter12h, zero # CHECK-ENC: encoding: [0x73,0x23,0xc0,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter12h # uimm12 # CHECK-INST: csrrs t2, hpmcounter12h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter12h # name csrrs t1, hpmcounter12h, zero # uimm12 csrrs t2, 0xC8C, zero # hpmcounter13h # name # CHECK-INST: csrrs t1, hpmcounter13h, zero # CHECK-ENC: encoding: [0x73,0x23,0xd0,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter13h # uimm12 # CHECK-INST: csrrs t2, hpmcounter13h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter13h # name csrrs t1, hpmcounter13h, zero # uimm12 csrrs t2, 0xC8D, zero # hpmcounter14h # name # CHECK-INST: csrrs t1, hpmcounter14h, zero # CHECK-ENC: encoding: [0x73,0x23,0xe0,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter14h # uimm12 # CHECK-INST: csrrs t2, hpmcounter14h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter14h # name csrrs t1, hpmcounter14h, zero # uimm12 csrrs t2, 0xC8E, zero # hpmcounter15h # name # CHECK-INST: csrrs t1, hpmcounter15h, zero # CHECK-ENC: encoding: [0x73,0x23,0xf0,0xc8] # CHECK-INST-ALIAS: csrr t1, hpmcounter15h # uimm12 # CHECK-INST: csrrs t2, hpmcounter15h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc8] # CHECK-INST-ALIAS: csrr t2, hpmcounter15h # name csrrs t1, hpmcounter15h, zero # uimm12 csrrs t2, 0xC8F, zero # hpmcounter16h # name # CHECK-INST: csrrs t1, hpmcounter16h, zero # CHECK-ENC: encoding: [0x73,0x23,0x00,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter16h # uimm12 # CHECK-INST: csrrs t2, hpmcounter16h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x00,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter16h # name csrrs t1, hpmcounter16h, zero # uimm12 csrrs t2, 0xC90, zero # hpmcounter17h # name # CHECK-INST: csrrs t1, hpmcounter17h, zero # CHECK-ENC: encoding: [0x73,0x23,0x10,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter17h # uimm12 # CHECK-INST: csrrs t2, hpmcounter17h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x10,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter17h # name csrrs t1, hpmcounter17h, zero # uimm12 csrrs t2, 0xC91, zero # hpmcounter18h # name # CHECK-INST: csrrs t1, hpmcounter18h, zero # CHECK-ENC: encoding: [0x73,0x23,0x20,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter18h # uimm12 # CHECK-INST: csrrs t2, hpmcounter18h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x20,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter18h # name csrrs t1, hpmcounter18h, zero # uimm12 csrrs t2, 0xC92, zero # hpmcounter19h # name # CHECK-INST: csrrs t1, hpmcounter19h, zero # CHECK-ENC: encoding: [0x73,0x23,0x30,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter19h # uimm12 # CHECK-INST: csrrs t2, hpmcounter19h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x30,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter19h # name csrrs t1, hpmcounter19h, zero # uimm12 csrrs t2, 0xC93, zero # hpmcounter20h # name # CHECK-INST: csrrs t1, hpmcounter20h, zero # CHECK-ENC: encoding: [0x73,0x23,0x40,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter20h # uimm12 # CHECK-INST: csrrs t2, hpmcounter20h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x40,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter20h # name csrrs t1, hpmcounter20h, zero # uimm12 csrrs t2, 0xC94, zero # hpmcounter21h # name # CHECK-INST: csrrs t1, hpmcounter21h, zero # CHECK-ENC: encoding: [0x73,0x23,0x50,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter21h # uimm12 # CHECK-INST: csrrs t2, hpmcounter21h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x50,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter21h # name csrrs t1, hpmcounter21h, zero # uimm12 csrrs t2, 0xC95, zero # hpmcounter22h # name # CHECK-INST: csrrs t1, hpmcounter22h, zero # CHECK-ENC: encoding: [0x73,0x23,0x60,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter22h # uimm12 # CHECK-INST: csrrs t2, hpmcounter22h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x60,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter22h # name csrrs t1, hpmcounter22h, zero # uimm12 csrrs t2, 0xC96, zero # hpmcounter23h # name # CHECK-INST: csrrs t1, hpmcounter23h, zero # CHECK-ENC: encoding: [0x73,0x23,0x70,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter23h # uimm12 # CHECK-INST: csrrs t2, hpmcounter23h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x70,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter23h # name csrrs t1, hpmcounter23h, zero # uimm12 csrrs t2, 0xC97, zero # hpmcounter24h # name # CHECK-INST: csrrs t1, hpmcounter24h, zero # CHECK-ENC: encoding: [0x73,0x23,0x80,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter24h # uimm12 # CHECK-INST: csrrs t2, hpmcounter24h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x80,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter24h # name csrrs t1, hpmcounter24h, zero # uimm12 csrrs t2, 0xC98, zero # hpmcounter25h # name # CHECK-INST: csrrs t1, hpmcounter25h, zero # CHECK-ENC: encoding: [0x73,0x23,0x90,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter25h # uimm12 # CHECK-INST: csrrs t2, hpmcounter25h, zero # CHECK-ENC: encoding: [0xf3,0x23,0x90,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter25h # name csrrs t1, hpmcounter25h, zero # uimm12 csrrs t2, 0xC99, zero # hpmcounter26h # name # CHECK-INST: csrrs t1, hpmcounter26h, zero # CHECK-ENC: encoding: [0x73,0x23,0xa0,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter26h # uimm12 # CHECK-INST: csrrs t2, hpmcounter26h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xa0,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter26h # name csrrs t1, hpmcounter26h, zero # uimm12 csrrs t2, 0xC9A, zero # hpmcounter27h # name # CHECK-INST: csrrs t1, hpmcounter27h, zero # CHECK-ENC: encoding: [0x73,0x23,0xb0,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter27h # uimm12 # CHECK-INST: csrrs t2, hpmcounter27h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xb0,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter27h # name csrrs t1, hpmcounter27h, zero # uimm12 csrrs t2, 0xC9B, zero # hpmcounter28h # name # CHECK-INST: csrrs t1, hpmcounter28h, zero # CHECK-ENC: encoding: [0x73,0x23,0xc0,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter28h # uimm12 # CHECK-INST: csrrs t2, hpmcounter28h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xc0,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter28h # name csrrs t1, hpmcounter28h, zero # uimm12 csrrs t2, 0xC9C, zero # hpmcounter29h # name # CHECK-INST: csrrs t1, hpmcounter29h, zero # CHECK-ENC: encoding: [0x73,0x23,0xd0,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter29h # uimm12 # CHECK-INST: csrrs t2, hpmcounter29h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xd0,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter29h # name csrrs t1, hpmcounter29h, zero # uimm12 csrrs t2, 0xC9D, zero # hpmcounter30h # name # CHECK-INST: csrrs t1, hpmcounter30h, zero # CHECK-ENC: encoding: [0x73,0x23,0xe0,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter30h # uimm12 # CHECK-INST: csrrs t2, hpmcounter30h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xe0,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter30h # name csrrs t1, hpmcounter30h, zero # uimm12 csrrs t2, 0xC9E, zero # hpmcounter31h # name # CHECK-INST: csrrs t1, hpmcounter31h, zero # CHECK-ENC: encoding: [0x73,0x23,0xf0,0xc9] # CHECK-INST-ALIAS: csrr t1, hpmcounter31h # uimm12 # CHECK-INST: csrrs t2, hpmcounter31h, zero # CHECK-ENC: encoding: [0xf3,0x23,0xf0,0xc9] # CHECK-INST-ALIAS: csrr t2, hpmcounter31h # name csrrs t1, hpmcounter31h, zero # uimm12 csrrs t2, 0xC9F, zero