1 // Fix sign conversion warnings found by fsanitize=implicit-integer-sign-change 2 // in intrinsic headers. 3 // Preprocess file to workaround no warnings in system headers. 4 // RUN: %clang_cc1 %s -triple x86_64-pc-linux-gnu -ffreestanding -E -CC 2>&1 \ 5 // RUN: | %clang_cc1 -x c - -triple x86_64-pc-linux-gnu -Wsign-conversion -fsyntax-only -verify 6 // REQUIRES: x86-registered-target 7 8 #include <x86intrin.h> 9 test0(void)10void test0(void) { 11 // expected-no-diagnostics 12 _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); 13 _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_OFF); 14 _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_MASK); 15 16 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_INVALID); 17 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_DENORM); 18 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_DIV_ZERO); 19 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_OVERFLOW); 20 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_UNDERFLOW); 21 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_INEXACT); 22 _MM_SET_EXCEPTION_STATE(_MM_EXCEPT_MASK); 23 24 _MM_SET_EXCEPTION_MASK(_MM_MASK_INVALID); 25 _MM_SET_EXCEPTION_MASK(_MM_MASK_DENORM); 26 _MM_SET_EXCEPTION_MASK(_MM_MASK_DIV_ZERO); 27 _MM_SET_EXCEPTION_MASK(_MM_MASK_OVERFLOW); 28 _MM_SET_EXCEPTION_MASK(_MM_MASK_UNDERFLOW); 29 _MM_SET_EXCEPTION_MASK(_MM_MASK_INEXACT); 30 _MM_SET_EXCEPTION_MASK(_MM_MASK_MASK); 31 32 _MM_SET_ROUNDING_MODE(_MM_ROUND_NEAREST); 33 _MM_SET_ROUNDING_MODE(_MM_ROUND_DOWN); 34 _MM_SET_ROUNDING_MODE(_MM_ROUND_UP); 35 _MM_SET_ROUNDING_MODE(_MM_ROUND_TOWARD_ZERO); 36 _MM_SET_ROUNDING_MODE(_MM_ROUND_MASK); 37 38 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_MASK); 39 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); 40 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_OFF); 41 } 42