RISC-V: Support integer FMA/FNMA VLS modes autovectorization
[official-gcc.git] / gcc / testsuite / gcc.target / riscv / rvv / autovec / vls / fma-2.c
blobddc4b552fc7b32925b310938f64e42d6ec523b75
1 /* { dg-do compile } */
2 /* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
4 #include "def.h"
6 DEF_FMA_VV (fma, 2, int16_t)
7 DEF_FMA_VV (fma, 4, int16_t)
8 DEF_FMA_VV (fma, 8, int16_t)
9 DEF_FMA_VV (fma, 16, int16_t)
10 DEF_FMA_VV (fma, 32, int16_t)
11 DEF_FMA_VV (fma, 64, int16_t)
12 DEF_FMA_VV (fma, 128, int16_t)
13 DEF_FMA_VV (fma, 256, int16_t)
14 DEF_FMA_VV (fma, 512, int16_t)
15 DEF_FMA_VV (fma, 1024, int16_t)
16 DEF_FMA_VV (fma, 2048, int16_t)
18 DEF_FMA_VV (fma, 2, uint16_t)
19 DEF_FMA_VV (fma, 4, uint16_t)
20 DEF_FMA_VV (fma, 8, uint16_t)
21 DEF_FMA_VV (fma, 16, uint16_t)
22 DEF_FMA_VV (fma, 32, uint16_t)
23 DEF_FMA_VV (fma, 64, uint16_t)
24 DEF_FMA_VV (fma, 128, uint16_t)
25 DEF_FMA_VV (fma, 256, uint16_t)
26 DEF_FMA_VV (fma, 512, uint16_t)
27 DEF_FMA_VV (fma, 1024, uint16_t)
28 DEF_FMA_VV (fma, 2048, uint16_t)
30 /* { dg-final { scan-assembler-times {vma[c-d][c-d]\.vv} 22 } } */
31 /* { dg-final { scan-assembler-not {csrr} } } */
32 /* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
33 /* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
34 /* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
35 /* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
36 /* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
37 /* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
38 /* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
39 /* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
40 /* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
41 /* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
42 /* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
43 /* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */