# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-unknown-unknown -mattr=+lse -verify-machineinstrs -O0 -run-pass=regbankselect %s -o - | FileCheck %s
---
name: extract_s64_s128
alignment: 4
legalized: true
tracksRegLiveness: true
body: |
bb.1:
liveins: $q0
; CHECK-LABEL: name: extract_s64_s128
; CHECK: liveins: $q0
; CHECK: [[COPY:%[0-9]+]]:fpr(s128) = COPY $q0
; CHECK: [[EXTRACT:%[0-9]+]]:fpr(s64) = G_EXTRACT [[COPY]](s128), 0
; CHECK: $d2 = COPY [[EXTRACT]](s64)
; CHECK: RET_ReallyLR implicit $d2
%0:_(s128) = COPY $q0
%1:_(s64) = G_EXTRACT %0(s128), 0
$d2 = COPY %1(s64)
RET_ReallyLR implicit $d2
...
---
name: extract_s64_s128_gpr
alignment: 4
legalized: true
tracksRegLiveness: true
body: |
bb.1:
liveins: $x0_x1, $x1
; CHECK-LABEL: name: extract_s64_s128_gpr
; CHECK: liveins: $x0_x1, $x1
; CHECK: [[CASPX:%[0-9]+]]:xseqpairsclass(s128) = CASPX $x0_x1, $x0_x1, $x0
; CHECK: [[EXTRACT:%[0-9]+]]:gpr(s64) = G_EXTRACT [[CASPX]](s128), 0
; CHECK: RET_ReallyLR
%0:xseqpairsclass = CASPX $x0_x1, $x0_x1, $x0
%1:_(s64) = G_EXTRACT %0:xseqpairsclass(s128), 0
RET_ReallyLR
...