aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/convert-3.c
blob: 6d74bdd35d48e7b3a59d74a55efff415e5f79c3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* { dg-do compile } */
/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */

#include "def.h"

DEF_CONVERT (fwcvt, _Float16, int32_t, 4)
DEF_CONVERT (fwcvt, _Float16, int32_t, 16)
DEF_CONVERT (fwcvt, _Float16, int32_t, 32)
DEF_CONVERT (fwcvt, _Float16, int32_t, 64)
DEF_CONVERT (fwcvt, _Float16, int32_t, 128)
DEF_CONVERT (fwcvt, _Float16, int32_t, 256)
DEF_CONVERT (fwcvt, _Float16, int32_t, 512)
DEF_CONVERT (fwcvt, _Float16, int32_t, 1024)
DEF_CONVERT (fwcvt, _Float16, int32_t, 2048)

DEF_CONVERT (fwcvt, _Float16, uint32_t, 4)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 16)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 32)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 64)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 128)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 256)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 512)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 1024)
DEF_CONVERT (fwcvt, _Float16, uint32_t, 2048)

DEF_CONVERT (fwcvt, float, int64_t, 4)
DEF_CONVERT (fwcvt, float, int64_t, 16)
DEF_CONVERT (fwcvt, float, int64_t, 32)
DEF_CONVERT (fwcvt, float, int64_t, 64)
DEF_CONVERT (fwcvt, float, int64_t, 128)
DEF_CONVERT (fwcvt, float, int64_t, 256)
DEF_CONVERT (fwcvt, float, int64_t, 512)
DEF_CONVERT (fwcvt, float, int64_t, 1024)

DEF_CONVERT (fwcvt, float, uint64_t, 4)
DEF_CONVERT (fwcvt, float, uint64_t, 16)
DEF_CONVERT (fwcvt, float, uint64_t, 32)
DEF_CONVERT (fwcvt, float, uint64_t, 64)
DEF_CONVERT (fwcvt, float, uint64_t, 128)
DEF_CONVERT (fwcvt, float, uint64_t, 256)
DEF_CONVERT (fwcvt, float, uint64_t, 512)
DEF_CONVERT (fwcvt, float, uint64_t, 1024)

/* { dg-final { scan-assembler-times {vfwcvt\.rtz\.x\.f\.v} 19 } } */
/* { dg-final { scan-assembler-times {vfwcvt\.rtz\.xu\.f\.v} 19 } } */
/* { dg-final { scan-assembler-not {csrr} } } */
/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */