115 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+popcnt -run-pass=legalizer %s -o - | FileCheck %s3 4# test popcount for s16, s32, and s645 6---7name: test_ctpop358alignment: 169legalized: false10regBankSelected: false11registers:12 - { id: 0, class: _, preferred-register: '' }13 - { id: 1, class: _, preferred-register: '' }14body: |15 bb.1:16 ; CHECK-LABEL: name: test_ctpop3517 ; CHECK: [[DEF:%[0-9]+]]:_(s35) = IMPLICIT_DEF18 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[DEF]](s35)19 ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s64) = G_CTPOP [[ZEXT]](s64)20 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s35) = G_TRUNC [[CTPOP]](s64)21 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s35) = COPY [[TRUNC]](s35)22 ; CHECK-NEXT: RET 0, implicit [[COPY]](s35)23 %0:_(s35) = IMPLICIT_DEF24 %1:_(s35) = G_CTPOP %025 %2:_(s35) = COPY %1(s35)26 RET 0, implicit %227 28...29---30name: test_ctpop831alignment: 1632legalized: false33regBankSelected: false34registers:35 - { id: 0, class: _, preferred-register: '' }36 - { id: 1, class: _, preferred-register: '' }37body: |38 bb.1:39 ; CHECK-LABEL: name: test_ctpop840 ; CHECK: [[DEF:%[0-9]+]]:_(s8) = IMPLICIT_DEF41 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s16) = G_ZEXT [[DEF]](s8)42 ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s16) = G_CTPOP [[ZEXT]](s16)43 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[CTPOP]](s16)44 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY [[TRUNC]](s8)45 ; CHECK-NEXT: RET 0, implicit [[COPY]](s8)46 %0:_(s8) = IMPLICIT_DEF47 %1:_(s8) = G_CTPOP %048 %2:_(s8) = COPY %1(s8)49 RET 0, implicit %250 51...52---53name: test_ctpop6454alignment: 1655legalized: false56regBankSelected: false57registers:58 - { id: 0, class: _, preferred-register: '' }59 - { id: 1, class: _, preferred-register: '' }60body: |61 bb.1:62 ; CHECK-LABEL: name: test_ctpop6463 ; CHECK: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF64 ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s64) = G_CTPOP [[DEF]](s64)65 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[CTPOP]](s64)66 ; CHECK-NEXT: RET 0, implicit [[COPY]](s64)67 %0:_(s64) = IMPLICIT_DEF68 %1:_(s64) = G_CTPOP %069 %2:_(s64) = COPY %1(s64)70 RET 0, implicit %271 72...73---74name: test_ctpop3275alignment: 1676legalized: false77regBankSelected: false78registers:79 - { id: 0, class: _, preferred-register: '' }80 - { id: 1, class: _, preferred-register: '' }81body: |82 bb.1:83 ; CHECK-LABEL: name: test_ctpop3284 ; CHECK: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF85 ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s32) = G_CTPOP [[DEF]](s32)86 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[CTPOP]](s32)87 ; CHECK-NEXT: RET 0, implicit [[COPY]](s32)88 %0:_(s32) = IMPLICIT_DEF89 %1:_(s32) = G_CTPOP %090 %2:_(s32) = COPY %1(s32)91 RET 0, implicit %292 93...94---95name: test_ctpop1696alignment: 1697legalized: false98regBankSelected: false99registers:100 - { id: 0, class: _, preferred-register: '' }101 - { id: 1, class: _, preferred-register: '' }102body: |103 bb.1:104 ; CHECK-LABEL: name: test_ctpop16105 ; CHECK: [[DEF:%[0-9]+]]:_(s16) = IMPLICIT_DEF106 ; CHECK-NEXT: [[CTPOP:%[0-9]+]]:_(s16) = G_CTPOP [[DEF]](s16)107 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY [[CTPOP]](s16)108 ; CHECK-NEXT: RET 0, implicit [[COPY]](s16)109 %0:_(s16) = IMPLICIT_DEF110 %1:_(s16) = G_CTPOP %0111 %2:_(s16) = COPY %1(s16)112 RET 0, implicit %2113 114...115