@@ -113,13 +113,18 @@ define i32 @packh_i32(i32 %a, i32 %b) nounwind {
113113}
114114
115115define i32 @packh_i32_2 (i32 %a , i32 %b ) nounwind {
116- ; CHECK-LABEL: packh_i32_2:
117- ; CHECK: # %bb.0:
118- ; CHECK-NEXT: andi a0, a0, 255
119- ; CHECK-NEXT: andi a1, a1, 255
120- ; CHECK-NEXT: slli a1, a1, 8
121- ; CHECK-NEXT: or a0, a1, a0
122- ; CHECK-NEXT: ret
116+ ; RV32I-LABEL: packh_i32_2:
117+ ; RV32I: # %bb.0:
118+ ; RV32I-NEXT: andi a0, a0, 255
119+ ; RV32I-NEXT: andi a1, a1, 255
120+ ; RV32I-NEXT: slli a1, a1, 8
121+ ; RV32I-NEXT: or a0, a1, a0
122+ ; RV32I-NEXT: ret
123+ ;
124+ ; RV32ZBKB-LABEL: packh_i32_2:
125+ ; RV32ZBKB: # %bb.0:
126+ ; RV32ZBKB-NEXT: packh a0, a0, a1
127+ ; RV32ZBKB-NEXT: ret
123128 %and = and i32 %a , 255
124129 %and1 = and i32 %b , 255
125130 %shl = shl i32 %and1 , 8
@@ -146,16 +151,25 @@ define i64 @packh_i64(i64 %a, i64 %b) nounwind {
146151}
147152
148153define i64 @packh_i64_2 (i64 %a , i64 %b ) nounwind {
149- ; CHECK-LABEL: packh_i64_2:
150- ; CHECK: # %bb.0:
151- ; CHECK-NEXT: andi a0, a0, 255
152- ; CHECK-NEXT: andi a1, a2, 255
153- ; CHECK-NEXT: slli a2, a1, 8
154- ; CHECK-NEXT: slli a3, zero, 8
155- ; CHECK-NEXT: srli a1, a1, 24
156- ; CHECK-NEXT: or a1, a3, a1
157- ; CHECK-NEXT: or a0, a2, a0
158- ; CHECK-NEXT: ret
154+ ; RV32I-LABEL: packh_i64_2:
155+ ; RV32I: # %bb.0:
156+ ; RV32I-NEXT: andi a0, a0, 255
157+ ; RV32I-NEXT: andi a1, a2, 255
158+ ; RV32I-NEXT: slli a2, a1, 8
159+ ; RV32I-NEXT: slli a3, zero, 8
160+ ; RV32I-NEXT: srli a1, a1, 24
161+ ; RV32I-NEXT: or a1, a3, a1
162+ ; RV32I-NEXT: or a0, a2, a0
163+ ; RV32I-NEXT: ret
164+ ;
165+ ; RV32ZBKB-LABEL: packh_i64_2:
166+ ; RV32ZBKB: # %bb.0:
167+ ; RV32ZBKB-NEXT: andi a1, a2, 255
168+ ; RV32ZBKB-NEXT: slli a3, zero, 8
169+ ; RV32ZBKB-NEXT: srli a1, a1, 24
170+ ; RV32ZBKB-NEXT: or a1, a3, a1
171+ ; RV32ZBKB-NEXT: packh a0, a0, a2
172+ ; RV32ZBKB-NEXT: ret
159173 %and = and i64 %a , 255
160174 %and1 = and i64 %b , 255
161175 %shl = shl i64 %and1 , 8
0 commit comments