1dc0ae8ceSLian Wang; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*74f985b7SLuke Lau; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \ 3dc0ae8ceSLian Wang; RUN: | FileCheck %s --check-prefixes=CHECK 4*74f985b7SLuke Lau; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \ 5dc0ae8ceSLian Wang; RUN: | FileCheck %s --check-prefixes=CHECK 6dc0ae8ceSLian Wang 7dc0ae8ceSLian Wang 8dc0ae8ceSLian Wangdeclare <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1>, <2 x i1>, metadata, <2 x i1>, i32) 9dc0ae8ceSLian Wang 10dc0ae8ceSLian Wangdefine <2 x i1> @icmp_eq_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 11dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v2i1: 12dc0ae8ceSLian Wang; CHECK: # %bb.0: 13d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 14dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 15dc0ae8ceSLian Wang; CHECK-NEXT: ret 16dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"eq", <2 x i1> %m, i32 %evl) 17dc0ae8ceSLian Wang ret <2 x i1> %v 18dc0ae8ceSLian Wang} 19dc0ae8ceSLian Wang 20dc0ae8ceSLian Wangdeclare <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1>, <4 x i1>, metadata, <4 x i1>, i32) 21dc0ae8ceSLian Wang 22dc0ae8ceSLian Wangdefine <4 x i1> @icmp_eq_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 23dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v4i1: 24dc0ae8ceSLian Wang; CHECK: # %bb.0: 25d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 26dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 27dc0ae8ceSLian Wang; CHECK-NEXT: ret 28dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"eq", <4 x i1> %m, i32 %evl) 29dc0ae8ceSLian Wang ret <4 x i1> %v 30dc0ae8ceSLian Wang} 31dc0ae8ceSLian Wang 32dc0ae8ceSLian Wangdeclare <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1>, <8 x i1>, metadata, <8 x i1>, i32) 33dc0ae8ceSLian Wang 34dc0ae8ceSLian Wangdefine <8 x i1> @icmp_eq_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 35dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v8i1: 36dc0ae8ceSLian Wang; CHECK: # %bb.0: 37d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 38dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 39dc0ae8ceSLian Wang; CHECK-NEXT: ret 40dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"eq", <8 x i1> %m, i32 %evl) 41dc0ae8ceSLian Wang ret <8 x i1> %v 42dc0ae8ceSLian Wang} 43dc0ae8ceSLian Wang 44dc0ae8ceSLian Wangdeclare <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1>, <16 x i1>, metadata, <16 x i1>, i32) 45dc0ae8ceSLian Wang 46dc0ae8ceSLian Wangdefine <16 x i1> @icmp_eq_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 47dc0ae8ceSLian Wang; CHECK-LABEL: icmp_eq_vv_v16i1: 48dc0ae8ceSLian Wang; CHECK: # %bb.0: 49d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 50dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 51dc0ae8ceSLian Wang; CHECK-NEXT: ret 52dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"eq", <16 x i1> %m, i32 %evl) 53dc0ae8ceSLian Wang ret <16 x i1> %v 54dc0ae8ceSLian Wang} 55dc0ae8ceSLian Wang 56dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ne_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 57dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v2i1: 58dc0ae8ceSLian Wang; CHECK: # %bb.0: 59d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 60dc0ae8ceSLian Wang; CHECK-NEXT: vmxor.mm v0, v0, v8 61dc0ae8ceSLian Wang; CHECK-NEXT: ret 62dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ne", <2 x i1> %m, i32 %evl) 63dc0ae8ceSLian Wang ret <2 x i1> %v 64dc0ae8ceSLian Wang} 65dc0ae8ceSLian Wang 66dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ne_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 67dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v4i1: 68dc0ae8ceSLian Wang; CHECK: # %bb.0: 69d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 70dc0ae8ceSLian Wang; CHECK-NEXT: vmxor.mm v0, v0, v8 71dc0ae8ceSLian Wang; CHECK-NEXT: ret 72dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ne", <4 x i1> %m, i32 %evl) 73dc0ae8ceSLian Wang ret <4 x i1> %v 74dc0ae8ceSLian Wang} 75dc0ae8ceSLian Wang 76dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ne_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 77dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v8i1: 78dc0ae8ceSLian Wang; CHECK: # %bb.0: 79d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 80dc0ae8ceSLian Wang; CHECK-NEXT: vmxor.mm v0, v0, v8 81dc0ae8ceSLian Wang; CHECK-NEXT: ret 82dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ne", <8 x i1> %m, i32 %evl) 83dc0ae8ceSLian Wang ret <8 x i1> %v 84dc0ae8ceSLian Wang} 85dc0ae8ceSLian Wang 86dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ne_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 87dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ne_vv_v16i1: 88dc0ae8ceSLian Wang; CHECK: # %bb.0: 89d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 90dc0ae8ceSLian Wang; CHECK-NEXT: vmxor.mm v0, v0, v8 91dc0ae8ceSLian Wang; CHECK-NEXT: ret 92dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ne", <16 x i1> %m, i32 %evl) 93dc0ae8ceSLian Wang ret <16 x i1> %v 94dc0ae8ceSLian Wang} 95dc0ae8ceSLian Wang 96dc0ae8ceSLian Wangdefine <2 x i1> @icmp_slt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 97dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v2i1: 98dc0ae8ceSLian Wang; CHECK: # %bb.0: 99d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 100dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 101dc0ae8ceSLian Wang; CHECK-NEXT: ret 102dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"slt", <2 x i1> %m, i32 %evl) 103dc0ae8ceSLian Wang ret <2 x i1> %v 104dc0ae8ceSLian Wang} 105dc0ae8ceSLian Wang 106dc0ae8ceSLian Wangdefine <4 x i1> @icmp_slt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 107dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v4i1: 108dc0ae8ceSLian Wang; CHECK: # %bb.0: 109d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 110dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 111dc0ae8ceSLian Wang; CHECK-NEXT: ret 112dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"slt", <4 x i1> %m, i32 %evl) 113dc0ae8ceSLian Wang ret <4 x i1> %v 114dc0ae8ceSLian Wang} 115dc0ae8ceSLian Wang 116dc0ae8ceSLian Wangdefine <8 x i1> @icmp_slt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 117dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v8i1: 118dc0ae8ceSLian Wang; CHECK: # %bb.0: 119d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 120dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 121dc0ae8ceSLian Wang; CHECK-NEXT: ret 122dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"slt", <8 x i1> %m, i32 %evl) 123dc0ae8ceSLian Wang ret <8 x i1> %v 124dc0ae8ceSLian Wang} 125dc0ae8ceSLian Wang 126dc0ae8ceSLian Wangdefine <16 x i1> @icmp_slt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 127dc0ae8ceSLian Wang; CHECK-LABEL: icmp_slt_vv_v16i1: 128dc0ae8ceSLian Wang; CHECK: # %bb.0: 129d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 130dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 131dc0ae8ceSLian Wang; CHECK-NEXT: ret 132dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"slt", <16 x i1> %m, i32 %evl) 133dc0ae8ceSLian Wang ret <16 x i1> %v 134dc0ae8ceSLian Wang} 135dc0ae8ceSLian Wang 136dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ult_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 137dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v2i1: 138dc0ae8ceSLian Wang; CHECK: # %bb.0: 139d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 140dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 141dc0ae8ceSLian Wang; CHECK-NEXT: ret 142dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ult", <2 x i1> %m, i32 %evl) 143dc0ae8ceSLian Wang ret <2 x i1> %v 144dc0ae8ceSLian Wang} 145dc0ae8ceSLian Wang 146dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ult_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 147dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v4i1: 148dc0ae8ceSLian Wang; CHECK: # %bb.0: 149d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 150dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 151dc0ae8ceSLian Wang; CHECK-NEXT: ret 152dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ult", <4 x i1> %m, i32 %evl) 153dc0ae8ceSLian Wang ret <4 x i1> %v 154dc0ae8ceSLian Wang} 155dc0ae8ceSLian Wang 156dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ult_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 157dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v8i1: 158dc0ae8ceSLian Wang; CHECK: # %bb.0: 159d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 160dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 161dc0ae8ceSLian Wang; CHECK-NEXT: ret 162dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ult", <8 x i1> %m, i32 %evl) 163dc0ae8ceSLian Wang ret <8 x i1> %v 164dc0ae8ceSLian Wang} 165dc0ae8ceSLian Wang 166dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ult_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 167dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ult_vv_v16i1: 168dc0ae8ceSLian Wang; CHECK: # %bb.0: 169d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 170dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 171dc0ae8ceSLian Wang; CHECK-NEXT: ret 172dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ult", <16 x i1> %m, i32 %evl) 173dc0ae8ceSLian Wang ret <16 x i1> %v 174dc0ae8ceSLian Wang} 175dc0ae8ceSLian Wang 176dc0ae8ceSLian Wangdefine <2 x i1> @icmp_sgt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 177dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v2i1: 178dc0ae8ceSLian Wang; CHECK: # %bb.0: 179d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 180dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 181dc0ae8ceSLian Wang; CHECK-NEXT: ret 182dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sgt", <2 x i1> %m, i32 %evl) 183dc0ae8ceSLian Wang ret <2 x i1> %v 184dc0ae8ceSLian Wang} 185dc0ae8ceSLian Wang 186dc0ae8ceSLian Wangdefine <4 x i1> @icmp_sgt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 187dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v4i1: 188dc0ae8ceSLian Wang; CHECK: # %bb.0: 189d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 190dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 191dc0ae8ceSLian Wang; CHECK-NEXT: ret 192dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sgt", <4 x i1> %m, i32 %evl) 193dc0ae8ceSLian Wang ret <4 x i1> %v 194dc0ae8ceSLian Wang} 195dc0ae8ceSLian Wang 196dc0ae8ceSLian Wangdefine <8 x i1> @icmp_sgt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 197dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v8i1: 198dc0ae8ceSLian Wang; CHECK: # %bb.0: 199d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 200dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 201dc0ae8ceSLian Wang; CHECK-NEXT: ret 202dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sgt", <8 x i1> %m, i32 %evl) 203dc0ae8ceSLian Wang ret <8 x i1> %v 204dc0ae8ceSLian Wang} 205dc0ae8ceSLian Wang 206dc0ae8ceSLian Wangdefine <16 x i1> @icmp_sgt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 207dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sgt_vv_v16i1: 208dc0ae8ceSLian Wang; CHECK: # %bb.0: 209d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 210dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v8, v0 211dc0ae8ceSLian Wang; CHECK-NEXT: ret 212dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sgt", <16 x i1> %m, i32 %evl) 213dc0ae8ceSLian Wang ret <16 x i1> %v 214dc0ae8ceSLian Wang} 215dc0ae8ceSLian Wang 216dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ugt_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 217dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v2i1: 218dc0ae8ceSLian Wang; CHECK: # %bb.0: 219d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 220dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 221dc0ae8ceSLian Wang; CHECK-NEXT: ret 222dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ugt", <2 x i1> %m, i32 %evl) 223dc0ae8ceSLian Wang ret <2 x i1> %v 224dc0ae8ceSLian Wang} 225dc0ae8ceSLian Wang 226dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ugt_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 227dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v4i1: 228dc0ae8ceSLian Wang; CHECK: # %bb.0: 229d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 230dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 231dc0ae8ceSLian Wang; CHECK-NEXT: ret 232dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ugt", <4 x i1> %m, i32 %evl) 233dc0ae8ceSLian Wang ret <4 x i1> %v 234dc0ae8ceSLian Wang} 235dc0ae8ceSLian Wang 236dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ugt_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 237dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v8i1: 238dc0ae8ceSLian Wang; CHECK: # %bb.0: 239d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 240dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 241dc0ae8ceSLian Wang; CHECK-NEXT: ret 242dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ugt", <8 x i1> %m, i32 %evl) 243dc0ae8ceSLian Wang ret <8 x i1> %v 244dc0ae8ceSLian Wang} 245dc0ae8ceSLian Wang 246dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ugt_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 247dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ugt_vv_v16i1: 248dc0ae8ceSLian Wang; CHECK: # %bb.0: 249d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 250dc0ae8ceSLian Wang; CHECK-NEXT: vmandn.mm v0, v0, v8 251dc0ae8ceSLian Wang; CHECK-NEXT: ret 252dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ugt", <16 x i1> %m, i32 %evl) 253dc0ae8ceSLian Wang ret <16 x i1> %v 254dc0ae8ceSLian Wang} 255dc0ae8ceSLian Wang 256dc0ae8ceSLian Wangdefine <2 x i1> @icmp_sle_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 257dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v2i1: 258dc0ae8ceSLian Wang; CHECK: # %bb.0: 259d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 260dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 261dc0ae8ceSLian Wang; CHECK-NEXT: ret 262dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sle", <2 x i1> %m, i32 %evl) 263dc0ae8ceSLian Wang ret <2 x i1> %v 264dc0ae8ceSLian Wang} 265dc0ae8ceSLian Wang 266dc0ae8ceSLian Wangdefine <4 x i1> @icmp_sle_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 267dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v4i1: 268dc0ae8ceSLian Wang; CHECK: # %bb.0: 269d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 270dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 271dc0ae8ceSLian Wang; CHECK-NEXT: ret 272dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sle", <4 x i1> %m, i32 %evl) 273dc0ae8ceSLian Wang ret <4 x i1> %v 274dc0ae8ceSLian Wang} 275dc0ae8ceSLian Wang 276dc0ae8ceSLian Wangdefine <8 x i1> @icmp_sle_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 277dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v8i1: 278dc0ae8ceSLian Wang; CHECK: # %bb.0: 279d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 280dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 281dc0ae8ceSLian Wang; CHECK-NEXT: ret 282dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sle", <8 x i1> %m, i32 %evl) 283dc0ae8ceSLian Wang ret <8 x i1> %v 284dc0ae8ceSLian Wang} 285dc0ae8ceSLian Wang 286dc0ae8ceSLian Wangdefine <16 x i1> @icmp_sle_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 287dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sle_vv_v16i1: 288dc0ae8ceSLian Wang; CHECK: # %bb.0: 289d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 290dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 291dc0ae8ceSLian Wang; CHECK-NEXT: ret 292dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sle", <16 x i1> %m, i32 %evl) 293dc0ae8ceSLian Wang ret <16 x i1> %v 294dc0ae8ceSLian Wang} 295dc0ae8ceSLian Wang 296dc0ae8ceSLian Wangdefine <2 x i1> @icmp_ule_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 297dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v2i1: 298dc0ae8ceSLian Wang; CHECK: # %bb.0: 299d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 300dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 301dc0ae8ceSLian Wang; CHECK-NEXT: ret 302dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"ule", <2 x i1> %m, i32 %evl) 303dc0ae8ceSLian Wang ret <2 x i1> %v 304dc0ae8ceSLian Wang} 305dc0ae8ceSLian Wang 306dc0ae8ceSLian Wangdefine <4 x i1> @icmp_ule_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 307dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v4i1: 308dc0ae8ceSLian Wang; CHECK: # %bb.0: 309d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 310dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 311dc0ae8ceSLian Wang; CHECK-NEXT: ret 312dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"ule", <4 x i1> %m, i32 %evl) 313dc0ae8ceSLian Wang ret <4 x i1> %v 314dc0ae8ceSLian Wang} 315dc0ae8ceSLian Wang 316dc0ae8ceSLian Wangdefine <8 x i1> @icmp_ule_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 317dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v8i1: 318dc0ae8ceSLian Wang; CHECK: # %bb.0: 319d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 320dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 321dc0ae8ceSLian Wang; CHECK-NEXT: ret 322dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"ule", <8 x i1> %m, i32 %evl) 323dc0ae8ceSLian Wang ret <8 x i1> %v 324dc0ae8ceSLian Wang} 325dc0ae8ceSLian Wang 326dc0ae8ceSLian Wangdefine <16 x i1> @icmp_ule_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 327dc0ae8ceSLian Wang; CHECK-LABEL: icmp_ule_vv_v16i1: 328dc0ae8ceSLian Wang; CHECK: # %bb.0: 329d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 330dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 331dc0ae8ceSLian Wang; CHECK-NEXT: ret 332dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"ule", <16 x i1> %m, i32 %evl) 333dc0ae8ceSLian Wang ret <16 x i1> %v 334dc0ae8ceSLian Wang} 335dc0ae8ceSLian Wang 336dc0ae8ceSLian Wangdefine <2 x i1> @icmp_sge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 337dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v2i1: 338dc0ae8ceSLian Wang; CHECK: # %bb.0: 339d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 340dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 341dc0ae8ceSLian Wang; CHECK-NEXT: ret 342dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"sge", <2 x i1> %m, i32 %evl) 343dc0ae8ceSLian Wang ret <2 x i1> %v 344dc0ae8ceSLian Wang} 345dc0ae8ceSLian Wang 346dc0ae8ceSLian Wangdefine <4 x i1> @icmp_sge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 347dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v4i1: 348dc0ae8ceSLian Wang; CHECK: # %bb.0: 349d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 350dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 351dc0ae8ceSLian Wang; CHECK-NEXT: ret 352dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"sge", <4 x i1> %m, i32 %evl) 353dc0ae8ceSLian Wang ret <4 x i1> %v 354dc0ae8ceSLian Wang} 355dc0ae8ceSLian Wang 356dc0ae8ceSLian Wangdefine <8 x i1> @icmp_sge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 357dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v8i1: 358dc0ae8ceSLian Wang; CHECK: # %bb.0: 359d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 360dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 361dc0ae8ceSLian Wang; CHECK-NEXT: ret 362dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"sge", <8 x i1> %m, i32 %evl) 363dc0ae8ceSLian Wang ret <8 x i1> %v 364dc0ae8ceSLian Wang} 365dc0ae8ceSLian Wang 366dc0ae8ceSLian Wangdefine <16 x i1> @icmp_sge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 367dc0ae8ceSLian Wang; CHECK-LABEL: icmp_sge_vv_v16i1: 368dc0ae8ceSLian Wang; CHECK: # %bb.0: 369d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 370dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v0, v8 371dc0ae8ceSLian Wang; CHECK-NEXT: ret 372dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"sge", <16 x i1> %m, i32 %evl) 373dc0ae8ceSLian Wang ret <16 x i1> %v 374dc0ae8ceSLian Wang} 375dc0ae8ceSLian Wang 376dc0ae8ceSLian Wangdefine <2 x i1> @icmp_uge_vv_v2i1(<2 x i1> %va, <2 x i1> %vb, <2 x i1> %m, i32 zeroext %evl) { 377dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v2i1: 378dc0ae8ceSLian Wang; CHECK: # %bb.0: 379d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma 380dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 381dc0ae8ceSLian Wang; CHECK-NEXT: ret 382dc0ae8ceSLian Wang %v = call <2 x i1> @llvm.vp.icmp.v2i1(<2 x i1> %va, <2 x i1> %vb, metadata !"uge", <2 x i1> %m, i32 %evl) 383dc0ae8ceSLian Wang ret <2 x i1> %v 384dc0ae8ceSLian Wang} 385dc0ae8ceSLian Wang 386dc0ae8ceSLian Wangdefine <4 x i1> @icmp_uge_vv_v4i1(<4 x i1> %va, <4 x i1> %vb, <4 x i1> %m, i32 zeroext %evl) { 387dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v4i1: 388dc0ae8ceSLian Wang; CHECK: # %bb.0: 389d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma 390dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 391dc0ae8ceSLian Wang; CHECK-NEXT: ret 392dc0ae8ceSLian Wang %v = call <4 x i1> @llvm.vp.icmp.v4i1(<4 x i1> %va, <4 x i1> %vb, metadata !"uge", <4 x i1> %m, i32 %evl) 393dc0ae8ceSLian Wang ret <4 x i1> %v 394dc0ae8ceSLian Wang} 395dc0ae8ceSLian Wang 396dc0ae8ceSLian Wangdefine <8 x i1> @icmp_uge_vv_v8i1(<8 x i1> %va, <8 x i1> %vb, <8 x i1> %m, i32 zeroext %evl) { 397dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v8i1: 398dc0ae8ceSLian Wang; CHECK: # %bb.0: 399d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma 400dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 401dc0ae8ceSLian Wang; CHECK-NEXT: ret 402dc0ae8ceSLian Wang %v = call <8 x i1> @llvm.vp.icmp.v8i1(<8 x i1> %va, <8 x i1> %vb, metadata !"uge", <8 x i1> %m, i32 %evl) 403dc0ae8ceSLian Wang ret <8 x i1> %v 404dc0ae8ceSLian Wang} 405dc0ae8ceSLian Wang 406dc0ae8ceSLian Wangdefine <16 x i1> @icmp_uge_vv_v16i1(<16 x i1> %va, <16 x i1> %vb, <16 x i1> %m, i32 zeroext %evl) { 407dc0ae8ceSLian Wang; CHECK-LABEL: icmp_uge_vv_v16i1: 408dc0ae8ceSLian Wang; CHECK: # %bb.0: 409d89d45caSPhilip Reames; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma 410dc0ae8ceSLian Wang; CHECK-NEXT: vmxnor.mm v0, v8, v0 411dc0ae8ceSLian Wang; CHECK-NEXT: ret 412dc0ae8ceSLian Wang %v = call <16 x i1> @llvm.vp.icmp.v16i1(<16 x i1> %va, <16 x i1> %vb, metadata !"uge", <16 x i1> %m, i32 %evl) 413dc0ae8ceSLian Wang ret <16 x i1> %v 414dc0ae8ceSLian Wang} 415