29 lines · c
1// RUN: %clang -ffixed-point -S -emit-llvm -o - %s | FileCheck %s -check-prefix=DEFAULT2// RUN: %clang_cc1 -ffixed-point -fpadding-on-unsigned-fixed-point -emit-llvm -o - %s | FileCheck %s -check-prefix=SAME3 4/* The scale for unsigned fixed point types should be the same as that of signed5 * fixed point types when -fsame-fbits is enabled. */6 7void func(void) {8 unsigned short _Accum u_short_accum = 0.5uhk;9 unsigned _Accum u_accum = 0.5uk;10 unsigned long _Accum u_long_accum = 0.5ulk;11 unsigned short _Fract u_short_fract = 0.5uhr;12 unsigned _Fract u_fract = 0.5ur;13 unsigned long _Fract u_long_fract = 0.5ulr;14 15// DEFAULT: store i16 128, ptr {{.*}}, align 216// DEFAULT: store i32 32768, ptr {{.*}}, align 417// DEFAULT: store i64 2147483648, ptr {{.*}}, align 818// DEFAULT: store i8 -128, ptr {{.*}}, align 119// DEFAULT: store i16 -32768, ptr {{.*}}, align 220// DEFAULT: store i32 -2147483648, ptr {{.*}}, align 421 22// SAME: store i16 64, ptr {{.*}}, align 223// SAME: store i32 16384, ptr {{.*}}, align 424// SAME: store i64 1073741824, ptr {{.*}}, align 825// SAME: store i8 64, ptr {{.*}}, align 126// SAME: store i16 16384, ptr {{.*}}, align 227// SAME: store i32 1073741824, ptr {{.*}}, align 428}29