1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=aarch64 -run-pass=legalizer %s -o - -verify-machineinstrs | FileCheck %s
4 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
5 target triple = "aarch64"
7 declare i16 @llvm.bswap.i16(i16) #0
9 define i16 @bswap_s16(i16 %a) { ret i16 0 }
11 attributes #0 = { nounwind readnone speculatable willreturn }
17 tracksRegLiveness: true
22 machineFunctionInfo: {}
27 ; CHECK-LABEL: name: bswap_s16
29 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
30 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
31 ; CHECK: [[BSWAP:%[0-9]+]]:_(s32) = G_BSWAP [[COPY1]]
32 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
33 ; CHECK: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BSWAP]], [[C]](s64)
34 ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LSHR]](s32)
35 ; CHECK: $w0 = COPY [[COPY2]](s32)
36 ; CHECK: RET_ReallyLR implicit $w0
38 %0:_(s16) = G_TRUNC %1(s32)
39 %2:_(s16) = G_BSWAP %0
40 %3:_(s32) = G_ANYEXT %2(s16)
42 RET_ReallyLR implicit $w0