1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv64 -mattr=+zbb -run-pass=instruction-select \
3 # RUN: -simplify-mir -verify-machineinstrs %s -o - \
4 # RUN: | FileCheck -check-prefix=RV64I %s
12 ; RV64I-LABEL: name: ctpop_s32
13 ; RV64I: [[COPY:%[0-9]+]]:gpr = COPY $x10
14 ; RV64I-NEXT: [[CPOPW:%[0-9]+]]:gpr = CPOPW [[COPY]]
15 ; RV64I-NEXT: $x10 = COPY [[CPOPW]]
16 ; RV64I-NEXT: PseudoRET implicit $x10
17 %0:gprb(s64) = COPY $x10
18 %1:gprb(s32) = G_TRUNC %0
19 %2:gprb(s32) = G_CTPOP %1
20 %3:gprb(s64) = G_ANYEXT %2
22 PseudoRET implicit $x10
31 ; RV64I-LABEL: name: ctpop_s64
32 ; RV64I: [[COPY:%[0-9]+]]:gpr = COPY $x10
33 ; RV64I-NEXT: [[CPOP:%[0-9]+]]:gpr = CPOP [[COPY]]
34 ; RV64I-NEXT: $x10 = COPY [[CPOP]]
35 ; RV64I-NEXT: PseudoRET implicit $x10
36 %0:gprb(s64) = COPY $x10
37 %1:gprb(s64) = G_CTPOP %0
39 PseudoRET implicit $x10