IntCtrl_Ip_GenerateDirectedCpuInterrupt (IRQn_Type eIrqNumber, IntCtrl_Ip_IrqTargetType eCpuTarget)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_GenerateDirectedCpuInterruptPrivileged (eIrqNumber_2(D), eCpuTarget_3(D));
  return;

}


IntCtrl_Ip_GetDirectedCpuInterrupt (IRQn_Type eIrqNumber)
{
  long unsigned int _1;
  _Bool _2;
  boolean _6;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = IntCtrl_Ip_GetDirectedCpuInterruptPrivileged (eIrqNumber_4(D));
  _2 = _1 != 0;
  _6 = (boolean) _2;
  return _6;

}


IntCtrl_Ip_ClearDirectedCpuInterrupt (IRQn_Type eIrqNumber)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_ClearDirectedCpuInterruptPrivileged (eIrqNumber_2(D));
  return;

}


IntCtrl_Ip_ClearPending (IRQn_Type eIrqNumber)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_ClearPendingPrivileged (eIrqNumber_2(D));
  return;

}


IntCtrl_Ip_GetPriority (IRQn_Type eIrqNumber)
{
  uint8 _4;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _4 = IntCtrl_Ip_GetPriorityPrivileged (eIrqNumber_2(D));
  return _4;

}


IntCtrl_Ip_SetPriority (IRQn_Type eIrqNumber, uint8 u8Priority)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_SetPriorityPrivileged (eIrqNumber_2(D), u8Priority_3(D));
  return;

}


IntCtrl_Ip_DisableIrq (IRQn_Type eIrqNumber)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_DisableIrqPrivileged (eIrqNumber_2(D));
  return;

}


IntCtrl_Ip_EnableIrq (IRQn_Type eIrqNumber)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_EnableIrqPrivileged (eIrqNumber_2(D));
  return;

}


IntCtrl_Ip_InstallHandler (IRQn_Type eIrqNumber, void (*IntCtrl_Ip_IrqHandlerType) (void) pfNewHandler, void (*IntCtrl_Ip_IrqHandlerType) (void) * const pfOldHandler)
{
  <bb 2> :
  # DEBUG BEGIN_STMT
  IntCtrl_Ip_InstallHandlerPrivileged (eIrqNumber_2(D), pfNewHandler_3(D), pfOldHandler_4(D));
  return;

}


