1 // RUN: %clang -ffixed-point -S -emit-llvm -o - %s | FileCheck %s -check-prefix=DEFAULT
2 // RUN: %clang_cc1 -ffixed-point -fpadding-on-unsigned-fixed-point -S -emit-llvm -o - %s | FileCheck %s -check-prefix=SAME
4 /* The scale for unsigned fixed point types should be the same as that of signed
5 * fixed point types when -fsame-fbits is enabled. */
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
;
15 // DEFAULT: store i16 128, ptr {{.*}}, align 2
16 // DEFAULT: store i32 32768, ptr {{.*}}, align 4
17 // DEFAULT: store i64 2147483648, ptr {{.*}}, align 8
18 // DEFAULT: store i8 -128, ptr {{.*}}, align 1
19 // DEFAULT: store i16 -32768, ptr {{.*}}, align 2
20 // DEFAULT: store i32 -2147483648, ptr {{.*}}, align 4
22 // SAME: store i16 64, ptr {{.*}}, align 2
23 // SAME: store i32 16384, ptr {{.*}}, align 4
24 // SAME: store i64 1073741824, ptr {{.*}}, align 8
25 // SAME: store i8 64, ptr {{.*}}, align 1
26 // SAME: store i16 16384, ptr {{.*}}, align 2
27 // SAME: store i32 1073741824, ptr {{.*}}, align 4