# RUN: llc -march=hexagon -run-pass amode-opt -verify-machineinstrs %s -o - | FileCheck %s
# REQUIRES: asserts

# Check that this doesn't crash.
# CHECK: $r2 = L2_loadri_io killed $r2, @f1 - 1

--- |
  target triple = "hexagon-unknown-unknown-elf"

  %s.0 = type { i32 (...)**, i32, i32, %s.1 }
  %s.1 = type { i32, i32 }

  @g0 = external dso_local unnamed_addr constant { [3 x i8*], [3 x i8*] }, align 4

  ; Function Attrs: norecurse
  define void @f0() #0 {
  b0:
    %v0 = load i32 (%s.0*)*, i32 (%s.0*)** bitcast (i8* getelementptr (i8, i8* bitcast (i8** getelementptr inbounds ({ [3 x i8*], [3 x i8*] }, { [3 x i8*], [3 x i8*] }* @g0, i32 0, inrange i32 0, i32 3) to i8*), i32 sub (i32 ptrtoint (i32 (%s.0*)* @f1 to i32), i32 1)) to i32 (%s.0*)**), align 4
    %v1 = call i32 %v0(%s.0* nonnull undef)
    unreachable
  }

  ; Function Attrs: norecurse nounwind
  declare dso_local i32 @f1(%s.0*) #1 align 2

  attributes #0 = { norecurse "target-cpu"="hexagonv60" }
  attributes #1 = { norecurse nounwind "target-cpu"="hexagonv60" }
...

---
name: f0
tracksRegLiveness: true
body: |
  bb.0.b0:
    $r2 = A2_tfrsi @g0 + 12
    $r2 = L2_loadri_io killed $r2, @f1 - 1 :: (load (s32) from `i32 (%s.0*)** bitcast (i8* getelementptr (i8, i8* bitcast (i8** getelementptr inbounds ({ [3 x i8*], [3 x i8*] }, { [3 x i8*], [3 x i8*] }* @g0, i32 0, inrange i32 0, i32 3) to i8*), i32 sub (i32 ptrtoint (i32 (%s.0*)* @f1 to i32), i32 1)) to i32 (%s.0*)**)`)
    ADJCALLSTACKDOWN 0, 0, implicit-def $r29, implicit-def dead $r30, implicit $r31, implicit $r30, implicit $r29
    PS_callr_nr killed $r2, hexagoncsr, implicit undef $r0, implicit-def $r29, implicit-def dead $r0
    ADJCALLSTACKUP 0, 0, implicit-def dead $r29, implicit-def dead $r30, implicit-def dead $r31, implicit $r29
...