IntCtrl_Ip_Init (const struct IntCtrl_Ip_CtrlConfigType * pIntCtrlCtrlConfig)
{
  uint32 irqIdx;
  const struct IntCtrl_Ip_IrqConfigType * _1;
  long unsigned int _2;
  const struct IntCtrl_Ip_IrqConfigType * _3;
  <unnamed type> _4;
  const struct IntCtrl_Ip_IrqConfigType * _5;
  long unsigned int _6;
  const struct IntCtrl_Ip_IrqConfigType * _7;
  <unnamed type> _8;
  const struct IntCtrl_Ip_IrqConfigType * _9;
  long unsigned int _10;
  const struct IntCtrl_Ip_IrqConfigType * _11;
  unsigned char _12;
  const struct IntCtrl_Ip_IrqConfigType * _13;
  long unsigned int _14;
  const struct IntCtrl_Ip_IrqConfigType * _15;
  unsigned char _16;
  const struct IntCtrl_Ip_IrqConfigType * _17;
  long unsigned int _18;
  const struct IntCtrl_Ip_IrqConfigType * _19;
  <unnamed type> _20;
  const struct IntCtrl_Ip_IrqConfigType * _21;
  long unsigned int _22;
  const struct IntCtrl_Ip_IrqConfigType * _23;
  <unnamed type> _24;
  long unsigned int _25;
  IntCtrl_Ip_StatusType _32;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  irqIdx_29 = 0;
  # DEBUG irqIdx => irqIdx_29
  goto <bb 7>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _1 = pIntCtrlCtrlConfig_31(D)->aIrqConfig;
  _2 = irqIdx_26 * 4;
  _3 = _1 + _2;
  _4 = _3->eIrqNumber;
  IntCtrl_Ip_ClearPending (_4);
  # DEBUG BEGIN_STMT
  _5 = pIntCtrlCtrlConfig_31(D)->aIrqConfig;
  _6 = irqIdx_26 * 4;
  _7 = _5 + _6;
  _8 = _7->eIrqNumber;
  _9 = pIntCtrlCtrlConfig_31(D)->aIrqConfig;
  _10 = irqIdx_26 * 4;
  _11 = _9 + _10;
  _12 = _11->u8IrqPriority;
  IntCtrl_Ip_SetPriority (_8, _12);
  # DEBUG BEGIN_STMT
  _13 = pIntCtrlCtrlConfig_31(D)->aIrqConfig;
  _14 = irqIdx_26 * 4;
  _15 = _13 + _14;
  _16 = _15->bIrqEnabled;
  if (_16 != 0)
    goto <bb 4>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  _17 = pIntCtrlCtrlConfig_31(D)->aIrqConfig;
  _18 = irqIdx_26 * 4;
  _19 = _17 + _18;
  _20 = _19->eIrqNumber;
  IntCtrl_Ip_EnableIrq (_20);
  goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _21 = pIntCtrlCtrlConfig_31(D)->aIrqConfig;
  _22 = irqIdx_26 * 4;
  _23 = _21 + _22;
  _24 = _23->eIrqNumber;
  IntCtrl_Ip_DisableIrq (_24);

  <bb 6> :
  # DEBUG BEGIN_STMT
  irqIdx_37 = irqIdx_26 + 1;
  # DEBUG irqIdx => irqIdx_37

  <bb 7> :
  # irqIdx_26 = PHI <irqIdx_29(2), irqIdx_37(6)>
  # DEBUG irqIdx => irqIdx_26
  # DEBUG BEGIN_STMT
  _25 = pIntCtrlCtrlConfig_31(D)->u32ConfigIrqCount;
  if (irqIdx_26 < _25)
    goto <bb 3>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  _32 = 0;
  return _32;

}


IntCtrl_Ip_GenerateDirectedCpuInterruptPrivileged (IRQn_Type eIrqNumber, IntCtrl_Ip_IrqTargetType eCpuTarget)
{
  uint32 irqId;
  uint32 target;
  uint32 core;
  long unsigned int _1;
  unsigned char _2;
  struct MSCM_Type * _3;
  long unsigned int _4;
  long unsigned int _5;
  volatile struct MSCM_IRCPnIRx_Type * _6;
  struct MSCM_Type * _7;
  long unsigned int _8;
  volatile struct MSCM_IRCPnIRx_Type * _9;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) eIrqNumber_15(D);
  _2 = aMscmCore2CoreIrqId[_1];
  irqId_17 = (uint32) _2;
  # DEBUG irqId => irqId_17
  # DEBUG BEGIN_STMT
  if (eCpuTarget_18(D) == -1)
    goto <bb 3>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  core_22 = 0;
  # DEBUG core => core_22
  goto <bb 7>; [INV]

  <bb 4> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = 1075412992B;
  _4 ={v} _3->CPXNUM;
  _5 = _4 & 255;
  if (core_10 != _5)
    goto <bb 5>; [INV]
  else
    goto <bb 6>; [INV]

  <bb 5> :
  # DEBUG BEGIN_STMT
  _6 = 1075415648B;
  _6->IRCPnIRx[core_10][irqId_17].IGR ={v} 1;

  <bb 6> :
  # DEBUG BEGIN_STMT
  core_24 = core_10 + 1;
  # DEBUG core => core_24

  <bb 7> :
  # core_10 = PHI <core_22(3), core_24(6)>
  # DEBUG core => core_10
  # DEBUG BEGIN_STMT
  if (core_10 <= 7)
    goto <bb 4>; [INV]
  else
    goto <bb 12>; [INV]

  <bb 8> :
  # DEBUG BEGIN_STMT
  if (eCpuTarget_18(D) == -2)
    goto <bb 9>; [INV]
  else
    goto <bb 10>; [INV]

  <bb 9> :
  # DEBUG BEGIN_STMT
  _7 = 1075412992B;
  _8 ={v} _7->CPXNUM;
  target_20 = _8 & 255;
  # DEBUG target => target_20
  goto <bb 11>; [INV]

  <bb 10> :
  # DEBUG BEGIN_STMT
  target_19 = (uint32) eCpuTarget_18(D);
  # DEBUG target => target_19

  <bb 11> :
  # target_11 = PHI <target_20(9), target_19(10)>
  # DEBUG target => target_11
  # DEBUG BEGIN_STMT
  _9 = 1075415648B;
  _9->IRCPnIRx[target_11][irqId_17].IGR ={v} 1;

  <bb 12> :
  return;

}


