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 3 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. */ 6 7 void 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 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 21 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 28 } 29