// Layer Registry header
//
// This file is auto-generated by cmake, don't edit it.

static const layer_registry_entry layer_registry[] = {
#if NCNN_STRING
{"AbsVal", AbsVal_layer_creator},
#else
{AbsVal_layer_creator},
#endif
#if NCNN_STRING
{"ArgMax", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BatchNorm", BatchNorm_layer_creator},
#else
{BatchNorm_layer_creator},
#endif
#if NCNN_STRING
{"Bias", Bias_layer_creator},
#else
{Bias_layer_creator},
#endif
#if NCNN_STRING
{"BNLL", BNLL_layer_creator},
#else
{BNLL_layer_creator},
#endif
#if NCNN_STRING
{"Concat", Concat_layer_creator},
#else
{Concat_layer_creator},
#endif
#if NCNN_STRING
{"Convolution", Convolution_layer_creator},
#else
{Convolution_layer_creator},
#endif
#if NCNN_STRING
{"Crop", Crop_layer_creator},
#else
{Crop_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution", Deconvolution_layer_creator},
#else
{Deconvolution_layer_creator},
#endif
#if NCNN_STRING
{"Dropout", Dropout_layer_creator},
#else
{Dropout_layer_creator},
#endif
#if NCNN_STRING
{"Eltwise", Eltwise_layer_creator},
#else
{Eltwise_layer_creator},
#endif
#if NCNN_STRING
{"ELU", ELU_layer_creator},
#else
{ELU_layer_creator},
#endif
#if NCNN_STRING
{"Embed", Embed_layer_creator},
#else
{Embed_layer_creator},
#endif
#if NCNN_STRING
{"Exp", Exp_layer_creator},
#else
{Exp_layer_creator},
#endif
#if NCNN_STRING
{"Flatten", Flatten_layer_creator},
#else
{Flatten_layer_creator},
#endif
#if NCNN_STRING
{"InnerProduct", InnerProduct_layer_creator},
#else
{InnerProduct_layer_creator},
#endif
#if NCNN_STRING
{"Input", Input_layer_creator},
#else
{Input_layer_creator},
#endif
#if NCNN_STRING
{"Log", Log_layer_creator},
#else
{Log_layer_creator},
#endif
#if NCNN_STRING
{"LRN", LRN_layer_creator},
#else
{LRN_layer_creator},
#endif
#if NCNN_STRING
{"MemoryData", MemoryData_layer_creator},
#else
{MemoryData_layer_creator},
#endif
#if NCNN_STRING
{"MVN", MVN_layer_creator},
#else
{MVN_layer_creator},
#endif
#if NCNN_STRING
{"Pooling", Pooling_layer_creator},
#else
{Pooling_layer_creator},
#endif
#if NCNN_STRING
{"Power", Power_layer_creator},
#else
{Power_layer_creator},
#endif
#if NCNN_STRING
{"PReLU", PReLU_layer_creator},
#else
{PReLU_layer_creator},
#endif
#if NCNN_STRING
{"Proposal", Proposal_layer_creator},
#else
{Proposal_layer_creator},
#endif
#if NCNN_STRING
{"Reduction", Reduction_layer_creator},
#else
{Reduction_layer_creator},
#endif
#if NCNN_STRING
{"ReLU", ReLU_layer_creator},
#else
{ReLU_layer_creator},
#endif
#if NCNN_STRING
{"Reshape", Reshape_layer_creator},
#else
{Reshape_layer_creator},
#endif
#if NCNN_STRING
{"ROIPooling", ROIPooling_layer_creator},
#else
{ROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"Scale", Scale_layer_creator},
#else
{Scale_layer_creator},
#endif
#if NCNN_STRING
{"Sigmoid", Sigmoid_layer_creator},
#else
{Sigmoid_layer_creator},
#endif
#if NCNN_STRING
{"Slice", Slice_layer_creator},
#else
{Slice_layer_creator},
#endif
#if NCNN_STRING
{"Softmax", Softmax_layer_creator},
#else
{Softmax_layer_creator},
#endif
#if NCNN_STRING
{"Split", Split_layer_creator},
#else
{Split_layer_creator},
#endif
#if NCNN_STRING
{"SPP", 0},
#else
{0},
#endif
#if NCNN_STRING
{"TanH", TanH_layer_creator},
#else
{TanH_layer_creator},
#endif
#if NCNN_STRING
{"Threshold", Threshold_layer_creator},
#else
{Threshold_layer_creator},
#endif
#if NCNN_STRING
{"Tile", Tile_layer_creator},
#else
{Tile_layer_creator},
#endif
#if NCNN_STRING
{"RNN", RNN_layer_creator},
#else
{RNN_layer_creator},
#endif
#if NCNN_STRING
{"LSTM", LSTM_layer_creator},
#else
{LSTM_layer_creator},
#endif
#if NCNN_STRING
{"BinaryOp", BinaryOp_layer_creator},
#else
{BinaryOp_layer_creator},
#endif
#if NCNN_STRING
{"UnaryOp", UnaryOp_layer_creator},
#else
{UnaryOp_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise", ConvolutionDepthWise_layer_creator},
#else
{ConvolutionDepthWise_layer_creator},
#endif
#if NCNN_STRING
{"Padding", Padding_layer_creator},
#else
{Padding_layer_creator},
#endif
#if NCNN_STRING
{"Squeeze", Squeeze_layer_creator},
#else
{Squeeze_layer_creator},
#endif
#if NCNN_STRING
{"ExpandDims", ExpandDims_layer_creator},
#else
{ExpandDims_layer_creator},
#endif
#if NCNN_STRING
{"Normalize", Normalize_layer_creator},
#else
{Normalize_layer_creator},
#endif
#if NCNN_STRING
{"Permute", Permute_layer_creator},
#else
{Permute_layer_creator},
#endif
#if NCNN_STRING
{"PriorBox", PriorBox_layer_creator},
#else
{PriorBox_layer_creator},
#endif
#if NCNN_STRING
{"DetectionOutput", DetectionOutput_layer_creator},
#else
{DetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Interp", Interp_layer_creator},
#else
{Interp_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise", DeconvolutionDepthWise_layer_creator},
#else
{DeconvolutionDepthWise_layer_creator},
#endif
#if NCNN_STRING
{"ShuffleChannel", ShuffleChannel_layer_creator},
#else
{ShuffleChannel_layer_creator},
#endif
#if NCNN_STRING
{"InstanceNorm", InstanceNorm_layer_creator},
#else
{InstanceNorm_layer_creator},
#endif
#if NCNN_STRING
{"Clip", Clip_layer_creator},
#else
{Clip_layer_creator},
#endif
#if NCNN_STRING
{"Reorg", Reorg_layer_creator},
#else
{Reorg_layer_creator},
#endif
#if NCNN_STRING
{"YoloDetectionOutput", YoloDetectionOutput_layer_creator},
#else
{YoloDetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Quantize", Quantize_layer_creator},
#else
{Quantize_layer_creator},
#endif
#if NCNN_STRING
{"Dequantize", Dequantize_layer_creator},
#else
{Dequantize_layer_creator},
#endif
#if NCNN_STRING
{"Yolov3DetectionOutput", Yolov3DetectionOutput_layer_creator},
#else
{Yolov3DetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"PSROIPooling", PSROIPooling_layer_creator},
#else
{PSROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"ROIAlign", ROIAlign_layer_creator},
#else
{ROIAlign_layer_creator},
#endif
#if NCNN_STRING
{"Packing", Packing_layer_creator},
#else
{Packing_layer_creator},
#endif
#if NCNN_STRING
{"Requantize", Requantize_layer_creator},
#else
{Requantize_layer_creator},
#endif
#if NCNN_STRING
{"Cast", Cast_layer_creator},
#else
{Cast_layer_creator},
#endif
#if NCNN_STRING
{"HardSigmoid", HardSigmoid_layer_creator},
#else
{HardSigmoid_layer_creator},
#endif
#if NCNN_STRING
{"SELU", SELU_layer_creator},
#else
{SELU_layer_creator},
#endif
#if NCNN_STRING
{"HardSwish", HardSwish_layer_creator},
#else
{HardSwish_layer_creator},
#endif
#if NCNN_STRING
{"Noop", Noop_layer_creator},
#else
{Noop_layer_creator},
#endif
#if NCNN_STRING
{"PixelShuffle", PixelShuffle_layer_creator},
#else
{PixelShuffle_layer_creator},
#endif
#if NCNN_STRING
{"DeepCopy", DeepCopy_layer_creator},
#else
{DeepCopy_layer_creator},
#endif
#if NCNN_STRING
{"Mish", Mish_layer_creator},
#else
{Mish_layer_creator},
#endif
#if NCNN_STRING
{"StatisticsPooling", StatisticsPooling_layer_creator},
#else
{StatisticsPooling_layer_creator},
#endif
#if NCNN_STRING
{"Swish", Swish_layer_creator},
#else
{Swish_layer_creator},
#endif
#if NCNN_STRING
{"Gemm", Gemm_layer_creator},
#else
{Gemm_layer_creator},
#endif
#if NCNN_STRING
{"GroupNorm", GroupNorm_layer_creator},
#else
{GroupNorm_layer_creator},
#endif
#if NCNN_STRING
{"LayerNorm", LayerNorm_layer_creator},
#else
{LayerNorm_layer_creator},
#endif
#if NCNN_STRING
{"Softplus", Softplus_layer_creator},
#else
{Softplus_layer_creator},
#endif
#if NCNN_STRING
{"GRU", GRU_layer_creator},
#else
{GRU_layer_creator},
#endif
#if NCNN_STRING
{"MultiHeadAttention", MultiHeadAttention_layer_creator},
#else
{MultiHeadAttention_layer_creator},
#endif
#if NCNN_STRING
{"GELU", GELU_layer_creator},
#else
{GELU_layer_creator},
#endif
#if NCNN_STRING
{"Convolution1D", Convolution1D_layer_creator},
#else
{Convolution1D_layer_creator},
#endif
#if NCNN_STRING
{"Pooling1D", Pooling1D_layer_creator},
#else
{Pooling1D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise1D", ConvolutionDepthWise1D_layer_creator},
#else
{ConvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Convolution3D", Convolution3D_layer_creator},
#else
{Convolution3D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise3D", ConvolutionDepthWise3D_layer_creator},
#else
{ConvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Pooling3D", Pooling3D_layer_creator},
#else
{Pooling3D_layer_creator},
#endif
#if NCNN_STRING
{"MatMul", MatMul_layer_creator},
#else
{MatMul_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution1D", Deconvolution1D_layer_creator},
#else
{Deconvolution1D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise1D", DeconvolutionDepthWise1D_layer_creator},
#else
{DeconvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution3D", Deconvolution3D_layer_creator},
#else
{Deconvolution3D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise3D", DeconvolutionDepthWise3D_layer_creator},
#else
{DeconvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Einsum", Einsum_layer_creator},
#else
{Einsum_layer_creator},
#endif
#if NCNN_STRING
{"DeformableConv2D", DeformableConv2D_layer_creator},
#else
{DeformableConv2D_layer_creator},
#endif
#if NCNN_STRING
{"GLU", GLU_layer_creator},
#else
{GLU_layer_creator},
#endif
#if NCNN_STRING
{"Fold", Fold_layer_creator},
#else
{Fold_layer_creator},
#endif
#if NCNN_STRING
{"Unfold", Unfold_layer_creator},
#else
{Unfold_layer_creator},
#endif
#if NCNN_STRING
{"GridSample", GridSample_layer_creator},
#else
{GridSample_layer_creator},
#endif
#if NCNN_STRING
{"CumulativeSum", CumulativeSum_layer_creator},
#else
{CumulativeSum_layer_creator},
#endif
#if NCNN_STRING
{"CopyTo", CopyTo_layer_creator},
#else
{CopyTo_layer_creator},
#endif
#if NCNN_STRING
{"Erf", Erf_layer_creator},
#else
{Erf_layer_creator},
#endif
#if NCNN_STRING
{"Diag", Diag_layer_creator},
#else
{Diag_layer_creator},
#endif
#if NCNN_STRING
{"CELU", CELU_layer_creator},
#else
{CELU_layer_creator},
#endif
#if NCNN_STRING
{"Shrink", Shrink_layer_creator},
#else
{Shrink_layer_creator},
#endif
#if NCNN_STRING
{"RMSNorm", RMSNorm_layer_creator},
#else
{RMSNorm_layer_creator},
#endif
#if NCNN_STRING
{"Spectrogram", Spectrogram_layer_creator},
#else
{Spectrogram_layer_creator},
#endif
#if NCNN_STRING
{"InverseSpectrogram", InverseSpectrogram_layer_creator},
#else
{InverseSpectrogram_layer_creator},
#endif
#if NCNN_STRING
{"Flip", Flip_layer_creator},
#else
{Flip_layer_creator},
#endif
#if NCNN_STRING
{"SDPA", SDPA_layer_creator},
#else
{SDPA_layer_creator},
#endif
#if NCNN_STRING
{"RotaryEmbed", RotaryEmbed_layer_creator},
#else
{RotaryEmbed_layer_creator},
#endif

};

static const layer_registry_entry layer_registry_arch[] = {
#if NCNN_STRING
{"AbsVal", AbsVal_x86_layer_creator},
#else
{AbsVal_x86_layer_creator},
#endif
#if NCNN_STRING
{"ArgMax", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BatchNorm", BatchNorm_x86_layer_creator},
#else
{BatchNorm_x86_layer_creator},
#endif
#if NCNN_STRING
{"Bias", Bias_x86_layer_creator},
#else
{Bias_x86_layer_creator},
#endif
#if NCNN_STRING
{"BNLL", BNLL_x86_layer_creator},
#else
{BNLL_x86_layer_creator},
#endif
#if NCNN_STRING
{"Concat", Concat_x86_layer_creator},
#else
{Concat_x86_layer_creator},
#endif
#if NCNN_STRING
{"Convolution", Convolution_x86_layer_creator},
#else
{Convolution_x86_layer_creator},
#endif
#if NCNN_STRING
{"Crop", Crop_x86_layer_creator},
#else
{Crop_x86_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution", Deconvolution_x86_layer_creator},
#else
{Deconvolution_x86_layer_creator},
#endif
#if NCNN_STRING
{"Dropout", Dropout_x86_layer_creator},
#else
{Dropout_x86_layer_creator},
#endif
#if NCNN_STRING
{"Eltwise", Eltwise_x86_layer_creator},
#else
{Eltwise_x86_layer_creator},
#endif
#if NCNN_STRING
{"ELU", ELU_x86_layer_creator},
#else
{ELU_x86_layer_creator},
#endif
#if NCNN_STRING
{"Embed", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Exp", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Flatten", Flatten_x86_layer_creator},
#else
{Flatten_x86_layer_creator},
#endif
#if NCNN_STRING
{"InnerProduct", InnerProduct_x86_layer_creator},
#else
{InnerProduct_x86_layer_creator},
#endif
#if NCNN_STRING
{"Input", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Log", 0},
#else
{0},
#endif
#if NCNN_STRING
{"LRN", LRN_x86_layer_creator},
#else
{LRN_x86_layer_creator},
#endif
#if NCNN_STRING
{"MemoryData", 0},
#else
{0},
#endif
#if NCNN_STRING
{"MVN", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Pooling", Pooling_x86_layer_creator},
#else
{Pooling_x86_layer_creator},
#endif
#if NCNN_STRING
{"Power", 0},
#else
{0},
#endif
#if NCNN_STRING
{"PReLU", PReLU_x86_layer_creator},
#else
{PReLU_x86_layer_creator},
#endif
#if NCNN_STRING
{"Proposal", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Reduction", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ReLU", ReLU_x86_layer_creator},
#else
{ReLU_x86_layer_creator},
#endif
#if NCNN_STRING
{"Reshape", Reshape_x86_layer_creator},
#else
{Reshape_x86_layer_creator},
#endif
#if NCNN_STRING
{"ROIPooling", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Scale", Scale_x86_layer_creator},
#else
{Scale_x86_layer_creator},
#endif
#if NCNN_STRING
{"Sigmoid", Sigmoid_x86_layer_creator},
#else
{Sigmoid_x86_layer_creator},
#endif
#if NCNN_STRING
{"Slice", Slice_x86_layer_creator},
#else
{Slice_x86_layer_creator},
#endif
#if NCNN_STRING
{"Softmax", Softmax_x86_layer_creator},
#else
{Softmax_x86_layer_creator},
#endif
#if NCNN_STRING
{"Split", 0},
#else
{0},
#endif
#if NCNN_STRING
{"SPP", 0},
#else
{0},
#endif
#if NCNN_STRING
{"TanH", TanH_x86_layer_creator},
#else
{TanH_x86_layer_creator},
#endif
#if NCNN_STRING
{"Threshold", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Tile", 0},
#else
{0},
#endif
#if NCNN_STRING
{"RNN", 0},
#else
{0},
#endif
#if NCNN_STRING
{"LSTM", LSTM_x86_layer_creator},
#else
{LSTM_x86_layer_creator},
#endif
#if NCNN_STRING
{"BinaryOp", BinaryOp_x86_layer_creator},
#else
{BinaryOp_x86_layer_creator},
#endif
#if NCNN_STRING
{"UnaryOp", UnaryOp_x86_layer_creator},
#else
{UnaryOp_x86_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise", ConvolutionDepthWise_x86_layer_creator},
#else
{ConvolutionDepthWise_x86_layer_creator},
#endif
#if NCNN_STRING
{"Padding", Padding_x86_layer_creator},
#else
{Padding_x86_layer_creator},
#endif
#if NCNN_STRING
{"Squeeze", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ExpandDims", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Normalize", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Permute", 0},
#else
{0},
#endif
#if NCNN_STRING
{"PriorBox", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DetectionOutput", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Interp", Interp_x86_layer_creator},
#else
{Interp_x86_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise", DeconvolutionDepthWise_x86_layer_creator},
#else
{DeconvolutionDepthWise_x86_layer_creator},
#endif
#if NCNN_STRING
{"ShuffleChannel", ShuffleChannel_x86_layer_creator},
#else
{ShuffleChannel_x86_layer_creator},
#endif
#if NCNN_STRING
{"InstanceNorm", InstanceNorm_x86_layer_creator},
#else
{InstanceNorm_x86_layer_creator},
#endif
#if NCNN_STRING
{"Clip", Clip_x86_layer_creator},
#else
{Clip_x86_layer_creator},
#endif
#if NCNN_STRING
{"Reorg", 0},
#else
{0},
#endif
#if NCNN_STRING
{"YoloDetectionOutput", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Quantize", Quantize_x86_layer_creator},
#else
{Quantize_x86_layer_creator},
#endif
#if NCNN_STRING
{"Dequantize", Dequantize_x86_layer_creator},
#else
{Dequantize_x86_layer_creator},
#endif
#if NCNN_STRING
{"Yolov3DetectionOutput", Yolov3DetectionOutput_x86_layer_creator},
#else
{Yolov3DetectionOutput_x86_layer_creator},
#endif
#if NCNN_STRING
{"PSROIPooling", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ROIAlign", ROIAlign_x86_layer_creator},
#else
{ROIAlign_x86_layer_creator},
#endif
#if NCNN_STRING
{"Packing", Packing_x86_layer_creator},
#else
{Packing_x86_layer_creator},
#endif
#if NCNN_STRING
{"Requantize", Requantize_x86_layer_creator},
#else
{Requantize_x86_layer_creator},
#endif
#if NCNN_STRING
{"Cast", Cast_x86_layer_creator},
#else
{Cast_x86_layer_creator},
#endif
#if NCNN_STRING
{"HardSigmoid", HardSigmoid_x86_layer_creator},
#else
{HardSigmoid_x86_layer_creator},
#endif
#if NCNN_STRING
{"SELU", SELU_x86_layer_creator},
#else
{SELU_x86_layer_creator},
#endif
#if NCNN_STRING
{"HardSwish", HardSwish_x86_layer_creator},
#else
{HardSwish_x86_layer_creator},
#endif
#if NCNN_STRING
{"Noop", 0},
#else
{0},
#endif
#if NCNN_STRING
{"PixelShuffle", PixelShuffle_x86_layer_creator},
#else
{PixelShuffle_x86_layer_creator},
#endif
#if NCNN_STRING
{"DeepCopy", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Mish", Mish_x86_layer_creator},
#else
{Mish_x86_layer_creator},
#endif
#if NCNN_STRING
{"StatisticsPooling", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Swish", Swish_x86_layer_creator},
#else
{Swish_x86_layer_creator},
#endif
#if NCNN_STRING
{"Gemm", Gemm_x86_layer_creator},
#else
{Gemm_x86_layer_creator},
#endif
#if NCNN_STRING
{"GroupNorm", GroupNorm_x86_layer_creator},
#else
{GroupNorm_x86_layer_creator},
#endif
#if NCNN_STRING
{"LayerNorm", LayerNorm_x86_layer_creator},
#else
{LayerNorm_x86_layer_creator},
#endif
#if NCNN_STRING
{"Softplus", 0},
#else
{0},
#endif
#if NCNN_STRING
{"GRU", 0},
#else
{0},
#endif
#if NCNN_STRING
{"MultiHeadAttention", MultiHeadAttention_x86_layer_creator},
#else
{MultiHeadAttention_x86_layer_creator},
#endif
#if NCNN_STRING
{"GELU", GELU_x86_layer_creator},
#else
{GELU_x86_layer_creator},
#endif
#if NCNN_STRING
{"Convolution1D", Convolution1D_x86_layer_creator},
#else
{Convolution1D_x86_layer_creator},
#endif
#if NCNN_STRING
{"Pooling1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Convolution3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Pooling3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"MatMul", MatMul_x86_layer_creator},
#else
{MatMul_x86_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Deconvolution3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Einsum", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DeformableConv2D", DeformableConv2D_x86_layer_creator},
#else
{DeformableConv2D_x86_layer_creator},
#endif
#if NCNN_STRING
{"GLU", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Fold", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Unfold", 0},
#else
{0},
#endif
#if NCNN_STRING
{"GridSample", GridSample_x86_layer_creator},
#else
{GridSample_x86_layer_creator},
#endif
#if NCNN_STRING
{"CumulativeSum", 0},
#else
{0},
#endif
#if NCNN_STRING
{"CopyTo", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Erf", Erf_x86_layer_creator},
#else
{Erf_x86_layer_creator},
#endif
#if NCNN_STRING
{"Diag", 0},
#else
{0},
#endif
#if NCNN_STRING
{"CELU", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Shrink", 0},
#else
{0},
#endif
#if NCNN_STRING
{"RMSNorm", RMSNorm_x86_layer_creator},
#else
{RMSNorm_x86_layer_creator},
#endif
#if NCNN_STRING
{"Spectrogram", 0},
#else
{0},
#endif
#if NCNN_STRING
{"InverseSpectrogram", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Flip", 0},
#else
{0},
#endif
#if NCNN_STRING
{"SDPA", SDPA_x86_layer_creator},
#else
{SDPA_x86_layer_creator},
#endif
#if NCNN_STRING
{"RotaryEmbed", RotaryEmbed_x86_layer_creator},
#else
{RotaryEmbed_x86_layer_creator},
#endif

};

#if NCNN_RUNTIME_CPU && NCNN_AVX512
static const layer_registry_entry layer_registry_avx512[] = {
#if NCNN_STRING
{"AbsVal", AbsVal_x86_avx512_layer_creator},
#else
{AbsVal_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"ArgMax", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BatchNorm", BatchNorm_x86_avx512_layer_creator},
#else
{BatchNorm_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Bias", Bias_x86_avx512_layer_creator},
#else
{Bias_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"BNLL", BNLL_x86_avx512_layer_creator},
#else
{BNLL_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Concat", Concat_x86_avx512_layer_creator},
#else
{Concat_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Convolution", Convolution_x86_avx512_layer_creator},
#else
{Convolution_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Crop", Crop_x86_avx512_layer_creator},
#else
{Crop_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution", Deconvolution_x86_avx512_layer_creator},
#else
{Deconvolution_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Dropout", Dropout_x86_avx512_layer_creator},
#else
{Dropout_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Eltwise", Eltwise_x86_avx512_layer_creator},
#else
{Eltwise_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"ELU", ELU_x86_avx512_layer_creator},
#else
{ELU_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Embed", Embed_layer_creator},
#else
{Embed_layer_creator},
#endif
#if NCNN_STRING
{"Exp", Exp_layer_creator},
#else
{Exp_layer_creator},
#endif
#if NCNN_STRING
{"Flatten", Flatten_x86_avx512_layer_creator},
#else
{Flatten_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"InnerProduct", InnerProduct_x86_avx512_layer_creator},
#else
{InnerProduct_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Input", Input_layer_creator},
#else
{Input_layer_creator},
#endif
#if NCNN_STRING
{"Log", Log_layer_creator},
#else
{Log_layer_creator},
#endif
#if NCNN_STRING
{"LRN", LRN_x86_avx512_layer_creator},
#else
{LRN_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"MemoryData", MemoryData_layer_creator},
#else
{MemoryData_layer_creator},
#endif
#if NCNN_STRING
{"MVN", MVN_layer_creator},
#else
{MVN_layer_creator},
#endif
#if NCNN_STRING
{"Pooling", Pooling_x86_avx512_layer_creator},
#else
{Pooling_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Power", Power_layer_creator},
#else
{Power_layer_creator},
#endif
#if NCNN_STRING
{"PReLU", PReLU_x86_avx512_layer_creator},
#else
{PReLU_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Proposal", Proposal_layer_creator},
#else
{Proposal_layer_creator},
#endif
#if NCNN_STRING
{"Reduction", Reduction_layer_creator},
#else
{Reduction_layer_creator},
#endif
#if NCNN_STRING
{"ReLU", ReLU_x86_avx512_layer_creator},
#else
{ReLU_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Reshape", Reshape_x86_avx512_layer_creator},
#else
{Reshape_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"ROIPooling", ROIPooling_layer_creator},
#else
{ROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"Scale", Scale_x86_avx512_layer_creator},
#else
{Scale_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Sigmoid", Sigmoid_x86_avx512_layer_creator},
#else
{Sigmoid_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Slice", Slice_x86_avx512_layer_creator},
#else
{Slice_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Softmax", Softmax_x86_avx512_layer_creator},
#else
{Softmax_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Split", Split_layer_creator},
#else
{Split_layer_creator},
#endif
#if NCNN_STRING
{"SPP", 0},
#else
{0},
#endif
#if NCNN_STRING
{"TanH", TanH_x86_avx512_layer_creator},
#else
{TanH_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Threshold", Threshold_layer_creator},
#else
{Threshold_layer_creator},
#endif
#if NCNN_STRING
{"Tile", Tile_layer_creator},
#else
{Tile_layer_creator},
#endif
#if NCNN_STRING
{"RNN", RNN_layer_creator},
#else
{RNN_layer_creator},
#endif
#if NCNN_STRING
{"LSTM", LSTM_x86_avx512_layer_creator},
#else
{LSTM_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"BinaryOp", BinaryOp_x86_avx512_layer_creator},
#else
{BinaryOp_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"UnaryOp", UnaryOp_x86_avx512_layer_creator},
#else
{UnaryOp_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise", ConvolutionDepthWise_x86_avx512_layer_creator},
#else
{ConvolutionDepthWise_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Padding", Padding_x86_avx512_layer_creator},
#else
{Padding_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Squeeze", Squeeze_layer_creator},
#else
{Squeeze_layer_creator},
#endif
#if NCNN_STRING
{"ExpandDims", ExpandDims_layer_creator},
#else
{ExpandDims_layer_creator},
#endif
#if NCNN_STRING
{"Normalize", Normalize_layer_creator},
#else
{Normalize_layer_creator},
#endif
#if NCNN_STRING
{"Permute", Permute_layer_creator},
#else
{Permute_layer_creator},
#endif
#if NCNN_STRING
{"PriorBox", PriorBox_layer_creator},
#else
{PriorBox_layer_creator},
#endif
#if NCNN_STRING
{"DetectionOutput", DetectionOutput_layer_creator},
#else
{DetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Interp", Interp_x86_avx512_layer_creator},
#else
{Interp_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise", DeconvolutionDepthWise_x86_avx512_layer_creator},
#else
{DeconvolutionDepthWise_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"ShuffleChannel", ShuffleChannel_x86_avx512_layer_creator},
#else
{ShuffleChannel_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"InstanceNorm", InstanceNorm_x86_avx512_layer_creator},
#else
{InstanceNorm_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Clip", Clip_x86_avx512_layer_creator},
#else
{Clip_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Reorg", Reorg_layer_creator},
#else
{Reorg_layer_creator},
#endif
#if NCNN_STRING
{"YoloDetectionOutput", YoloDetectionOutput_layer_creator},
#else
{YoloDetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Quantize", Quantize_x86_avx512_layer_creator},
#else
{Quantize_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Dequantize", Dequantize_x86_avx512_layer_creator},
#else
{Dequantize_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Yolov3DetectionOutput", Yolov3DetectionOutput_x86_avx512_layer_creator},
#else
{Yolov3DetectionOutput_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"PSROIPooling", PSROIPooling_layer_creator},
#else
{PSROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"ROIAlign", ROIAlign_x86_avx512_layer_creator},
#else
{ROIAlign_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Packing", Packing_x86_avx512_layer_creator},
#else
{Packing_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Requantize", Requantize_x86_avx512_layer_creator},
#else
{Requantize_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Cast", Cast_x86_avx512_layer_creator},
#else
{Cast_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"HardSigmoid", HardSigmoid_x86_avx512_layer_creator},
#else
{HardSigmoid_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"SELU", SELU_x86_avx512_layer_creator},
#else
{SELU_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"HardSwish", HardSwish_x86_avx512_layer_creator},
#else
{HardSwish_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Noop", Noop_layer_creator},
#else
{Noop_layer_creator},
#endif
#if NCNN_STRING
{"PixelShuffle", PixelShuffle_x86_avx512_layer_creator},
#else
{PixelShuffle_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"DeepCopy", DeepCopy_layer_creator},
#else
{DeepCopy_layer_creator},
#endif
#if NCNN_STRING
{"Mish", Mish_x86_avx512_layer_creator},
#else
{Mish_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"StatisticsPooling", StatisticsPooling_layer_creator},
#else
{StatisticsPooling_layer_creator},
#endif
#if NCNN_STRING
{"Swish", Swish_x86_avx512_layer_creator},
#else
{Swish_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Gemm", Gemm_x86_avx512_layer_creator},
#else
{Gemm_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"GroupNorm", GroupNorm_x86_avx512_layer_creator},
#else
{GroupNorm_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"LayerNorm", LayerNorm_x86_avx512_layer_creator},
#else
{LayerNorm_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Softplus", Softplus_layer_creator},
#else
{Softplus_layer_creator},
#endif
#if NCNN_STRING
{"GRU", GRU_layer_creator},
#else
{GRU_layer_creator},
#endif
#if NCNN_STRING
{"MultiHeadAttention", MultiHeadAttention_x86_avx512_layer_creator},
#else
{MultiHeadAttention_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"GELU", GELU_x86_avx512_layer_creator},
#else
{GELU_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Convolution1D", Convolution1D_x86_avx512_layer_creator},
#else
{Convolution1D_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Pooling1D", Pooling1D_layer_creator},
#else
{Pooling1D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise1D", ConvolutionDepthWise1D_layer_creator},
#else
{ConvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Convolution3D", Convolution3D_layer_creator},
#else
{Convolution3D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise3D", ConvolutionDepthWise3D_layer_creator},
#else
{ConvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Pooling3D", Pooling3D_layer_creator},
#else
{Pooling3D_layer_creator},
#endif
#if NCNN_STRING
{"MatMul", MatMul_x86_avx512_layer_creator},
#else
{MatMul_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution1D", Deconvolution1D_layer_creator},
#else
{Deconvolution1D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise1D", DeconvolutionDepthWise1D_layer_creator},
#else
{DeconvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution3D", Deconvolution3D_layer_creator},
#else
{Deconvolution3D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise3D", DeconvolutionDepthWise3D_layer_creator},
#else
{DeconvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Einsum", Einsum_layer_creator},
#else
{Einsum_layer_creator},
#endif
#if NCNN_STRING
{"DeformableConv2D", DeformableConv2D_x86_avx512_layer_creator},
#else
{DeformableConv2D_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"GLU", GLU_layer_creator},
#else
{GLU_layer_creator},
#endif
#if NCNN_STRING
{"Fold", Fold_layer_creator},
#else
{Fold_layer_creator},
#endif
#if NCNN_STRING
{"Unfold", Unfold_layer_creator},
#else
{Unfold_layer_creator},
#endif
#if NCNN_STRING
{"GridSample", GridSample_x86_avx512_layer_creator},
#else
{GridSample_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"CumulativeSum", CumulativeSum_layer_creator},
#else
{CumulativeSum_layer_creator},
#endif
#if NCNN_STRING
{"CopyTo", CopyTo_layer_creator},
#else
{CopyTo_layer_creator},
#endif
#if NCNN_STRING
{"Erf", Erf_x86_avx512_layer_creator},
#else
{Erf_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Diag", Diag_layer_creator},
#else
{Diag_layer_creator},
#endif
#if NCNN_STRING
{"CELU", CELU_layer_creator},
#else
{CELU_layer_creator},
#endif
#if NCNN_STRING
{"Shrink", Shrink_layer_creator},
#else
{Shrink_layer_creator},
#endif
#if NCNN_STRING
{"RMSNorm", RMSNorm_x86_avx512_layer_creator},
#else
{RMSNorm_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"Spectrogram", Spectrogram_layer_creator},
#else
{Spectrogram_layer_creator},
#endif
#if NCNN_STRING
{"InverseSpectrogram", InverseSpectrogram_layer_creator},
#else
{InverseSpectrogram_layer_creator},
#endif
#if NCNN_STRING
{"Flip", Flip_layer_creator},
#else
{Flip_layer_creator},
#endif
#if NCNN_STRING
{"SDPA", SDPA_x86_avx512_layer_creator},
#else
{SDPA_x86_avx512_layer_creator},
#endif
#if NCNN_STRING
{"RotaryEmbed", RotaryEmbed_x86_avx512_layer_creator},
#else
{RotaryEmbed_x86_avx512_layer_creator},
#endif

};
#endif // NCNN_RUNTIME_CPU && NCNN_AVX512

#if NCNN_RUNTIME_CPU && NCNN_FMA
static const layer_registry_entry layer_registry_fma[] = {
#if NCNN_STRING
{"AbsVal", AbsVal_x86_fma_layer_creator},
#else
{AbsVal_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"ArgMax", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BatchNorm", BatchNorm_x86_fma_layer_creator},
#else
{BatchNorm_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Bias", Bias_x86_fma_layer_creator},
#else
{Bias_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"BNLL", BNLL_x86_fma_layer_creator},
#else
{BNLL_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Concat", Concat_x86_fma_layer_creator},
#else
{Concat_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Convolution", Convolution_x86_fma_layer_creator},
#else
{Convolution_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Crop", Crop_x86_fma_layer_creator},
#else
{Crop_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution", Deconvolution_x86_fma_layer_creator},
#else
{Deconvolution_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Dropout", Dropout_x86_fma_layer_creator},
#else
{Dropout_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Eltwise", Eltwise_x86_fma_layer_creator},
#else
{Eltwise_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"ELU", ELU_x86_fma_layer_creator},
#else
{ELU_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Embed", Embed_layer_creator},
#else
{Embed_layer_creator},
#endif
#if NCNN_STRING
{"Exp", Exp_layer_creator},
#else
{Exp_layer_creator},
#endif
#if NCNN_STRING
{"Flatten", Flatten_x86_fma_layer_creator},
#else
{Flatten_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"InnerProduct", InnerProduct_x86_fma_layer_creator},
#else
{InnerProduct_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Input", Input_layer_creator},
#else
{Input_layer_creator},
#endif
#if NCNN_STRING
{"Log", Log_layer_creator},
#else
{Log_layer_creator},
#endif
#if NCNN_STRING
{"LRN", LRN_x86_fma_layer_creator},
#else
{LRN_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"MemoryData", MemoryData_layer_creator},
#else
{MemoryData_layer_creator},
#endif
#if NCNN_STRING
{"MVN", MVN_layer_creator},
#else
{MVN_layer_creator},
#endif
#if NCNN_STRING
{"Pooling", Pooling_x86_fma_layer_creator},
#else
{Pooling_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Power", Power_layer_creator},
#else
{Power_layer_creator},
#endif
#if NCNN_STRING
{"PReLU", PReLU_x86_fma_layer_creator},
#else
{PReLU_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Proposal", Proposal_layer_creator},
#else
{Proposal_layer_creator},
#endif
#if NCNN_STRING
{"Reduction", Reduction_layer_creator},
#else
{Reduction_layer_creator},
#endif
#if NCNN_STRING
{"ReLU", ReLU_x86_fma_layer_creator},
#else
{ReLU_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Reshape", Reshape_x86_fma_layer_creator},
#else
{Reshape_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"ROIPooling", ROIPooling_layer_creator},
#else
{ROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"Scale", Scale_x86_fma_layer_creator},
#else
{Scale_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Sigmoid", Sigmoid_x86_fma_layer_creator},
#else
{Sigmoid_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Slice", Slice_x86_fma_layer_creator},
#else
{Slice_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Softmax", Softmax_x86_fma_layer_creator},
#else
{Softmax_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Split", Split_layer_creator},
#else
{Split_layer_creator},
#endif
#if NCNN_STRING
{"SPP", 0},
#else
{0},
#endif
#if NCNN_STRING
{"TanH", TanH_x86_fma_layer_creator},
#else
{TanH_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Threshold", Threshold_layer_creator},
#else
{Threshold_layer_creator},
#endif
#if NCNN_STRING
{"Tile", Tile_layer_creator},
#else
{Tile_layer_creator},
#endif
#if NCNN_STRING
{"RNN", RNN_layer_creator},
#else
{RNN_layer_creator},
#endif
#if NCNN_STRING
{"LSTM", LSTM_x86_fma_layer_creator},
#else
{LSTM_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"BinaryOp", BinaryOp_x86_fma_layer_creator},
#else
{BinaryOp_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"UnaryOp", UnaryOp_x86_fma_layer_creator},
#else
{UnaryOp_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise", ConvolutionDepthWise_x86_fma_layer_creator},
#else
{ConvolutionDepthWise_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Padding", Padding_x86_fma_layer_creator},
#else
{Padding_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Squeeze", Squeeze_layer_creator},
#else
{Squeeze_layer_creator},
#endif
#if NCNN_STRING
{"ExpandDims", ExpandDims_layer_creator},
#else
{ExpandDims_layer_creator},
#endif
#if NCNN_STRING
{"Normalize", Normalize_layer_creator},
#else
{Normalize_layer_creator},
#endif
#if NCNN_STRING
{"Permute", Permute_layer_creator},
#else
{Permute_layer_creator},
#endif
#if NCNN_STRING
{"PriorBox", PriorBox_layer_creator},
#else
{PriorBox_layer_creator},
#endif
#if NCNN_STRING
{"DetectionOutput", DetectionOutput_layer_creator},
#else
{DetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Interp", Interp_x86_fma_layer_creator},
#else
{Interp_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise", DeconvolutionDepthWise_x86_fma_layer_creator},
#else
{DeconvolutionDepthWise_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"ShuffleChannel", ShuffleChannel_x86_fma_layer_creator},
#else
{ShuffleChannel_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"InstanceNorm", InstanceNorm_x86_fma_layer_creator},
#else
{InstanceNorm_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Clip", Clip_x86_fma_layer_creator},
#else
{Clip_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Reorg", Reorg_layer_creator},
#else
{Reorg_layer_creator},
#endif
#if NCNN_STRING
{"YoloDetectionOutput", YoloDetectionOutput_layer_creator},
#else
{YoloDetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Quantize", Quantize_x86_fma_layer_creator},
#else
{Quantize_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Dequantize", Dequantize_x86_fma_layer_creator},
#else
{Dequantize_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Yolov3DetectionOutput", Yolov3DetectionOutput_x86_fma_layer_creator},
#else
{Yolov3DetectionOutput_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"PSROIPooling", PSROIPooling_layer_creator},
#else
{PSROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"ROIAlign", ROIAlign_x86_fma_layer_creator},
#else
{ROIAlign_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Packing", Packing_x86_fma_layer_creator},
#else
{Packing_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Requantize", Requantize_x86_fma_layer_creator},
#else
{Requantize_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Cast", Cast_x86_fma_layer_creator},
#else
{Cast_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"HardSigmoid", HardSigmoid_x86_fma_layer_creator},
#else
{HardSigmoid_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"SELU", SELU_x86_fma_layer_creator},
#else
{SELU_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"HardSwish", HardSwish_x86_fma_layer_creator},
#else
{HardSwish_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Noop", Noop_layer_creator},
#else
{Noop_layer_creator},
#endif
#if NCNN_STRING
{"PixelShuffle", PixelShuffle_x86_fma_layer_creator},
#else
{PixelShuffle_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"DeepCopy", DeepCopy_layer_creator},
#else
{DeepCopy_layer_creator},
#endif
#if NCNN_STRING
{"Mish", Mish_x86_fma_layer_creator},
#else
{Mish_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"StatisticsPooling", StatisticsPooling_layer_creator},
#else
{StatisticsPooling_layer_creator},
#endif
#if NCNN_STRING
{"Swish", Swish_x86_fma_layer_creator},
#else
{Swish_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Gemm", Gemm_x86_fma_layer_creator},
#else
{Gemm_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"GroupNorm", GroupNorm_x86_fma_layer_creator},
#else
{GroupNorm_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"LayerNorm", LayerNorm_x86_fma_layer_creator},
#else
{LayerNorm_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Softplus", Softplus_layer_creator},
#else
{Softplus_layer_creator},
#endif
#if NCNN_STRING
{"GRU", GRU_layer_creator},
#else
{GRU_layer_creator},
#endif
#if NCNN_STRING
{"MultiHeadAttention", MultiHeadAttention_x86_fma_layer_creator},
#else
{MultiHeadAttention_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"GELU", GELU_x86_fma_layer_creator},
#else
{GELU_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Convolution1D", Convolution1D_x86_fma_layer_creator},
#else
{Convolution1D_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Pooling1D", Pooling1D_layer_creator},
#else
{Pooling1D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise1D", ConvolutionDepthWise1D_layer_creator},
#else
{ConvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Convolution3D", Convolution3D_layer_creator},
#else
{Convolution3D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise3D", ConvolutionDepthWise3D_layer_creator},
#else
{ConvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Pooling3D", Pooling3D_layer_creator},
#else
{Pooling3D_layer_creator},
#endif
#if NCNN_STRING
{"MatMul", MatMul_x86_fma_layer_creator},
#else
{MatMul_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution1D", Deconvolution1D_layer_creator},
#else
{Deconvolution1D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise1D", DeconvolutionDepthWise1D_layer_creator},
#else
{DeconvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution3D", Deconvolution3D_layer_creator},
#else
{Deconvolution3D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise3D", DeconvolutionDepthWise3D_layer_creator},
#else
{DeconvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Einsum", Einsum_layer_creator},
#else
{Einsum_layer_creator},
#endif
#if NCNN_STRING
{"DeformableConv2D", DeformableConv2D_x86_fma_layer_creator},
#else
{DeformableConv2D_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"GLU", GLU_layer_creator},
#else
{GLU_layer_creator},
#endif
#if NCNN_STRING
{"Fold", Fold_layer_creator},
#else
{Fold_layer_creator},
#endif
#if NCNN_STRING
{"Unfold", Unfold_layer_creator},
#else
{Unfold_layer_creator},
#endif
#if NCNN_STRING
{"GridSample", GridSample_x86_fma_layer_creator},
#else
{GridSample_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"CumulativeSum", CumulativeSum_layer_creator},
#else
{CumulativeSum_layer_creator},
#endif
#if NCNN_STRING
{"CopyTo", CopyTo_layer_creator},
#else
{CopyTo_layer_creator},
#endif
#if NCNN_STRING
{"Erf", Erf_x86_fma_layer_creator},
#else
{Erf_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Diag", Diag_layer_creator},
#else
{Diag_layer_creator},
#endif
#if NCNN_STRING
{"CELU", CELU_layer_creator},
#else
{CELU_layer_creator},
#endif
#if NCNN_STRING
{"Shrink", Shrink_layer_creator},
#else
{Shrink_layer_creator},
#endif
#if NCNN_STRING
{"RMSNorm", RMSNorm_x86_fma_layer_creator},
#else
{RMSNorm_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"Spectrogram", Spectrogram_layer_creator},
#else
{Spectrogram_layer_creator},
#endif
#if NCNN_STRING
{"InverseSpectrogram", InverseSpectrogram_layer_creator},
#else
{InverseSpectrogram_layer_creator},
#endif
#if NCNN_STRING
{"Flip", Flip_layer_creator},
#else
{Flip_layer_creator},
#endif
#if NCNN_STRING
{"SDPA", SDPA_x86_fma_layer_creator},
#else
{SDPA_x86_fma_layer_creator},
#endif
#if NCNN_STRING
{"RotaryEmbed", RotaryEmbed_x86_fma_layer_creator},
#else
{RotaryEmbed_x86_fma_layer_creator},
#endif

};
#endif // NCNN_RUNTIME_CPU && NCNN_FMA

#if NCNN_RUNTIME_CPU && NCNN_AVX
static const layer_registry_entry layer_registry_avx[] = {
#if NCNN_STRING
{"AbsVal", AbsVal_x86_avx_layer_creator},
#else
{AbsVal_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"ArgMax", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BatchNorm", BatchNorm_x86_avx_layer_creator},
#else
{BatchNorm_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Bias", Bias_x86_avx_layer_creator},
#else
{Bias_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"BNLL", BNLL_x86_avx_layer_creator},
#else
{BNLL_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Concat", Concat_x86_avx_layer_creator},
#else
{Concat_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Convolution", Convolution_x86_avx_layer_creator},
#else
{Convolution_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Crop", Crop_x86_avx_layer_creator},
#else
{Crop_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution", Deconvolution_x86_avx_layer_creator},
#else
{Deconvolution_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Dropout", Dropout_x86_avx_layer_creator},
#else
{Dropout_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Eltwise", Eltwise_x86_avx_layer_creator},
#else
{Eltwise_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"ELU", ELU_x86_avx_layer_creator},
#else
{ELU_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Embed", Embed_layer_creator},
#else
{Embed_layer_creator},
#endif
#if NCNN_STRING
{"Exp", Exp_layer_creator},
#else
{Exp_layer_creator},
#endif
#if NCNN_STRING
{"Flatten", Flatten_x86_avx_layer_creator},
#else
{Flatten_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"InnerProduct", InnerProduct_x86_avx_layer_creator},
#else
{InnerProduct_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Input", Input_layer_creator},
#else
{Input_layer_creator},
#endif
#if NCNN_STRING
{"Log", Log_layer_creator},
#else
{Log_layer_creator},
#endif
#if NCNN_STRING
{"LRN", LRN_x86_avx_layer_creator},
#else
{LRN_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"MemoryData", MemoryData_layer_creator},
#else
{MemoryData_layer_creator},
#endif
#if NCNN_STRING
{"MVN", MVN_layer_creator},
#else
{MVN_layer_creator},
#endif
#if NCNN_STRING
{"Pooling", Pooling_x86_avx_layer_creator},
#else
{Pooling_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Power", Power_layer_creator},
#else
{Power_layer_creator},
#endif
#if NCNN_STRING
{"PReLU", PReLU_x86_avx_layer_creator},
#else
{PReLU_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Proposal", Proposal_layer_creator},
#else
{Proposal_layer_creator},
#endif
#if NCNN_STRING
{"Reduction", Reduction_layer_creator},
#else
{Reduction_layer_creator},
#endif
#if NCNN_STRING
{"ReLU", ReLU_x86_avx_layer_creator},
#else
{ReLU_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Reshape", Reshape_x86_avx_layer_creator},
#else
{Reshape_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"ROIPooling", ROIPooling_layer_creator},
#else
{ROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"Scale", Scale_x86_avx_layer_creator},
#else
{Scale_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Sigmoid", Sigmoid_x86_avx_layer_creator},
#else
{Sigmoid_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Slice", Slice_x86_avx_layer_creator},
#else
{Slice_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Softmax", Softmax_x86_avx_layer_creator},
#else
{Softmax_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Split", Split_layer_creator},
#else
{Split_layer_creator},
#endif
#if NCNN_STRING
{"SPP", 0},
#else
{0},
#endif
#if NCNN_STRING
{"TanH", TanH_x86_avx_layer_creator},
#else
{TanH_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Threshold", Threshold_layer_creator},
#else
{Threshold_layer_creator},
#endif
#if NCNN_STRING
{"Tile", Tile_layer_creator},
#else
{Tile_layer_creator},
#endif
#if NCNN_STRING
{"RNN", RNN_layer_creator},
#else
{RNN_layer_creator},
#endif
#if NCNN_STRING
{"LSTM", LSTM_x86_avx_layer_creator},
#else
{LSTM_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"BinaryOp", BinaryOp_x86_avx_layer_creator},
#else
{BinaryOp_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"UnaryOp", UnaryOp_x86_avx_layer_creator},
#else
{UnaryOp_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise", ConvolutionDepthWise_x86_avx_layer_creator},
#else
{ConvolutionDepthWise_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Padding", Padding_x86_avx_layer_creator},
#else
{Padding_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Squeeze", Squeeze_layer_creator},
#else
{Squeeze_layer_creator},
#endif
#if NCNN_STRING
{"ExpandDims", ExpandDims_layer_creator},
#else
{ExpandDims_layer_creator},
#endif
#if NCNN_STRING
{"Normalize", Normalize_layer_creator},
#else
{Normalize_layer_creator},
#endif
#if NCNN_STRING
{"Permute", Permute_layer_creator},
#else
{Permute_layer_creator},
#endif
#if NCNN_STRING
{"PriorBox", PriorBox_layer_creator},
#else
{PriorBox_layer_creator},
#endif
#if NCNN_STRING
{"DetectionOutput", DetectionOutput_layer_creator},
#else
{DetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Interp", Interp_x86_avx_layer_creator},
#else
{Interp_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise", DeconvolutionDepthWise_x86_avx_layer_creator},
#else
{DeconvolutionDepthWise_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"ShuffleChannel", ShuffleChannel_x86_avx_layer_creator},
#else
{ShuffleChannel_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"InstanceNorm", InstanceNorm_x86_avx_layer_creator},
#else
{InstanceNorm_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Clip", Clip_x86_avx_layer_creator},
#else
{Clip_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Reorg", Reorg_layer_creator},
#else
{Reorg_layer_creator},
#endif
#if NCNN_STRING
{"YoloDetectionOutput", YoloDetectionOutput_layer_creator},
#else
{YoloDetectionOutput_layer_creator},
#endif
#if NCNN_STRING
{"Quantize", Quantize_x86_avx_layer_creator},
#else
{Quantize_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Dequantize", Dequantize_x86_avx_layer_creator},
#else
{Dequantize_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Yolov3DetectionOutput", Yolov3DetectionOutput_x86_avx_layer_creator},
#else
{Yolov3DetectionOutput_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"PSROIPooling", PSROIPooling_layer_creator},
#else
{PSROIPooling_layer_creator},
#endif
#if NCNN_STRING
{"ROIAlign", ROIAlign_x86_avx_layer_creator},
#else
{ROIAlign_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Packing", Packing_x86_avx_layer_creator},
#else
{Packing_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Requantize", Requantize_x86_avx_layer_creator},
#else
{Requantize_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Cast", Cast_x86_avx_layer_creator},
#else
{Cast_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"HardSigmoid", HardSigmoid_x86_avx_layer_creator},
#else
{HardSigmoid_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"SELU", SELU_x86_avx_layer_creator},
#else
{SELU_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"HardSwish", HardSwish_x86_avx_layer_creator},
#else
{HardSwish_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Noop", Noop_layer_creator},
#else
{Noop_layer_creator},
#endif
#if NCNN_STRING
{"PixelShuffle", PixelShuffle_x86_avx_layer_creator},
#else
{PixelShuffle_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"DeepCopy", DeepCopy_layer_creator},
#else
{DeepCopy_layer_creator},
#endif
#if NCNN_STRING
{"Mish", Mish_x86_avx_layer_creator},
#else
{Mish_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"StatisticsPooling", StatisticsPooling_layer_creator},
#else
{StatisticsPooling_layer_creator},
#endif
#if NCNN_STRING
{"Swish", Swish_x86_avx_layer_creator},
#else
{Swish_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Gemm", Gemm_x86_avx_layer_creator},
#else
{Gemm_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"GroupNorm", GroupNorm_x86_avx_layer_creator},
#else
{GroupNorm_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"LayerNorm", LayerNorm_x86_avx_layer_creator},
#else
{LayerNorm_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Softplus", Softplus_layer_creator},
#else
{Softplus_layer_creator},
#endif
#if NCNN_STRING
{"GRU", GRU_layer_creator},
#else
{GRU_layer_creator},
#endif
#if NCNN_STRING
{"MultiHeadAttention", MultiHeadAttention_x86_avx_layer_creator},
#else
{MultiHeadAttention_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"GELU", GELU_x86_avx_layer_creator},
#else
{GELU_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Convolution1D", Convolution1D_x86_avx_layer_creator},
#else
{Convolution1D_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Pooling1D", Pooling1D_layer_creator},
#else
{Pooling1D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise1D", ConvolutionDepthWise1D_layer_creator},
#else
{ConvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Convolution3D", Convolution3D_layer_creator},
#else
{Convolution3D_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise3D", ConvolutionDepthWise3D_layer_creator},
#else
{ConvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Pooling3D", Pooling3D_layer_creator},
#else
{Pooling3D_layer_creator},
#endif
#if NCNN_STRING
{"MatMul", MatMul_x86_avx_layer_creator},
#else
{MatMul_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution1D", Deconvolution1D_layer_creator},
#else
{Deconvolution1D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise1D", DeconvolutionDepthWise1D_layer_creator},
#else
{DeconvolutionDepthWise1D_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution3D", Deconvolution3D_layer_creator},
#else
{Deconvolution3D_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise3D", DeconvolutionDepthWise3D_layer_creator},
#else
{DeconvolutionDepthWise3D_layer_creator},
#endif
#if NCNN_STRING
{"Einsum", Einsum_layer_creator},
#else
{Einsum_layer_creator},
#endif
#if NCNN_STRING
{"DeformableConv2D", DeformableConv2D_x86_avx_layer_creator},
#else
{DeformableConv2D_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"GLU", GLU_layer_creator},
#else
{GLU_layer_creator},
#endif
#if NCNN_STRING
{"Fold", Fold_layer_creator},
#else
{Fold_layer_creator},
#endif
#if NCNN_STRING
{"Unfold", Unfold_layer_creator},
#else
{Unfold_layer_creator},
#endif
#if NCNN_STRING
{"GridSample", GridSample_x86_avx_layer_creator},
#else
{GridSample_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"CumulativeSum", CumulativeSum_layer_creator},
#else
{CumulativeSum_layer_creator},
#endif
#if NCNN_STRING
{"CopyTo", CopyTo_layer_creator},
#else
{CopyTo_layer_creator},
#endif
#if NCNN_STRING
{"Erf", Erf_x86_avx_layer_creator},
#else
{Erf_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Diag", Diag_layer_creator},
#else
{Diag_layer_creator},
#endif
#if NCNN_STRING
{"CELU", CELU_layer_creator},
#else
{CELU_layer_creator},
#endif
#if NCNN_STRING
{"Shrink", Shrink_layer_creator},
#else
{Shrink_layer_creator},
#endif
#if NCNN_STRING
{"RMSNorm", RMSNorm_x86_avx_layer_creator},
#else
{RMSNorm_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"Spectrogram", Spectrogram_layer_creator},
#else
{Spectrogram_layer_creator},
#endif
#if NCNN_STRING
{"InverseSpectrogram", InverseSpectrogram_layer_creator},
#else
{InverseSpectrogram_layer_creator},
#endif
#if NCNN_STRING
{"Flip", Flip_layer_creator},
#else
{Flip_layer_creator},
#endif
#if NCNN_STRING
{"SDPA", SDPA_x86_avx_layer_creator},
#else
{SDPA_x86_avx_layer_creator},
#endif
#if NCNN_STRING
{"RotaryEmbed", RotaryEmbed_x86_avx_layer_creator},
#else
{RotaryEmbed_x86_avx_layer_creator},
#endif

};
#endif // NCNN_RUNTIME_CPU && NCNN_AVX

#if NCNN_RUNTIME_CPU && NCNN_MSA
static const layer_registry_entry layer_registry_msa[] = {

};
#endif // NCNN_RUNTIME_CPU && NCNN_MSA

#if NCNN_RUNTIME_CPU && NCNN_LASX
static const layer_registry_entry layer_registry_lasx[] = {

};
#endif // NCNN_RUNTIME_CPU && NCNN_LASX

#if NCNN_RUNTIME_CPU && NCNN_LSX
static const layer_registry_entry layer_registry_lsx[] = {

};
#endif // NCNN_RUNTIME_CPU && NCNN_LSX

#if NCNN_RUNTIME_CPU && NCNN_RVV
static const layer_registry_entry layer_registry_rvv[] = {

};
#endif // NCNN_RUNTIME_CPU && NCNN_RVV

#if NCNN_RUNTIME_CPU && NCNN_XTHEADVECTOR
static const layer_registry_entry layer_registry_xtheadvector[] = {

};
#endif // NCNN_RUNTIME_CPU && NCNN_XTHEADVECTOR

#if NCNN_VULKAN
static const layer_registry_entry layer_registry_vulkan[] = {
#if NCNN_STRING
{"AbsVal", AbsVal_vulkan_layer_creator},
#else
{AbsVal_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"ArgMax", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BatchNorm", BatchNorm_vulkan_layer_creator},
#else
{BatchNorm_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Bias", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BNLL", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Concat", Concat_vulkan_layer_creator},
#else
{Concat_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Convolution", Convolution_vulkan_layer_creator},
#else
{Convolution_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Crop", Crop_vulkan_layer_creator},
#else
{Crop_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Deconvolution", Deconvolution_vulkan_layer_creator},
#else
{Deconvolution_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Dropout", Dropout_vulkan_layer_creator},
#else
{Dropout_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Eltwise", Eltwise_vulkan_layer_creator},
#else
{Eltwise_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"ELU", ELU_vulkan_layer_creator},
#else
{ELU_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Embed", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Exp", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Flatten", Flatten_vulkan_layer_creator},
#else
{Flatten_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"InnerProduct", InnerProduct_vulkan_layer_creator},
#else
{InnerProduct_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Input", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Log", 0},
#else
{0},
#endif
#if NCNN_STRING
{"LRN", LRN_vulkan_layer_creator},
#else
{LRN_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"MemoryData", MemoryData_vulkan_layer_creator},
#else
{MemoryData_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"MVN", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Pooling", Pooling_vulkan_layer_creator},
#else
{Pooling_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Power", 0},
#else
{0},
#endif
#if NCNN_STRING
{"PReLU", PReLU_vulkan_layer_creator},
#else
{PReLU_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Proposal", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Reduction", Reduction_vulkan_layer_creator},
#else
{Reduction_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"ReLU", ReLU_vulkan_layer_creator},
#else
{ReLU_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Reshape", Reshape_vulkan_layer_creator},
#else
{Reshape_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"ROIPooling", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Scale", Scale_vulkan_layer_creator},
#else
{Scale_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Sigmoid", Sigmoid_vulkan_layer_creator},
#else
{Sigmoid_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Slice", Slice_vulkan_layer_creator},
#else
{Slice_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Softmax", Softmax_vulkan_layer_creator},
#else
{Softmax_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Split", Split_vulkan_layer_creator},
#else
{Split_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"SPP", 0},
#else
{0},
#endif
#if NCNN_STRING
{"TanH", TanH_vulkan_layer_creator},
#else
{TanH_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Threshold", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Tile", 0},
#else
{0},
#endif
#if NCNN_STRING
{"RNN", 0},
#else
{0},
#endif
#if NCNN_STRING
{"LSTM", 0},
#else
{0},
#endif
#if NCNN_STRING
{"BinaryOp", BinaryOp_vulkan_layer_creator},
#else
{BinaryOp_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"UnaryOp", UnaryOp_vulkan_layer_creator},
#else
{UnaryOp_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise", ConvolutionDepthWise_vulkan_layer_creator},
#else
{ConvolutionDepthWise_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Padding", Padding_vulkan_layer_creator},
#else
{Padding_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Squeeze", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ExpandDims", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Normalize", Normalize_vulkan_layer_creator},
#else
{Normalize_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Permute", Permute_vulkan_layer_creator},
#else
{Permute_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"PriorBox", PriorBox_vulkan_layer_creator},
#else
{PriorBox_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"DetectionOutput", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Interp", Interp_vulkan_layer_creator},
#else
{Interp_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise", DeconvolutionDepthWise_vulkan_layer_creator},
#else
{DeconvolutionDepthWise_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"ShuffleChannel", ShuffleChannel_vulkan_layer_creator},
#else
{ShuffleChannel_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"InstanceNorm", InstanceNorm_vulkan_layer_creator},
#else
{InstanceNorm_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Clip", Clip_vulkan_layer_creator},
#else
{Clip_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Reorg", Reorg_vulkan_layer_creator},
#else
{Reorg_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"YoloDetectionOutput", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Quantize", Quantize_vulkan_layer_creator},
#else
{Quantize_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Dequantize", Dequantize_vulkan_layer_creator},
#else
{Dequantize_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Yolov3DetectionOutput", 0},
#else
{0},
#endif
#if NCNN_STRING
{"PSROIPooling", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ROIAlign", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Packing", Packing_vulkan_layer_creator},
#else
{Packing_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Requantize", Requantize_vulkan_layer_creator},
#else
{Requantize_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Cast", Cast_vulkan_layer_creator},
#else
{Cast_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"HardSigmoid", HardSigmoid_vulkan_layer_creator},
#else
{HardSigmoid_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"SELU", SELU_vulkan_layer_creator},
#else
{SELU_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"HardSwish", HardSwish_vulkan_layer_creator},
#else
{HardSwish_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Noop", Noop_vulkan_layer_creator},
#else
{Noop_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"PixelShuffle", PixelShuffle_vulkan_layer_creator},
#else
{PixelShuffle_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"DeepCopy", DeepCopy_vulkan_layer_creator},
#else
{DeepCopy_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Mish", Mish_vulkan_layer_creator},
#else
{Mish_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"StatisticsPooling", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Swish", Swish_vulkan_layer_creator},
#else
{Swish_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Gemm", Gemm_vulkan_layer_creator},
#else
{Gemm_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"GroupNorm", GroupNorm_vulkan_layer_creator},
#else
{GroupNorm_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"LayerNorm", LayerNorm_vulkan_layer_creator},
#else
{LayerNorm_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Softplus", Softplus_vulkan_layer_creator},
#else
{Softplus_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"GRU", 0},
#else
{0},
#endif
#if NCNN_STRING
{"MultiHeadAttention", MultiHeadAttention_vulkan_layer_creator},
#else
{MultiHeadAttention_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"GELU", GELU_vulkan_layer_creator},
#else
{GELU_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Convolution1D", Convolution1D_vulkan_layer_creator},
#else
{Convolution1D_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Pooling1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Convolution3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"ConvolutionDepthWise3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Pooling3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"MatMul", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Deconvolution1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise1D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Deconvolution3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DeconvolutionDepthWise3D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Einsum", 0},
#else
{0},
#endif
#if NCNN_STRING
{"DeformableConv2D", 0},
#else
{0},
#endif
#if NCNN_STRING
{"GLU", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Fold", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Unfold", Unfold_vulkan_layer_creator},
#else
{Unfold_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"GridSample", 0},
#else
{0},
#endif
#if NCNN_STRING
{"CumulativeSum", 0},
#else
{0},
#endif
#if NCNN_STRING
{"CopyTo", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Erf", Erf_vulkan_layer_creator},
#else
{Erf_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Diag", 0},
#else
{0},
#endif
#if NCNN_STRING
{"CELU", CELU_vulkan_layer_creator},
#else
{CELU_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Shrink", Shrink_vulkan_layer_creator},
#else
{Shrink_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"RMSNorm", RMSNorm_vulkan_layer_creator},
#else
{RMSNorm_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"Spectrogram", 0},
#else
{0},
#endif
#if NCNN_STRING
{"InverseSpectrogram", 0},
#else
{0},
#endif
#if NCNN_STRING
{"Flip", 0},
#else
{0},
#endif
#if NCNN_STRING
{"SDPA", SDPA_vulkan_layer_creator},
#else
{SDPA_vulkan_layer_creator},
#endif
#if NCNN_STRING
{"RotaryEmbed", RotaryEmbed_vulkan_layer_creator},
#else
{RotaryEmbed_vulkan_layer_creator},
#endif

};
#endif // NCNN_VULKAN
