; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=riscv32 -mattr=+d -mattr=+xtheadmemidx -mattr=+m -verify-machineinstrs < %s \
; RUN:   | FileCheck %s -check-prefix=RV32XTHEADMEMIDX
; RUN: llc -mtriple=riscv64 -mattr=+d -mattr=+xtheadmemidx -mattr=+m -verify-machineinstrs < %s \
; RUN:   | FileCheck %s -check-prefix=RV64XTHEADMEMIDX

define ptr @lbia(ptr %base, ptr %addr.2, i8 %a) {
; RV32XTHEADMEMIDX-LABEL: lbia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lbia a3, (a0), -1, 0
; RV32XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV32XTHEADMEMIDX-NEXT:    sb a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lbia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lbia a3, (a0), -1, 0
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sb a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i8, ptr %base, i8 0
  %ld = load i8, ptr %addr
  %addr.1 = getelementptr i8, ptr %base, i8 -1
  %res = add i8 %ld, %a
  store i8 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @lbib(ptr %base, i8 %a) {
; RV32XTHEADMEMIDX-LABEL: lbib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lbib a2, (a0), 1, 0
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    sb a1, 1(a0)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lbib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lbib a2, (a0), 1, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV64XTHEADMEMIDX-NEXT:    sb a1, 1(a0)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i8, ptr %base, i8 1
  %ld = load i8, ptr %addr
  %addr.1 = getelementptr i8, ptr %base, i8 2
  %res = add i8 %ld, %a
  store i8 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @lbuia(ptr %base, ptr %addr.2, i64 %a) {
; RV32XTHEADMEMIDX-LABEL: lbuia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lbuia a4, (a0), -1, 0
; RV32XTHEADMEMIDX-NEXT:    add a2, a4, a2
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a2, a4
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a4
; RV32XTHEADMEMIDX-NEXT:    sw a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    sw a3, 4(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lbuia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lbuia a3, (a0), -1, 0
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sd a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i8, ptr %base, i8 0
  %ld = load i8, ptr %addr
  %zext = zext i8 %ld to i64
  %addr.1 = getelementptr i8, ptr %base, i8 -1
  %res = add i64 %zext, %a
  store i64 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @lbuib(ptr %base, i64 %a, ptr %addr.1) {
; RV32XTHEADMEMIDX-LABEL: lbuib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lbuib a4, (a0), 1, 0
; RV32XTHEADMEMIDX-NEXT:    add a1, a4, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a1, a4
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a4
; RV32XTHEADMEMIDX-NEXT:    sw a1, 0(a3)
; RV32XTHEADMEMIDX-NEXT:    sw a2, 4(a3)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lbuib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lbuib a3, (a0), 1, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a3, a1
; RV64XTHEADMEMIDX-NEXT:    sd a1, 0(a2)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i8, ptr %base, i8 1
  %ld = load i8, ptr %addr
  %zext = zext i8 %ld to i64
  %res = add i64 %zext, %a
  store i64 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @lhia(ptr %base, ptr %addr.2, i16 %a) {
; RV32XTHEADMEMIDX-LABEL: lhia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lhia a3, (a0), -16, 1
; RV32XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV32XTHEADMEMIDX-NEXT:    sh a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lhia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lhia a3, (a0), -16, 1
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sh a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i16, ptr %base, i16 0
  %ld = load i16, ptr %addr
  %addr.1 = getelementptr i16, ptr %base, i16 -16
  %res = add i16 %ld, %a
  store i16 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @lhib(ptr %base, i16 %a) {
; RV32XTHEADMEMIDX-LABEL: lhib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lhib a2, (a0), 2, 0
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    sh a1, 2(a0)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lhib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lhib a2, (a0), 2, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV64XTHEADMEMIDX-NEXT:    sh a1, 2(a0)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i16, ptr %base, i16 1
  %ld = load i16, ptr %addr
  %addr.1 = getelementptr i16, ptr %base, i16 2
  %res = add i16 %ld, %a
  store i16 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @lhuia(ptr %base, ptr %addr.2, i64 %a) {
; RV32XTHEADMEMIDX-LABEL: lhuia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lhuia a4, (a0), -16, 1
; RV32XTHEADMEMIDX-NEXT:    add a2, a4, a2
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a2, a4
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a4
; RV32XTHEADMEMIDX-NEXT:    sw a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    sw a3, 4(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lhuia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lhuia a3, (a0), -16, 1
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sd a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i16, ptr %base, i16 0
  %ld = load i16, ptr %addr
  %zext = zext i16 %ld to i64
  %addr.1 = getelementptr i16, ptr %base, i16 -16
  %res = add i64 %zext, %a
  store i64 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @lhuib(ptr %base, i64 %a, ptr %addr.1) {
; RV32XTHEADMEMIDX-LABEL: lhuib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lhuib a4, (a0), 2, 0
; RV32XTHEADMEMIDX-NEXT:    add a1, a4, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a1, a4
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a4
; RV32XTHEADMEMIDX-NEXT:    sw a1, 0(a3)
; RV32XTHEADMEMIDX-NEXT:    sw a2, 4(a3)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lhuib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lhuib a3, (a0), 2, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a3, a1
; RV64XTHEADMEMIDX-NEXT:    sd a1, 0(a2)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i16, ptr %base, i16 1
  %ld = load i16, ptr %addr
  %zext = zext i16 %ld to i64
  %res = add i64 %zext, %a
  store i64 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @lwia(ptr %base, ptr %addr.2, i32 %a) {
; RV32XTHEADMEMIDX-LABEL: lwia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lwia a3, (a0), -16, 2
; RV32XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV32XTHEADMEMIDX-NEXT:    sw a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lwia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lwia a3, (a0), -16, 2
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sw a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i32, ptr %base, i32 0
  %ld = load i32, ptr %addr
  %addr.1 = getelementptr i32, ptr %base, i32 -16
  %res = add i32 %ld, %a
  store i32 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @lwib(ptr %base, i32 %a) {
; RV32XTHEADMEMIDX-LABEL: lwib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lwib a2, (a0), 4, 0
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    sw a1, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lwib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lwib a2, (a0), 4, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV64XTHEADMEMIDX-NEXT:    sw a1, 4(a0)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i32, ptr %base, i32 1
  %ld = load i32, ptr %addr
  %addr.1 = getelementptr i32, ptr %base, i32 2
  %res = add i32 %ld, %a
  store i32 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @lwuia(ptr %base, ptr %addr.2, i64 %a) {
; RV32XTHEADMEMIDX-LABEL: lwuia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lwia a4, (a0), -16, 2
; RV32XTHEADMEMIDX-NEXT:    add a2, a4, a2
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a2, a4
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a4
; RV32XTHEADMEMIDX-NEXT:    sw a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    sw a3, 4(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lwuia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lwuia a3, (a0), -16, 2
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sd a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i32, ptr %base, i32 0
  %ld = load i32, ptr %addr
  %zext = zext i32 %ld to i64
  %addr.1 = getelementptr i32, ptr %base, i32 -16
  %res = add i64 %zext, %a
  store i64 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @lwuib(ptr %base, i64 %a, ptr %addr.1) {
; RV32XTHEADMEMIDX-LABEL: lwuib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lwib a4, (a0), 4, 0
; RV32XTHEADMEMIDX-NEXT:    add a1, a4, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a1, a4
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a4
; RV32XTHEADMEMIDX-NEXT:    sw a1, 0(a3)
; RV32XTHEADMEMIDX-NEXT:    sw a2, 4(a3)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lwuib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lwuib a3, (a0), 4, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a3, a1
; RV64XTHEADMEMIDX-NEXT:    sd a1, 0(a2)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i32, ptr %base, i32 1
  %ld = load i32, ptr %addr
  %zext = zext i32 %ld to i64
  %res = add i64 %zext, %a
  store i64 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @ldia(ptr %base, ptr %addr.2, i64 %a) {
; RV32XTHEADMEMIDX-LABEL: ldia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    lw a4, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    lw a5, 0(a0)
; RV32XTHEADMEMIDX-NEXT:    addi a0, a0, -128
; RV32XTHEADMEMIDX-NEXT:    add a3, a4, a3
; RV32XTHEADMEMIDX-NEXT:    add a2, a5, a2
; RV32XTHEADMEMIDX-NEXT:    sltu a4, a2, a5
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a4
; RV32XTHEADMEMIDX-NEXT:    sw a2, 0(a1)
; RV32XTHEADMEMIDX-NEXT:    sw a3, 4(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: ldia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.ldia a3, (a0), -16, 3
; RV64XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV64XTHEADMEMIDX-NEXT:    sd a2, 0(a1)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i64, ptr %base, i64 0
  %ld = load i64, ptr %addr
  %addr.1 = getelementptr i64, ptr %base, i64 -16
  %res = add i64 %ld, %a
  store i64 %res, ptr %addr.2
  ret ptr %addr.1
}

define ptr @ldib(ptr %base, i64 %a) {
; RV32XTHEADMEMIDX-LABEL: ldib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lwib a3, (a0), 8, 0
; RV32XTHEADMEMIDX-NEXT:    lw a4, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    add a1, a3, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a3, a1, a3
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a3
; RV32XTHEADMEMIDX-NEXT:    add a2, a4, a2
; RV32XTHEADMEMIDX-NEXT:    sw a1, 8(a0)
; RV32XTHEADMEMIDX-NEXT:    sw a2, 12(a0)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: ldib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.ldib a2, (a0), 8, 0
; RV64XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV64XTHEADMEMIDX-NEXT:    sd a1, 8(a0)
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr = getelementptr i64, ptr %base, i64 1
  %ld = load i64, ptr %addr
  %addr.1 = getelementptr i64, ptr %base, i64 2
  %res = add i64 %ld, %a
  store i64 %res, ptr %addr.1
  ret ptr %addr
}

define ptr @sbia(ptr %base, i8 %a, i8 %b) {
; RV32XTHEADMEMIDX-LABEL: sbia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.sbia a1, (a0), 1, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: sbia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.sbia a1, (a0), 1, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i8, ptr %base, i8 1
  %res = add i8 %a, %b
  store i8 %res, ptr %base
  ret ptr %addr.1
}

define ptr @sbib(ptr %base, i8 %a, i8 %b) {
; RV32XTHEADMEMIDX-LABEL: sbib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.sbib a1, (a0), 1, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: sbib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.sbib a1, (a0), 1, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i8, ptr %base, i8 1
  %res = add i8 %a, %b
  store i8 %res, ptr %addr.1
  ret ptr %addr.1
}

define ptr @shia(ptr %base, i16 %a, i16 %b) {
; RV32XTHEADMEMIDX-LABEL: shia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.shia a1, (a0), -9, 1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: shia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.shia a1, (a0), -9, 1
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i16, ptr %base, i16 -9
  %res = add i16 %a, %b
  store i16 %res, ptr %base
  ret ptr %addr.1
}

define ptr @shib(ptr %base, i16 %a, i16 %b) {
; RV32XTHEADMEMIDX-LABEL: shib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.shib a1, (a0), 2, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: shib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.shib a1, (a0), 2, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i16, ptr %base, i16 1
  %res = add i16 %a, %b
  store i16 %res, ptr %addr.1
  ret ptr %addr.1
}

define ptr @swia(ptr %base, i32 %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: swia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.swia a1, (a0), 8, 2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: swia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.swia a1, (a0), 8, 2
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i32, ptr %base, i32 8
  %res = add i32 %a, %b
  store i32 %res, ptr %base
  ret ptr %addr.1
}

define ptr @swib(ptr %base, i32 %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: swib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.swib a1, (a0), -13, 3
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: swib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.swib a1, (a0), -13, 3
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i32, ptr %base, i32 -26
  %res = add i32 %a, %b
  store i32 %res, ptr %addr.1
  ret ptr %addr.1
}

define ptr @sdia(ptr %base, i64 %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: sdia:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    addi a5, a0, 64
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a4
; RV32XTHEADMEMIDX-NEXT:    add a3, a1, a3
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a3, a1
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    sw a3, 0(a0)
; RV32XTHEADMEMIDX-NEXT:    sw a1, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    mv a0, a5
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: sdia:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.sdia a1, (a0), 8, 3
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i64, ptr %base, i64 8
  %res = add i64 %a, %b
  store i64 %res, ptr %base
  ret ptr %addr.1
}

define ptr @sdib(ptr %base, i64 %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: sdib:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a4
; RV32XTHEADMEMIDX-NEXT:    add a3, a1, a3
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a3, a1
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    th.swib a3, (a0), 8, 0
; RV32XTHEADMEMIDX-NEXT:    sw a1, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: sdib:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.sdib a1, (a0), 8, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i64, ptr %base, i64 1
  %res = add i64 %a, %b
  store i64 %res, ptr %addr.1
  ret ptr %addr.1
}

define i8 @lrb_anyext(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrb_anyext:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrb a0, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrb_anyext:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrb a0, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i8, ptr %a, i64 %b
  %2 = load i8, ptr %1, align 1
  ret i8 %2
}

define i64 @lrb(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrb:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrb a1, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    srai a2, a1, 31
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrb:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrb a0, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i8, ptr %a, i64 %b
  %2 = load i8, ptr %1, align 1
  %3 = sext i8 %2 to i64
  %4 = add i64 %3, %3
  ret i64 %4
}

define i8 @lurb_anyext(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurb_anyext:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrb a0, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurb_anyext:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurb a0, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i8, ptr %a, i64 %1
  %3 = load i8, ptr %2, align 1
  ret i8 %3
}

define i64 @lurb(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurb:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrb a1, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    srai a2, a1, 31
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurb:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurb a0, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i8, ptr %a, i64 %1
  %3 = load i8, ptr %2, align 1
  %4 = sext i8 %3 to i64
  %5 = add i64 %4, %4
  ret i64 %5
}

define i64 @lrbu(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrbu:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrbu a1, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrbu:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrbu a0, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i8, ptr %a, i64 %b
  %2 = load i8, ptr %1, align 1
  %3 = zext i8 %2 to i64
  %4 = add i64 %3, %3
  ret i64 %4
}

define i64 @lurbu(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurbu:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrbu a1, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurbu:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurbu a0, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i8, ptr %a, i64 %1
  %3 = load i8, ptr %2, align 1
  %4 = zext i8 %3 to i64
  %5 = add i64 %4, %4
  ret i64 %5
}

define i16 @lrh_anyext(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrh_anyext:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrh a0, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrh_anyext:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrh a0, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i16, ptr %a, i64 %b
  %2 = load i16, ptr %1, align 2
  ret i16 %2
}

define i64 @lrh(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrh:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrh a1, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    srai a2, a1, 31
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrh:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrh a0, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i16, ptr %a, i64 %b
  %2 = load i16, ptr %1, align 2
  %3 = sext i16 %2 to i64
  %4 = add i64 %3, %3
  ret i64 %4
}

define i16 @lurh_anyext(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurh_anyext:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrh a0, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurh_anyext:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurh a0, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i16, ptr %a, i64 %1
  %3 = load i16, ptr %2, align 2
  ret i16 %3
}

define i64 @lurh(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurh:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrh a1, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    srai a2, a1, 31
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurh:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurh a0, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i16, ptr %a, i64 %1
  %3 = load i16, ptr %2, align 2
  %4 = sext i16 %3 to i64
  %5 = add i64 %4, %4
  ret i64 %5
}

define i64 @lrhu(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrhu:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrhu a1, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrhu:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrhu a0, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i16, ptr %a, i64 %b
  %2 = load i16, ptr %1, align 2
  %3 = zext i16 %2 to i64
  %4 = add i64 %3, %3
  ret i64 %4
}

define i64 @lurhu(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurhu:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrhu a1, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurhu:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurhu a0, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i16, ptr %a, i64 %1
  %3 = load i16, ptr %2, align 2
  %4 = zext i16 %3 to i64
  %5 = add i64 %4, %4
  ret i64 %5
}

define i32 @lrw_anyext(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrw_anyext:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrw a0, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrw_anyext:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrw a0, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i32, ptr %a, i64 %b
  %2 = load i32, ptr %1, align 4
  ret i32 %2
}

define i64 @lrw(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrw:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    srai a2, a1, 31
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrw:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrw a0, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i32, ptr %a, i64 %b
  %2 = load i32, ptr %1, align 4
  %3 = sext i32 %2 to i64
  %4 = add i64 %3, %3
  ret i64 %4
}

define i32 @lurw_anyext(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurw_anyext:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrw a0, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurw_anyext:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurw a0, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i32, ptr %a, i64 %1
  %3 = load i32, ptr %2, align 4
  ret i32 %3
}

define i64 @lurw(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurw:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    srai a2, a1, 31
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurw:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurw a0, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i32, ptr %a, i64 %1
  %3 = load i32, ptr %2, align 4
  %4 = sext i32 %3 to i64
  %5 = add i64 %4, %4
  ret i64 %5
}

define i64 @lrwu(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrwu:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrwu:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrwu a0, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i32, ptr %a, i64 %b
  %2 = load i32, ptr %1, align 4
  %3 = zext i32 %2 to i64
  %4 = add i64 %3, %3
  ret i64 %4
}

define i64 @lurwu(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurwu:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurwu:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurwu a0, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i32, ptr %a, i64 %1
  %3 = load i32, ptr %2, align 4
  %4 = zext i32 %3 to i64
  %5 = add i64 %4, %4
  ret i64 %5
}

define i64 @lrd(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrd:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    slli a2, a1, 3
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 3
; RV32XTHEADMEMIDX-NEXT:    add a0, a0, a2
; RV32XTHEADMEMIDX-NEXT:    lw a2, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrd:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lrd a0, a0, a1, 3
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = getelementptr i64, ptr %a, i64 %b
  %2 = load i64, ptr %1, align 8
  %3 = add i64 %2, %2
  ret i64 %3
}

define i64 @lrd_2(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrd_2:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    addi a2, a0, 96
; RV32XTHEADMEMIDX-NEXT:    th.lrw a2, a2, a1, 3
; RV32XTHEADMEMIDX-NEXT:    addi a0, a0, 100
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 3
; RV32XTHEADMEMIDX-NEXT:    add a0, a2, a2
; RV32XTHEADMEMIDX-NEXT:    sltu a2, a0, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a1
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrd_2:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    addi a0, a0, 96
; RV64XTHEADMEMIDX-NEXT:    th.lrd a0, a0, a1, 3
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i64 %b, 12
  %2 = getelementptr i64, ptr %a, i64 %1
  %3 = load i64, ptr %2, align 8
  %4 = add i64 %3, %3
  ret i64 %4
}

define i64 @lurd(ptr %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: lurd:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    slli a2, a1, 3
; RV32XTHEADMEMIDX-NEXT:    th.lrw a1, a0, a1, 3
; RV32XTHEADMEMIDX-NEXT:    add a0, a0, a2
; RV32XTHEADMEMIDX-NEXT:    lw a2, 4(a0)
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a1
; RV32XTHEADMEMIDX-NEXT:    sltu a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a1, a2, a1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lurd:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    th.lurd a0, a0, a1, 3
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = getelementptr i64, ptr %a, i64 %1
  %3 = load i64, ptr %2, align 8
  %4 = add i64 %3, %3
  ret i64 %4
}

define void @srb(ptr %a, i64 %b, i8 %c) {
; RV32XTHEADMEMIDX-LABEL: srb:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a3
; RV32XTHEADMEMIDX-NEXT:    th.srb a3, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: srb:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.srb a2, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i8 %c, %c
  %2 = getelementptr i8, ptr %a, i64 %b
  store i8 %1, ptr %2, align 1
  ret void
}

define void @surb(ptr %a, i32 %b, i8 %c) {
; RV32XTHEADMEMIDX-LABEL: surb:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    th.srb a2, a0, a1, 0
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: surb:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.surb a2, a0, a1, 0
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = add i8 %c, %c
  %3 = getelementptr i8, ptr %a, i64 %1
  store i8 %2, ptr %3, align 1
  ret void
}

define void @srh(ptr %a, i64 %b, i16 %c) {
; RV32XTHEADMEMIDX-LABEL: srh:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a3
; RV32XTHEADMEMIDX-NEXT:    th.srh a3, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: srh:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.srh a2, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i16 %c, %c
  %2 = getelementptr i16, ptr %a, i64 %b
  store i16 %1, ptr %2, align 2
  ret void
}

define void @surh(ptr %a, i32 %b, i16 %c) {
; RV32XTHEADMEMIDX-LABEL: surh:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    th.srh a2, a0, a1, 1
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: surh:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.surh a2, a0, a1, 1
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = add i16 %c, %c
  %3 = getelementptr i16, ptr %a, i64 %1
  store i16 %2, ptr %3, align 2
  ret void
}

define void @srw(ptr %a, i64 %b, i32 %c) {
; RV32XTHEADMEMIDX-LABEL: srw:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a3
; RV32XTHEADMEMIDX-NEXT:    th.srw a3, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: srw:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.srw a2, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i32 %c, %c
  %2 = getelementptr i32, ptr %a, i64 %b
  store i32 %1, ptr %2, align 4
  ret void
}

define void @surw(ptr %a, i32 %b, i32 %c) {
; RV32XTHEADMEMIDX-LABEL: surw:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV32XTHEADMEMIDX-NEXT:    th.srw a2, a0, a1, 2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: surw:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.surw a2, a0, a1, 2
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = add i32 %c, %c
  %3 = getelementptr i32, ptr %a, i64 %1
  store i32 %2, ptr %3, align 4
  ret void
}

define void @srd(ptr %a, i64 %b, i64 %c) {
; RV32XTHEADMEMIDX-LABEL: srd:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a2, a3, a3
; RV32XTHEADMEMIDX-NEXT:    add a4, a4, a4
; RV32XTHEADMEMIDX-NEXT:    sltu a3, a2, a3
; RV32XTHEADMEMIDX-NEXT:    add a3, a4, a3
; RV32XTHEADMEMIDX-NEXT:    slli a4, a1, 3
; RV32XTHEADMEMIDX-NEXT:    add a4, a0, a4
; RV32XTHEADMEMIDX-NEXT:    th.srw a2, a0, a1, 3
; RV32XTHEADMEMIDX-NEXT:    sw a3, 4(a4)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: srd:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.srd a2, a0, a1, 3
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i64 %c, %c
  %2 = getelementptr i64, ptr %a, i64 %b
  store i64 %1, ptr %2, align 8
  ret void
}

define void @surd(ptr %a, i32 %b, i64 %c) {
; RV32XTHEADMEMIDX-LABEL: surd:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a4, a2, a2
; RV32XTHEADMEMIDX-NEXT:    add a3, a3, a3
; RV32XTHEADMEMIDX-NEXT:    sltu a2, a4, a2
; RV32XTHEADMEMIDX-NEXT:    add a2, a3, a2
; RV32XTHEADMEMIDX-NEXT:    slli a3, a1, 3
; RV32XTHEADMEMIDX-NEXT:    add a3, a0, a3
; RV32XTHEADMEMIDX-NEXT:    th.srw a4, a0, a1, 3
; RV32XTHEADMEMIDX-NEXT:    sw a2, 4(a3)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: surd:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a2, a2, a2
; RV64XTHEADMEMIDX-NEXT:    th.surd a2, a0, a1, 3
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = zext i32 %b to i64
  %2 = add i64 %c, %c
  %3 = getelementptr i64, ptr %a, i64 %1
  store i64 %2, ptr %3, align 8
  ret void
}

define ptr @test_simm5(ptr %base, i32 %a, i32 %b) {
; RV32XTHEADMEMIDX-LABEL: test_simm5:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV32XTHEADMEMIDX-NEXT:    th.swia a1, (a0), -12, 2
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: test_simm5:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    add a1, a1, a2
; RV64XTHEADMEMIDX-NEXT:    th.swia a1, (a0), -12, 2
; RV64XTHEADMEMIDX-NEXT:    ret
  %addr.1 = getelementptr i32, ptr %base, i32 -12
  %res = add i32 %a, %b
  store i32 %res, ptr %base
  ret ptr %addr.1
}

define i64 @lrd_large_shift(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrd_large_shift:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    slli a1, a1, 5
; RV32XTHEADMEMIDX-NEXT:    add a1, a1, a0
; RV32XTHEADMEMIDX-NEXT:    lw a0, 384(a1)
; RV32XTHEADMEMIDX-NEXT:    lw a1, 388(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrd_large_shift:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    slli a1, a1, 5
; RV64XTHEADMEMIDX-NEXT:    add a0, a1, a0
; RV64XTHEADMEMIDX-NEXT:    ld a0, 384(a0)
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i64 %b, 12
  %2 = shl i64 %1, 2
  %3 = getelementptr i64, ptr %a, i64 %2
  %4 = load i64, ptr %3, align 8
  ret i64 %4
}

define i64 @lrd_large_offset(ptr %a, i64 %b) {
; RV32XTHEADMEMIDX-LABEL: lrd_large_offset:
; RV32XTHEADMEMIDX:       # %bb.0:
; RV32XTHEADMEMIDX-NEXT:    slli a1, a1, 3
; RV32XTHEADMEMIDX-NEXT:    add a0, a1, a0
; RV32XTHEADMEMIDX-NEXT:    lui a1, 23
; RV32XTHEADMEMIDX-NEXT:    add a1, a0, a1
; RV32XTHEADMEMIDX-NEXT:    lw a0, 1792(a1)
; RV32XTHEADMEMIDX-NEXT:    lw a1, 1796(a1)
; RV32XTHEADMEMIDX-NEXT:    ret
;
; RV64XTHEADMEMIDX-LABEL: lrd_large_offset:
; RV64XTHEADMEMIDX:       # %bb.0:
; RV64XTHEADMEMIDX-NEXT:    slli a1, a1, 3
; RV64XTHEADMEMIDX-NEXT:    add a0, a1, a0
; RV64XTHEADMEMIDX-NEXT:    lui a1, 23
; RV64XTHEADMEMIDX-NEXT:    add a0, a0, a1
; RV64XTHEADMEMIDX-NEXT:    ld a0, 1792(a0)
; RV64XTHEADMEMIDX-NEXT:    ret
  %1 = add i64 %b, 12000
  %2 = getelementptr i64, ptr %a, i64 %1
  %3 = load i64, ptr %2, align 8
  ret i64 %3
}