IntCtrl_Ip_GetDirectedCpuInterruptPrivileged (IRQn_Type eIrqNumber)
{
  uint32 irqId;
  uint32 currentCpu;
  struct MSCM_Type * _1;
  long unsigned int _2;
  long unsigned int _3;
  unsigned char _4;
  volatile struct MSCM_IRCPnIRx_Type * _5;
  long unsigned int _6;
  _Bool _7;
  uint32 _12;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = 1075412992B;
  _2 ={v} _1->CPXNUM;
  currentCpu_9 = _2 & 255;
  # DEBUG currentCpu => currentCpu_9
  # DEBUG BEGIN_STMT
  _3 = (long unsigned int) eIrqNumber_10(D);
  _4 = aMscmCore2CoreIrqId[_3];
  irqId_11 = (uint32) _4;
  # DEBUG irqId => irqId_11
  # DEBUG BEGIN_STMT
  _5 = 1075415648B;
  _6 ={v} _5->IRCPnIRx[currentCpu_9][irqId_11].IntStatusR;
  _7 = _6 != 0;
  _12 = (uint32) _7;
  return _12;

}


IntCtrl_Ip_ClearDirectedCpuInterruptPrivileged (IRQn_Type eIrqNumber)
{
  uint32 irqId;
  uint32 currentCpu;
  struct MSCM_Type * _1;
  long unsigned int _2;
  long unsigned int _3;
  unsigned char _4;
  volatile struct MSCM_IRCPnIRx_Type * _5;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = 1075412992B;
  _2 ={v} _1->CPXNUM;
  currentCpu_7 = _2 & 255;
  # DEBUG currentCpu => currentCpu_7
  # DEBUG BEGIN_STMT
  _3 = (long unsigned int) eIrqNumber_8(D);
  _4 = aMscmCore2CoreIrqId[_3];
  irqId_9 = (uint32) _4;
  # DEBUG irqId => irqId_9
  # DEBUG BEGIN_STMT
  _5 = 1075415648B;
  _5->IRCPnIRx[currentCpu_7][irqId_9].IntStatusR ={v} 127;
  return;

}


IntCtrl_Ip_ClearPendingPrivileged (IRQn_Type eIrqNumber)
{
  unsigned short eIrqNumber.2_1;
  long unsigned int _2;
  long unsigned int _3;
  struct S32_NVIC_Type * _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;

  <bb 2> :
  # DEBUG BEGIN_STMT
  eIrqNumber.2_1 = (unsigned short) eIrqNumber_8(D);
  _2 = (long unsigned int) eIrqNumber.2_1;
  _3 = _2 & 31;
  _4 = 3758153728B;
  _5 = (long unsigned int) eIrqNumber_8(D);
  _6 = _5 >> 5;
  _7 = 1 << _3;
  _4->ICPR[_6] ={v} _7;
  return;

}


IntCtrl_Ip_GetPriorityPrivileged (IRQn_Type eIrqNumber)
{
  uint8 shift;
  uint8 priority;
  struct S32_NVIC_Type * _1;
  long unsigned int _2;
  unsigned char _3;
  int _4;
  int _5;
  int _6;
  uint8 _11;

  <bb 2> :
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  shift_7 = 4;
  # DEBUG shift => shift_7
  # DEBUG BEGIN_STMT
  _1 = 3758153728B;
  _2 = (long unsigned int) eIrqNumber_8(D);
  _3 ={v} _1->IP[_2];
  _4 = (int) _3;
  _5 = (int) shift_7;
  _6 = _4 >> _5;
  priority_10 = (uint8) _6;
  # DEBUG priority => priority_10
  # DEBUG BEGIN_STMT
  _11 = priority_10;
  return _11;

}


