[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / ARM / GlobalISel / select-clz.mir
blobd3cf3b3770df875aed0c80e1b9ac28d23b20c183
1 # RUN: llc -O0 -mtriple arm-- -mattr=+v6 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,ARM
2 # RUN: llc -O0 -mtriple thumb-- -mattr=+v6t2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,THUMB
3 --- |
4   define void @test_clz() { ret void }
5 ...
6 ---
7 name:            test_clz
8 # CHECK-LABEL: name: test_clz
9 legalized:       true
10 regBankSelected: true
11 selected:        false
12 # CHECK: selected: true
13 registers:
14   - { id: 0, class: gprb }
15   - { id: 1, class: gprb }
16 body:             |
17   bb.0:
18     liveins: $r0
20     %0(s32) = COPY $r0
21     ; ARM: [[VREGX:%[0-9]+]]:gpr = COPY $r0
22     ; THUMB: [[VREGX:%[0-9]+]]:rgpr = COPY $r0
24     %1(s32) = G_CTLZ %0(s32)
25     ; ARM: [[VREGR:%[0-9]+]]:gpr = CLZ [[VREGX]], 14, $noreg
26     ; THUMB: [[VREGR:%[0-9]+]]:rgpr = t2CLZ [[VREGX]], 14, $noreg
28     $r0 = COPY %1(s32)
29     ; CHECK: $r0 = COPY [[VREGR]]
31     BX_RET 14, $noreg, implicit $r0
32     ; CHECK: BX_RET 14, $noreg, implicit $r0
33 ...