xref: /llvm-project/clang/test/CodeGen/RISCV/vector-bits-vscale-range.c (revision e9f53e4095d8a8600b5c5d445c73e2d5a6f45abb)
1*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64x -mvscale-min=1 -mvscale-max=1 -emit-llvm -o - %s | FileCheck %s -D#VBITS=1
2*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=2 -mvscale-max=2 -emit-llvm -o - %s | FileCheck %s -D#VBITS=2
3*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=4 -mvscale-max=4 -emit-llvm -o - %s | FileCheck %s -D#VBITS=4
4*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=8 -mvscale-max=8 -emit-llvm -o - %s | FileCheck %s -D#VBITS=8
5*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=16 -mvscale-max=16 -emit-llvm -o - %s | FileCheck %s -D#VBITS=16
6*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64x -mvscale-min=1 -emit-llvm -o - %s | FileCheck %s -D#VBITS=1 --check-prefix=CHECK-NOMAX
7*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=2 -emit-llvm -o - %s | FileCheck %s -D#VBITS=2 --check-prefix=CHECK-NOMAX
8*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=4 -emit-llvm -o - %s | FileCheck %s -D#VBITS=4 --check-prefix=CHECK-NOMAX
9*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=8 -emit-llvm -o - %s | FileCheck %s -D#VBITS=8 --check-prefix=CHECK-NOMAX
10*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -mvscale-min=16 -emit-llvm -o - %s | FileCheck %s -D#VBITS=16 --check-prefix=CHECK-NOMAX
11*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64x -mvscale-min=1 -mvscale-max=0 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-UNBOUNDED
12*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-V
13*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +v -target-feature +zvl512b -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-ZVL
14*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64x -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-ZVE64
15*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64f -target-feature +f -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-ZVE64
16*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve64d -target-feature +f -target-feature +d -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-ZVE64
17*e9f53e40SFangrui Song // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +zve32x -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-ZVE32
18*e9f53e40SFangrui Song 
19*e9f53e40SFangrui Song // CHECK-LABEL: @func() #0
20*e9f53e40SFangrui Song // CHECK: attributes #0 = { {{.*}} vscale_range([[#VBITS]],[[#VBITS]]) {{.*}} }
21*e9f53e40SFangrui Song // CHECK-NOMAX: attributes #0 = { {{.*}} vscale_range([[#VBITS]],0) {{.*}} }
22*e9f53e40SFangrui Song // CHECK-UNBOUNDED: attributes #0 = { {{.*}} vscale_range(1,0) {{.*}} }
23*e9f53e40SFangrui Song // CHECK-V: attributes #0 = { {{.*}} vscale_range(2,1024) {{.*}} }
24*e9f53e40SFangrui Song // CHECK-ZVL: attributes #0 = { {{.*}} vscale_range(8,1024) {{.*}} }
25*e9f53e40SFangrui Song // CHECK-ZVE64: attributes #0 = { {{.*}} vscale_range(1,1024) {{.*}} }
26*e9f53e40SFangrui Song // CHECK-ZVE32: attributes #0
27*e9f53e40SFangrui Song // CHECK-ZVE32-NOT: vscale_range
func(void)28*e9f53e40SFangrui Song void func(void) {}
29