xref: /llvm-project/llvm/test/CodeGen/VE/Packed/mask_binary.ll (revision cf964eb5bd666c870cc21963fc5bf017699c29d7)
1*cf964eb5SSimon Moll; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*cf964eb5SSimon Moll; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s
3*cf964eb5SSimon Moll
4*cf964eb5SSimon Moll; Function Attrs: nounwind
5*cf964eb5SSimon Molldefine fastcc <512 x i1> @and_mm_v512i1(<512 x i1> %x, <512 x i1> %y) {
6*cf964eb5SSimon Moll; CHECK-LABEL: and_mm_v512i1:
7*cf964eb5SSimon Moll; CHECK:       # %bb.0:
8*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm6, %vm2, %vm4
9*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm7, %vm3, %vm5
10*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm2, %vm0, %vm6
11*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm3, %vm0, %vm7
12*cf964eb5SSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
13*cf964eb5SSimon Moll  %z = and <512 x i1> %x, %y
14*cf964eb5SSimon Moll  ret <512 x i1> %z
15*cf964eb5SSimon Moll}
16*cf964eb5SSimon Moll
17*cf964eb5SSimon Moll; Function Attrs: nounwind
18*cf964eb5SSimon Molldefine fastcc <512 x i1> @or_mm_v512i1(<512 x i1> %x, <512 x i1> %y) {
19*cf964eb5SSimon Moll; CHECK-LABEL: or_mm_v512i1:
20*cf964eb5SSimon Moll; CHECK:       # %bb.0:
21*cf964eb5SSimon Moll; CHECK-NEXT:    orm %vm6, %vm2, %vm4
22*cf964eb5SSimon Moll; CHECK-NEXT:    orm %vm7, %vm3, %vm5
23*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm2, %vm0, %vm6
24*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm3, %vm0, %vm7
25*cf964eb5SSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
26*cf964eb5SSimon Moll  %z = or <512 x i1> %x, %y
27*cf964eb5SSimon Moll  ret <512 x i1> %z
28*cf964eb5SSimon Moll}
29*cf964eb5SSimon Moll
30*cf964eb5SSimon Moll; Function Attrs: nounwind
31*cf964eb5SSimon Molldefine fastcc <512 x i1> @xor_mm_v512i1(<512 x i1> %x, <512 x i1> %y) {
32*cf964eb5SSimon Moll; CHECK-LABEL: xor_mm_v512i1:
33*cf964eb5SSimon Moll; CHECK:       # %bb.0:
34*cf964eb5SSimon Moll; CHECK-NEXT:    xorm %vm6, %vm2, %vm4
35*cf964eb5SSimon Moll; CHECK-NEXT:    xorm %vm7, %vm3, %vm5
36*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm2, %vm0, %vm6
37*cf964eb5SSimon Moll; CHECK-NEXT:    andm %vm3, %vm0, %vm7
38*cf964eb5SSimon Moll; CHECK-NEXT:    b.l.t (, %s10)
39*cf964eb5SSimon Moll  %z = xor <512 x i1> %x, %y
40*cf964eb5SSimon Moll  ret <512 x i1> %z
41*cf964eb5SSimon Moll}
42*cf964eb5SSimon Moll
43