| /* PR target/110762 */ |
| /* { dg-do compile { target { ! ia32 } } } */ |
| /* { dg-options "-O2 -mavx512fp16 -mavx512vl -dp" } */ |
| |
| typedef _Float16 v4hf __attribute__((vector_size(8))); |
| typedef _Float16 v2hf __attribute__((vector_size(4))); |
| |
| v4hf |
| foo (v4hf a, v4hf b) |
| { |
| return a + b; |
| } |
| |
| v4hf |
| foo2 (v4hf a, v4hf b) |
| { |
| return a - b; |
| } |
| |
| v4hf |
| foo3 (v4hf a, v4hf b) |
| { |
| return a * b; |
| } |
| |
| v4hf |
| foo1 (v4hf a, v4hf b) |
| { |
| return a / b; |
| } |
| |
| v2hf |
| foo4 (v2hf a, v2hf b) |
| { |
| return a + b; |
| } |
| |
| v2hf |
| foo5 (v2hf a, v2hf b) |
| { |
| return a - b; |
| } |
| |
| v2hf |
| foo6 (v2hf a, v2hf b) |
| { |
| return a * b; |
| } |
| |
| v2hf |
| foo7 (v2hf a, v2hf b) |
| { |
| return a / b; |
| } |
| |
| /* { dg-final { scan-assembler-times "\\*vec_concatv8hf_0" 7 } } */ |
| /* { dg-final { scan-assembler-times "\\*vec_concatv8hf_movss" 8 } } */ |