# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py # RUN: llc -mtriple=aarch64 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s ... --- name: sbfx_s32 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.0: liveins: $w0 ; CHECK-LABEL: name: sbfx_s32 ; CHECK: liveins: $w0 ; CHECK: %copy:gpr32 = COPY $w0 ; CHECK: %sbfx:gpr32 = SBFMWri %copy, 0, 9 ; CHECK: $w0 = COPY %sbfx ; CHECK: RET_ReallyLR implicit $w0 %copy:gpr(s32) = COPY $w0 %cst1:gpr(s32) = G_CONSTANT i32 0 %cst2:gpr(s32) = G_CONSTANT i32 10 %sbfx:gpr(s32) = G_SBFX %copy, %cst1, %cst2 $w0 = COPY %sbfx RET_ReallyLR implicit $w0 ... --- name: sbfx_s64 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.0: liveins: $x0 ; CHECK-LABEL: name: sbfx_s64 ; CHECK: liveins: $x0 ; CHECK: %copy:gpr64 = COPY $x0 ; CHECK: %sbfx:gpr64 = SBFMXri %copy, 0, 9 ; CHECK: $x0 = COPY %sbfx ; CHECK: RET_ReallyLR implicit $x0 %copy:gpr(s64) = COPY $x0 %cst1:gpr(s64) = G_CONSTANT i64 0 %cst2:gpr(s64) = G_CONSTANT i64 10 %sbfx:gpr(s64) = G_SBFX %copy, %cst1, %cst2 $x0 = COPY %sbfx RET_ReallyLR implicit $x0 ... --- name: sbfx_s32_31_1 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.0: liveins: $w0 ; This is just an asr, so it's okay. ; CHECK-LABEL: name: sbfx_s32_31_1 ; CHECK: liveins: $w0 ; CHECK: %copy:gpr32 = COPY $w0 ; CHECK: %sbfx:gpr32 = SBFMWri %copy, 31, 31 ; CHECK: $w0 = COPY %sbfx ; CHECK: RET_ReallyLR implicit $w0 %copy:gpr(s32) = COPY $w0 %cst1:gpr(s32) = G_CONSTANT i32 31 %cst2:gpr(s32) = G_CONSTANT i32 1 %sbfx:gpr(s32) = G_SBFX %copy, %cst1, %cst2 $w0 = COPY %sbfx RET_ReallyLR implicit $w0 --- name: sbfx_s32_10_5 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.0: liveins: $w0 ; CHECK-LABEL: name: sbfx_s32_10_5 ; CHECK: liveins: $w0 ; CHECK: %copy:gpr32 = COPY $w0 ; CHECK: %sbfx:gpr32 = SBFMWri %copy, 10, 14 ; CHECK: $w0 = COPY %sbfx ; CHECK: RET_ReallyLR implicit $w0 %copy:gpr(s32) = COPY $w0 %cst1:gpr(s32) = G_CONSTANT i32 10 %cst2:gpr(s32) = G_CONSTANT i32 5 %sbfx:gpr(s32) = G_SBFX %copy, %cst1, %cst2 $w0 = COPY %sbfx RET_ReallyLR implicit $w0 --- name: sbfx_s64_10_5 legalized: true regBankSelected: true tracksRegLiveness: true body: | bb.0: liveins: $x0 ; CHECK-LABEL: name: sbfx_s64_10_5 ; CHECK: liveins: $x0 ; CHECK: %copy:gpr64 = COPY $x0 ; CHECK: %sbfx:gpr64 = SBFMXri %copy, 10, 14 ; CHECK: $x0 = COPY %sbfx ; CHECK: RET_ReallyLR implicit $x0 %copy:gpr(s64) = COPY $x0 %cst1:gpr(s64) = G_CONSTANT i64 10 %cst2:gpr(s64) = G_CONSTANT i64 5 %sbfx:gpr(s64) = G_SBFX %copy, %cst1, %cst2 $x0 = COPY %sbfx RET_ReallyLR implicit $x0