# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -o - -march=aarch64 -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s | FileCheck %s
---
name:            extract_from_build_vector
alignment:       4
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$x1' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
machineFunctionInfo: {}
body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: extract_from_build_vector
    ; CHECK: liveins: $x0, $x1
    ; CHECK: %arg1:_(s64) = COPY $x0
    ; CHECK: $x0 = COPY %arg1(s64)
    ; CHECK: RET_ReallyLR implicit $x0
    %arg1:_(s64) = COPY $x0
    %arg2:_(s64) = COPY $x1
    %zero:_(s32) = G_CONSTANT i32 0
    %bv:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)
    %extract:_(s64) = G_EXTRACT_VECTOR_ELT %bv(<2 x s64>), %zero(s32)
    $x0 = COPY %extract(s64)
    RET_ReallyLR implicit $x0

...
---
name:            extract_from_build_vector_idx1
alignment:       4
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$x1' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
machineFunctionInfo: {}
body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: extract_from_build_vector_idx1
    ; CHECK: liveins: $x0, $x1
    ; CHECK: %arg2:_(s64) = COPY $x1
    ; CHECK: $x0 = COPY %arg2(s64)
    ; CHECK: RET_ReallyLR implicit $x0
    %arg1:_(s64) = COPY $x0
    %arg2:_(s64) = COPY $x1
    %one:_(s32) = G_CONSTANT i32 1
    %bv:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)
    %extract:_(s64) = G_EXTRACT_VECTOR_ELT %bv(<2 x s64>), %one(s32)
    $x0 = COPY %extract(s64)
    RET_ReallyLR implicit $x0

...
---
name:            extract_from_build_vector_idx_invalid
alignment:       4
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$x1' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
machineFunctionInfo: {}
body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: extract_from_build_vector_idx_invalid
    ; CHECK: liveins: $x0, $x1
    ; CHECK: %arg1:_(s64) = COPY $x0
    ; CHECK: %arg2:_(s64) = COPY $x1
    ; CHECK: %idx:_(s32) = G_CONSTANT i32 4
    ; CHECK: %bv:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)
    ; CHECK: %extract:_(s64) = G_EXTRACT_VECTOR_ELT %bv(<2 x s64>), %idx(s32)
    ; CHECK: $x0 = COPY %extract(s64)
    ; CHECK: RET_ReallyLR implicit $x0
    %arg1:_(s64) = COPY $x0
    %arg2:_(s64) = COPY $x1
    %idx:_(s32) = G_CONSTANT i32 4
    %bv:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)
    %extract:_(s64) = G_EXTRACT_VECTOR_ELT %bv(<2 x s64>), %idx(s32)
    $x0 = COPY %extract(s64)
    RET_ReallyLR implicit $x0

...
---
name:            extract_from_build_vector_trunc
alignment:       4
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$x1' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
machineFunctionInfo: {}
body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: extract_from_build_vector_trunc
    ; CHECK: liveins: $x0, $x1
    ; CHECK: %arg1:_(s64) = COPY $x0
    ; CHECK: %extract:_(s32) = G_TRUNC %arg1(s64)
    ; CHECK: $w0 = COPY %extract(s32)
    ; CHECK: RET_ReallyLR implicit $w0
    %arg1:_(s64) = COPY $x0
    %arg2:_(s64) = COPY $x1
    %zero:_(s32) = G_CONSTANT i32 0
    %bv:_(<2 x s32>) = G_BUILD_VECTOR_TRUNC %arg1(s64), %arg2(s64)
    %extract:_(s32) = G_EXTRACT_VECTOR_ELT %bv(<2 x s32>), %zero(s32)
    $w0 = COPY %extract(s32)
    RET_ReallyLR implicit $w0

...
---
name:            extract_from_build_vector_multiple_uses
alignment:       4
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$x1' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
machineFunctionInfo: {}
body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: extract_from_build_vector_multiple_uses
    ; CHECK: liveins: $x0, $x1
    ; CHECK: %arg1:_(s64) = COPY $x0
    ; CHECK: %arg2:_(s64) = COPY $x1
    ; CHECK: %zero:_(s32) = G_CONSTANT i32 0
    ; CHECK: %bv:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)
    ; CHECK: %extract:_(s64) = G_EXTRACT_VECTOR_ELT %bv(<2 x s64>), %zero(s32)
    ; CHECK: $x0 = COPY %extract(s64)
    ; CHECK: $q0 = COPY %bv(<2 x s64>)
    ; CHECK: RET_ReallyLR implicit $x0
    %arg1:_(s64) = COPY $x0
    %arg2:_(s64) = COPY $x1
    %zero:_(s32) = G_CONSTANT i32 0
    %bv:_(<2 x s64>) = G_BUILD_VECTOR %arg1(s64), %arg2(s64)
    %extract:_(s64) = G_EXTRACT_VECTOR_ELT %bv(<2 x s64>), %zero(s32)
    $x0 = COPY %extract(s64)
    $q0 = COPY %bv(<2 x s64>)
    RET_ReallyLR implicit $x0

...
---
name:            extract_from_insert
alignment:       4
tracksRegLiveness: true
liveins:
  - { reg: '$x0' }
  - { reg: '$x1' }
frameInfo:
  maxAlignment:    1
body:             |
  bb.1:
    liveins: $x0, $x1
    ; This test checks that this combine runs after the insertvec->build_vector
    ; combine.
    ; CHECK-LABEL: name: extract_from_insert
    ; CHECK: liveins: $x0, $x1
    ; CHECK: %arg1:_(s64) = COPY $x0
    ; CHECK: $x0 = COPY %arg1(s64)
    ; CHECK: RET_ReallyLR implicit $x0
    %arg1:_(s64) = COPY $x0
    %arg2:_(s64) = COPY $x1
    %undef:_(<2 x s64>) = G_IMPLICIT_DEF
    %zero:_(s32) = G_CONSTANT i32 0
    %one:_(s32) = G_CONSTANT i32 1
    %ins1:_(<2 x s64>) = G_INSERT_VECTOR_ELT %undef, %arg1(s64), %zero(s32)
    %ins2:_(<2 x s64>) = G_INSERT_VECTOR_ELT %ins1, %arg2(s64), %one(s32)
    %extract:_(s64) = G_EXTRACT_VECTOR_ELT %ins2(<2 x s64>), %zero(s32)
    $x0 = COPY %extract(s64)
    RET_ReallyLR implicit $x0

...