IntCtrl_Ip_SetPriorityPrivileged (IRQn_Type eIrqNumber, uint8 u8Priority)
{
  uint8 shift;
  long unsigned int _1;
  int _2;
  long unsigned int _3;
  struct S32_NVIC_Type * _4;
  long unsigned int _5;
  unsigned char _6;

  <bb 2> :
  # DEBUG BEGIN_STMT
  shift_7 = 4;
  # DEBUG shift => shift_7
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) u8Priority_8(D);
  _2 = (int) shift_7;
  _3 = _1 << _2;
  _4 = 3758153728B;
  _5 = (long unsigned int) eIrqNumber_9(D);
  _6 = (unsigned char) _3;
  _4->IP[_5] ={v} _6;
  return;

}


IntCtrl_Ip_DisableIrqPrivileged (IRQn_Type eIrqNumber)
{
  unsigned short eIrqNumber.1_1;
  long unsigned int _2;
  long unsigned int _3;
  struct S32_NVIC_Type * _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;

  <bb 2> :
  # DEBUG BEGIN_STMT
  eIrqNumber.1_1 = (unsigned short) eIrqNumber_8(D);
  _2 = (long unsigned int) eIrqNumber.1_1;
  _3 = _2 & 31;
  _4 = 3758153728B;
  _5 = (long unsigned int) eIrqNumber_8(D);
  _6 = _5 >> 5;
  _7 = 1 << _3;
  _4->ICER[_6] ={v} _7;
  return;

}


IntCtrl_Ip_EnableIrqPrivileged (IRQn_Type eIrqNumber)
{
  unsigned short eIrqNumber.0_1;
  long unsigned int _2;
  long unsigned int _3;
  struct S32_NVIC_Type * _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;

  <bb 2> :
  # DEBUG BEGIN_STMT
  eIrqNumber.0_1 = (unsigned short) eIrqNumber_8(D);
  _2 = (long unsigned int) eIrqNumber.0_1;
  _3 = _2 & 31;
  _4 = 3758153728B;
  _5 = (long unsigned int) eIrqNumber_8(D);
  _6 = _5 >> 5;
  _7 = 1 << _3;
  _4->ISER[_6] ={v} _7;
  return;

}


IntCtrl_Ip_InstallHandlerPrivileged (IRQn_Type eIrqNumber, void (*IntCtrl_Ip_IrqHandlerType) (void) pfNewHandler, void (*IntCtrl_Ip_IrqHandlerType) (void) * const pfOldHandler)
{
  void (*IntCtrl_Ip_IrqHandlerType) (void) * pVectorRam;
  struct S32_SCB_Type * _1;
  long unsigned int _2;
  sizetype _3;
  sizetype _4;
  sizetype _5;
  void (*IntCtrl_Ip_IrqHandlerType) (void) * _6;
  void (*<T4ca>) (void) _7;
  sizetype _8;
  sizetype _9;
  sizetype _10;
  void (*IntCtrl_Ip_IrqHandlerType) (void) * _11;

  <bb 2> :
  # DEBUG BEGIN_STMT
  _1 = 3758153728B;
  _2 ={v} _1->VTOR;
  pVectorRam_14 = (void (*IntCtrl_Ip_IrqHandlerType) (void) *) _2;
  # DEBUG pVectorRam => pVectorRam_14
  # DEBUG BEGIN_STMT
  if (pfOldHandler_15(D) != 0B)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # DEBUG BEGIN_STMT
  _3 = (sizetype) eIrqNumber_16(D);
  _4 = _3 + 16;
  _5 = _4 * 4;
  _6 = pVectorRam_14 + _5;
  _7 = *_6;
  *pfOldHandler_15(D) = _7;

  <bb 4> :
  # DEBUG BEGIN_STMT
  _8 = (sizetype) eIrqNumber_16(D);
  _9 = _8 + 16;
  _10 = _9 * 4;
  _11 = pVectorRam_14 + _10;
  *_11 = pfNewHandler_18(D);
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" ISB");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__(" DSB");
  return;

}


