brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.2 KiB · 2a37caa Raw
497 lines · plain
1# RUN: llvm-mc %s -triple=riscv64 -M no-aliases \2# RUN:     | FileCheck -check-prefixes=CHECK-EXPAND,CHECK-INST,CHECK-ASM-NOALIAS %s3# RUN: llvm-mc %s -triple=riscv64 \4# RUN:     | FileCheck -check-prefixes=CHECK-EXPAND,CHECK-ALIAS,CHECK-ASM %s5# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \6# RUN:     | llvm-objdump --no-print-imm-hex -M no-aliases -d - \7# RUN:     | FileCheck -check-prefixes=CHECK-OBJ-NOALIAS,CHECK-EXPAND,CHECK-INST %s8# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \9# RUN:     | llvm-objdump --no-print-imm-hex -d - \10# RUN:     | FileCheck -check-prefixes=CHECK-EXPAND,CHECK-ALIAS %s11 12# The following check prefixes are used in this test:13# CHECK-INST.....Match the canonical instr (tests alias to instr. mapping)14# CHECK-ALIAS....Match the alias (tests instr. to alias mapping)15# CHECK-EXPAND...Match canonical instr. unconditionally (tests alias expansion)16 17# TODO ld18# TODO sd19 20# Needed for testing valid %pcrel_lo expressions21.Lpcrel_hi0: auipc a0, %pcrel_hi(foo)22 23# Needed for testing li with a symbol difference24.Lbuf: .skip 825.Lbuf_end:26 27# CHECK-INST: addi a0, zero, 028# CHECK-ALIAS: li a0, 029li x10, 030# CHECK-INST: addi a0, zero, 131# CHECK-ALIAS: li a0, 132li x10, 133# CHECK-INST: addi a0, zero, -134# CHECK-ALIAS: li a0, -135li x10, -136# CHECK-INST: addi a0, zero, 204737# CHECK-ALIAS: li a0, 204738li x10, 204739# CHECK-INST: addi a0, zero, -204740# CHECK-ALIAS: li a0, -204741li x10, -204742# CHECK-INST: addi a1, zero, 143# CHECK-INST: slli a1, a1, 1144# CHECK-ALIAS: li a1, 145# CHECK-ALIAS: slli a1, a1, 1146li x11, 204847# CHECK-INST: addi a1, zero, -204848# CHECK-ALIAS: li a1, -204849li x11, -204850# CHECK-EXPAND: lui a1, 151# CHECK-EXPAND: addi a1, a1, -204752li x11, 204953# CHECK-EXPAND: lui a1, 104857554# CHECK-EXPAND: addi a1, a1, 204755li x11, -204956# CHECK-EXPAND: lui a1, 157# CHECK-EXPAND: addi a1, a1, -158li x11, 409559# CHECK-EXPAND: lui a1, 104857560# CHECK-EXPAND: addi a1, a1, 161li x11, -409562# CHECK-EXPAND: lui a2, 163li x12, 409664# CHECK-EXPAND: lui a2, 104857565li x12, -409666# CHECK-EXPAND: lui a2, 167# CHECK-EXPAND-NEXT: addi a2, a2, 168li x12, 409769# CHECK-EXPAND: lui a2, 104857570# CHECK-EXPAND: addi a2, a2, -171li x12, -409772# CHECK-EXPAND: lui a2, 52428873# CHECK-EXPAND-NEXT: addiw a2, a2, -174li x12, 214748364775# CHECK-EXPAND: lui a2, 52428876# CHECK-EXPAND-NEXT: addi a2, a2, 177li x12, -214748364778# CHECK-EXPAND: lui a2, 52428879li x12, -214748364880# CHECK-EXPAND: lui a2, 52428881li x12, -0x8000000082 83# CHECK-INST: addi a2, zero, 184# CHECK-INST-NEXT: slli a2, a2, 3185# CHECK-ALIAS: li a2, 186# CHECK-ALIAS-NEXT: slli a2, a2, 3187li x12, 0x8000000088# CHECK-INST: addi a2, zero, -189# CHECK-INST-NEXT: srli a2, a2, 3290# CHECK-ALIAS: li a2, -191# CHECK-ALIAS-NEXT: srli a2, a2, 3292li x12, 0xFFFFFFFF93 94# CHECK-INST: addi t0, zero, 195# CHECK-INST-NEXT: slli t0, t0, 3296# CHECK-ALIAS: li t0, 197# CHECK-ALIAS-NEXT: slli t0, t0, 3298li t0, 0x10000000099# CHECK-INST: addi t1, zero, -1100# CHECK-INST-NEXT: slli t1, t1, 63101# CHECK-ALIAS: li t1, -1102# CHECK-ALIAS-NEXT: slli t1, t1, 63103li t1, 0x8000000000000000104# CHECK-INST: addi t1, zero, -1105# CHECK-INST-NEXT: slli t1, t1, 63106# CHECK-ALIAS: li t1, -1107# CHECK-ALIAS-NEXT: slli t1, t1, 63108li t1, -0x8000000000000000109# CHECK-EXPAND: lui t2, 9321110# CHECK-EXPAND-NEXT: addi t2, t2, -1329111# CHECK-EXPAND-NEXT: slli t2, t2, 35112li t2, 0x1234567800000000113# CHECK-INST: addi t3, zero, 7114# CHECK-INST-NEXT: slli t3, t3, 36115# CHECK-INST-NEXT: addi t3, t3, 11116# CHECK-INST-NEXT: slli t3, t3, 24117# CHECK-INST-NEXT: addi t3, t3, 15118# CHECK-ALIAS: li t3, 7119# CHECK-ALIAS-NEXT: slli t3, t3, 36120# CHECK-ALIAS-NEXT: addi t3, t3, 11121# CHECK-ALIAS-NEXT: slli t3, t3, 24122# CHECK-ALIAS-NEXT: addi t3, t3, 15123li t3, 0x700000000B00000F124# CHECK-EXPAND: lui t4, 583125# CHECK-EXPAND-NEXT: addi t4, t4, -1875126# CHECK-EXPAND-NEXT: slli t4, t4, 14127# CHECK-EXPAND-NEXT: addi t4, t4, -947128# CHECK-EXPAND-NEXT: slli t4, t4, 12129# CHECK-EXPAND-NEXT: addi t4, t4, 1511130# CHECK-EXPAND-NEXT: slli t4, t4, 13131# CHECK-EXPAND-NEXT: addi t4, t4, -272132li t4, 0x123456789abcdef0133# CHECK-INST: addi t5, zero, -1134# CHECK-ALIAS: li t5, -1135li t5, 0xFFFFFFFFFFFFFFFF136# CHECK-EXPAND: lui t6, 262145137# CHECK-EXPAND-NEXT: slli t6, t6, 1138li t6, 0x80002000139# CHECK-EXPAND: lui t0, 262145140# CHECK-EXPAND-NEXT: slli t0, t0, 2141li x5, 0x100004000142# CHECK-EXPAND: lui t1, 4097143# CHECK-EXPAND-NEXT: slli t1, t1, 20144li x6, 0x100100000000145# CHECK-EXPAND: lui t2, 983056146# CHECK-EXPAND-NEXT: srli t2, t2, 16147li x7, 0xFFFFFFFFF001148# CHECK-EXPAND: lui s0, 1044481149# CHECK-EXPAND-NEXT: slli s0, s0, 12150# CHECK-EXPAND-NEXT: srli s0, s0, 24151li x8, 0xFFFFFFF001152# CHECK-EXPAND: lui s1, 4097153# CHECK-EXPAND-NEXT: slli s1, s1, 20154# CHECK-EXPAND-NEXT: addi s1, s1, -3155li x9, 0x1000FFFFFFFD156# CHECK-INST: lui a0, 983040157# CHECK-INST-NEXT: srli a0, a0, 3158# CHECK-INST-NEXT: xori a0, a0, -1159# CHECK-ALIAS: lui a0, 983040160# CHECK-ALIAS-NEXT: srli a0, a0, 3161# CHECK-ALIAS-NEXT: not a0, a0162li x10, 0xE000000001FFFFFF163# CHECK-INST: addi a1, zero, -2047164# CHECK-INST-NEXT: slli a1, a1, 39165# CHECK-INST-NEXT: addi a1, a1, -2048166# CHECK-INST-NEXT: addi a1, a1, -1167# CHECK-ALIAS: li a1, -2047168# CHECK-ALIAS-NEXT: slli a1, a1, 39169# CHECK-ALIAS-NEXT: addi a1, a1, -2048170# CHECK-ALIAS-NEXT: addi a1, a1, -1171li x11, 0xFFFC007FFFFFF7FF172 173# CHECK-INST: lui a2, 349525174# CHECK-INST-NEXT: addi a2, a2, 1365175# CHECK-INST-NEXT: slli a2, a2, 1176# CHECK-ALIAS: lui a2, 349525177# CHECK-ALIAS-NEXT: addi a2, a2, 1365178# CHECK-ALIAS-NEXT: slli a2, a2, 1179li x12, 0xaaaaaaaa180 181# CHECK-INST: lui a3, 699051182# CHECK-INST-NEXT: addi a3, a3, -1365183# CHECK-INST-NEXT: slli a3, a3, 1184# CHECK-ALIAS: lui a3, 699051185# CHECK-ALIAS-NEXT: addi a3, a3, -1365186# CHECK-ALIAS-NEXT: slli a3, a3, 1187li x13, 0xffffffff55555556188 189# CHECK-S-OBJ-NOALIAS: lui t0, 524288190# CHECK-S-OBJ-NOALIAS-NEXT: addi t0, t0, -1365191# CHECK-S-OBJ: lui t0, 524288192# CHECK-S-OBJ-NEXT: addi t0, t0, -1365193li x5, -2147485013194 195# CHECK-ASM: addi a0, zero, %lo(1193046)196# CHECK-OBJ: addi a0, zero, %lo(1193046)197li a0, %lo(0x123456)198 199# CHECK-OBJ-NOALIAS: addi a0, zero, 0200# CHECK-OBJ: R_RISCV_LO12201li a0, %lo(foo)202# CHECK-OBJ-NOALIAS: addi a0, zero, 0203# CHECK-OBJ: R_RISCV_PCREL_LO12204li a0, %pcrel_lo(.Lpcrel_hi0)205 206.equ CONST, 0x123456207# CHECK-EXPAND: lui a0, 291208# CHECK-EXPAND: addi a0, a0, 1110209li a0, CONST210 211.equ CONST, 0x654321212# CHECK-EXPAND: lui a0, 1620213# CHECK-EXPAND: addi a0, a0, 801214li a0, CONST215 216.equ CONST, .Lbuf_end - .Lbuf217# CHECK-ASM: li a0, CONST218# CHECK-ASM-NOALIAS: addi a0, zero, CONST219# CHECK-OBJ-NOALIAS: addi a0, zero, 8220li a0, CONST221 222# CHECK-ASM: addi a0, zero, .Lbuf_end-.Lbuf223# CHECK-ASM-NOALIAS: addi a0, zero, .Lbuf_end-.Lbuf224# CHECK-OBJ-NOALIAS: addi a0, zero, 8225li a0, .Lbuf_end - .Lbuf226 227# CHECK-INST: addi a0, zero, 0228# CHECK-ALIAS: li a0, 0229la x10, 0230lla x10, 0231# CHECK-INST: addi a0, zero, 1232# CHECK-ALIAS: li a0, 1233la x10, 1234lla x10, 1235# CHECK-INST: addi a0, zero, -1236# CHECK-ALIAS: li a0, -1237la x10, -1238lla x10, -1239# CHECK-INST: addi a0, zero, 2047240# CHECK-ALIAS: li a0, 2047241la x10, 2047242lla x10, 2047243# CHECK-INST: addi a0, zero, -2047244# CHECK-ALIAS: li a0, -2047245la x10, -2047246lla x10, -2047247# CHECK-INST: addi a1, zero, 1248# CHECK-INST: slli a1, a1, 11249# CHECK-ALIAS: li a1, 1250# CHECK-ALIAS: slli a1, a1, 11251la x11, 2048252lla x11, 2048253# CHECK-INST: addi a1, zero, -2048254# CHECK-ALIAS: li a1, -2048255la x11, -2048256lla x11, -2048257# CHECK-EXPAND: lui a1, 1258# CHECK-EXPAND: addi a1, a1, -2047259la x11, 2049260lla x11, 2049261# CHECK-EXPAND: lui a1, 1048575262# CHECK-EXPAND: addi a1, a1, 2047263la x11, -2049264lla x11, -2049265# CHECK-EXPAND: lui a1, 1266# CHECK-EXPAND: addi a1, a1, -1267la x11, 4095268lla x11, 4095269# CHECK-EXPAND: lui a1, 1048575270# CHECK-EXPAND: addi a1, a1, 1271la x11, -4095272lla x11, -4095273# CHECK-EXPAND: lui a2, 1274la x12, 4096275lla x12, 4096276# CHECK-EXPAND: lui a2, 1048575277la x12, -4096278lla x12, -4096279# CHECK-EXPAND: lui a2, 1280# CHECK-EXPAND: addi a2, a2, 1281la x12, 4097282lla x12, 4097283# CHECK-EXPAND: lui a2, 1048575284# CHECK-EXPAND: addiw a2, a2, -1285la x12, -4097286lla x12, -4097287# CHECK-EXPAND: lui a2, 524288288# CHECK-EXPAND: addiw a2, a2, -1289la x12, 2147483647290lla x12, 2147483647291# CHECK-EXPAND: lui a2, 524288292# CHECK-EXPAND: addi a2, a2, 1293la x12, -2147483647294lla x12, -2147483647295# CHECK-EXPAND: lui a2, 524288296la x12, -2147483648297lla x12, -2147483648298# CHECK-EXPAND: lui a2, 524288299la x12, -0x80000000300lla x12, -0x80000000301 302# CHECK-INST: addi a2, zero, 1303# CHECK-INST-NEXT: slli a2, a2, 31304# CHECK-ALIAS: li a2, 1305# CHECK-ALIAS-NEXT: slli a2, a2, 31306la x12, 0x80000000307lla x12, 0x80000000308# CHECK-INST: addi a2, zero, -1309# CHECK-INST-NEXT: srli a2, a2, 32310# CHECK-ALIAS: li a2, -1311# CHECK-ALIAS-NEXT: srli a2, a2, 32312la x12, 0xFFFFFFFF313lla x12, 0xFFFFFFFF314 315# CHECK-INST: addi t0, zero, 1316# CHECK-INST-NEXT: slli t0, t0, 32317# CHECK-ALIAS: li t0, 1318# CHECK-ALIAS-NEXT: slli t0, t0, 32319la t0, 0x100000000320lla t0, 0x100000000321# CHECK-INST: addi t1, zero, -1322# CHECK-INST-NEXT: slli t1, t1, 63323# CHECK-ALIAS: li t1, -1324# CHECK-ALIAS-NEXT: slli t1, t1, 63325la t1, 0x8000000000000000326lla t1, 0x8000000000000000327# CHECK-INST: addi t1, zero, -1328# CHECK-INST-NEXT: slli t1, t1, 63329# CHECK-ALIAS: li t1, -1330# CHECK-ALIAS-NEXT: slli t1, t1, 63331la t1, -0x8000000000000000332lla t1, -0x8000000000000000333# CHECK-EXPAND: lui t2, 9321334# CHECK-EXPAND-NEXT: addi t2, t2, -1329335# CHECK-EXPAND-NEXT: slli t2, t2, 35336la t2, 0x1234567800000000337lla t2, 0x1234567800000000338# CHECK-INST: addi t3, zero, 7339# CHECK-INST-NEXT: slli t3, t3, 36340# CHECK-INST-NEXT: addi t3, t3, 11341# CHECK-INST-NEXT: slli t3, t3, 24342# CHECK-INST-NEXT: addi t3, t3, 15343# CHECK-ALIAS: li t3, 7344# CHECK-ALIAS-NEXT: slli t3, t3, 36345# CHECK-ALIAS-NEXT: addi t3, t3, 11346# CHECK-ALIAS-NEXT: slli t3, t3, 24347# CHECK-ALIAS-NEXT: addi t3, t3, 15348la t3, 0x700000000B00000F349lla t3, 0x700000000B00000F350# CHECK-EXPAND: lui t4, 583351# CHECK-EXPAND-NEXT: addi t4, t4, -1875352# CHECK-EXPAND-NEXT: slli t4, t4, 14353# CHECK-EXPAND-NEXT: addi t4, t4, -947354# CHECK-EXPAND-NEXT: slli t4, t4, 12355# CHECK-EXPAND-NEXT: addi t4, t4, 1511356# CHECK-EXPAND-NEXT: slli t4, t4, 13357# CHECK-EXPAND-NEXT: addi t4, t4, -272358la t4, 0x123456789abcdef0359lla t4, 0x123456789abcdef0360# CHECK-INST: addi t5, zero, -1361# CHECK-ALIAS: li t5, -1362la t5, 0xFFFFFFFFFFFFFFFF363lla t5, 0xFFFFFFFFFFFFFFFF364# CHECK-EXPAND: lui t6, 262145365# CHECK-EXPAND-NEXT: slli t6, t6, 1366la t6, 0x80002000367lla t6, 0x80002000368# CHECK-EXPAND: lui t0, 262145369# CHECK-EXPAND-NEXT: slli t0, t0, 2370la x5, 0x100004000371lla x5, 0x100004000372# CHECK-EXPAND: lui t1, 4097373# CHECK-EXPAND-NEXT: slli t1, t1, 20374la x6, 0x100100000000375lla x6, 0x100100000000376# CHECK-EXPAND: lui t2, 983056377# CHECK-EXPAND-NEXT: srli t2, t2, 16378la x7, 0xFFFFFFFFF001379lla x7, 0xFFFFFFFFF001380# CHECK-EXPAND: lui s0, 1044481381# CHECK-EXPAND-NEXT: slli s0, s0, 12382# CHECK-EXPAND-NEXT: srli s0, s0, 24383la x8, 0xFFFFFFF001384lla x8, 0xFFFFFFF001385# CHECK-EXPAND: lui s1, 4097386# CHECK-EXPAND-NEXT: slli s1, s1, 20387# CHECK-EXPAND-NEXT: addi s1, s1, -3388la x9, 0x1000FFFFFFFD389lla x9, 0x1000FFFFFFFD390# CHECK-INST: lui a0, 983040391# CHECK-INST-NEXT: srli a0, a0, 3392# CHECK-INST-NEXT: xori a0, a0, -1393# CHECK-ALIAS: lui a0, 983040394# CHECK-ALIAS-NEXT: srli a0, a0, 3395# CHECK-ALIAS-NEXT: not a0, a0396la x10, 0xE000000001FFFFFF397lla x10, 0xE000000001FFFFFF398# CHECK-INST: addi a1, zero, -2047399# CHECK-INST-NEXT: slli a1, a1, 39400# CHECK-INST-NEXT: addi a1, a1, -2048401# CHECK-INST-NEXT: addi a1, a1, -1402# CHECK-ALIAS: li a1, -2047403# CHECK-ALIAS-NEXT: slli a1, a1, 39404# CHECK-ALIAS-NEXT: addi a1, a1, -2048405# CHECK-ALIAS-NEXT: addi a1, a1, -1406la x11, 0xFFFC007FFFFFF7FF407lla x11, 0xFFFC007FFFFFF7FF408 409# CHECK-INST: lui a2, 349525410# CHECK-INST-NEXT: addi a2, a2, 1365411# CHECK-INST-NEXT: slli a2, a2, 1412# CHECK-ALIAS: lui a2, 349525413# CHECK-ALIAS-NEXT: addi a2, a2, 1365414# CHECK-ALIAS-NEXT: slli a2, a2, 1415la x12, 0xaaaaaaaa416lla x12, 0xaaaaaaaa417 418# CHECK-INST: lui a3, 699051419# CHECK-INST-NEXT: addi a3, a3, -1365420# CHECK-INST-NEXT: slli a3, a3, 1421# CHECK-ALIAS: lui a3, 699051422# CHECK-ALIAS-NEXT: addi a3, a3, -1365423# CHECK-ALIAS-NEXT: slli a3, a3, 1424la x13, 0xffffffff55555556425lla x13, 0xffffffff55555556426 427# CHECK-S-OBJ-NOALIAS: lui t0, 524288428# CHECK-S-OBJ-NOALIAS-NEXT: addi t0, t0, -1365429# CHECK-S-OBJ: lui t0, 524288430# CHECK-S-OBJ-NEXT: addi t0, t0, -1365431la x5, -2147485013432lla x5, -2147485013433 434.equ CONSTANT, 0x123456435# CHECK-EXPAND: lui a0, 291436# CHECK-EXPAND: addi a0, a0, 1110437la a0, CONSTANT438lla a0, CONSTANT439 440.equ CONSTANT, 0x654321441# CHECK-EXPAND: lui a0, 1620442# CHECK-EXPAND: addi a0, a0, 801443la a0, CONSTANT444lla a0, CONSTANT445 446# CHECK-INST: subw t6, zero, ra447# CHECK-ALIAS: negw t6, ra448negw x31, x1449# CHECK-INST: addiw t6, ra, 0450# CHECK-ALIAS: sext.w t6, ra451sext.w x31, x1452 453# The following aliases are accepted as input but the canonical form454# of the instruction will always be printed.455# CHECK-INST: addiw a2, a3, 4456# CHECK-ALIAS: addiw a2, a3, 4457addw a2,a3,4458 459# CHECK-INST: slliw a2, a3, 4460# CHECK-ALIAS: slliw a2, a3, 4461sllw a2,a3,4462 463# CHECK-INST: srliw a2, a3, 4464# CHECK-ALIAS: srliw a2, a3, 4465srlw a2,a3,4466 467# CHECK-INST: sraiw a2, a3, 4468# CHECK-ALIAS: sraiw a2, a3, 4469sraw a2,a3,4470 471# CHECK-EXPAND: lwu a0, 0(a1)472lwu x10, (x11)473# CHECK-EXPAND: ld a0, 0(a1)474ld x10, (x11)475# CHECK-EXPAND: sd a0, 0(a1)476sd x10, (x11)477 478# CHECK-EXPAND: slli a0, a1, 56479# CHECK-EXPAND: srai a0, a0, 56480sext.b x10, x11481 482# CHECK-EXPAND: slli a0, a1, 48483# CHECK-EXPAND: srai a0, a0, 48484sext.h x10, x11485 486# CHECK-INST: andi a0, a1, 255487# CHECK-ALIAS: zext.b a0, a1488zext.b x10, x11489 490# CHECK-EXPAND: slli a0, a1, 48491# CHECK-EXPAND: srli a0, a0, 48492zext.h x10, x11493 494# CHECK-EXPAND: slli a0, a1, 32495# CHECK-EXPAND: srli a0, a0, 32496zext.w x10, x11497