1# RUN: llvm-mc %s -triple=riscv64 -mattr=+zba -M no-aliases \ 2# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s 3# RUN: llvm-mc %s -triple=riscv64 -mattr=+zba \ 4# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ %s 5# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+zba < %s \ 6# RUN: | llvm-objdump --no-print-imm-hex -d -r -M no-aliases --mattr=+zba - \ 7# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s 8# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+zba < %s \ 9# RUN: | llvm-objdump --no-print-imm-hex -d -r --mattr=+zba - \ 10# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ %s 11 12# The following check prefixes are used in this test: 13# CHECK-S-OBJ Match both the .s and objdumped object output with 14# aliases enabled 15# CHECK-S-OBJ-NOALIAS Match both the .s and objdumped object output with 16# aliases disabled 17 18# CHECK-S-OBJ-NOALIAS: add.uw t0, t1, zero 19# CHECK-S-OBJ: zext.w t0, t1 20zext.w x5, x6 21 22# CHECK-S-OBJ-NOALIAS: addi t1, zero, -2 23# CHECK-S-OBJ-NOALIAS-NEXT: add.uw t1, t1, zero 24# CHECK-S-OBJ: li t1, -2 25# CHECK-S-OBJ-NEXT: zext.w t1, t1 26li x6, 0xfffffffe 27 28# CHECK-S-OBJ-NOALIAS: lui t0, 768955 29# CHECK-S-OBJ-NOALIAS-NEXT: slli.uw t0, t0, 12 30# CHECK-S-OBJ-NOALIAS-NEXT: addi t0, t0, 1979 31# CHECK-S-OBJ: lui t0, 768955 32# CHECK-S-OBJ-NEXT: slli.uw t0, t0, 12 33# CHECK-S-OBJ-NEXT: addi t0, t0, 1979 34li x5, 0xbbbbb0007bb 35 36# CHECK-S-OBJ-NOALIAS: lui t0, 768955 37# CHECK-S-OBJ-NOALIAS-NEXT: slli.uw t0, t0, 4 38# CHECK-S-OBJ: lui t0, 768955 39# CHECK-S-OBJ-NEXT: slli.uw t0, t0, 4 40li x5, 0xbbbbb0000 41 42# CHECK-S-OBJ-NOALIAS: lui t1, 611378 43# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, 265 44# CHECK-S-OBJ-NOALIAS-NEXT: sh1add t1, t1, t1 45# CHECK-S-OBJ: lui t1, 611378 46# CHECK-S-OBJ-NEXT: addiw t1, t1, 265 47# CHECK-S-OBJ-NEXT: sh1add t1, t1, t1 48li x6, -5372288229 49 50# CHECK-S-OBJ-NOALIAS: lui t1, 437198 51# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, -265 52# CHECK-S-OBJ-NOALIAS-NEXT: sh2add t1, t1, t1 53# CHECK-S-OBJ: lui t1, 437198 54# CHECK-S-OBJ-NEXT: addiw t1, t1, -265 55# CHECK-S-OBJ-NEXT: sh2add t1, t1, t1 56li x6, 8953813715 57 58# CHECK-S-OBJ-NOALIAS: lui t1, 611378 59# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, 265 60# CHECK-S-OBJ-NOALIAS-NEXT: sh2add t1, t1, t1 61# CHECK-S-OBJ: lui t1, 611378 62# CHECK-S-OBJ-NEXT: addiw t1, t1, 265 63# CHECK-S-OBJ-NEXT: sh2add t1, t1, t1 64li x6, -8953813715 65 66# CHECK-S-OBJ-NOALIAS: lui t1, 437198 67# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, -265 68# CHECK-S-OBJ-NOALIAS-NEXT: sh3add t1, t1, t1 69# CHECK-S-OBJ: lui t1, 437198 70# CHECK-S-OBJ-NEXT: addiw t1, t1, -265 71# CHECK-S-OBJ-NEXT: sh3add t1, t1, t1 72li x6, 16116864687 73 74# CHECK-S-OBJ-NOALIAS: lui t1, 611378 75# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, 265 76# CHECK-S-OBJ-NOALIAS-NEXT: sh3add t1, t1, t1 77# CHECK-S-OBJ: lui t1, 611378 78# CHECK-S-OBJ-NEXT: addiw t1, t1, 265 79# CHECK-S-OBJ-NEXT: sh3add t1, t1, t1 80li x6, -16116864687 81 82# CHECK-S-OBJ-NOALIAS: lui t2, 768956 83# CHECK-S-OBJ-NOALIAS-NEXT: addiw t2, t2, -1093 84# CHECK-S-OBJ-NOALIAS-NEXT: slli.uw t2, t2, 12 85# CHECK-S-OBJ-NOALIAS-NEXT: addi t2, t2, 1911 86# CHECK-S-OBJ: lui t2, 768956 87# CHECK-S-OBJ-NEXT: addiw t2, t2, -1093 88# CHECK-S-OBJ-NEXT: slli.uw t2, t2, 12 89# CHECK-S-OBJ-NEXT: addi t2, t2, 1911 90li x7, 12900936431479 91 92# CHECK-S-OBJ-NOALIAS: lui t1, 768955 93# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, 273 94# CHECK-S-OBJ-NOALIAS-NEXT: slli.uw t1, t1, 12 95# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, 273 96# CHECK-S-OBJ: lui t1, 768955 97# CHECK-S-OBJ-NEXT: addiw t1, t1, 273 98# CHECK-S-OBJ-NEXT: slli.uw t1, t1, 12 99# CHECK-S-OBJ-NEXT: addi t1, t1, 273 100li x6, 12900925247761 101 102# CHECK-S-OBJ-NOALIAS: lui t1, 768955 103# CHECK-S-OBJ-NOALIAS-NEXT: addiw t1, t1, -1365 104# CHECK-S-OBJ-NOALIAS-NEXT: slli.uw t1, t1, 12 105# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, -1366 106# CHECK-S-OBJ: lui t1, 768955 107# CHECK-S-OBJ-NEXT: addiw t1, t1, -1365 108# CHECK-S-OBJ-NEXT: slli.uw t1, t1, 12 109# CHECK-S-OBJ-NEXT: addi t1, t1, -1366 110li x6, 12900918536874 111 112# CHECK-S-OBJ-NOALIAS: lui t1, 349525 113# CHECK-S-OBJ-NOALIAS-NEXT: sh2add t1, t1, t1 114# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, 1 115# CHECK-S-OBJ: lui t1, 349525 116# CHECK-S-OBJ-NEXT: sh2add t1, t1, t1 117# CHECK-S-OBJ-NEXT: addi t1, t1, 1 118li x6, 7158272001 # 0x0000_0001_aaaa_9001 119 120# CHECK-S-OBJ-NOALIAS: lui t1, 349525 121# CHECK-S-OBJ-NOALIAS-NEXT: sh3add t1, t1, t1 122# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, 1 123# CHECK-S-OBJ: lui t1, 349525 124# CHECK-S-OBJ-NEXT: sh3add t1, t1, t1 125# CHECK-S-OBJ-NEXT: addi t1, t1, 1 126li x6, 12884889601 # 0x0000_0002_ffff_d001 127 128# CHECK-S-OBJ-NOALIAS: lui t1, 768955 129# CHECK-S-OBJ-NOALIAS-NEXT: sh1add t1, t1, t1 130# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, 1 131# CHECK-S-OBJ: lui t1, 768955 132# CHECK-S-OBJ-NEXT: sh1add t1, t1, t1 133# CHECK-S-OBJ-NEXT: addi t1, t1, 1 134li x6, -3435982847 # 0xffff_ffff_3333_1001 135 136# CHECK-S-OBJ-NOALIAS: lui t1, 768945 137# CHECK-S-OBJ-NOALIAS-NEXT: sh2add t1, t1, t1 138# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, 1 139# CHECK-S-OBJ: lui t1, 768945 140# CHECK-S-OBJ-NEXT: sh2add t1, t1, t1 141# CHECK-S-OBJ-NEXT: addi t1, t1, 1 142li x6, -5726842879 # 0xffff_fffe_aaa7_5001 143 144# CHECK-S-OBJ-NOALIAS: lui t1, 768955 145# CHECK-S-OBJ-NOALIAS-NEXT: sh3add t1, t1, t1 146# CHECK-S-OBJ-NOALIAS-NEXT: addi t1, t1, 1 147# CHECK-S-OBJ: lui t1, 768955 148# CHECK-S-OBJ-NEXT: sh3add t1, t1, t1 149# CHECK-S-OBJ-NEXT: addi t1, t1, 1 150li x6, -10307948543 # 0xffff_fffd_9999_3001 151