From patchwork Sat Feb 17 00:12:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46302 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp66513pzb; Fri, 16 Feb 2024 16:11:04 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVHX9p0SUh/FLpbq6+O/3VnIzno8R7oQa0r+DKAC+/C+095LzAqBrXud7dD3w7MU67GxtP+rAXQo+/CuY86Mo9lge702IGoZdz5LA== X-Google-Smtp-Source: AGHT+IGY8ld0eXdp2eRsruOrnjdbTHEY/B/EkY4zdZZT6D3zOD5I3SN//SFVv6/Zw+j9pe2CB9bg X-Received: by 2002:a17:906:7c46:b0:a3d:1798:deab with SMTP id g6-20020a1709067c4600b00a3d1798deabmr4479023ejp.6.1708128664326; Fri, 16 Feb 2024 16:11:04 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n7-20020a170906b30700b00a3daba70df6si352087ejz.955.2024.02.16.16.11.03; Fri, 16 Feb 2024 16:11:04 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=PmxO9P10; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A707268D2D1; Sat, 17 Feb 2024 02:10:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2083.outbound.protection.outlook.com [40.92.73.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 458FF68D18F for ; Sat, 17 Feb 2024 02:10:53 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eOnLjD+zZD2btznKCJp+SBjmPExmXiB6KRSNTvp4NQWZD0bpAC7nB5fOfALNwW4QI2ODJ3L40hc+Q5iaQYhhDYmbngqUmcNg7d8YdvGRMbopG5BReL2+c56/qZYSHvB3U0JTVm1Sv6QiXZShaaQFgy+Cap2hSu0SEW8ZUk/pXGnPW2LtjBlXklLlWe/e0DQ/OE4lmyAqBNP++1lTp0XXGfo2f/zELqEf0PlY6+pTub4VgpTDKUvQX4lGBKQ/yopbjW2E0G+v+ZllJi8lNYZGPAoIM3creW5qQ8Af7uoXhcy/GxPQX6ARNeEy5tdsFWU/hIxr5xjEL6VXKLmbgRYRTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vq7d9nNQ7Ymt7E66qTAm5JB25igul4586TUCVg4oJZM=; b=axJ7kVQN4OWi/PBL2tGH6tfKoTFysEf1vUV7u4FQaLAlOO7oz7vlWhBZ6yeTHDWOKHrFMc0rO+XVj7zv+grARzx/hXniACl+qchSpDrgCFdnsl3GZiuKp66tswaQP8CKCphH00lkc1bC9Dn5nIZrS9XC12RBIfEkE1XV9O2w5Ge5QJcKwE83vYoQGI5IEr7wXTPMtPNPhh3r6oDrZKSelDXVbPvn24vaJCjMzQ5isDz7EOBULrBwb/PFD38WECod4MnzcLgA+/WOXgvlyn8Rf0Lyn8pGAdMwvbwwuqNMfU+A5w00QlwtcqIhFbgNEOLujoH1FsWr7syBzD36utS95A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vq7d9nNQ7Ymt7E66qTAm5JB25igul4586TUCVg4oJZM=; b=PmxO9P10ZHjiIF1fqmPwKdd4FlOz1JhZ6aXn40IllPbzWkPb650c/2lr95FLqmrZWpnPOFBFpd+uJ10M6OgwQ7dTFruClHnzvVhEv05plrwvrgnx/BCpMl02PpStfWi1GRXCtSyV+zflZIap++q+gVo1PZrC5kQoIReeqn2KlpsnTD3dNSskNJMfwY00XbC39u5vN+US17DwFNVilE1EwTgxKfvchxVgSZJ5QsG+4aIcT9Z7eOAZqgOLHPB/TK/6r2hN7WiXFFcdNwQu3gPAWjhKxB/gxFyCqlp+gPEbCuvqA7LtXrCyN4UJ1GgdjwWcvlteq61VGDp8E7MmF3vB/Q== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0324.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.31; Sat, 17 Feb 2024 00:10:50 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7270.036; Sat, 17 Feb 2024 00:10:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Feb 2024 01:12:38 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [a0S7wFkJLl1d4ujaXs6Fodl56iQPpfw7QqtefhyNwnE=] X-ClientProxiedBy: ZR2P278CA0084.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:65::8) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240217001239.2225331-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0324:EE_ X-MS-Office365-Filtering-Correlation-Id: 422bf7ba-9e07-45eb-b717-08dc2f4ce5d4 X-MS-Exchange-SLBlob-MailProps: 9IecXKUgicDk7xT2Lt/4dZMOx2L6DYpW9P+YqsAD9HAJetjnxKFQ6nJJMm5sdEhEbEVo0042HGWXk+10tczfK9YfzcALj7jMrMFzMYXl4rAItH4arWzoT/qAB07vND7zvu3rXuYFj8yqG2nt+mkiM4MF5T0pBndA9rr0A/8Xws6sJPLUpdmGhqfLHFeKCz+kpe91R3R7D8kzIb3GIAReBIN48I5lydK9/vjFPTsLqI9HHxc1o5LOdVP5lUJxzMClZ4eStaioQJagLyZa454r9ZMSInNuVG24w+qAbfWIUBa0laRE1ty3iYMSqOagV/41+kVdDxJIrGhZayG6rZfFLqA0SF7nnyE1nFMMiAnHCaU5GbkRVQRBdZK7+jhOWQCJTSkAU/wHTdY6iCcqHL9yIPukDgcwoKBPK5FuAaRNHNzy84C9aCnWi6zx4oKP7kUPo0UoG9n8f0w+S11aQaz/pzWrkvfLYBLQ23Vl5sQGsrZ/qBaGvoOliOeSOxa8AQJYuv4nwma/hybSicq3v0DN/MIc+egH9RSd8+MvKCd6UFGZlYvZphaIUXS7P1KwdWG+xKi16pXyDATZ5WyoHMQ9hAIU5PtPI7GvCDmcpGl/G0i3iPmGYeiT/pZzTdgN7h/yipQEMbvyoU1SOtU1WQ/N/9knZqIB4UOjEXJ8FgEwiuTIBWt2yXEXfA2aVi03BaBkLa56dvh+90FWphRA9dQ/c0SuWnJvM/xzr5KoYSVU4FkN0+ohHKQz/g== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6eLexzqefJmFie1vfK3gEs/Hvu4JFcTQpSKrfiqSsQiQjjL1R12BNIlsolbi9wYukxOJIj0RCmGFzvzbQxnMyVIEHRlvMxffROHGPleqIVGo72xzs/IUdgdVB9dplaelRyQKFgk3vdMWCeIO4QTIO9OrqAOnwzrdiCSUbfcTtNAzlLMDcbEe7HSixyujUU1Ma/K9evWHqy4RUac0mBqxJLYzCHL7zgXO2oCfUM0anz6l7O5DnUZadbhtFg4/yUaekYMK+Gwp19BFbSpoMHXX/jGLrryRWVrPIKjBXtPo0qETFI5DXCH9Cb2Lzkj4zgtawqLBlTX7B3MNXY8c6G9QUYhAuTeu9fntwxet+ZnQdfHmAnLsyacFMvQfMOACOeDnOy8lNb+8ggHY17HpHuR46t3B/pOvCYOVt4RY3UWVl8XuLg7mFYzDvr39PW+tUgchyYpavf4ndi13VAmhBqv1Io2OVWQUu+4sM3BQICH57NMw17BCnXLbtNldiXdIBd/Imbq1pywBh6uaHa27HLSmaMHrbeFQIcPx+eC4kK36PtgTqF/k9ELG+WWN2OBDjR4oQRxonY+qJ2Nn0BUx+vV1F5zEQ915SQPQJpsERMWrKdCYByJeb7BOTmTv0QMyegLt X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YBqKtLLMcQaCpNIa+bwBixVxrcWMC2vLtDYxs77GK9WQ0A0mvgF2ngw7BVTOabNUCkoE4J0OXdneRXIeUX3O58f3o2AYOTy0wWhzWDz3lnAtEgJk/34BXKagMX+/1BHV7P/dAat+2IlKHtsqAJdSc8KZpWI5v0ntI7bHCVr13eqoopy08+cMvzsq/fsMM+WbDnFaDay25OME3ox0NwQ6BhGlu19cxb+Lx/cjEFFUdhOEWX+jizT+rebYa6Q818n1/FgTpTJrU7d0ZMIBc5xW/stJqlMSkHnd5Fk6BUPFBdIDwO+22lOsqGvp6W0BIzBsfbbq12X4Xt0vyIIOo73oPHaUB456VLPU/Lop7hMMydErXP3g147OdH2zmtiiDisrRMdbsG0ycc2FSAg4klUtG8CxfS9oAd7+2kXZBy9mKyZt1uD+9HetVHb9Ohr9wZ6DFS64rPSkQhMkjVTuSjMk5CCcYrbGKl4zYx+SaX9PFj/i/3FBJygXBi+W3fcdKhoZU2cdxeJ0jC6UfIaUVy1q6ybsFcuchRu77RgFwU//Zlpuu+2LTHCSfelzxdXwutN1Jon2olNgUEc7q6UFvjpUx+vOdu/IftBPvyOl1gIAb+6utGzs0VgTseiMO72lYwRq6iGi4z/rOQth+PKyDwfB4bvdyuDFodHVmJ+3LfM647FW6D36NIx3w2oh6jfR4zeqBKcv5AQx997f0P4NgfqlG/gwe7dOL4kiMKqpg2tSoM4Nk6MMd413hPeuCoGjFoNhevSZzIT6QHie2wDdi54DewuodNuNo4d5ICHzq1aG/5WSolfn6VhOikGeHmcmVsWwOppUeLerj226dV337qMjeiz6+wHEQlw6qk7expOZebBGjfOu9NxtSbtJG/C27Xb9FD/xKOgRPJQS4NL/XpS3iLewlTn+iZtxY0inLyGbgv4YDhkszByT2TSfNQsKJcZSqxOT0a4umR6PE34UgmEhgAMlJX+24KWHPyupbCy3KVeEZ3pB9qhjwBZDq9nei+vhtEZb2Icw0VGbyHpWL4Kg/Uhem8AKkmSN7bQzDsrQPsi5o29FNX0bE/KxoHqtiVg0Zsx53eEVV6gzK/+4qIU1kg7hO5A7GxzsJKqWSSV4dxZJ9AtXqmIpMUQO2KbZ7e8iIWrodgu4spt5tKl3TzqclRU7EP56QFlrg53VdtBzBa6JdS5pfO8uL5JUbWmgKttjfrTkFvlNMQZCugSV8CIqlmuGKxMKNmGmde3aNr2XHypMHvE4csnJp86JKe+Ct6PKk6a5gVfULV/2Qof0aYWmAA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 422bf7ba-9e07-45eb-b717-08dc2f4ce5d4 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2024 00:10:50.1792 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0324 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/h264qpel_template: Mark pointers as non-aliasing X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: NVZ+JIlxjXiJ It allows the compiler to combine two reads and writes of adjacent 32bit memory locations into 64bit read-writes. Signed-off-by: Andreas Rheinhardt --- libavcodec/h264qpel_template.c | 93 +++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/libavcodec/h264qpel_template.c b/libavcodec/h264qpel_template.c index 27c5b8f17f..61fa55c689 100644 --- a/libavcodec/h264qpel_template.c +++ b/libavcodec/h264qpel_template.c @@ -26,7 +26,7 @@ #include "hpel_template.c" #include "pel_template.c" -static inline void FUNC(copy_block2)(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h) +static inline void FUNC(copy_block2)(uint8_t *dst, const uint8_t *av_restrict src, int dstStride, int srcStride, int h) { int i; for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ src -= 2*srcStride;\ @@ -150,12 +153,13 @@ static av_unused void FUNC(OPNAME ## h264_qpel2_hv_lowpass)(uint8_t *_dst, pixel tmp++;\ }\ }\ -static void FUNC(OPNAME ## h264_qpel4_h_lowpass)(uint8_t *_dst, const uint8_t *_src, int dstStride, int srcStride){\ +static void FUNC(OPNAME ## h264_qpel4_h_lowpass)(uint8_t *_dst, const uint8_t *av_restrict _src, int dstStride, int srcStride)\ +{\ const int h=4;\ INIT_CLIP\ int i;\ pixel *dst = (pixel*)_dst;\ - const pixel *src = (const pixel*)_src;\ + const pixel *av_restrict src = (const pixel*)_src;\ dstStride >>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ src -= 2*srcStride;\ @@ -238,12 +244,13 @@ static void FUNC(OPNAME ## h264_qpel4_hv_lowpass)(uint8_t *_dst, pixeltmp *tmp, }\ }\ \ -static void FUNC(OPNAME ## h264_qpel8_h_lowpass)(uint8_t *_dst, const uint8_t *_src, int dstStride, int srcStride){\ +static void FUNC(OPNAME ## h264_qpel8_h_lowpass)(uint8_t *_dst, const uint8_t *av_restrict _src, int dstStride, int srcStride)\ +{\ const int h=8;\ INIT_CLIP\ int i;\ pixel *dst = (pixel*)_dst;\ - const pixel *src = (const pixel*)_src;\ + const pixel *av_restrict src = (const pixel*)_src;\ dstStride >>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ for(i=0; i>= sizeof(pixel)-1;\ srcStride >>= sizeof(pixel)-1;\ src -= 2*srcStride;\ @@ -350,7 +359,8 @@ static void FUNC(OPNAME ## h264_qpel8_hv_lowpass)(uint8_t *_dst, pixeltmp *tmp, }\ }\ \ -static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ +static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst, const uint8_t *av_restrict src, int dstStride, int srcStride)\ +{\ FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst , src , dstStride, srcStride);\ FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\ src += 8*srcStride;\ @@ -359,7 +369,8 @@ static void FUNC(OPNAME ## h264_qpel16_v_lowpass)(uint8_t *dst, const uint8_t *s FUNC(OPNAME ## h264_qpel8_v_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\ }\ \ -static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ +static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst, const uint8_t *av_restrict src, int dstStride, int srcStride)\ +{\ FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst , src , dstStride, srcStride);\ FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\ src += 8*srcStride;\ @@ -368,7 +379,7 @@ static void FUNC(OPNAME ## h264_qpel16_h_lowpass)(uint8_t *dst, const uint8_t *s FUNC(OPNAME ## h264_qpel8_h_lowpass)(dst+8*sizeof(pixel), src+8*sizeof(pixel), dstStride, srcStride);\ }\ \ -static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, pixeltmp *tmp, const uint8_t *src, int dstStride, int tmpStride, int srcStride){\ +static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, pixeltmp *tmp, const uint8_t *av_restrict src, int dstStride, int tmpStride, int srcStride){\ FUNC(OPNAME ## h264_qpel8_hv_lowpass)(dst , tmp , src , dstStride, tmpStride, srcStride);\ FUNC(OPNAME ## h264_qpel8_hv_lowpass)(dst+8*sizeof(pixel), tmp+8, src+8*sizeof(pixel), dstStride, tmpStride, srcStride);\ src += 8*srcStride;\ @@ -378,31 +389,31 @@ static void FUNC(OPNAME ## h264_qpel16_hv_lowpass)(uint8_t *dst, pixeltmp *tmp, }\ #define H264_MC(OPNAME, SIZE) \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc00)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc00)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ FUNCC(OPNAME ## pixels ## SIZE)(dst, src, stride, SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc10)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc10)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t half[SIZE*SIZE*sizeof(pixel)];\ FUNC(put_h264_qpel ## SIZE ## _h_lowpass)(half, src, SIZE*sizeof(pixel), stride);\ FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, src, half, stride, stride, SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc20)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc20)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ FUNC(OPNAME ## h264_qpel ## SIZE ## _h_lowpass)(dst, src, stride, stride);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc30)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc30)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t half[SIZE*SIZE*sizeof(pixel)];\ FUNC(put_h264_qpel ## SIZE ## _h_lowpass)(half, src, SIZE*sizeof(pixel), stride);\ FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, src+sizeof(pixel), half, stride, stride, SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -412,7 +423,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc01)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, full_mid, half, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -420,7 +431,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc02)(uint8_t *dst, const uint FUNC(OPNAME ## h264_qpel ## SIZE ## _v_lowpass)(dst, full_mid, stride, SIZE*sizeof(pixel));\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -430,7 +441,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc03)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, full_mid+SIZE*sizeof(pixel), half, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -442,7 +453,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc11)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -454,7 +465,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc31)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -466,7 +477,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc13)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -478,13 +489,13 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc33)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc22)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc22)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ pixeltmp tmp[SIZE*(SIZE+5)*sizeof(pixel)];\ FUNC(OPNAME ## h264_qpel ## SIZE ## _hv_lowpass)(dst, tmp, src, stride, SIZE*sizeof(pixel), stride);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ pixeltmp tmp[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t halfH[SIZE*SIZE*sizeof(pixel)];\ @@ -494,7 +505,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc21)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ pixeltmp tmp[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t halfH[SIZE*SIZE*sizeof(pixel)];\ @@ -504,7 +515,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc23)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfH, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\ @@ -517,7 +528,7 @@ static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc12)(uint8_t *dst, const uint FUNC(OPNAME ## pixels ## SIZE ## _l2)(dst, halfV, halfHV, stride, SIZE*sizeof(pixel), SIZE*sizeof(pixel), SIZE);\ }\ \ -static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc32)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)\ +static void FUNCC(OPNAME ## h264_qpel ## SIZE ## _mc32)(uint8_t *dst, const uint8_t *av_restrict src, ptrdiff_t stride)\ {\ uint8_t full[SIZE*(SIZE+5)*sizeof(pixel)];\ uint8_t * const full_mid= full + SIZE*2*sizeof(pixel);\