1 ; RUN: llc -march=hexagon < %s | FileCheck %s
5 ; CHECK-LABEL: test_00:
6 ; CHECK: r1:0 = vminb(r1:0,r3:2)
7 define <8 x i8> @test_00(<8 x i8> %a0, <8 x i8> %a1) #0 {
8 %v0 = icmp slt <8 x i8> %a0, %a1
9 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
13 ; CHECK-LABEL: test_01:
14 ; CHECK: r1:0 = vminb(r1:0,r3:2)
15 define <8 x i8> @test_01(<8 x i8> %a0, <8 x i8> %a1) #0 {
16 %v0 = icmp sle <8 x i8> %a0, %a1
17 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
21 ; CHECK-LABEL: test_02:
22 ; CHECK: r1:0 = vminh(r1:0,r3:2)
23 define <4 x i16> @test_02(<4 x i16> %a0, <4 x i16> %a1) #0 {
24 %v0 = icmp slt <4 x i16> %a0, %a1
25 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
29 ; CHECK-LABEL: test_03:
30 ; CHECK: r1:0 = vminh(r1:0,r3:2)
31 define <4 x i16> @test_03(<4 x i16> %a0, <4 x i16> %a1) #0 {
32 %v0 = icmp sle <4 x i16> %a0, %a1
33 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
37 ; CHECK-LABEL: test_04:
38 ; CHECK: r1:0 = vminw(r1:0,r3:2)
39 define <2 x i32> @test_04(<2 x i32> %a0, <2 x i32> %a1) #0 {
40 %v0 = icmp slt <2 x i32> %a0, %a1
41 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
45 ; CHECK-LABEL: test_05:
46 ; CHECK: r1:0 = vminw(r1:0,r3:2)
47 define <2 x i32> @test_05(<2 x i32> %a0, <2 x i32> %a1) #0 {
48 %v0 = icmp sle <2 x i32> %a0, %a1
49 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
55 ; CHECK-LABEL: test_06:
56 ; CHECK: r1:0 = vminub(r1:0,r3:2)
57 define <8 x i8> @test_06(<8 x i8> %a0, <8 x i8> %a1) #0 {
58 %v0 = icmp ult <8 x i8> %a0, %a1
59 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
63 ; CHECK-LABEL: test_07:
64 ; CHECK: r1:0 = vminub(r1:0,r3:2)
65 define <8 x i8> @test_07(<8 x i8> %a0, <8 x i8> %a1) #0 {
66 %v0 = icmp ule <8 x i8> %a0, %a1
67 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
71 ; CHECK-LABEL: test_08:
72 ; CHECK: r1:0 = vminuh(r1:0,r3:2)
73 define <4 x i16> @test_08(<4 x i16> %a0, <4 x i16> %a1) #0 {
74 %v0 = icmp ult <4 x i16> %a0, %a1
75 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
79 ; CHECK-LABEL: test_09:
80 ; CHECK: r1:0 = vminuh(r1:0,r3:2)
81 define <4 x i16> @test_09(<4 x i16> %a0, <4 x i16> %a1) #0 {
82 %v0 = icmp ule <4 x i16> %a0, %a1
83 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
87 ; CHECK-LABEL: test_0a:
88 ; CHECK: r1:0 = vminuw(r1:0,r3:2)
89 define <2 x i32> @test_0a(<2 x i32> %a0, <2 x i32> %a1) #0 {
90 %v0 = icmp ult <2 x i32> %a0, %a1
91 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
95 ; CHECK-LABEL: test_0b:
96 ; CHECK: r1:0 = vminuw(r1:0,r3:2)
97 define <2 x i32> @test_0b(<2 x i32> %a0, <2 x i32> %a1) #0 {
98 %v0 = icmp ule <2 x i32> %a0, %a1
99 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
105 ; CHECK-LABEL: test_0c:
106 ; CHECK: r1:0 = vmaxb(r1:0,r3:2)
107 define <8 x i8> @test_0c(<8 x i8> %a0, <8 x i8> %a1) #0 {
108 %v0 = icmp sgt <8 x i8> %a0, %a1
109 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
113 ; CHECK-LABEL: test_0d:
114 ; CHECK: r1:0 = vmaxb(r1:0,r3:2)
115 define <8 x i8> @test_0d(<8 x i8> %a0, <8 x i8> %a1) #0 {
116 %v0 = icmp sge <8 x i8> %a0, %a1
117 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
121 ; CHECK-LABEL: test_0e:
122 ; CHECK: r1:0 = vmaxh(r1:0,r3:2)
123 define <4 x i16> @test_0e(<4 x i16> %a0, <4 x i16> %a1) #0 {
124 %v0 = icmp sgt <4 x i16> %a0, %a1
125 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
129 ; CHECK-LABEL: test_0f:
130 ; CHECK: r1:0 = vmaxh(r1:0,r3:2)
131 define <4 x i16> @test_0f(<4 x i16> %a0, <4 x i16> %a1) #0 {
132 %v0 = icmp sge <4 x i16> %a0, %a1
133 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
137 ; CHECK-LABEL: test_10:
138 ; CHECK: r1:0 = vmaxw(r1:0,r3:2)
139 define <2 x i32> @test_10(<2 x i32> %a0, <2 x i32> %a1) #0 {
140 %v0 = icmp sgt <2 x i32> %a0, %a1
141 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
145 ; CHECK-LABEL: test_11:
146 ; CHECK: r1:0 = vmaxw(r1:0,r3:2)
147 define <2 x i32> @test_11(<2 x i32> %a0, <2 x i32> %a1) #0 {
148 %v0 = icmp sge <2 x i32> %a0, %a1
149 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
155 ; CHECK-LABEL: test_12:
156 ; CHECK: r1:0 = vmaxub(r1:0,r3:2)
157 define <8 x i8> @test_12(<8 x i8> %a0, <8 x i8> %a1) #0 {
158 %v0 = icmp ugt <8 x i8> %a0, %a1
159 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
163 ; CHECK-LABEL: test_13:
164 ; CHECK: r1:0 = vmaxub(r1:0,r3:2)
165 define <8 x i8> @test_13(<8 x i8> %a0, <8 x i8> %a1) #0 {
166 %v0 = icmp uge <8 x i8> %a0, %a1
167 %v1 = select <8 x i1> %v0, <8 x i8> %a0, <8 x i8> %a1
171 ; CHECK-LABEL: test_14:
172 ; CHECK: r1:0 = vmaxuh(r1:0,r3:2)
173 define <4 x i16> @test_14(<4 x i16> %a0, <4 x i16> %a1) #0 {
174 %v0 = icmp ugt <4 x i16> %a0, %a1
175 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
179 ; CHECK-LABEL: test_15:
180 ; CHECK: r1:0 = vmaxuh(r1:0,r3:2)
181 define <4 x i16> @test_15(<4 x i16> %a0, <4 x i16> %a1) #0 {
182 %v0 = icmp uge <4 x i16> %a0, %a1
183 %v1 = select <4 x i1> %v0, <4 x i16> %a0, <4 x i16> %a1
187 ; CHECK-LABEL: test_16:
188 ; CHECK: r1:0 = vmaxuw(r1:0,r3:2)
189 define <2 x i32> @test_16(<2 x i32> %a0, <2 x i32> %a1) #0 {
190 %v0 = icmp ugt <2 x i32> %a0, %a1
191 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1
195 ; CHECK-LABEL: test_17:
196 ; CHECK: r1:0 = vmaxuw(r1:0,r3:2)
197 define <2 x i32> @test_17(<2 x i32> %a0, <2 x i32> %a1) #0 {
198 %v0 = icmp uge <2 x i32> %a0, %a1
199 %v1 = select <2 x i1> %v0, <2 x i32> %a0, <2 x i32> %a1