From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 95312 invoked by alias); 16 Aug 2017 21:15:55 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 94934 invoked by uid 89); 16 Aug 2017 21:15:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-7.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_1,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy= X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_1,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: smtp-1.orcon.net.nz Received: from smtp-1.orcon.net.nz (HELO smtp-1.orcon.net.nz) (60.234.4.34) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 16 Aug 2017 21:15:39 +0000 Received: from [130.217.188.11] (port=22206 helo=cree.waikato.ac.nz) by smtp-1.orcon.net.nz with esmtpa (Exim 4.86_2) (envelope-from ) id 1di5ew-0006lK-3C; Thu, 17 Aug 2017 09:15:34 +1200 Date: Sun, 01 Jan 2017 00:00:00 -0000 From: Michael Cree To: David Malcolm Cc: jit@gcc.gnu.org Subject: Re: [committed] jit: add gcc_jit_type_get_vector Message-ID: <20170816211520.GA2399@cree.waikato.ac.nz> References: <20170809084227.s23odfpcdyjvrtin@tower> <1502326873-58234-1-git-send-email-dmalcolm@redhat.com> <20170816095854.dp3qe5dmsuqnblsg@tower> <1502892117.3741.15.camel@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="WIyZ46R2i8wDzkSu" Content-Disposition: inline In-Reply-To: <1502892117.3741.15.camel@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-GeoIP: NZ X-Spam_score: -1.0 X-Spam_score_int: -9 X-Spam_bar: - X-IsSubscribed: yes X-SW-Source: 2017-q3/txt/msg00010.txt.bz2 --WIyZ46R2i8wDzkSu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 1064 On Wed, Aug 16, 2017 at 10:01:57AM -0400, David Malcolm wrote: > On Wed, 2017-08-16 at 21:58 +1200, Michael Cree wrote: > > > > But I have hit a problem which I suspect is a bug in the gcc > > optimiser. > > > > In the vein of your example above, but working on uint8_t pixel data > > and adding saturation, the jit compiler segfaults in the optimiser. I > > provide below the gimple produced by the function that causes the > > problem (I presume that is more useful than the code calling the > > gcc_jit routines), > > There's actually a handy entrypoint for generating minimal reproducers > for such crashes: > gcc_jit_context_dump_reproducer_to_file > > https://gcc.gnu.org/onlinedocs/jit/topics/contexts.html#gcc_jit_context_dump_reproducer_to_file > > Can you add a call to that to your code (after the context is fully > populated), and see if the resulting .c file leads to the crash when > run? If so, can you post the .c file here please (or attach it to > bugzilla), and hopefully I can then reproduce it at my end. Attached. Cheers Michael. --WIyZ46R2i8wDzkSu Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="ip-jit-reproducer-dump.c" Content-length: 42256 /* This code was autogenerated by gcc_jit_context_dump_reproducer_to_file. libgccjit (Debian 6.3.0-18) version 6.3.0 20170516 (x86_64-linux-gnu) compiled by GNU C version 6.3.0 20170516, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15 */ #include #pragma GCC diagnostic ignored "-Wunused-variable" static void set_options (gcc_jit_context *ctxt_0x55a43caf3990); static void create_code (gcc_jit_context *ctxt_0x55a43caf3990); int main (int argc, const char **argv) { gcc_jit_context *ctxt_0x55a43caf3990; gcc_jit_result *result; ctxt_0x55a43caf3990 = gcc_jit_context_acquire (); set_options (ctxt_0x55a43caf3990); create_code (ctxt_0x55a43caf3990); result = gcc_jit_context_compile (ctxt_0x55a43caf3990); gcc_jit_context_release (ctxt_0x55a43caf3990); gcc_jit_result_release (result); return 0; } static void set_options (gcc_jit_context *ctxt_0x55a43caf3990) { /* Set options for ctxt_0x55a43caf3990. */ /* String options. */ gcc_jit_context_set_str_option (ctxt_0x55a43caf3990, GCC_JIT_STR_OPTION_PROGNAME, NULL); /* Int options. */ gcc_jit_context_set_int_option (ctxt_0x55a43caf3990, GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL, 3); /* Boolean options. */ gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_DEBUGINFO, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_DUMP_INITIAL_TREE, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_DUMP_SUMMARY, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_SELFCHECK_GC, 0); gcc_jit_context_set_bool_option (ctxt_0x55a43caf3990, GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES, 0); gcc_jit_context_set_bool_allow_unreachable_blocks (ctxt_0x55a43caf3990, 0); gcc_jit_context_set_bool_use_external_driver (ctxt_0x55a43caf3990, 0); /* User-provided command-line options. */ gcc_jit_context_add_command_line_option (ctxt_0x55a43caf3990, "-mavx2"); } static void create_code (gcc_jit_context *ctxt_0x55a43caf3990) { /* Replay of API calls for ctxt_0x55a43caf3990. */ gcc_jit_type *type_void_0x55a43caf3af0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_VOID); gcc_jit_type *type_char_0x55a43caf3b30 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_CHAR); gcc_jit_type *type_int_0x55a43caf3b70 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_INT); gcc_jit_type *type_unsigned_int_0x55a43caf3bb0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_UNSIGNED_INT); gcc_jit_type *type_float_0x55a43caf3bf0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_FLOAT); gcc_jit_type *type_double_0x55a43caf3c80 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_DOUBLE); gcc_jit_type *type_size_t_0x55a43caf3cc0 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_SIZE_T); gcc_jit_type *type_unsigned_char_0x55a43caf3d00 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_UNSIGNED_CHAR); gcc_jit_type *type_signed_char_0x55a43caf3d40 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_SIGNED_CHAR); gcc_jit_type *type_unsigned_short_0x55a43caf3e10 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_UNSIGNED_SHORT); gcc_jit_type *type_short_0x55a43caf3e50 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_SHORT); gcc_jit_type *type_void___0x55a43caf3e90 = gcc_jit_type_get_pointer (type_void_0x55a43caf3af0); gcc_jit_type *type_void_____0x55a43caf3ed0 = gcc_jit_type_get_pointer (type_void___0x55a43caf3e90); gcc_jit_type *type_const_char___0x55a43caf3f10 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_CONST_CHAR_PTR); gcc_jit_type *type_unsigned_char___0x55a43caf3f50 = gcc_jit_type_get_pointer (type_unsigned_char_0x55a43caf3d00); gcc_jit_type *type_unsigned_short___0x55a43caf3f90 = gcc_jit_type_get_pointer (type_unsigned_short_0x55a43caf3e10); gcc_jit_type *type_short___0x55a43caf3fd0 = gcc_jit_type_get_pointer (type_short_0x55a43caf3e50); gcc_jit_type *type_unsigned_int___0x55a43caf3d80 = gcc_jit_type_get_pointer (type_unsigned_int_0x55a43caf3bb0); gcc_jit_type *type_int___0x55a43caf3dc0 = gcc_jit_type_get_pointer (type_int_0x55a43caf3b70); gcc_jit_type *type_float___0x55a43caf40e0 = gcc_jit_type_get_pointer (type_float_0x55a43caf3bf0); gcc_jit_type *type_double___0x55a43caf4120 = gcc_jit_type_get_pointer (type_double_0x55a43caf3c80); gcc_jit_type *array_type_void___2__0x55a43caf3c30 = gcc_jit_context_new_array_type (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_void___0x55a43caf3e90, /* gcc_jit_type *element_type */ 2); /* int num_elements */ gcc_jit_field *field_r_0x55a43caf41a0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_float_0x55a43caf3bf0, /* gcc_jit_type *type, */ "r"); /* const char *name */ gcc_jit_field *field_i_0x55a43caf4010 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_float_0x55a43caf3bf0, /* gcc_jit_type *type, */ "i"); /* const char *name */ gcc_jit_struct *struct_struct_ip_complex_0x55a43caf4360 = gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ "ip_complex"); /* const char *name */ gcc_jit_field *fields_fields_0x55a43caf40a0[2] = { field_r_0x55a43caf41a0, field_i_0x55a43caf4010, }; gcc_jit_struct_set_fields (struct_struct_ip_complex_0x55a43caf4360, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x55a43caf40a0); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_ip_complex___0x55a43caf43b0 = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_complex_0x55a43caf4360)); gcc_jit_field *field_r_0x55a43caf4450 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_double_0x55a43caf3c80, /* gcc_jit_type *type, */ "r"); /* const char *name */ gcc_jit_field *field_i_0x55a43caf4500 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_double_0x55a43caf3c80, /* gcc_jit_type *type, */ "i"); /* const char *name */ gcc_jit_struct *struct_struct_ip_dcomplex_0x55a43caf45b0 = gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ "ip_dcomplex"); /* const char *name */ gcc_jit_field *fields_fields_0x55a43caf4600[2] = { field_r_0x55a43caf4450, field_i_0x55a43caf4500, }; gcc_jit_struct_set_fields (struct_struct_ip_dcomplex_0x55a43caf45b0, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x55a43caf4600); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_ip_dcomplex___0x55a43caf4230 = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_dcomplex_0x55a43caf45b0)); gcc_jit_field *field_r_0x55a43caf42d0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_char_0x55a43caf3d00, /* gcc_jit_type *type, */ "r"); /* const char *name */ gcc_jit_field *field_g_0x55a43caf4850 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_char_0x55a43caf3d00, /* gcc_jit_type *type, */ "g"); /* const char *name */ gcc_jit_field *field_b_0x55a43caf4900 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_char_0x55a43caf3d00, /* gcc_jit_type *type, */ "b"); /* const char *name */ gcc_jit_struct *struct_struct_ip_rgb_0x55a43caf49b0 = gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ "ip_rgb"); /* const char *name */ gcc_jit_field *fields_fields_0x55a43caf4a00[3] = { field_r_0x55a43caf42d0, field_g_0x55a43caf4850, field_b_0x55a43caf4900, }; gcc_jit_struct_set_fields (struct_struct_ip_rgb_0x55a43caf49b0, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 3, /* int num_fields */ fields_fields_0x55a43caf4a00); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_ip_rgb___0x55a43caf4a70 = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_rgb_0x55a43caf49b0)); gcc_jit_field *field_r_0x55a43caf4b10 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_short_0x55a43caf3e10, /* gcc_jit_type *type, */ "r"); /* const char *name */ gcc_jit_field *field_g_0x55a43caf4bc0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_short_0x55a43caf3e10, /* gcc_jit_type *type, */ "g"); /* const char *name */ gcc_jit_field *field_b_0x55a43caf4c70 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_short_0x55a43caf3e10, /* gcc_jit_type *type, */ "b"); /* const char *name */ gcc_jit_struct *struct_struct_ip_rgb16_0x55a43caf4670 = gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ "ip_rgb16"); /* const char *name */ gcc_jit_field *fields_fields_0x55a43caf46c0[3] = { field_r_0x55a43caf4b10, field_g_0x55a43caf4bc0, field_b_0x55a43caf4c70, }; gcc_jit_struct_set_fields (struct_struct_ip_rgb16_0x55a43caf4670, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 3, /* int num_fields */ fields_fields_0x55a43caf46c0); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_ip_rgb16___0x55a43caf4730 = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_rgb16_0x55a43caf4670)); gcc_jit_field *field_x_0x55a43caf47d0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type, */ "x"); /* const char *name */ gcc_jit_field *field_y_0x55a43caf5020 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type, */ "y"); /* const char *name */ gcc_jit_struct *struct_struct_ip_coord_0x55a43caf50d0 = gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ "ip_coord"); /* const char *name */ gcc_jit_field *fields_fields_0x55a43caf5170[2] = { field_x_0x55a43caf47d0, field_y_0x55a43caf5020, }; gcc_jit_struct_set_fields (struct_struct_ip_coord_0x55a43caf50d0, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 2, /* int num_fields */ fields_fields_0x55a43caf5170); /* gcc_jit_field **fields */ gcc_jit_field *field_type_0x55a43caf5210 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type, */ "type"); /* const char *name */ gcc_jit_field *field_size_0x55a43caf52c0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ gcc_jit_struct_as_type (struct_struct_ip_coord_0x55a43caf50d0), /* gcc_jit_type *type, */ "size"); /* const char *name */ gcc_jit_field *field_row_size_0x55a43caf5370 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_size_t_0x55a43caf3cc0, /* gcc_jit_type *type, */ "row_size"); /* const char *name */ gcc_jit_field *field_status_0x55a43caf5420 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_int_0x55a43caf3bb0, /* gcc_jit_type *type, */ "status"); /* const char *name */ gcc_jit_field *field_palette_0x55a43caf54d0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_struct_ip_rgb___0x55a43caf4a70, /* gcc_jit_type *type, */ "palette"); /* const char *name */ gcc_jit_field *field_imbuff_0x55a43caf5580 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_unsigned_char___0x55a43caf3f50, /* gcc_jit_type *type, */ "imbuff"); /* const char *name */ gcc_jit_field *field_imrow_0x55a43caf5630 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_void_____0x55a43caf3ed0, /* gcc_jit_type *type, */ "imrow"); /* const char *name */ gcc_jit_field *field_num_extra_rows_0x55a43caf56e0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type, */ "num_extra_rows"); /* const char *name */ gcc_jit_field *field_extra_rows_0x55a43caf4d20 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_void___0x55a43caf3e90, /* gcc_jit_type *type, */ "extra_rows"); /* const char *name */ gcc_jit_field *field_fftw_plans_0x55a43caf4dd0 = gcc_jit_context_new_field (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ array_type_void___2__0x55a43caf3c30, /* gcc_jit_type *type, */ "fftw_plans"); /* const char *name */ gcc_jit_struct *struct_struct_ip_image_0x55a43caf4e80 = gcc_jit_context_new_opaque_struct (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ "ip_image"); /* const char *name */ gcc_jit_field *fields_fields_0x55a43caf4ed0[10] = { field_type_0x55a43caf5210, field_size_0x55a43caf52c0, field_row_size_0x55a43caf5370, field_status_0x55a43caf5420, field_palette_0x55a43caf54d0, field_imbuff_0x55a43caf5580, field_imrow_0x55a43caf5630, field_num_extra_rows_0x55a43caf56e0, field_extra_rows_0x55a43caf4d20, field_fftw_plans_0x55a43caf4dd0, }; gcc_jit_struct_set_fields (struct_struct_ip_image_0x55a43caf4e80, /* gcc_jit_struct *struct_type */ NULL, /* gcc_jit_location *loc */ 10, /* int num_fields */ fields_fields_0x55a43caf4ed0); /* gcc_jit_field **fields */ gcc_jit_type *type_struct_ip_image___0x55a43caf5c00 = gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_struct_ip_image_0x55a43caf4e80)); gcc_jit_param *param_dest_0x55a43caf4f10 = gcc_jit_context_new_param (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_struct_ip_image___0x55a43caf5c00, /*gcc_jit_type *type */ "dest"); /* const char *name */ gcc_jit_param *param_src_0x55a43caf5d00 = gcc_jit_context_new_param (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ type_struct_ip_image___0x55a43caf5c00, /*gcc_jit_type *type */ "src"); /* const char *name */ gcc_jit_param *params_for_func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0[2] = { param_dest_0x55a43caf4f10, param_src_0x55a43caf5d00, }; gcc_jit_function *func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0 = gcc_jit_context_new_function (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ NULL, /* gcc_jit_location *loc */ GCC_JIT_FUNCTION_EXPORTED, /* enum gcc_jit_function_kind kind */ type_void_0x55a43caf3af0, /* gcc_jit_type *return_type */ "ip_jit_im_add_clip_UBYTE", /* const char *name */ 2, /* int num_params */ params_for_func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_param **params */ 0); /* int is_variadic */ gcc_jit_lvalue *local_rowlen_0x55a43caf4f60 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type */ "rowlen"); /* const char *name */ gcc_jit_lvalue *local_numrows_0x55a43caf5f80 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type */ "numrows"); /* const char *name */ gcc_jit_lvalue *local_j_0x55a43caf6040 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type */ "j"); /* const char *name */ gcc_jit_lvalue *local_dptr_0x55a43caf6100 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_unsigned_char___0x55a43caf3f50, /* gcc_jit_type *type */ "dptr"); /* const char *name */ gcc_jit_lvalue *local_sptr_0x55a43caf61c0 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_unsigned_char___0x55a43caf3f50, /* gcc_jit_type *type */ "sptr"); /* const char *name */ gcc_jit_lvalue *local_i_0x55a43caf62d0 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type */ "i"); /* const char *name */ gcc_jit_block *block_F1_0x55a43caf6390 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "F1"); gcc_jit_block *block_C1_0x55a43caf6440 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "C1"); gcc_jit_block *block_L1_0x55a43caf64f0 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "L1"); gcc_jit_block *block_C2_0x55a43caf65a0 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "C2"); gcc_jit_block *block_L2_0x55a43caf6650 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "L2"); gcc_jit_block *block_A2_0x55a43caf6750 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "A2"); gcc_jit_block *block_A1_0x55a43caf6800 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "A1"); gcc_jit_lvalue *lvalue_dest__size_0x55a43caf6850= gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_dest_0x55a43caf4f10), /* gcc_jit_rvalue *ptr */ NULL, /* gcc_jit_location *loc */ field_size_0x55a43caf52c0); /* gcc_jit_field *field */ gcc_jit_rvalue *rvalue_dest__size_x_0x55a43caf5790 = gcc_jit_rvalue_access_field (gcc_jit_lvalue_as_rvalue (lvalue_dest__size_0x55a43caf6850), /*gcc_jit_rvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_x_0x55a43caf47d0); gcc_jit_block_add_assignment (block_F1_0x55a43caf6390, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_rowlen_0x55a43caf4f60, /* gcc_jit_lvalue *lvalue */ rvalue_dest__size_x_0x55a43caf5790); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue_dest__size_y_0x55a43caf5840 = gcc_jit_rvalue_access_field (gcc_jit_lvalue_as_rvalue (lvalue_dest__size_0x55a43caf6850), /*gcc_jit_rvalue *struct_or_union */ NULL, /*gcc_jit_location *loc */ field_y_0x55a43caf5020); gcc_jit_block_add_assignment (block_F1_0x55a43caf6390, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_numrows_0x55a43caf5f80, /* gcc_jit_lvalue *lvalue */ rvalue_dest__size_y_0x55a43caf5840); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__int_0_0x55a43caf58f0 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 0); /* int value */ gcc_jit_block_add_assignment (block_F1_0x55a43caf6390, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_j_0x55a43caf6040, /* gcc_jit_lvalue *lvalue */ rvalue__int_0_0x55a43caf58f0); /* gcc_jit_rvalue *rvalue */ gcc_jit_block_end_with_jump (block_F1_0x55a43caf6390, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ block_C1_0x55a43caf6440); /* gcc_jit_block *target */ gcc_jit_type *type_bool_0x55a43caf5a30 = gcc_jit_context_get_type (ctxt_0x55a43caf3990, GCC_JIT_TYPE_BOOL); gcc_jit_rvalue *rvalue_j___numrows_0x55a43caf59d0 = gcc_jit_context_new_comparison (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ GCC_JIT_COMPARISON_LT, /* enum gcc_jit_comparison op */ gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040), /* gcc_jit_rvalue *a */ gcc_jit_lvalue_as_rvalue (local_numrows_0x55a43caf5f80)); /* gcc_jit_rvalue *b */ gcc_jit_block_end_with_conditional (block_C1_0x55a43caf6440, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ rvalue_j___numrows_0x55a43caf59d0, /* gcc_jit_rvalue *boolval */ block_L1_0x55a43caf64f0, /* gcc_jit_block *on_true */ block_A1_0x55a43caf6800); /* gcc_jit_block *on_false */ gcc_jit_lvalue *lvalue_dest__imrow_0x55a43caf5af0= gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_dest_0x55a43caf4f10), /* gcc_jit_rvalue *ptr */ NULL, /* gcc_jit_location *loc */ field_imrow_0x55a43caf5630); /* gcc_jit_field *field */ gcc_jit_lvalue *lvalue_dest__imrow_j__0x55a43caf6e70 = gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (lvalue_dest__imrow_0x55a43caf5af0), /* gcc_jit_rvalue *ptr */ gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040)); /* gcc_jit_rvalue *index */ gcc_jit_rvalue *rvalue__unsigned_char___dest__imrow_j__0x55a43caf6ed0 = gcc_jit_context_new_cast (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (lvalue_dest__imrow_j__0x55a43caf6e70), /* gcc_jit_rvalue *rvalue */ type_unsigned_char___0x55a43caf3f50); /* gcc_jit_type *type */ gcc_jit_block_add_assignment (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_dptr_0x55a43caf6100, /* gcc_jit_lvalue *lvalue */ rvalue__unsigned_char___dest__imrow_j__0x55a43caf6ed0); /* gcc_jit_rvalue *rvalue */ gcc_jit_lvalue *lvalue_src__imrow_0x55a43caf6fa0= gcc_jit_rvalue_dereference_field (gcc_jit_param_as_rvalue (param_src_0x55a43caf5d00), /* gcc_jit_rvalue *ptr */ NULL, /* gcc_jit_location *loc */ field_imrow_0x55a43caf5630); /* gcc_jit_field *field */ gcc_jit_lvalue *lvalue_src__imrow_j__0x55a43caf7000 = gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (lvalue_src__imrow_0x55a43caf6fa0), /* gcc_jit_rvalue *ptr */ gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040)); /* gcc_jit_rvalue *index */ gcc_jit_rvalue *rvalue__unsigned_char___src__imrow_j__0x55a43caf7060 = gcc_jit_context_new_cast (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (lvalue_src__imrow_j__0x55a43caf7000), /* gcc_jit_rvalue *rvalue */ type_unsigned_char___0x55a43caf3f50); /* gcc_jit_type *type */ gcc_jit_block_add_assignment (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_sptr_0x55a43caf61c0, /* gcc_jit_lvalue *lvalue */ rvalue__unsigned_char___src__imrow_j__0x55a43caf7060); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__int_0_0x55a43caf7100 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 0); /* int value */ gcc_jit_block_add_assignment (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_i_0x55a43caf62d0, /* gcc_jit_lvalue *lvalue */ rvalue__int_0_0x55a43caf7100); /* gcc_jit_rvalue *rvalue */ gcc_jit_block_end_with_jump (block_L1_0x55a43caf64f0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ block_C2_0x55a43caf65a0); /* gcc_jit_block *target */ gcc_jit_rvalue *rvalue_i___rowlen_0x55a43caf71e0 = gcc_jit_context_new_comparison (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ GCC_JIT_COMPARISON_LT, /* enum gcc_jit_comparison op */ gcc_jit_lvalue_as_rvalue (local_i_0x55a43caf62d0), /* gcc_jit_rvalue *a */ gcc_jit_lvalue_as_rvalue (local_rowlen_0x55a43caf4f60)); /* gcc_jit_rvalue *b */ gcc_jit_block_end_with_conditional (block_C2_0x55a43caf65a0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ rvalue_i___rowlen_0x55a43caf71e0, /* gcc_jit_rvalue *boolval */ block_L2_0x55a43caf6650, /* gcc_jit_block *on_true */ block_A2_0x55a43caf6750); /* gcc_jit_block *on_false */ gcc_jit_lvalue *dereference__dptr_0x55a43caf72c0 = gcc_jit_rvalue_dereference (gcc_jit_lvalue_as_rvalue (local_dptr_0x55a43caf6100), /* gcc_jit_rvalue *rvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_lvalue *dereference__sptr_0x55a43caf7310 = gcc_jit_rvalue_dereference (gcc_jit_lvalue_as_rvalue (local_sptr_0x55a43caf61c0), /* gcc_jit_rvalue *rvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_block *block_p_C1_true_0x55a43caf73a0 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "p_C1_true"); gcc_jit_block *block_p_C1_end_0x55a43caf7450 = gcc_jit_function_new_block (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, "p_C1_end"); gcc_jit_lvalue *local_ival_0x55a43caf7590 = gcc_jit_function_new_local (func_ip_jit_im_add_clip_UBYTE_0x55a43caf5dc0, /* gcc_jit_function *func */ NULL, /* gcc_jit_location *loc */ type_int_0x55a43caf3b70, /* gcc_jit_type *type */ "ival"); /* const char *name */ gcc_jit_rvalue *rvalue__int__dptr_0x55a43caf66a0 = gcc_jit_context_new_cast (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (dereference__dptr_0x55a43caf72c0), /* gcc_jit_rvalue *rvalue */ type_int_0x55a43caf3b70); /* gcc_jit_type *type */ gcc_jit_rvalue *rvalue__int__sptr_0x55a43caf75f0 = gcc_jit_context_new_cast (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (dereference__sptr_0x55a43caf7310), /* gcc_jit_rvalue *rvalue */ type_int_0x55a43caf3b70); /* gcc_jit_type *type */ gcc_jit_rvalue *rvalue__int__dptr____int__sptr_0x55a43caf7640 = gcc_jit_context_new_binary_op (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ GCC_JIT_BINARY_OP_PLUS, /* enum gcc_jit_binary_op op */ type_int_0x55a43caf3b70, /* gcc_jit_type *result_type */ rvalue__int__dptr_0x55a43caf66a0, /* gcc_jit_rvalue *a */ rvalue__int__sptr_0x55a43caf75f0); /* gcc_jit_rvalue *b */ gcc_jit_block_add_assignment (block_L2_0x55a43caf6650, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_ival_0x55a43caf7590, /* gcc_jit_lvalue *lvalue */ rvalue__int__dptr____int__sptr_0x55a43caf7640); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__int_255_0x55a43caf7720 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 255); /* int value */ gcc_jit_rvalue *rvalue_ival____int_255_0x55a43caf7770 = gcc_jit_context_new_comparison (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ GCC_JIT_COMPARISON_GT, /* enum gcc_jit_comparison op */ gcc_jit_lvalue_as_rvalue (local_ival_0x55a43caf7590), /* gcc_jit_rvalue *a */ rvalue__int_255_0x55a43caf7720); /* gcc_jit_rvalue *b */ gcc_jit_block_end_with_conditional (block_L2_0x55a43caf6650, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ rvalue_ival____int_255_0x55a43caf7770, /* gcc_jit_rvalue *boolval */ block_p_C1_true_0x55a43caf73a0, /* gcc_jit_block *on_true */ block_p_C1_end_0x55a43caf7450); /* gcc_jit_block *on_false */ gcc_jit_block_add_assignment (block_p_C1_true_0x55a43caf73a0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_ival_0x55a43caf7590, /* gcc_jit_lvalue *lvalue */ rvalue__int_255_0x55a43caf7720); /* gcc_jit_rvalue *rvalue */ gcc_jit_block_end_with_jump (block_p_C1_true_0x55a43caf73a0, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ block_p_C1_end_0x55a43caf7450); /* gcc_jit_block *target */ gcc_jit_rvalue *rvalue__unsigned_char_ival_0x55a43caf78e0 = gcc_jit_context_new_cast (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (local_ival_0x55a43caf7590), /* gcc_jit_rvalue *rvalue */ type_unsigned_char_0x55a43caf3d00); /* gcc_jit_type *type */ gcc_jit_lvalue *dereference__dptr_0x55a43caf7930 = gcc_jit_rvalue_dereference (gcc_jit_lvalue_as_rvalue (local_dptr_0x55a43caf6100), /* gcc_jit_rvalue *rvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ dereference__dptr_0x55a43caf7930, /* gcc_jit_lvalue *lvalue */ rvalue__unsigned_char_ival_0x55a43caf78e0); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__int_1_0x55a43caf7a00 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 1); /* int value */ gcc_jit_lvalue *lvalue_dptr__int_1__0x55a43caf7a50 = gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (local_dptr_0x55a43caf6100), /* gcc_jit_rvalue *ptr */ rvalue__int_1_0x55a43caf7a00); /* gcc_jit_rvalue *index */ gcc_jit_rvalue *address_of__dptr__int_1__0x55a43caf7ab0 = gcc_jit_lvalue_get_address (lvalue_dptr__int_1__0x55a43caf7a50, /* gcc_jit_lvalue *lvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_dptr_0x55a43caf6100, /* gcc_jit_lvalue *lvalue */ address_of__dptr__int_1__0x55a43caf7ab0); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__int_1_0x55a43caf7b50 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 1); /* int value */ gcc_jit_lvalue *lvalue_sptr__int_1__0x55a43caf7ba0 = gcc_jit_context_new_array_access (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ NULL, /*gcc_jit_location *loc */ gcc_jit_lvalue_as_rvalue (local_sptr_0x55a43caf61c0), /* gcc_jit_rvalue *ptr */ rvalue__int_1_0x55a43caf7b50); /* gcc_jit_rvalue *index */ gcc_jit_rvalue *address_of__sptr__int_1__0x55a43caf7c00 = gcc_jit_lvalue_get_address (lvalue_sptr__int_1__0x55a43caf7ba0, /* gcc_jit_lvalue *lvalue */ NULL); /* gcc_jit_location *loc */ gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_sptr_0x55a43caf61c0, /* gcc_jit_lvalue *lvalue */ address_of__sptr__int_1__0x55a43caf7c00); /* gcc_jit_rvalue *rvalue */ gcc_jit_rvalue *rvalue__int_1_0x55a43caf7ca0 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 1); /* int value */ gcc_jit_rvalue *rvalue_i____int_1_0x55a43caf7cf0 = gcc_jit_context_new_binary_op (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ GCC_JIT_BINARY_OP_PLUS, /* enum gcc_jit_binary_op op */ type_int_0x55a43caf3b70, /* gcc_jit_type *result_type */ gcc_jit_lvalue_as_rvalue (local_i_0x55a43caf62d0), /* gcc_jit_rvalue *a */ rvalue__int_1_0x55a43caf7ca0); /* gcc_jit_rvalue *b */ gcc_jit_block_add_assignment (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_i_0x55a43caf62d0, /* gcc_jit_lvalue *lvalue */ rvalue_i____int_1_0x55a43caf7cf0); /* gcc_jit_rvalue *rvalue */ gcc_jit_block_end_with_jump (block_p_C1_end_0x55a43caf7450, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ block_C2_0x55a43caf65a0); /* gcc_jit_block *target */ gcc_jit_rvalue *rvalue__int_1_0x55a43caf7e30 = gcc_jit_context_new_rvalue_from_int (ctxt_0x55a43caf3990, /* gcc_jit_context *ctxt */ type_int_0x55a43caf3b70, /* gcc_jit_type *numeric_type */ 1); /* int value */ gcc_jit_rvalue *rvalue_j____int_1_0x55a43caf7e80 = gcc_jit_context_new_binary_op (ctxt_0x55a43caf3990, NULL, /* gcc_jit_location *loc */ GCC_JIT_BINARY_OP_PLUS, /* enum gcc_jit_binary_op op */ type_int_0x55a43caf3b70, /* gcc_jit_type *result_type */ gcc_jit_lvalue_as_rvalue (local_j_0x55a43caf6040), /* gcc_jit_rvalue *a */ rvalue__int_1_0x55a43caf7e30); /* gcc_jit_rvalue *b */ gcc_jit_block_add_assignment (block_A2_0x55a43caf6750, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ local_j_0x55a43caf6040, /* gcc_jit_lvalue *lvalue */ rvalue_j____int_1_0x55a43caf7e80); /* gcc_jit_rvalue *rvalue */ gcc_jit_block_end_with_jump (block_A2_0x55a43caf6750, /*gcc_jit_block *block */ NULL, /* gcc_jit_location *loc */ block_C1_0x55a43caf6440); /* gcc_jit_block *target */ gcc_jit_block_end_with_void_return (block_A1_0x55a43caf6800, /*gcc_jit_block *block */ NULL); /* gcc_jit_location *loc */ } --WIyZ46R2i8wDzkSu--