• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3--- |
4  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
5  target triple = "aarch64"
6
7  declare i16 @llvm.bswap.i16(i16) #0
8
9  define i16 @bswap_s16(i16 %a) { ret i16 0 }
10
11  attributes #0 = { nounwind readnone speculatable willreturn }
12
13...
14---
15name:            bswap_s16
16alignment:       4
17tracksRegLiveness: true
18liveins:
19  - { reg: '$w0' }
20frameInfo:
21  maxAlignment:    1
22machineFunctionInfo: {}
23body:             |
24  bb.1:
25    liveins: $w0
26
27    ; CHECK-LABEL: name: bswap_s16
28    ; CHECK: liveins: $w0
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
37    %1:_(s32) = COPY $w0
38    %0:_(s16) = G_TRUNC %1(s32)
39    %2:_(s16) = G_BSWAP %0
40    %3:_(s32) = G_ANYEXT %2(s16)
41    $w0 = COPY %3(s32)
42    RET_ReallyLR implicit $w0
43
44...
45