1 // RUN: %clang_cc1 -ffixed-point -emit-llvm %s -o - -triple=x86_64-unknown-linux-gnu | FileCheck %s
2
3 // Primary fixed point types
func(signed short _Accum)4 void func(signed short _Accum){} // CHECK: @_Z4funcDAs
func(signed _Accum)5 void func(signed _Accum){} // CHECK: @_Z4funcDAi
func(signed long _Accum)6 void func(signed long _Accum){} // CHECK: @_Z4funcDAl
func(unsigned short _Accum)7 void func(unsigned short _Accum){} // CHECK: @_Z4funcDAt
func(unsigned _Accum)8 void func(unsigned _Accum){} // CHECK: @_Z4funcDAj
func(unsigned long _Accum)9 void func(unsigned long _Accum){} // CHECK: @_Z4funcDAm
func(signed short _Fract)10 void func(signed short _Fract){} // CHECK: @_Z4funcDRs
func(signed _Fract)11 void func(signed _Fract){} // CHECK: @_Z4funcDRi
func(signed long _Fract)12 void func(signed long _Fract){} // CHECK: @_Z4funcDRl
func(unsigned short _Fract)13 void func(unsigned short _Fract){} // CHECK: @_Z4funcDRt
func(unsigned _Fract)14 void func(unsigned _Fract){} // CHECK: @_Z4funcDRj
func(unsigned long _Fract)15 void func(unsigned long _Fract){} // CHECK: @_Z4funcDRm
16
17 // Aliased
func2(short _Accum)18 void func2(short _Accum){} // CHECK: @_Z5func2DAs
func2(_Accum)19 void func2(_Accum){} // CHECK: @_Z5func2DAi
func2(long _Accum)20 void func2(long _Accum){} // CHECK: @_Z5func2DAl
func2(short _Fract)21 void func2(short _Fract){} // CHECK: @_Z5func2DRs
func2(_Fract)22 void func2(_Fract){} // CHECK: @_Z5func2DRi
func2(long _Fract)23 void func2(long _Fract){} // CHECK: @_Z5func2DRl
24
25 // Primary saturated
func(_Sat signed short _Accum)26 void func(_Sat signed short _Accum){} // CHECK: @_Z4funcDSDAs
func(_Sat signed _Accum)27 void func(_Sat signed _Accum){} // CHECK: @_Z4funcDSDAi
func(_Sat signed long _Accum)28 void func(_Sat signed long _Accum){} // CHECK: @_Z4funcDSDAl
func(_Sat unsigned short _Accum)29 void func(_Sat unsigned short _Accum){} // CHECK: @_Z4funcDSDAt
func(_Sat unsigned _Accum)30 void func(_Sat unsigned _Accum){} // CHECK: @_Z4funcDSDAj
func(_Sat unsigned long _Accum)31 void func(_Sat unsigned long _Accum){} // CHECK: @_Z4funcDSDAm
func(_Sat signed short _Fract)32 void func(_Sat signed short _Fract){} // CHECK: @_Z4funcDSDRs
func(_Sat signed _Fract)33 void func(_Sat signed _Fract){} // CHECK: @_Z4funcDSDRi
func(_Sat signed long _Fract)34 void func(_Sat signed long _Fract){} // CHECK: @_Z4funcDSDRl
func(_Sat unsigned short _Fract)35 void func(_Sat unsigned short _Fract){} // CHECK: @_Z4funcDSDRt
func(_Sat unsigned _Fract)36 void func(_Sat unsigned _Fract){} // CHECK: @_Z4funcDSDRj
func(_Sat unsigned long _Fract)37 void func(_Sat unsigned long _Fract){} // CHECK: @_Z4funcDSDRm
38
39 // Aliased saturated
func2(_Sat short _Accum)40 void func2(_Sat short _Accum){} // CHECK: @_Z5func2DSDAs
func2(_Sat _Accum)41 void func2(_Sat _Accum){} // CHECK: @_Z5func2DSDAi
func2(_Sat long _Accum)42 void func2(_Sat long _Accum){} // CHECK: @_Z5func2DSDAl
func2(_Sat short _Fract)43 void func2(_Sat short _Fract){} // CHECK: @_Z5func2DSDRs
func2(_Sat _Fract)44 void func2(_Sat _Fract){} // CHECK: @_Z5func2DSDRi
func2(_Sat long _Fract)45 void func2(_Sat long _Fract){} // CHECK: @_Z5func2DSDRl
46