; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -aarch64-enable-subreg-liveness-tracking -mtriple=arm64-eabi < %s | FileCheck %s
; rdar://10232252

@object = external hidden global i64, section "__DATA, __objc_ivar", align 8

; base + offset (imm9)
define void @t1(ptr %object) {
; CHECK-LABEL: t1:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ldr xzr, [x0, #8]
; CHECK-NEXT:    ret
  %incdec.ptr = getelementptr inbounds i64, ptr %object, i64 1
  %tmp = load volatile i64, ptr %incdec.ptr, align 8
  ret void
}

; base + offset (> imm9)
define void @t2(ptr %object) {
; CHECK-LABEL: t2:
; CHECK:       // %bb.0:
; CHECK-NEXT:    sub x8, x0, #264
; CHECK-NEXT:    ldr xzr, [x8]
; CHECK-NEXT:    ret
  %incdec.ptr = getelementptr inbounds i64, ptr %object, i64 -33
  %tmp = load volatile i64, ptr %incdec.ptr, align 8
  ret void
}

; base + unsigned offset (> imm9 and <= imm12 * size of type in bytes)
define void @t3(ptr %object) {
; CHECK-LABEL: t3:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ldr xzr, [x0, #32760]
; CHECK-NEXT:    ret
  %incdec.ptr = getelementptr inbounds i64, ptr %object, i64 4095
  %tmp = load volatile i64, ptr %incdec.ptr, align 8
  ret void
}

; base + unsigned offset (> imm12 * size of type in bytes)
define void @t4(ptr %object) {
; CHECK-LABEL: t4:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov w8, #32768 // =0x8000
; CHECK-NEXT:    ldr xzr, [x0, x8]
; CHECK-NEXT:    ret
  %incdec.ptr = getelementptr inbounds i64, ptr %object, i64 4096
  %tmp = load volatile i64, ptr %incdec.ptr, align 8
  ret void
}

; base + reg
define void @t5(i64 %a) {
; CHECK-LABEL: t5:
; CHECK:       // %bb.0:
; CHECK-NEXT:    adrp x8, object
; CHECK-NEXT:    add x8, x8, :lo12:object
; CHECK-NEXT:    ldr xzr, [x8, x0, lsl #3]
; CHECK-NEXT:    ret
  %incdec.ptr = getelementptr inbounds i64, ptr @object, i64 %a
  %tmp = load volatile i64, ptr %incdec.ptr, align 8
  ret void
}

; base + reg + imm
define void @t6(i64 %a, ptr %object) {
; CHECK-LABEL: t6:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x1, x0, lsl #3
; CHECK-NEXT:    mov w9, #32768 // =0x8000
; CHECK-NEXT:    ldr xzr, [x8, x9]
; CHECK-NEXT:    ret
  %tmp1 = getelementptr inbounds i64, ptr %object, i64 %a
  %incdec.ptr = getelementptr inbounds i64, ptr %tmp1, i64 4096
  %tmp = load volatile i64, ptr %incdec.ptr, align 8
  ret void
}

; Test base + wide immediate
define void @t7(i64 %a) {
; CHECK-LABEL: t7:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov w8, #65535 // =0xffff
; CHECK-NEXT:    ldr xzr, [x0, x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, 65535   ;0xffff
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t8(i64 %a) {
; CHECK-LABEL: t8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov x8, #-4662 // =0xffffffffffffedca
; CHECK-NEXT:    ldr xzr, [x0, x8]
; CHECK-NEXT:    ret
  %1 = sub i64 %a, 4662   ;-4662 is 0xffffffffffffedca
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t9(i64 %a) {
; CHECK-LABEL: t9:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov x8, #-305463297 // =0xffffffffedcaffff
; CHECK-NEXT:    ldr xzr, [x0, x8]
; CHECK-NEXT:    ret
  %1 = add i64 -305463297, %a   ;-305463297 is 0xffffffffedcaffff
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t10(i64 %a) {
; CHECK-LABEL: t10:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov x8, #81909218222800896 // =0x123000000000000
; CHECK-NEXT:    ldr xzr, [x0, x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, 81909218222800896   ;0x123000000000000
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t11(i64 %a) {
; CHECK-LABEL: t11:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov w8, #17767 // =0x4567
; CHECK-NEXT:    movk w8, #291, lsl #16
; CHECK-NEXT:    ldr xzr, [x0, x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, 19088743   ;0x1234567
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

; Test some boundaries that should not use movz/movn/orr
define void @t12(i64 %a) {
; CHECK-LABEL: t12:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #4095
; CHECK-NEXT:    ldr xzr, [x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, 4095   ;0xfff
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t13(i64 %a) {
; CHECK-LABEL: t13:
; CHECK:       // %bb.0:
; CHECK-NEXT:    sub x8, x0, #4095
; CHECK-NEXT:    ldr xzr, [x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, -4095   ;-0xfff
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t14(i64 %a) {
; CHECK-LABEL: t14:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #291, lsl #12 // =1191936
; CHECK-NEXT:    ldr xzr, [x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, 1191936   ;0x123000
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t15(i64 %a) {
; CHECK-LABEL: t15:
; CHECK:       // %bb.0:
; CHECK-NEXT:    sub x8, x0, #291, lsl #12 // =1191936
; CHECK-NEXT:    ldr xzr, [x8]
; CHECK-NEXT:    ret
  %1 = add i64 %a, -1191936   ;0xFFFFFFFFFFEDD000
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t16(i64 %a) {
; CHECK-LABEL: t16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ldr xzr, [x0, #28672]
; CHECK-NEXT:    ret
  %1 = add i64 %a, 28672   ;0x7000
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

define void @t17(i64 %a) {
; CHECK-LABEL: t17:
; CHECK:       // %bb.0:
; CHECK-NEXT:    ldur xzr, [x0, #-256]
; CHECK-NEXT:    ret
  %1 = add i64 %a, -256   ;-0x100
  %2 = inttoptr i64 %1 to ptr
  %3 = load volatile i64, ptr %2, align 8
  ret void
}

; LDRBBroX
define i8 @LdOffset_i8(ptr %a)  {
; CHECK-LABEL: LdOffset_i8:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #253, lsl #12 // =1036288
; CHECK-NEXT:    ldrb w0, [x8, #3704]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039992
  %val = load i8, ptr %arrayidx, align 1
  ret i8 %val
}

; LDRBBroX
define i32 @LdOffset_i8_zext32(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_zext32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #253, lsl #12 // =1036288
; CHECK-NEXT:    ldrb w0, [x8, #3704]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039992
  %val = load i8, ptr %arrayidx, align 1
  %conv = zext i8 %val to i32
  ret i32 %conv
}

; LDRSBWroX
define i32 @LdOffset_i8_sext32(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_sext32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #253, lsl #12 // =1036288
; CHECK-NEXT:    ldrsb w0, [x8, #3704]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039992
  %val = load i8, ptr %arrayidx, align 1
  %conv = sext i8 %val to i32
  ret i32 %conv
}

; LDRBBroX
define i64 @LdOffset_i8_zext64(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_zext64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #253, lsl #12 // =1036288
; CHECK-NEXT:    ldrb w0, [x8, #3704]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039992
  %val = load i8, ptr %arrayidx, align 1
  %conv = zext i8 %val to i64
  ret i64 %conv
}

; LDRSBXroX
define i64 @LdOffset_i8_sext64(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_sext64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #253, lsl #12 // =1036288
; CHECK-NEXT:    ldrsb x0, [x8, #3704]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039992
  %val = load i8, ptr %arrayidx, align 1
  %conv = sext i8 %val to i64
  ret i64 %conv
}

; LDRHHroX
define i16 @LdOffset_i16(ptr %a)  {
; CHECK-LABEL: LdOffset_i16:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #506, lsl #12 // =2072576
; CHECK-NEXT:    ldrh w0, [x8, #7408]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i16, ptr %a, i64 1039992
  %val = load i16, ptr %arrayidx, align 2
  ret i16 %val
}

; LDRHHroX
define i32 @LdOffset_i16_zext32(ptr %a)  {
; CHECK-LABEL: LdOffset_i16_zext32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #506, lsl #12 // =2072576
; CHECK-NEXT:    ldrh w0, [x8, #7408]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i16, ptr %a, i64 1039992
  %val = load i16, ptr %arrayidx, align 2
  %conv = zext i16 %val to i32
  ret i32 %conv
}

; LDRSHWroX
define i32 @LdOffset_i16_sext32(ptr %a)  {
; CHECK-LABEL: LdOffset_i16_sext32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #506, lsl #12 // =2072576
; CHECK-NEXT:    ldrsh w0, [x8, #7408]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i16, ptr %a, i64 1039992
  %val = load i16, ptr %arrayidx, align 2
  %conv = sext i16 %val to i32
  ret i32 %conv
}

; LDRHHroX
define i64 @LdOffset_i16_zext64(ptr %a)  {
; CHECK-LABEL: LdOffset_i16_zext64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #506, lsl #12 // =2072576
; CHECK-NEXT:    ldrh w0, [x8, #7408]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i16, ptr %a, i64 1039992
  %val = load i16, ptr %arrayidx, align 2
  %conv = zext i16 %val to i64
  ret i64 %conv
}

; LDRSHXroX
define i64 @LdOffset_i16_sext64(ptr %a)  {
; CHECK-LABEL: LdOffset_i16_sext64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #506, lsl #12 // =2072576
; CHECK-NEXT:    ldrsh x0, [x8, #7408]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i16, ptr %a, i64 1039992
  %val = load i16, ptr %arrayidx, align 2
  %conv = sext i16 %val to i64
  ret i64 %conv
}

; LDRWroX
define i32 @LdOffset_i32(ptr %a)  {
; CHECK-LABEL: LdOffset_i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #1012, lsl #12 // =4145152
; CHECK-NEXT:    ldr w0, [x8, #14816]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i32, ptr %a, i64 1039992
  %val = load i32, ptr %arrayidx, align 4
  ret i32 %val
}

; LDRWroX
define i64 @LdOffset_i32_zext64(ptr %a)  {
; CHECK-LABEL: LdOffset_i32_zext64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #1012, lsl #12 // =4145152
; CHECK-NEXT:    ldr w0, [x8, #14816]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i32, ptr %a, i64 1039992
  %val = load i32, ptr %arrayidx, align 2
  %conv = zext i32 %val to i64
  ret i64 %conv
}

; LDRSWroX
define i64 @LdOffset_i32_sext64(ptr %a)  {
; CHECK-LABEL: LdOffset_i32_sext64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #1012, lsl #12 // =4145152
; CHECK-NEXT:    ldrsw x0, [x8, #14816]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i32, ptr %a, i64 1039992
  %val = load i32, ptr %arrayidx, align 2
  %conv = sext i32 %val to i64
  ret i64 %conv
}

; LDRXroX
define i64 @LdOffset_i64(ptr %a)  {
; CHECK-LABEL: LdOffset_i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #2024, lsl #12 // =8290304
; CHECK-NEXT:    ldr x0, [x8, #29632]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i64, ptr %a, i64 1039992
  %val = load i64, ptr %arrayidx, align 4
  ret i64 %val
}

; LDRDroX
define <2 x i32> @LdOffset_v2i32(ptr %a)  {
; CHECK-LABEL: LdOffset_v2i32:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #2024, lsl #12 // =8290304
; CHECK-NEXT:    ldr d0, [x8, #29632]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds <2 x i32>, ptr %a, i64 1039992
  %val = load <2 x i32>, ptr %arrayidx, align 4
  ret <2 x i32> %val
}

; LDRQroX
define <2 x i64> @LdOffset_v2i64(ptr %a)  {
; CHECK-LABEL: LdOffset_v2i64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #4048, lsl #12 // =16580608
; CHECK-NEXT:    ldr q0, [x8, #59264]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds <2 x i64>, ptr %a, i64 1039992
  %val = load <2 x i64>, ptr %arrayidx, align 4
  ret <2 x i64> %val
}

; LDRSBWroX
define double @LdOffset_i8_f64(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_f64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #253, lsl #12 // =1036288
; CHECK-NEXT:    ldrsb w8, [x8, #3704]
; CHECK-NEXT:    scvtf d0, w8
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039992
  %val = load i8, ptr %arrayidx, align 1
  %conv = sitofp i8 %val to double
  ret double %conv
}

; LDRSHWroX
define double @LdOffset_i16_f64(ptr %a)  {
; CHECK-LABEL: LdOffset_i16_f64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #506, lsl #12 // =2072576
; CHECK-NEXT:    ldrsh w8, [x8, #7408]
; CHECK-NEXT:    scvtf d0, w8
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i16, ptr %a, i64 1039992
  %val = load i16, ptr %arrayidx, align 2
  %conv = sitofp i16 %val to double
  ret double %conv
}

; LDRSroX
define double @LdOffset_i32_f64(ptr %a)  {
; CHECK-LABEL: LdOffset_i32_f64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #1012, lsl #12 // =4145152
; CHECK-NEXT:    ldr s0, [x8, #14816]
; CHECK-NEXT:    ucvtf d0, d0
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i32, ptr %a, i64 1039992
  %val = load i32, ptr %arrayidx, align 4
  %conv = uitofp i32 %val to double
  ret double %conv
}

; LDRDroX
define double @LdOffset_i64_f64(ptr %a)  {
; CHECK-LABEL: LdOffset_i64_f64:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #2024, lsl #12 // =8290304
; CHECK-NEXT:    ldr d0, [x8, #29632]
; CHECK-NEXT:    scvtf d0, d0
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i64, ptr %a, i64 1039992
  %val = load i64, ptr %arrayidx, align 8
  %conv = sitofp i64 %val to double
  ret double %conv
}

define i64 @LdOffset_i64_multi_offset(ptr %a) {
; CHECK-LABEL: LdOffset_i64_multi_offset:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #2031, lsl #12 // =8318976
; CHECK-NEXT:    ldr x9, [x8, #960]
; CHECK-NEXT:    ldr x8, [x8, #3016]
; CHECK-NEXT:    add x0, x8, x9
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i64, ptr %a, i64 1039992
  %val0 = load i64, ptr %arrayidx, align 8
  %arrayidx1 = getelementptr inbounds i64, ptr %a, i64 1040249
  %val1 = load i64, ptr %arrayidx1, align 8
  %add = add nsw i64 %val1, %val0
  ret i64 %add
}

define i64 @LdOffset_i64_multi_offset_with_commmon_base(ptr %a) {
; CHECK-LABEL: LdOffset_i64_multi_offset_with_commmon_base:
; CHECK:       // %bb.0:
; CHECK-NEXT:    add x8, x0, #507, lsl #12 // =2076672
; CHECK-NEXT:    ldr x9, [x8, #26464]
; CHECK-NEXT:    ldr x8, [x8, #26496]
; CHECK-NEXT:    add x0, x8, x9
; CHECK-NEXT:    ret
  %b = getelementptr inbounds i16, ptr %a, i64 1038336
  %arrayidx = getelementptr inbounds i64, ptr %b, i64 3308
  %val0 = load i64, ptr %arrayidx, align 8
  %arrayidx1 = getelementptr inbounds i64, ptr %b, i64 3312
  %val1 = load i64, ptr %arrayidx1, align 8
  %add = add nsw i64 %val1, %val0
  ret i64 %add
}

; Negative test: the offset is odd
define i32 @LdOffset_i16_odd_offset(ptr nocapture noundef readonly %a)  {
; CHECK-LABEL: LdOffset_i16_odd_offset:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov w8, #56953 // =0xde79
; CHECK-NEXT:    movk w8, #15, lsl #16
; CHECK-NEXT:    ldrsh w0, [x0, x8]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 1039993
  %val = load i16, ptr %arrayidx, align 2
  %conv = sext i16 %val to i32
  ret i32 %conv
}

; Already encoded with a single mov MOVNWi
define i8 @LdOffset_i8_movnwi(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_movnwi:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov w8, #16777215 // =0xffffff
; CHECK-NEXT:    ldrb w0, [x0, x8]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 16777215
  %val = load i8, ptr %arrayidx, align 1
  ret i8 %val
}

; Negative test: the offset is too large to encoded with a add
define i8 @LdOffset_i8_too_large(ptr %a)  {
; CHECK-LABEL: LdOffset_i8_too_large:
; CHECK:       // %bb.0:
; CHECK-NEXT:    mov w8, #1 // =0x1
; CHECK-NEXT:    movk w8, #256, lsl #16
; CHECK-NEXT:    ldrb w0, [x0, x8]
; CHECK-NEXT:    ret
  %arrayidx = getelementptr inbounds i8, ptr %a, i64 16777217
  %val = load i8, ptr %arrayidx, align 1
  ret i8 %val
}
