// RUN: %clang_cc1 -ffixed-point -emit-llvm %s -o - -triple=x86_64-unknown-linux-gnu | FileCheck %s
// Primary fixed point types
void func(signed short _Accum){} // CHECK: @_Z4funcDAs
void func(signed _Accum){} // CHECK: @_Z4funcDAi
void func(signed long _Accum){} // CHECK: @_Z4funcDAl
void func(unsigned short _Accum){} // CHECK: @_Z4funcDAt
void func(unsigned _Accum){} // CHECK: @_Z4funcDAj
void func(unsigned long _Accum){} // CHECK: @_Z4funcDAm
void func(signed short _Fract){} // CHECK: @_Z4funcDRs
void func(signed _Fract){} // CHECK: @_Z4funcDRi
void func(signed long _Fract){} // CHECK: @_Z4funcDRl
void func(unsigned short _Fract){} // CHECK: @_Z4funcDRt
void func(unsigned _Fract){} // CHECK: @_Z4funcDRj
void func(unsigned long _Fract){} // CHECK: @_Z4funcDRm
// Aliased
void func2(short _Accum){} // CHECK: @_Z5func2DAs
void func2(_Accum){} // CHECK: @_Z5func2DAi
void func2(long _Accum){} // CHECK: @_Z5func2DAl
void func2(short _Fract){} // CHECK: @_Z5func2DRs
void func2(_Fract){} // CHECK: @_Z5func2DRi
void func2(long _Fract){} // CHECK: @_Z5func2DRl
// Primary saturated
void func(_Sat signed short _Accum){} // CHECK: @_Z4funcDSDAs
void func(_Sat signed _Accum){} // CHECK: @_Z4funcDSDAi
void func(_Sat signed long _Accum){} // CHECK: @_Z4funcDSDAl
void func(_Sat unsigned short _Accum){} // CHECK: @_Z4funcDSDAt
void func(_Sat unsigned _Accum){} // CHECK: @_Z4funcDSDAj
void func(_Sat unsigned long _Accum){} // CHECK: @_Z4funcDSDAm
void func(_Sat signed short _Fract){} // CHECK: @_Z4funcDSDRs
void func(_Sat signed _Fract){} // CHECK: @_Z4funcDSDRi
void func(_Sat signed long _Fract){} // CHECK: @_Z4funcDSDRl
void func(_Sat unsigned short _Fract){} // CHECK: @_Z4funcDSDRt
void func(_Sat unsigned _Fract){} // CHECK: @_Z4funcDSDRj
void func(_Sat unsigned long _Fract){} // CHECK: @_Z4funcDSDRm
// Aliased saturated
void func2(_Sat short _Accum){} // CHECK: @_Z5func2DSDAs
void func2(_Sat _Accum){} // CHECK: @_Z5func2DSDAi
void func2(_Sat long _Accum){} // CHECK: @_Z5func2DSDAl
void func2(_Sat short _Fract){} // CHECK: @_Z5func2DSDRs
void func2(_Sat _Fract){} // CHECK: @_Z5func2DSDRi
void func2(_Sat long _Fract){} // CHECK: @_Z5func2DSDRl