21 {
22 Layer& base = connection.GetConnectedOutputSlot()->GetOwningLayer();
23 Layer& child = connection.GetOwningLayer();
24
27
28 if (base.GetDataType() == child.GetDataType())
29 {
30 switch (base.GetDataType())
31 {
32 case DataType::Float16:
33 ReplaceConstPermuteLayer<DataType::Float16>(graph,
34 PolymorphicDowncast<ConstantLayer*>(&base),
35 PolymorphicDowncast<PermuteLayer*>(&child));
36 break;
37 case DataType::Float32:
38 ReplaceConstPermuteLayer<DataType::Float32>(graph,
39 PolymorphicDowncast<ConstantLayer*>(&base),
40 PolymorphicDowncast<PermuteLayer*>(&child));
41 break;
42 case DataType::QAsymmU8:
43 ReplaceConstPermuteLayer<DataType::QAsymmU8>(graph,
44 PolymorphicDowncast<ConstantLayer*>(&base),
45 PolymorphicDowncast<PermuteLayer*>(&child));
46 break;
47 case DataType::Signed32:
48 ReplaceConstPermuteLayer<DataType::Signed32>(graph,
49 PolymorphicDowncast<ConstantLayer*>(&base),
50 PolymorphicDowncast<PermuteLayer*>(&child));
51 break;
52 case DataType::QSymmS16:
53 ReplaceConstPermuteLayer<DataType::QSymmS16>(graph,
54 PolymorphicDowncast<ConstantLayer*>(&base),
55 PolymorphicDowncast<PermuteLayer*>(&child));
56 break;
57 case DataType::QSymmS8:
58 ReplaceConstPermuteLayer<DataType::QSymmS8>(graph,
59 PolymorphicDowncast<ConstantLayer*>(&base),
60 PolymorphicDowncast<PermuteLayer*>(&child));
61 break;
62 case DataType::QAsymmS8:
63 ReplaceConstPermuteLayer<DataType::QAsymmS8>(graph,
64 PolymorphicDowncast<ConstantLayer*>(&base),
65 PolymorphicDowncast<PermuteLayer*>(&child));
66 break;
67 case DataType::BFloat16:
68 ReplaceConstPermuteLayer<DataType::BFloat16>(graph,
69 PolymorphicDowncast<ConstantLayer*>(&base),
70 PolymorphicDowncast<PermuteLayer*>(&child));
71 break;
72 case DataType::Signed64:
73 ReplaceConstPermuteLayer<DataType::Signed64>(graph,
74 PolymorphicDowncast<ConstantLayer*>(&base),
75 PolymorphicDowncast<PermuteLayer*>(&child));
76 break;
77 case DataType::Boolean:
78 ReplaceConstPermuteLayer<DataType::Boolean>(graph,
79 PolymorphicDowncast<ConstantLayer*>(&base),
80 PolymorphicDowncast<PermuteLayer*>(&child));
81 break;
82 }
83 }
84 }
#define ARMNN_ASSERT(COND)