Skip to content

Commit 7b8dcda

Browse files
committed
[RISCV][test] Add tests for extending negated mask
1 parent 837b89f commit 7b8dcda

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2+
; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s | FileCheck %s
3+
; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck %s
4+
5+
define <vscale x 8 x i8> @mask_sext_not_nxv8i8(<vscale x 8 x i1> %m) {
6+
; CHECK-LABEL: mask_sext_not_nxv8i8:
7+
; CHECK: # %bb.0:
8+
; CHECK-NEXT: vsetvli a0, zero, e8, m1, ta, ma
9+
; CHECK-NEXT: vmnot.m v0, v0
10+
; CHECK-NEXT: vmv.v.i v8, 0
11+
; CHECK-NEXT: vmerge.vim v8, v8, -1, v0
12+
; CHECK-NEXT: ret
13+
%n = xor <vscale x 8 x i1> %m, splat (i1 true)
14+
%ext = sext <vscale x 8 x i1> %n to <vscale x 8 x i8>
15+
ret <vscale x 8 x i8> %ext
16+
}
17+
18+
define <vscale x 8 x i8> @mask_zext_not_nxv8i8(<vscale x 8 x i1> %m) {
19+
; CHECK-LABEL: mask_zext_not_nxv8i8:
20+
; CHECK: # %bb.0:
21+
; CHECK-NEXT: vsetvli a0, zero, e8, m1, ta, ma
22+
; CHECK-NEXT: vmnot.m v0, v0
23+
; CHECK-NEXT: vmv.v.i v8, 0
24+
; CHECK-NEXT: vmerge.vim v8, v8, 1, v0
25+
; CHECK-NEXT: ret
26+
%n = xor <vscale x 8 x i1> %m, splat (i1 true)
27+
%ext = zext <vscale x 8 x i1> %n to <vscale x 8 x i8>
28+
ret <vscale x 8 x i8> %ext
29+
}
30+
31+
define <8 x i8> @mask_sext_not_v8i8(<8 x i1> %m) {
32+
; CHECK-LABEL: mask_sext_not_v8i8:
33+
; CHECK: # %bb.0:
34+
; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
35+
; CHECK-NEXT: vmnot.m v0, v0
36+
; CHECK-NEXT: vmv.v.i v8, 0
37+
; CHECK-NEXT: vmerge.vim v8, v8, -1, v0
38+
; CHECK-NEXT: ret
39+
%n = xor <8 x i1> %m, splat (i1 true)
40+
%ext = sext <8 x i1> %n to <8 x i8>
41+
ret <8 x i8> %ext
42+
}
43+
44+
define <8 x i8> @mask_zext_not_v8i8(<8 x i1> %m) {
45+
; CHECK-LABEL: mask_zext_not_v8i8:
46+
; CHECK: # %bb.0:
47+
; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
48+
; CHECK-NEXT: vmnot.m v0, v0
49+
; CHECK-NEXT: vmv.v.i v8, 0
50+
; CHECK-NEXT: vmerge.vim v8, v8, 1, v0
51+
; CHECK-NEXT: ret
52+
%n = xor <8 x i1> %m, splat (i1 true)
53+
%ext = zext <8 x i1> %n to <8 x i8>
54+
ret <8 x i8> %ext
55+
}
56+

0 commit comments

Comments
 (0)