2
2
# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - \
3
3
# RUN: | FileCheck %s --check-prefix=RV64I
4
4
# RUN: llc -mtriple=riscv64 -mattr=+zbb -run-pass=legalizer %s -o - \
5
- # RUN: | FileCheck %s --check-prefix=RV64ZBB
5
+ # RUN: | FileCheck %s --check-prefix=RV64ZBB_OR_RV64ZBKB
6
+ # RUN: llc -mtriple=riscv64 -mattr=+zbkb -run-pass=legalizer %s -o - \
7
+ # RUN: | FileCheck %s --check-prefix=RV64ZBB_OR_RV64ZBKB
6
8
7
9
---
8
10
name : bswap_i16
@@ -27,16 +29,16 @@ body: |
27
29
; RV64I-NEXT: $x10 = COPY [[AND]](s64)
28
30
; RV64I-NEXT: PseudoRET implicit $x10
29
31
;
30
- ; RV64ZBB -LABEL: name: bswap_i16
31
- ; RV64ZBB : liveins: $x10
32
- ; RV64ZBB -NEXT: {{ $}}
33
- ; RV64ZBB -NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
34
- ; RV64ZBB -NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s64) = G_ASSERT_ZEXT [[COPY]], 16
35
- ; RV64ZBB -NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[ASSERT_ZEXT]]
36
- ; RV64ZBB -NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48
37
- ; RV64ZBB -NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[BSWAP]], [[C]](s64)
38
- ; RV64ZBB -NEXT: $x10 = COPY [[LSHR]](s64)
39
- ; RV64ZBB -NEXT: PseudoRET implicit $x10
32
+ ; RV64ZBB_OR_RV64ZBKB -LABEL: name: bswap_i16
33
+ ; RV64ZBB_OR_RV64ZBKB : liveins: $x10
34
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: {{ $}}
35
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
36
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s64) = G_ASSERT_ZEXT [[COPY]], 16
37
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[ASSERT_ZEXT]]
38
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48
39
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[BSWAP]], [[C]](s64)
40
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: $x10 = COPY [[LSHR]](s64)
41
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: PseudoRET implicit $x10
40
42
%0:_(s64) = COPY $x10
41
43
%1:_(s64) = G_ASSERT_ZEXT %0, 16
42
44
%2:_(s16) = G_TRUNC %1(s64)
@@ -74,16 +76,16 @@ body: |
74
76
; RV64I-NEXT: $x10 = COPY [[ZEXT]](s64)
75
77
; RV64I-NEXT: PseudoRET implicit $x10
76
78
;
77
- ; RV64ZBB -LABEL: name: bswap_i32
78
- ; RV64ZBB : liveins: $x10
79
- ; RV64ZBB -NEXT: {{ $}}
80
- ; RV64ZBB -NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
81
- ; RV64ZBB -NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s64) = G_ASSERT_ZEXT [[COPY]], 32
82
- ; RV64ZBB -NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[ASSERT_ZEXT]]
83
- ; RV64ZBB -NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32
84
- ; RV64ZBB -NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[BSWAP]], [[C]](s64)
85
- ; RV64ZBB -NEXT: $x10 = COPY [[LSHR]](s64)
86
- ; RV64ZBB -NEXT: PseudoRET implicit $x10
79
+ ; RV64ZBB_OR_RV64ZBKB -LABEL: name: bswap_i32
80
+ ; RV64ZBB_OR_RV64ZBKB : liveins: $x10
81
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: {{ $}}
82
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
83
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s64) = G_ASSERT_ZEXT [[COPY]], 32
84
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[ASSERT_ZEXT]]
85
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32
86
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[BSWAP]], [[C]](s64)
87
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: $x10 = COPY [[LSHR]](s64)
88
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: PseudoRET implicit $x10
87
89
%0:_(s64) = COPY $x10
88
90
%1:_(s64) = G_ASSERT_ZEXT %0, 32
89
91
%2:_(s32) = G_TRUNC %1(s64)
@@ -132,13 +134,13 @@ body: |
132
134
; RV64I-NEXT: $x10 = COPY [[OR6]](s64)
133
135
; RV64I-NEXT: PseudoRET implicit $x10
134
136
;
135
- ; RV64ZBB -LABEL: name: bswap_i64
136
- ; RV64ZBB : liveins: $x10
137
- ; RV64ZBB -NEXT: {{ $}}
138
- ; RV64ZBB -NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
139
- ; RV64ZBB -NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[COPY]]
140
- ; RV64ZBB -NEXT: $x10 = COPY [[BSWAP]](s64)
141
- ; RV64ZBB -NEXT: PseudoRET implicit $x10
137
+ ; RV64ZBB_OR_RV64ZBKB -LABEL: name: bswap_i64
138
+ ; RV64ZBB_OR_RV64ZBKB : liveins: $x10
139
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: {{ $}}
140
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
141
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP [[COPY]]
142
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: $x10 = COPY [[BSWAP]](s64)
143
+ ; RV64ZBB_OR_RV64ZBKB -NEXT: PseudoRET implicit $x10
142
144
%0:_(s64) = COPY $x10
143
145
%1:_(s64) = G_BSWAP %0
144
146
$x10 = COPY %1(s64)
0 commit comments