xref: /llvm-project/clang/test/CodeGen/X86/amx_tf32_errors.c (revision eddb79d56dd50bc6832c7d906ab4a0df2ae1d846)
1*eddb79d5SFeng Zou // RUN: %clang_cc1 %s -ffreestanding -triple=x86_64-unknown-unknown \
2*eddb79d5SFeng Zou // RUN: -target-feature +amx-tf32 -target-feature +amx-transpose -verify
3*eddb79d5SFeng Zou 
4*eddb79d5SFeng Zou #include <immintrin.h>
5*eddb79d5SFeng Zou #include <stddef.h>
6*eddb79d5SFeng Zou 
7*eddb79d5SFeng Zou void test_tile_mmultf32ps() {
8*eddb79d5SFeng Zou   _tile_mmultf32ps(16, 2, 3); // expected-error {{argument value 16 is outside the valid range [0, 7]}}
9*eddb79d5SFeng Zou   _tile_mmultf32ps(1, 26, 3); // expected-error {{argument value 26 is outside the valid range [0, 7]}}
10*eddb79d5SFeng Zou   _tile_mmultf32ps(1, 2, 36); // expected-error {{argument value 36 is outside the valid range [0, 7]}}
11*eddb79d5SFeng Zou   _tile_mmultf32ps(1, 1, 3);  // expected-error {{tile arguments must refer to different tiles}}
12*eddb79d5SFeng Zou   _tile_mmultf32ps(1, 2, 1);  // expected-error {{tile arguments must refer to different tiles}}
13*eddb79d5SFeng Zou   _tile_mmultf32ps(1, 3, 3);  // expected-error {{tile arguments must refer to different tiles}}
14*eddb79d5SFeng Zou }
15*eddb79d5SFeng Zou 
16*eddb79d5SFeng Zou void test_tile_tmmultf32ps() {
17*eddb79d5SFeng Zou   _tile_tmmultf32ps(16, 2, 3); // expected-error {{argument value 16 is outside the valid range [0, 7]}}
18*eddb79d5SFeng Zou   _tile_tmmultf32ps(1, 26, 3); // expected-error {{argument value 26 is outside the valid range [0, 7]}}
19*eddb79d5SFeng Zou   _tile_tmmultf32ps(1, 2, 36); // expected-error {{argument value 36 is outside the valid range [0, 7]}}
20*eddb79d5SFeng Zou   _tile_tmmultf32ps(1, 1, 3);  // expected-error {{tile arguments must refer to different tiles}}
21*eddb79d5SFeng Zou   _tile_tmmultf32ps(1, 2, 1);  // expected-error {{tile arguments must refer to different tiles}}
22*eddb79d5SFeng Zou   _tile_tmmultf32ps(1, 2, 2);  // expected-error {{tile arguments must refer to different tiles}}
23*eddb79d5SFeng Zou }
24