1 // RUN: %clang -ffixed-point -S -emit-llvm -o - %s | FileCheck %s -check-prefix=DEFAULT 2 // RUN: %clang -ffixed-point -fsame-fbits -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() { 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, i16* %u_short_accum, align 2 16 // DEFAULT: store i32 32768, i32* %u_accum, align 4 17 // DEFAULT: store i64 2147483648, i64* %u_long_accum, align 8 18 // DEFAULT: store i8 -128, i8* %u_short_fract, align 1 19 // DEFAULT: store i16 -32768, i16* %u_fract, align 2 20 // DEFAULT: store i32 -2147483648, i32* %u_long_fract, align 4 21 22 // SAME: store i16 64, i16* %u_short_accum, align 2 23 // SAME: store i32 16384, i32* %u_accum, align 4 24 // SAME: store i64 1073741824, i64* %u_long_accum, align 8 25 // SAME: store i8 64, i8* %u_short_fract, align 1 26 // SAME: store i16 16384, i16* %u_fract, align 2 27 // SAME: store i32 1073741824, i32* %u_long_fract, align 4 28 } 29