88 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py2// RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=1 -mvscale-max=1 -O1 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-643// RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=2 -mvscale-max=2 -O1 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-1284 5// REQUIRES: riscv-registered-target6 7#include <stdint.h>8 9typedef __rvv_bool8_t vbool8_t;10typedef __rvv_bool16_t vbool16_t;11typedef __rvv_bool32_t vbool32_t;12typedef __rvv_bool64_t vbool64_t;13typedef vbool8_t fixed_bool8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen/8)));14typedef vbool16_t fixed_bool16_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen/16)));15typedef vbool32_t fixed_bool32_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen/32)));16typedef vbool64_t fixed_bool64_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen/64)));17 18// CHECK-64-LABEL: @from_vbool8_t(19// CHECK-64-NEXT: entry:20// CHECK-64-NEXT: ret <vscale x 8 x i1> [[TYPE:%.*]]21//22// CHECK-128-LABEL: @from_vbool8_t(23// CHECK-128-NEXT: entry:24// CHECK-128-NEXT: ret <vscale x 8 x i1> [[TYPE:%.*]]25//26fixed_bool8_t from_vbool8_t(vbool8_t type) {27 return type;28}29 30// CHECK-64-LABEL: @from_vbool16_t(31// CHECK-64-NEXT: entry:32// CHECK-64-NEXT: ret <vscale x 4 x i1> [[TYPE:%.*]]33//34// CHECK-128-LABEL: @from_vbool16_t(35// CHECK-128-NEXT: entry:36// CHECK-128-NEXT: ret <vscale x 4 x i1> [[TYPE:%.*]]37//38fixed_bool16_t from_vbool16_t(vbool16_t type) {39 return type;40}41// CHECK-64-LABEL: @from_vbool32_t(42// CHECK-64-NEXT: entry:43// CHECK-64-NEXT: ret <vscale x 2 x i1> [[TYPE:%.*]]44//45// CHECK-128-LABEL: @from_vbool32_t(46// CHECK-128-NEXT: entry:47// CHECK-128-NEXT: ret <vscale x 2 x i1> [[TYPE:%.*]]48//49fixed_bool32_t from_vbool32_t(vbool32_t type) {50 return type;51}52 53// CHECK-64-LABEL: @to_vbool32_t(54// CHECK-64-NEXT: entry:55// CHECK-64-NEXT: ret <vscale x 2 x i1> [[TMP0:%.*]]56//57// CHECK-128-LABEL: @to_vbool32_t(58// CHECK-128-NEXT: entry:59// CHECK-128-NEXT: ret <vscale x 2 x i1> [[TMP0:%.*]]60//61vbool32_t to_vbool32_t(fixed_bool32_t type) {62 return type;63}64 65// CHECK-64-LABEL: @from_vbool64_t(66// CHECK-64-NEXT: entry:67// CHECK-64-NEXT: ret <vscale x 1 x i1> [[TYPE:%.*]]68//69// CHECK-128-LABEL: @from_vbool64_t(70// CHECK-128-NEXT: entry:71// CHECK-128-NEXT: ret <vscale x 1 x i1> [[TYPE:%.*]]72//73fixed_bool64_t from_vbool64_t(vbool64_t type) {74 return type;75}76 77// CHECK-64-LABEL: @to_vbool64_t(78// CHECK-64-NEXT: entry:79// CHECK-64-NEXT: ret <vscale x 1 x i1> [[TMP0:%.*]]80//81// CHECK-128-LABEL: @to_vbool64_t(82// CHECK-128-NEXT: entry:83// CHECK-128-NEXT: ret <vscale x 1 x i1> [[TMP0:%.*]]84//85vbool64_t to_vbool64_t(fixed_bool64_t type) {86 return type;87}88