[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / ARM / GlobalISel / select-neon.mir
blobd5ba82fe281dcbc6f103290514c96598180f7394
1 # RUN: llc -O0 -mtriple arm-- -mattr=+neon -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
3 --- |
4   define void @test_add_s64() { ret void }
5   define void @test_sub_s64() { ret void }
6 ...
7 ---
8 name:            test_add_s64
9 # CHECK-LABEL: name: test_add_s64
10 legalized:       true
11 regBankSelected: true
12 selected:        false
13 # CHECK: selected: true
14 registers:
15   - { id: 0, class: fprb }
16   - { id: 1, class: fprb }
17   - { id: 2, class: fprb }
18 body:             |
19   bb.0:
20     liveins: $d0, $d1
22     %0(s64) = COPY $d0
23     ; CHECK: [[VREGX:%[0-9]+]]:dpr = COPY $d0
25     %1(s64) = COPY $d1
26     ; CHECK: [[VREGY:%[0-9]+]]:dpr = COPY $d1
28     %2(s64) = G_ADD %0, %1
29     ; CHECK: [[VREGSUM:%[0-9]+]]:dpr = VADDv1i64 [[VREGX]], [[VREGY]], 14, $noreg
31     $d0 = COPY %2(s64)
32     ; CHECK: $d0 = COPY [[VREGSUM]]
34     BX_RET 14, $noreg, implicit $d0
35     ; CHECK: BX_RET 14, $noreg, implicit $d0
36 ...
37 ---
38 name:            test_sub_s64
39 # CHECK-LABEL: name: test_sub_s64
40 legalized:       true
41 regBankSelected: true
42 selected:        false
43 # CHECK: selected: true
44 registers:
45   - { id: 0, class: fprb }
46   - { id: 1, class: fprb }
47   - { id: 2, class: fprb }
48 body:             |
49   bb.0:
50     liveins: $d0, $d1
52     %0(s64) = COPY $d0
53     ; CHECK: [[VREGX:%[0-9]+]]:dpr = COPY $d0
55     %1(s64) = COPY $d1
56     ; CHECK: [[VREGY:%[0-9]+]]:dpr = COPY $d1
58     %2(s64) = G_SUB %0, %1
59     ; CHECK: [[VREGSUM:%[0-9]+]]:dpr = VSUBv1i64 [[VREGX]], [[VREGY]], 14, $noreg
61     $d0 = COPY %2(s64)
62     ; CHECK: $d0 = COPY [[VREGSUM]]
64     BX_RET 14, $noreg, implicit $d0
65     ; CHECK: BX_RET 14, $noreg, implicit $d0