xref: /llvm-project/llvm/test/CodeGen/RISCV/rvv/variant-cc.ll (revision 982a586ab481d5470a732c8eec898cb72d789b0e)
1*982a586aSYeting Kuo; RUN: llc -mtriple=riscv64 -mattr=+v -o - %s | FileCheck %s --check-prefix=CHECK-ASM
2*982a586aSYeting Kuo; RUN: llc -mtriple=riscv64 -mattr=+v -filetype=obj -o - %s \
3*982a586aSYeting Kuo; RUN:   | llvm-readobj --symbols - | FileCheck %s --check-prefix=CHECK-OBJ
4*982a586aSYeting Kuo
5*982a586aSYeting Kuodefine i32 @base_cc() {
6*982a586aSYeting Kuo; CHECK-ASM-LABEL: base_cc:
7*982a586aSYeting Kuo; CHECK-ASM-NOT: .variant_cc
8*982a586aSYeting Kuo; CHECK-OBJ-LABEL: Name: base_cc
9*982a586aSYeting Kuo; CHECK-OBJ: Other: 0
10*982a586aSYeting Kuo  ret i32 42
11*982a586aSYeting Kuo}
12*982a586aSYeting Kuo
13*982a586aSYeting Kuodefine <4 x i32> @fixed_vector_cc_1(<4 x i32> %arg) {
14*982a586aSYeting Kuo; CHECK-ASM: .variant_cc fixed_vector_cc_1
15*982a586aSYeting Kuo; CHECK-ASM-NEXT: fixed_vector_cc_1:
16*982a586aSYeting Kuo; CHECK-OBJ-LABEL: Name: fixed_vector_cc_1
17*982a586aSYeting Kuo; CHECK-OBJ: Other [ (0x80)
18*982a586aSYeting Kuo  ret <4 x i32> %arg
19*982a586aSYeting Kuo}
20*982a586aSYeting Kuo
21*982a586aSYeting Kuodefine <vscale x 4 x i32> @rvv_vector_cc_1() {
22*982a586aSYeting Kuo; CHECK-ASM: .variant_cc rvv_vector_cc_1
23*982a586aSYeting Kuo; CHECK-ASM-NEXT: rvv_vector_cc_1:
24*982a586aSYeting Kuo; CHECK-OBJ-LABEL: Name: rvv_vector_cc_1
25*982a586aSYeting Kuo; CHECK-OBJ: Other [ (0x80)
26*982a586aSYeting Kuo  ret <vscale x 4 x i32> undef
27*982a586aSYeting Kuo}
28*982a586aSYeting Kuo
29*982a586aSYeting Kuodefine <vscale x 4 x i1> @rvv_vector_cc_2() {
30*982a586aSYeting Kuo; CHECK-ASM: .variant_cc rvv_vector_cc_2
31*982a586aSYeting Kuo; CHECK-ASM-NEXT: rvv_vector_cc_2:
32*982a586aSYeting Kuo; CHECK-OBJ-LABEL: Name: rvv_vector_cc_2
33*982a586aSYeting Kuo; CHECK-OBJ: Other [ (0x80)
34*982a586aSYeting Kuo  ret <vscale x 4 x i1> undef
35*982a586aSYeting Kuo}
36*982a586aSYeting Kuo
37*982a586aSYeting Kuodefine void @rvv_vector_cc_3(<vscale x 4 x i32> %arg) {
38*982a586aSYeting Kuo; CHECK-ASM: .variant_cc rvv_vector_cc_3
39*982a586aSYeting Kuo; CHECK-ASM-NEXT: rvv_vector_cc_3:
40*982a586aSYeting Kuo; CHECK-OBJ-LABEL: Name: rvv_vector_cc_3
41*982a586aSYeting Kuo; CHECK-OBJ: Other [ (0x80)
42*982a586aSYeting Kuo  ret void
43*982a586aSYeting Kuo}
44*982a586aSYeting Kuo
45*982a586aSYeting Kuodefine void @rvv_vector_cc_4(<vscale x 4 x i1> %arg) {
46*982a586aSYeting Kuo; CHECK-ASM: .variant_cc rvv_vector_cc_4
47*982a586aSYeting Kuo; CHECK-ASM-NEXT: rvv_vector_cc_4:
48*982a586aSYeting Kuo; CHECK-OBJ-LABEL: Name: rvv_vector_cc_4
49*982a586aSYeting Kuo; CHECK-OBJ: Other [ (0x80)
50*982a586aSYeting Kuo  ret void
51*982a586aSYeting Kuo}
52