Version in base suite: 2.44.2-1~deb12u1 Version in overlay suite: 2.46.0-2~deb12u1 Base version: webkit2gtk_2.46.0-2~deb12u1 Target version: webkit2gtk_2.46.3-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/w/webkit2gtk/webkit2gtk_2.46.0-2~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/w/webkit2gtk/webkit2gtk_2.46.3-1~deb12u1.dsc Documentation/jsc-glib-6.0/callback.ClassDeletePropertyFunction.html | 2 Documentation/jsc-glib-6.0/callback.ClassEnumeratePropertiesFunction.html | 2 Documentation/jsc-glib-6.0/callback.ClassGetPropertyFunction.html | 2 Documentation/jsc-glib-6.0/callback.ClassHasPropertyFunction.html | 2 Documentation/jsc-glib-6.0/callback.ClassSetPropertyFunction.html | 2 Documentation/jsc-glib-6.0/callback.ExceptionHandler.html | 2 Documentation/jsc-glib-6.0/callback.OptionsFunc.html | 2 Documentation/jsc-glib-6.0/class.Class.html | 2 Documentation/jsc-glib-6.0/class.Context.html | 2 Documentation/jsc-glib-6.0/class.Exception.html | 2 Documentation/jsc-glib-6.0/class.Value.html | 2 Documentation/jsc-glib-6.0/class.VirtualMachine.html | 2 Documentation/jsc-glib-6.0/class.WeakValue.html | 2 Documentation/jsc-glib-6.0/classes_hierarchy.html | 2 Documentation/jsc-glib-6.0/const.MAJOR_VERSION.html | 2 Documentation/jsc-glib-6.0/const.MICRO_VERSION.html | 4 Documentation/jsc-glib-6.0/const.MINOR_VERSION.html | 2 Documentation/jsc-glib-6.0/const.OPTIONS_USE_DFG.html | 2 Documentation/jsc-glib-6.0/const.OPTIONS_USE_FTL.html | 2 Documentation/jsc-glib-6.0/const.OPTIONS_USE_JIT.html | 2 Documentation/jsc-glib-6.0/const.OPTIONS_USE_LLINT.html | 2 Documentation/jsc-glib-6.0/ctor.Context.new.html | 2 Documentation/jsc-glib-6.0/ctor.Context.new_with_virtual_machine.html | 2 Documentation/jsc-glib-6.0/ctor.Exception.new.html | 2 Documentation/jsc-glib-6.0/ctor.Exception.new_printf.html | 2 Documentation/jsc-glib-6.0/ctor.Exception.new_vprintf.html | 2 Documentation/jsc-glib-6.0/ctor.Exception.new_with_name.html | 2 Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_printf.html | 2 Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_vprintf.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_array.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_array_buffer.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_array_from_garray.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_array_from_strv.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_boolean.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_from_json.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_function.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_function_variadic.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_functionv.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_null.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_number.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_object.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_string.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_string_from_bytes.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_typed_array.html | 2 Documentation/jsc-glib-6.0/ctor.Value.new_undefined.html | 2 Documentation/jsc-glib-6.0/ctor.VirtualMachine.new.html | 2 Documentation/jsc-glib-6.0/ctor.WeakValue.new.html | 2 Documentation/jsc-glib-6.0/enum.CheckSyntaxMode.html | 2 Documentation/jsc-glib-6.0/enum.CheckSyntaxResult.html | 2 Documentation/jsc-glib-6.0/enum.OptionType.html | 2 Documentation/jsc-glib-6.0/enum.TypedArrayType.html | 2 Documentation/jsc-glib-6.0/flags.ValuePropertyFlags.html | 2 Documentation/jsc-glib-6.0/func.CHECK_VERSION.html | 2 Documentation/jsc-glib-6.0/func.DECLARE_FINAL_TYPE.html | 2 Documentation/jsc-glib-6.0/func.get_major_version.html | 2 Documentation/jsc-glib-6.0/func.get_micro_version.html | 2 Documentation/jsc-glib-6.0/func.get_minor_version.html | 2 Documentation/jsc-glib-6.0/func.options_foreach.html | 2 Documentation/jsc-glib-6.0/func.options_get_boolean.html | 2 Documentation/jsc-glib-6.0/func.options_get_double.html | 2 Documentation/jsc-glib-6.0/func.options_get_int.html | 2 Documentation/jsc-glib-6.0/func.options_get_option_group.html | 2 Documentation/jsc-glib-6.0/func.options_get_range_string.html | 2 Documentation/jsc-glib-6.0/func.options_get_size.html | 2 Documentation/jsc-glib-6.0/func.options_get_string.html | 2 Documentation/jsc-glib-6.0/func.options_get_uint.html | 2 Documentation/jsc-glib-6.0/func.options_set_boolean.html | 2 Documentation/jsc-glib-6.0/func.options_set_double.html | 2 Documentation/jsc-glib-6.0/func.options_set_int.html | 2 Documentation/jsc-glib-6.0/func.options_set_range_string.html | 2 Documentation/jsc-glib-6.0/func.options_set_size.html | 2 Documentation/jsc-glib-6.0/func.options_set_string.html | 2 Documentation/jsc-glib-6.0/func.options_set_uint.html | 2 Documentation/jsc-glib-6.0/index.html | 4 Documentation/jsc-glib-6.0/method.Class.add_constructor.html | 2 Documentation/jsc-glib-6.0/method.Class.add_constructor_variadic.html | 2 Documentation/jsc-glib-6.0/method.Class.add_constructorv.html | 2 Documentation/jsc-glib-6.0/method.Class.add_method.html | 2 Documentation/jsc-glib-6.0/method.Class.add_method_variadic.html | 2 Documentation/jsc-glib-6.0/method.Class.add_methodv.html | 2 Documentation/jsc-glib-6.0/method.Class.add_property.html | 2 Documentation/jsc-glib-6.0/method.Class.get_name.html | 2 Documentation/jsc-glib-6.0/method.Class.get_parent.html | 2 Documentation/jsc-glib-6.0/method.Context.check_syntax.html | 2 Documentation/jsc-glib-6.0/method.Context.clear_exception.html | 2 Documentation/jsc-glib-6.0/method.Context.evaluate.html | 2 Documentation/jsc-glib-6.0/method.Context.evaluate_in_object.html | 2 Documentation/jsc-glib-6.0/method.Context.evaluate_with_source_uri.html | 2 Documentation/jsc-glib-6.0/method.Context.get_exception.html | 2 Documentation/jsc-glib-6.0/method.Context.get_global_object.html | 2 Documentation/jsc-glib-6.0/method.Context.get_value.html | 2 Documentation/jsc-glib-6.0/method.Context.get_virtual_machine.html | 2 Documentation/jsc-glib-6.0/method.Context.pop_exception_handler.html | 2 Documentation/jsc-glib-6.0/method.Context.push_exception_handler.html | 2 Documentation/jsc-glib-6.0/method.Context.register_class.html | 2 Documentation/jsc-glib-6.0/method.Context.set_value.html | 2 Documentation/jsc-glib-6.0/method.Context.throw.html | 2 Documentation/jsc-glib-6.0/method.Context.throw_exception.html | 2 Documentation/jsc-glib-6.0/method.Context.throw_printf.html | 2 Documentation/jsc-glib-6.0/method.Context.throw_with_name.html | 2 Documentation/jsc-glib-6.0/method.Context.throw_with_name_printf.html | 2 Documentation/jsc-glib-6.0/method.Exception.get_backtrace_string.html | 2 Documentation/jsc-glib-6.0/method.Exception.get_column_number.html | 2 Documentation/jsc-glib-6.0/method.Exception.get_line_number.html | 2 Documentation/jsc-glib-6.0/method.Exception.get_message.html | 2 Documentation/jsc-glib-6.0/method.Exception.get_name.html | 2 Documentation/jsc-glib-6.0/method.Exception.get_source_uri.html | 2 Documentation/jsc-glib-6.0/method.Exception.report.html | 2 Documentation/jsc-glib-6.0/method.Exception.to_string.html | 2 Documentation/jsc-glib-6.0/method.Value.array_buffer_get_data.html | 2 Documentation/jsc-glib-6.0/method.Value.array_buffer_get_size.html | 2 Documentation/jsc-glib-6.0/method.Value.constructor_call.html | 2 Documentation/jsc-glib-6.0/method.Value.constructor_callv.html | 2 Documentation/jsc-glib-6.0/method.Value.function_call.html | 2 Documentation/jsc-glib-6.0/method.Value.function_callv.html | 2 Documentation/jsc-glib-6.0/method.Value.get_context.html | 2 Documentation/jsc-glib-6.0/method.Value.is_array.html | 2 Documentation/jsc-glib-6.0/method.Value.is_array_buffer.html | 2 Documentation/jsc-glib-6.0/method.Value.is_boolean.html | 2 Documentation/jsc-glib-6.0/method.Value.is_constructor.html | 2 Documentation/jsc-glib-6.0/method.Value.is_function.html | 2 Documentation/jsc-glib-6.0/method.Value.is_null.html | 2 Documentation/jsc-glib-6.0/method.Value.is_number.html | 2 Documentation/jsc-glib-6.0/method.Value.is_object.html | 2 Documentation/jsc-glib-6.0/method.Value.is_string.html | 2 Documentation/jsc-glib-6.0/method.Value.is_typed_array.html | 2 Documentation/jsc-glib-6.0/method.Value.is_undefined.html | 2 Documentation/jsc-glib-6.0/method.Value.new_typed_array_with_buffer.html | 2 Documentation/jsc-glib-6.0/method.Value.object_define_property_accessor.html | 2 Documentation/jsc-glib-6.0/method.Value.object_define_property_data.html | 2 Documentation/jsc-glib-6.0/method.Value.object_delete_property.html | 2 Documentation/jsc-glib-6.0/method.Value.object_enumerate_properties.html | 2 Documentation/jsc-glib-6.0/method.Value.object_get_property.html | 2 Documentation/jsc-glib-6.0/method.Value.object_get_property_at_index.html | 2 Documentation/jsc-glib-6.0/method.Value.object_has_property.html | 2 Documentation/jsc-glib-6.0/method.Value.object_invoke_method.html | 2 Documentation/jsc-glib-6.0/method.Value.object_invoke_methodv.html | 2 Documentation/jsc-glib-6.0/method.Value.object_is_instance_of.html | 2 Documentation/jsc-glib-6.0/method.Value.object_set_property.html | 2 Documentation/jsc-glib-6.0/method.Value.object_set_property_at_index.html | 2 Documentation/jsc-glib-6.0/method.Value.to_boolean.html | 2 Documentation/jsc-glib-6.0/method.Value.to_double.html | 2 Documentation/jsc-glib-6.0/method.Value.to_int32.html | 2 Documentation/jsc-glib-6.0/method.Value.to_json.html | 2 Documentation/jsc-glib-6.0/method.Value.to_string.html | 2 Documentation/jsc-glib-6.0/method.Value.to_string_as_bytes.html | 2 Documentation/jsc-glib-6.0/method.Value.typed_array_get_buffer.html | 2 Documentation/jsc-glib-6.0/method.Value.typed_array_get_data.html | 2 Documentation/jsc-glib-6.0/method.Value.typed_array_get_length.html | 2 Documentation/jsc-glib-6.0/method.Value.typed_array_get_offset.html | 2 Documentation/jsc-glib-6.0/method.Value.typed_array_get_size.html | 2 Documentation/jsc-glib-6.0/method.Value.typed_array_get_type.html | 2 Documentation/jsc-glib-6.0/method.WeakValue.get_value.html | 2 Documentation/jsc-glib-6.0/property.Class.context.html | 2 Documentation/jsc-glib-6.0/property.Class.name.html | 2 Documentation/jsc-glib-6.0/property.Class.parent.html | 2 Documentation/jsc-glib-6.0/property.Context.virtual-machine.html | 2 Documentation/jsc-glib-6.0/property.Value.context.html | 2 Documentation/jsc-glib-6.0/property.WeakValue.value.html | 2 Documentation/jsc-glib-6.0/signal.WeakValue.cleared.html | 2 Documentation/jsc-glib-6.0/struct.ClassVTable.html | 2 Documentation/jsc-glib-6.0/type_func.Context.get_current.html | 2 Documentation/webkitgtk-6.0/callback.URISchemeRequestCallback.html | 2 Documentation/webkitgtk-6.0/class.AuthenticationRequest.html | 2 Documentation/webkitgtk-6.0/class.AutomationSession.html | 2 Documentation/webkitgtk-6.0/class.BackForwardList.html | 2 Documentation/webkitgtk-6.0/class.BackForwardListItem.html | 2 Documentation/webkitgtk-6.0/class.ClipboardPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.ColorChooserRequest.html | 2 Documentation/webkitgtk-6.0/class.ContextMenu.html | 2 Documentation/webkitgtk-6.0/class.ContextMenuItem.html | 2 Documentation/webkitgtk-6.0/class.CookieManager.html | 2 Documentation/webkitgtk-6.0/class.DeviceInfoPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.Download.html | 2 Documentation/webkitgtk-6.0/class.EditorState.html | 2 Documentation/webkitgtk-6.0/class.FaviconDatabase.html | 2 Documentation/webkitgtk-6.0/class.FileChooserRequest.html | 2 Documentation/webkitgtk-6.0/class.FindController.html | 2 Documentation/webkitgtk-6.0/class.FormSubmissionRequest.html | 2 Documentation/webkitgtk-6.0/class.GeolocationManager.html | 2 Documentation/webkitgtk-6.0/class.GeolocationPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.HitTestResult.html | 2 Documentation/webkitgtk-6.0/class.InputMethodContext.html | 2 Documentation/webkitgtk-6.0/class.MediaKeySystemPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.NavigationPolicyDecision.html | 2 Documentation/webkitgtk-6.0/class.NetworkSession.html | 2 Documentation/webkitgtk-6.0/class.Notification.html | 2 Documentation/webkitgtk-6.0/class.NotificationPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.OptionMenu.html | 2 Documentation/webkitgtk-6.0/class.PointerLockPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.PolicyDecision.html | 2 Documentation/webkitgtk-6.0/class.PrintOperation.html | 2 Documentation/webkitgtk-6.0/class.ResponsePolicyDecision.html | 2 Documentation/webkitgtk-6.0/class.SecurityManager.html | 2 Documentation/webkitgtk-6.0/class.Settings.html | 4 Documentation/webkitgtk-6.0/class.URIRequest.html | 2 Documentation/webkitgtk-6.0/class.URIResponse.html | 2 Documentation/webkitgtk-6.0/class.URISchemeRequest.html | 2 Documentation/webkitgtk-6.0/class.URISchemeResponse.html | 2 Documentation/webkitgtk-6.0/class.UserContentFilterStore.html | 2 Documentation/webkitgtk-6.0/class.UserContentManager.html | 2 Documentation/webkitgtk-6.0/class.UserMediaPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.UserMessage.html | 2 Documentation/webkitgtk-6.0/class.WebContext.html | 2 Documentation/webkitgtk-6.0/class.WebInspector.html | 2 Documentation/webkitgtk-6.0/class.WebResource.html | 2 Documentation/webkitgtk-6.0/class.WebView.html | 2 Documentation/webkitgtk-6.0/class.WebViewBase.html | 2 Documentation/webkitgtk-6.0/class.WebsiteDataAccessPermissionRequest.html | 2 Documentation/webkitgtk-6.0/class.WebsiteDataManager.html | 2 Documentation/webkitgtk-6.0/class.WebsitePolicies.html | 2 Documentation/webkitgtk-6.0/class.WindowProperties.html | 2 Documentation/webkitgtk-6.0/classes_hierarchy.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_COPY.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CREATE_LINK.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CUT.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_INSERT_IMAGE.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE_AS_PLAIN_TEXT.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_REDO.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_SELECT_ALL.html | 2 Documentation/webkitgtk-6.0/const.EDITING_COMMAND_UNDO.html | 2 Documentation/webkitgtk-6.0/const.MAJOR_VERSION.html | 2 Documentation/webkitgtk-6.0/const.MICRO_VERSION.html | 4 Documentation/webkitgtk-6.0/const.MINOR_VERSION.html | 2 Documentation/webkitgtk-6.0/ctor.ApplicationInfo.new.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenu.new.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenu.new_with_items.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_gaction.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_separator.html | 2 Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_with_submenu.html | 2 Documentation/webkitgtk-6.0/ctor.Credential.new.html | 2 Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate.html | 2 Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate_pin.html | 2 Documentation/webkitgtk-6.0/ctor.GeolocationPosition.new.html | 2 Documentation/webkitgtk-6.0/ctor.InputMethodUnderline.new.html | 2 Documentation/webkitgtk-6.0/ctor.MemoryPressureSettings.new.html | 2 Documentation/webkitgtk-6.0/ctor.NetworkProxySettings.new.html | 2 Documentation/webkitgtk-6.0/ctor.NetworkSession.new.html | 2 Documentation/webkitgtk-6.0/ctor.NetworkSession.new_ephemeral.html | 2 Documentation/webkitgtk-6.0/ctor.PrintOperation.new.html | 2 Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new.html | 2 Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new_for_uri.html | 2 Documentation/webkitgtk-6.0/ctor.Settings.new.html | 4 Documentation/webkitgtk-6.0/ctor.Settings.new_with_settings.html | 4 Documentation/webkitgtk-6.0/ctor.URIRequest.new.html | 2 Documentation/webkitgtk-6.0/ctor.URISchemeResponse.new.html | 2 Documentation/webkitgtk-6.0/ctor.UserContentFilterStore.new.html | 2 Documentation/webkitgtk-6.0/ctor.UserContentManager.new.html | 2 Documentation/webkitgtk-6.0/ctor.UserMessage.new.html | 2 Documentation/webkitgtk-6.0/ctor.UserMessage.new_with_fd_list.html | 2 Documentation/webkitgtk-6.0/ctor.UserScript.new.html | 2 Documentation/webkitgtk-6.0/ctor.UserScript.new_for_world.html | 2 Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new.html | 2 Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new_for_world.html | 2 Documentation/webkitgtk-6.0/ctor.WebContext.new.html | 4 Documentation/webkitgtk-6.0/ctor.WebView.new.html | 2 Documentation/webkitgtk-6.0/ctor.WebViewSessionState.new.html | 2 Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new.html | 2 Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new_with_policies.html | 2 Documentation/webkitgtk-6.0/enum.AuthenticationScheme.html | 2 Documentation/webkitgtk-6.0/enum.AutomationBrowsingContextPresentation.html | 2 Documentation/webkitgtk-6.0/enum.AutoplayPolicy.html | 2 Documentation/webkitgtk-6.0/enum.CacheModel.html | 2 Documentation/webkitgtk-6.0/enum.ContextMenuAction.html | 2 Documentation/webkitgtk-6.0/enum.CookieAcceptPolicy.html | 2 Documentation/webkitgtk-6.0/enum.CookiePersistentStorage.html | 2 Documentation/webkitgtk-6.0/enum.CredentialPersistence.html | 2 Documentation/webkitgtk-6.0/enum.FeatureStatus.html | 2 Documentation/webkitgtk-6.0/enum.HardwareAccelerationPolicy.html | 2 Documentation/webkitgtk-6.0/enum.InputPurpose.html | 2 Documentation/webkitgtk-6.0/enum.InsecureContentEvent.html | 2 Documentation/webkitgtk-6.0/enum.LoadEvent.html | 2 Documentation/webkitgtk-6.0/enum.MediaCaptureState.html | 2 Documentation/webkitgtk-6.0/enum.NavigationType.html | 2 Documentation/webkitgtk-6.0/enum.NetworkProxyMode.html | 2 Documentation/webkitgtk-6.0/enum.PermissionState.html | 2 Documentation/webkitgtk-6.0/enum.PolicyDecisionType.html | 2 Documentation/webkitgtk-6.0/enum.PrintOperationResponse.html | 2 Documentation/webkitgtk-6.0/enum.SaveMode.html | 2 Documentation/webkitgtk-6.0/enum.ScriptDialogType.html | 2 Documentation/webkitgtk-6.0/enum.SnapshotRegion.html | 2 Documentation/webkitgtk-6.0/enum.TLSErrorsPolicy.html | 2 Documentation/webkitgtk-6.0/enum.UserContentInjectedFrames.html | 2 Documentation/webkitgtk-6.0/enum.UserScriptInjectionTime.html | 2 Documentation/webkitgtk-6.0/enum.UserStyleLevel.html | 2 Documentation/webkitgtk-6.0/enum.WebExtensionMode.html | 2 Documentation/webkitgtk-6.0/enum.WebProcessTerminationReason.html | 2 Documentation/webkitgtk-6.0/error.DownloadError.html | 2 Documentation/webkitgtk-6.0/error.FaviconDatabaseError.html | 2 Documentation/webkitgtk-6.0/error.JavascriptError.html | 2 Documentation/webkitgtk-6.0/error.MediaError.html | 2 Documentation/webkitgtk-6.0/error.NetworkError.html | 2 Documentation/webkitgtk-6.0/error.PolicyError.html | 2 Documentation/webkitgtk-6.0/error.PrintError.html | 2 Documentation/webkitgtk-6.0/error.SnapshotError.html | 2 Documentation/webkitgtk-6.0/error.UserContentFilterError.html | 2 Documentation/webkitgtk-6.0/error.UserMessageError.html | 2 Documentation/webkitgtk-6.0/flags.EditorTypingAttributes.html | 2 Documentation/webkitgtk-6.0/flags.FindOptions.html | 2 Documentation/webkitgtk-6.0/flags.HitTestResultContext.html | 2 Documentation/webkitgtk-6.0/flags.InputHints.html | 2 Documentation/webkitgtk-6.0/flags.SnapshotOptions.html | 2 Documentation/webkitgtk-6.0/flags.WebsiteDataTypes.html | 2 Documentation/webkitgtk-6.0/func.CHECK_VERSION.html | 2 Documentation/webkitgtk-6.0/func.DECLARE_DERIVABLE_TYPE.html | 2 Documentation/webkitgtk-6.0/func.DECLARE_FINAL_TYPE.html | 2 Documentation/webkitgtk-6.0/func.DECLARE_TYPE.html | 2 Documentation/webkitgtk-6.0/func.DEPRECATED_FOR.html | 2 Documentation/webkitgtk-6.0/func.get_major_version.html | 2 Documentation/webkitgtk-6.0/func.get_micro_version.html | 2 Documentation/webkitgtk-6.0/func.get_minor_version.html | 2 Documentation/webkitgtk-6.0/func.media_key_system_permission_get_name.html | 2 Documentation/webkitgtk-6.0/func.uri_for_display.html | 2 Documentation/webkitgtk-6.0/func.user_media_permission_is_for_audio_device.html | 2 Documentation/webkitgtk-6.0/func.user_media_permission_is_for_display_device.html | 2 Documentation/webkitgtk-6.0/func.user_media_permission_is_for_video_device.html | 2 Documentation/webkitgtk-6.0/gtk4-urlmap.js | 2 Documentation/webkitgtk-6.0/iface.PermissionRequest.html | 2 Documentation/webkitgtk-6.0/index.html | 8 Documentation/webkitgtk-6.0/method.ApplicationInfo.get_name.html | 2 Documentation/webkitgtk-6.0/method.ApplicationInfo.get_version.html | 2 Documentation/webkitgtk-6.0/method.ApplicationInfo.ref.html | 2 Documentation/webkitgtk-6.0/method.ApplicationInfo.set_name.html | 2 Documentation/webkitgtk-6.0/method.ApplicationInfo.set_version.html | 2 Documentation/webkitgtk-6.0/method.ApplicationInfo.unref.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.authenticate.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.can_save_credentials.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.cancel.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_certificate_pin_flags.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_host.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_port.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_proposed_credential.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_realm.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_scheme.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_security_origin.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_for_proxy.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_retry.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_can_save_credentials.html | 2 Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_proposed_credential.html | 2 Documentation/webkitgtk-6.0/method.AutomationSession.get_application_info.html | 2 Documentation/webkitgtk-6.0/method.AutomationSession.get_id.html | 2 Documentation/webkitgtk-6.0/method.AutomationSession.set_application_info.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_back_item.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list_with_limit.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_current_item.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_item.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list_with_limit.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_length.html | 2 Documentation/webkitgtk-6.0/method.BackForwardList.get_nth_item.html | 2 Documentation/webkitgtk-6.0/method.BackForwardListItem.get_original_uri.html | 2 Documentation/webkitgtk-6.0/method.BackForwardListItem.get_title.html | 2 Documentation/webkitgtk-6.0/method.BackForwardListItem.get_uri.html | 2 Documentation/webkitgtk-6.0/method.ColorChooserRequest.cancel.html | 2 Documentation/webkitgtk-6.0/method.ColorChooserRequest.finish.html | 2 Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_element_rectangle.html | 2 Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_rgba.html | 2 Documentation/webkitgtk-6.0/method.ColorChooserRequest.set_rgba.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.append.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.first.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.get_event.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.get_item_at_position.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.get_items.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.get_n_items.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.get_user_data.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.insert.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.last.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.move_item.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.prepend.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.remove.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.remove_all.html | 2 Documentation/webkitgtk-6.0/method.ContextMenu.set_user_data.html | 2 Documentation/webkitgtk-6.0/method.ContextMenuItem.get_gaction.html | 2 Documentation/webkitgtk-6.0/method.ContextMenuItem.get_stock_action.html | 2 Documentation/webkitgtk-6.0/method.ContextMenuItem.get_submenu.html | 2 Documentation/webkitgtk-6.0/method.ContextMenuItem.is_separator.html | 2 Documentation/webkitgtk-6.0/method.ContextMenuItem.set_submenu.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.add_cookie.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.add_cookie_finish.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie_finish.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy_finish.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies_finish.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.get_cookies.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.get_cookies_finish.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies_finish.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.set_accept_policy.html | 2 Documentation/webkitgtk-6.0/method.CookieManager.set_persistent_storage.html | 2 Documentation/webkitgtk-6.0/method.Credential.copy.html | 2 Documentation/webkitgtk-6.0/method.Credential.free.html | 2 Documentation/webkitgtk-6.0/method.Credential.get_certificate.html | 2 Documentation/webkitgtk-6.0/method.Credential.get_password.html | 2 Documentation/webkitgtk-6.0/method.Credential.get_persistence.html | 2 Documentation/webkitgtk-6.0/method.Credential.get_username.html | 2 Documentation/webkitgtk-6.0/method.Credential.has_password.html | 2 Documentation/webkitgtk-6.0/method.Download.cancel.html | 2 Documentation/webkitgtk-6.0/method.Download.get_allow_overwrite.html | 2 Documentation/webkitgtk-6.0/method.Download.get_destination.html | 2 Documentation/webkitgtk-6.0/method.Download.get_elapsed_time.html | 2 Documentation/webkitgtk-6.0/method.Download.get_estimated_progress.html | 2 Documentation/webkitgtk-6.0/method.Download.get_received_data_length.html | 2 Documentation/webkitgtk-6.0/method.Download.get_request.html | 2 Documentation/webkitgtk-6.0/method.Download.get_response.html | 2 Documentation/webkitgtk-6.0/method.Download.get_web_view.html | 2 Documentation/webkitgtk-6.0/method.Download.set_allow_overwrite.html | 2 Documentation/webkitgtk-6.0/method.Download.set_destination.html | 2 Documentation/webkitgtk-6.0/method.EditorState.get_typing_attributes.html | 2 Documentation/webkitgtk-6.0/method.EditorState.is_copy_available.html | 2 Documentation/webkitgtk-6.0/method.EditorState.is_cut_available.html | 2 Documentation/webkitgtk-6.0/method.EditorState.is_paste_available.html | 2 Documentation/webkitgtk-6.0/method.EditorState.is_redo_available.html | 2 Documentation/webkitgtk-6.0/method.EditorState.is_undo_available.html | 2 Documentation/webkitgtk-6.0/method.FaviconDatabase.clear.html | 2 Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon.html | 2 Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_finish.html | 2 Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_uri.html | 2 Documentation/webkitgtk-6.0/method.Feature.get_category.html | 2 Documentation/webkitgtk-6.0/method.Feature.get_default_value.html | 2 Documentation/webkitgtk-6.0/method.Feature.get_details.html | 2 Documentation/webkitgtk-6.0/method.Feature.get_identifier.html | 2 Documentation/webkitgtk-6.0/method.Feature.get_name.html | 2 Documentation/webkitgtk-6.0/method.Feature.get_status.html | 2 Documentation/webkitgtk-6.0/method.Feature.ref.html | 2 Documentation/webkitgtk-6.0/method.Feature.unref.html | 2 Documentation/webkitgtk-6.0/method.FeatureList.get.html | 2 Documentation/webkitgtk-6.0/method.FeatureList.get_length.html | 2 Documentation/webkitgtk-6.0/method.FeatureList.ref.html | 2 Documentation/webkitgtk-6.0/method.FeatureList.unref.html | 2 Documentation/webkitgtk-6.0/method.FileChooserRequest.cancel.html | 2 Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types.html | 2 Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types_filter.html | 2 Documentation/webkitgtk-6.0/method.FileChooserRequest.get_select_multiple.html | 2 Documentation/webkitgtk-6.0/method.FileChooserRequest.get_selected_files.html | 2 Documentation/webkitgtk-6.0/method.FileChooserRequest.select_files.html | 2 Documentation/webkitgtk-6.0/method.FindController.count_matches.html | 2 Documentation/webkitgtk-6.0/method.FindController.get_max_match_count.html | 2 Documentation/webkitgtk-6.0/method.FindController.get_options.html | 2 Documentation/webkitgtk-6.0/method.FindController.get_search_text.html | 2 Documentation/webkitgtk-6.0/method.FindController.get_web_view.html | 2 Documentation/webkitgtk-6.0/method.FindController.search.html | 2 Documentation/webkitgtk-6.0/method.FindController.search_finish.html | 2 Documentation/webkitgtk-6.0/method.FindController.search_next.html | 2 Documentation/webkitgtk-6.0/method.FindController.search_previous.html | 2 Documentation/webkitgtk-6.0/method.FormSubmissionRequest.list_text_fields.html | 2 Documentation/webkitgtk-6.0/method.FormSubmissionRequest.submit.html | 2 Documentation/webkitgtk-6.0/method.GeolocationManager.failed.html | 2 Documentation/webkitgtk-6.0/method.GeolocationManager.get_enable_high_accuracy.html | 2 Documentation/webkitgtk-6.0/method.GeolocationManager.update_position.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.copy.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.free.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude_accuracy.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.set_heading.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.set_speed.html | 2 Documentation/webkitgtk-6.0/method.GeolocationPosition.set_timestamp.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.context_is_editable.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.context_is_image.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.context_is_link.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.context_is_media.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.context_is_scrollbar.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.context_is_selection.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.get_context.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.get_image_uri.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.get_link_label.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.get_link_title.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.get_link_uri.html | 2 Documentation/webkitgtk-6.0/method.HitTestResult.get_media_uri.html | 2 Documentation/webkitgtk-6.0/method.ITPFirstParty.get_domain.html | 2 Documentation/webkitgtk-6.0/method.ITPFirstParty.get_last_update_time.html | 2 Documentation/webkitgtk-6.0/method.ITPFirstParty.get_website_data_access_allowed.html | 2 Documentation/webkitgtk-6.0/method.ITPFirstParty.ref.html | 2 Documentation/webkitgtk-6.0/method.ITPFirstParty.unref.html | 2 Documentation/webkitgtk-6.0/method.ITPThirdParty.get_domain.html | 2 Documentation/webkitgtk-6.0/method.ITPThirdParty.get_first_parties.html | 2 Documentation/webkitgtk-6.0/method.ITPThirdParty.ref.html | 2 Documentation/webkitgtk-6.0/method.ITPThirdParty.unref.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.filter_key_event.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_hints.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_purpose.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.get_preedit.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.notify_cursor_area.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_in.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_out.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.notify_surrounding.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.reset.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.set_enable_preedit.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_hints.html | 2 Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_purpose.html | 2 Documentation/webkitgtk-6.0/method.InputMethodUnderline.copy.html | 2 Documentation/webkitgtk-6.0/method.InputMethodUnderline.free.html | 2 Documentation/webkitgtk-6.0/method.InputMethodUnderline.set_color.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.copy.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.free.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_conservative_threshold.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_kill_threshold.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_memory_limit.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_poll_interval.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_strict_threshold.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_conservative_threshold.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_kill_threshold.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_memory_limit.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_poll_interval.html | 2 Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_strict_threshold.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.copy.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.free.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.get_frame_name.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.get_modifiers.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.get_mouse_button.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.get_navigation_type.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.get_request.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.is_redirect.html | 2 Documentation/webkitgtk-6.0/method.NavigationAction.is_user_gesture.html | 2 Documentation/webkitgtk-6.0/method.NavigationPolicyDecision.get_navigation_action.html | 2 Documentation/webkitgtk-6.0/method.NetworkProxySettings.add_proxy_for_scheme.html | 2 Documentation/webkitgtk-6.0/method.NetworkProxySettings.copy.html | 2 Documentation/webkitgtk-6.0/method.NetworkProxySettings.free.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.allow_tls_certificate_for_host.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.download_uri.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_cookie_manager.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_enabled.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary_finish.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_persistent_credential_storage_enabled.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_tls_errors_policy.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.get_website_data_manager.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.is_ephemeral.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.prefetch_dns.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.set_itp_enabled.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.set_persistent_credential_storage_enabled.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.set_proxy_settings.html | 2 Documentation/webkitgtk-6.0/method.NetworkSession.set_tls_errors_policy.html | 2 Documentation/webkitgtk-6.0/method.Notification.clicked.html | 2 Documentation/webkitgtk-6.0/method.Notification.close.html | 2 Documentation/webkitgtk-6.0/method.Notification.get_body.html | 2 Documentation/webkitgtk-6.0/method.Notification.get_id.html | 2 Documentation/webkitgtk-6.0/method.Notification.get_tag.html | 2 Documentation/webkitgtk-6.0/method.Notification.get_title.html | 2 Documentation/webkitgtk-6.0/method.OptionMenu.activate_item.html | 2 Documentation/webkitgtk-6.0/method.OptionMenu.close.html | 2 Documentation/webkitgtk-6.0/method.OptionMenu.get_event.html | 2 Documentation/webkitgtk-6.0/method.OptionMenu.get_item.html | 2 Documentation/webkitgtk-6.0/method.OptionMenu.get_n_items.html | 2 Documentation/webkitgtk-6.0/method.OptionMenu.select_item.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.copy.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.free.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.get_label.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.get_tooltip.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.is_enabled.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_child.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_label.html | 2 Documentation/webkitgtk-6.0/method.OptionMenuItem.is_selected.html | 2 Documentation/webkitgtk-6.0/method.PermissionRequest.allow.html | 2 Documentation/webkitgtk-6.0/method.PermissionRequest.deny.html | 2 Documentation/webkitgtk-6.0/method.PermissionStateQuery.finish.html | 2 Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_name.html | 2 Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_security_origin.html | 2 Documentation/webkitgtk-6.0/method.PermissionStateQuery.ref.html | 2 Documentation/webkitgtk-6.0/method.PermissionStateQuery.unref.html | 2 Documentation/webkitgtk-6.0/method.PolicyDecision.download.html | 2 Documentation/webkitgtk-6.0/method.PolicyDecision.ignore.html | 2 Documentation/webkitgtk-6.0/method.PolicyDecision.use.html | 2 Documentation/webkitgtk-6.0/method.PolicyDecision.use_with_policies.html | 2 Documentation/webkitgtk-6.0/method.PrintOperation.get_page_setup.html | 2 Documentation/webkitgtk-6.0/method.PrintOperation.get_print_settings.html | 2 Documentation/webkitgtk-6.0/method.PrintOperation.print.html | 2 Documentation/webkitgtk-6.0/method.PrintOperation.run_dialog.html | 2 Documentation/webkitgtk-6.0/method.PrintOperation.set_page_setup.html | 2 Documentation/webkitgtk-6.0/method.PrintOperation.set_print_settings.html | 2 Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_request.html | 2 Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_response.html | 2 Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_main_frame_main_resource.html | 2 Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_mime_type_supported.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.close.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.confirm_set_confirmed.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.get_dialog_type.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.get_message.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_get_default_text.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_set_text.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.ref.html | 2 Documentation/webkitgtk-6.0/method.ScriptDialog.unref.html | 2 Documentation/webkitgtk-6.0/method.ScriptMessageReply.ref.html | 2 Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_error_message.html | 2 Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_value.html | 2 Documentation/webkitgtk-6.0/method.ScriptMessageReply.unref.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_cors_enabled.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_display_isolated.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_empty_document.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_local.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_no_access.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_secure.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_cors_enabled.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_display_isolated.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_empty_document.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_local.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_no_access.html | 2 Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_secure.html | 2 Documentation/webkitgtk-6.0/method.SecurityOrigin.get_host.html | 2 Documentation/webkitgtk-6.0/method.SecurityOrigin.get_port.html | 2 Documentation/webkitgtk-6.0/method.SecurityOrigin.get_protocol.html | 2 Documentation/webkitgtk-6.0/method.SecurityOrigin.ref.html | 2 Documentation/webkitgtk-6.0/method.SecurityOrigin.to_string.html | 2 Documentation/webkitgtk-6.0/method.SecurityOrigin.unref.html | 2 Documentation/webkitgtk-6.0/method.Settings.apply_from_key_file.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_allow_file_access_from_file_urls.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_allow_modal_dialogs.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_allow_top_navigation_to_data_urls.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_allow_universal_access_from_file_urls.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_auto_load_images.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_cursive_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_default_charset.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_default_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_default_font_size.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_default_monospace_font_size.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_disable_web_security.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_draw_compositing_indicators.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_2d_canvas_acceleration.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_back_forward_navigation_gestures.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_caret_browsing.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_developer_extras.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_dns_prefetching.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_encrypted_media.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_fullscreen.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_database.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_local_storage.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_hyperlink_auditing.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript_markup.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_media.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_media_capabilities.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_media_stream.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_mediasource.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_mock_capture_devices.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_offline_web_application_cache.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_page_cache.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_resizable_text_areas.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_site_specific_quirks.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_smooth_scrolling.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_spatial_navigation.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_tabs_to_links.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_webaudio.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_webgl.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_webrtc.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_enable_write_console_messages_to_stdout.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_fantasy_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_feature_enabled.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_hardware_acceleration_policy.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_access_clipboard.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_open_windows_automatically.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_load_icons_ignoring_image_load_setting.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_media_content_types_requiring_hardware_support.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_media_playback_allows_inline.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_media_playback_requires_user_gesture.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_minimum_font_size.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_monospace_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_pictograph_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_print_backgrounds.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_sans_serif_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_serif_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_user_agent.html | 4 Documentation/webkitgtk-6.0/method.Settings.get_zoom_text_only.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_allow_file_access_from_file_urls.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_allow_modal_dialogs.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_allow_top_navigation_to_data_urls.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_allow_universal_access_from_file_urls.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_auto_load_images.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_cursive_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_default_charset.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_default_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_default_font_size.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_default_monospace_font_size.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_disable_web_security.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_draw_compositing_indicators.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_2d_canvas_acceleration.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_back_forward_navigation_gestures.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_caret_browsing.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_developer_extras.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_dns_prefetching.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_encrypted_media.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_fullscreen.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_database.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_local_storage.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_hyperlink_auditing.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript_markup.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_media.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_media_capabilities.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_media_stream.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_mediasource.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_mock_capture_devices.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_offline_web_application_cache.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_page_cache.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_resizable_text_areas.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_site_specific_quirks.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_smooth_scrolling.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_spatial_navigation.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_tabs_to_links.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_webaudio.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_webgl.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_webrtc.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_enable_write_console_messages_to_stdout.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_fantasy_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_feature_enabled.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_hardware_acceleration_policy.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_access_clipboard.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_open_windows_automatically.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_load_icons_ignoring_image_load_setting.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_media_content_types_requiring_hardware_support.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_media_playback_allows_inline.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_media_playback_requires_user_gesture.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_minimum_font_size.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_monospace_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_pictograph_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_print_backgrounds.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_sans_serif_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_serif_font_family.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_user_agent.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_user_agent_with_application_details.html | 4 Documentation/webkitgtk-6.0/method.Settings.set_zoom_text_only.html | 4 Documentation/webkitgtk-6.0/method.URIRequest.get_http_headers.html | 2 Documentation/webkitgtk-6.0/method.URIRequest.get_http_method.html | 2 Documentation/webkitgtk-6.0/method.URIRequest.get_uri.html | 2 Documentation/webkitgtk-6.0/method.URIRequest.set_uri.html | 2 Documentation/webkitgtk-6.0/method.URIResponse.get_content_length.html | 2 Documentation/webkitgtk-6.0/method.URIResponse.get_http_headers.html | 2 Documentation/webkitgtk-6.0/method.URIResponse.get_mime_type.html | 2 Documentation/webkitgtk-6.0/method.URIResponse.get_status_code.html | 2 Documentation/webkitgtk-6.0/method.URIResponse.get_suggested_filename.html | 2 Documentation/webkitgtk-6.0/method.URIResponse.get_uri.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.finish.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_error.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_with_response.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_body.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_headers.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_method.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_path.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_scheme.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_uri.html | 2 Documentation/webkitgtk-6.0/method.URISchemeRequest.get_web_view.html | 2 Documentation/webkitgtk-6.0/method.URISchemeResponse.set_content_type.html | 2 Documentation/webkitgtk-6.0/method.URISchemeResponse.set_http_headers.html | 2 Documentation/webkitgtk-6.0/method.URISchemeResponse.set_status.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilter.get_identifier.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilter.ref.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilter.unref.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers_finish.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.get_path.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.load.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.load_finish.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove_finish.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.save.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_finish.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file.html | 2 Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file_finish.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.add_filter.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.add_script.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.add_style_sheet.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler_with_reply.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_filters.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_scripts.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_style_sheets.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter_by_id.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_script.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.remove_style_sheet.html | 2 Documentation/webkitgtk-6.0/method.UserContentManager.unregister_script_message_handler.html | 2 Documentation/webkitgtk-6.0/method.UserMessage.get_fd_list.html | 2 Documentation/webkitgtk-6.0/method.UserMessage.get_name.html | 2 Documentation/webkitgtk-6.0/method.UserMessage.get_parameters.html | 2 Documentation/webkitgtk-6.0/method.UserMessage.send_reply.html | 2 Documentation/webkitgtk-6.0/method.UserScript.ref.html | 2 Documentation/webkitgtk-6.0/method.UserScript.unref.html | 2 Documentation/webkitgtk-6.0/method.UserStyleSheet.ref.html | 2 Documentation/webkitgtk-6.0/method.UserStyleSheet.unref.html | 2 Documentation/webkitgtk-6.0/method.WebContext.add_path_to_sandbox.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_cache_model.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_geolocation_manager.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_network_session_for_automation.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_security_manager.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_enabled.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_languages.html | 4 Documentation/webkitgtk-6.0/method.WebContext.get_time_zone_override.html | 4 Documentation/webkitgtk-6.0/method.WebContext.initialize_notification_permissions.html | 4 Documentation/webkitgtk-6.0/method.WebContext.is_automation_allowed.html | 4 Documentation/webkitgtk-6.0/method.WebContext.register_uri_scheme.html | 4 Documentation/webkitgtk-6.0/method.WebContext.send_message_to_all_extensions.html | 4 Documentation/webkitgtk-6.0/method.WebContext.set_automation_allowed.html | 4 Documentation/webkitgtk-6.0/method.WebContext.set_cache_model.html | 4 Documentation/webkitgtk-6.0/method.WebContext.set_preferred_languages.html | 4 Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_enabled.html | 4 Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_languages.html | 4 Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_directory.html | 2 Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_initialization_user_data.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.attach.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.close.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.detach.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.get_attached_height.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.get_can_attach.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.get_inspected_uri.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.get_web_view.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.is_attached.html | 2 Documentation/webkitgtk-6.0/method.WebInspector.show.html | 2 Documentation/webkitgtk-6.0/method.WebResource.get_data.html | 2 Documentation/webkitgtk-6.0/method.WebResource.get_data_finish.html | 2 Documentation/webkitgtk-6.0/method.WebResource.get_response.html | 2 Documentation/webkitgtk-6.0/method.WebResource.get_uri.html | 2 Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function.html | 2 Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command.html | 2 Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.can_go_back.html | 2 Documentation/webkitgtk-6.0/method.WebView.can_go_forward.html | 2 Documentation/webkitgtk-6.0/method.WebView.can_show_mime_type.html | 2 Documentation/webkitgtk-6.0/method.WebView.download_uri.html | 2 Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript.html | 2 Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.execute_editing_command.html | 2 Documentation/webkitgtk-6.0/method.WebView.execute_editing_command_with_argument.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_automation_presentation_type.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_back_forward_list.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_background_color.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_camera_capture_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_context.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_custom_charset.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_default_content_security_policy.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_display_capture_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_editor_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_estimated_load_progress.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_favicon.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_find_controller.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_input_method_context.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_inspector.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_is_muted.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_is_web_process_responsive.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_main_resource.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_microphone_capture_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_network_session.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_page_id.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_session_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_settings.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_snapshot.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_snapshot_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_title.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_tls_info.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_uri.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_user_content_manager.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_web_extension_mode.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_website_policies.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_window_properties.html | 2 Documentation/webkitgtk-6.0/method.WebView.get_zoom_level.html | 2 Documentation/webkitgtk-6.0/method.WebView.go_back.html | 2 Documentation/webkitgtk-6.0/method.WebView.go_forward.html | 2 Documentation/webkitgtk-6.0/method.WebView.go_to_back_forward_list_item.html | 2 Documentation/webkitgtk-6.0/method.WebView.is_controlled_by_automation.html | 2 Documentation/webkitgtk-6.0/method.WebView.is_editable.html | 10 Documentation/webkitgtk-6.0/method.WebView.is_loading.html | 2 Documentation/webkitgtk-6.0/method.WebView.is_playing_audio.html | 2 Documentation/webkitgtk-6.0/method.WebView.load_alternate_html.html | 2 Documentation/webkitgtk-6.0/method.WebView.load_bytes.html | 2 Documentation/webkitgtk-6.0/method.WebView.load_html.html | 2 Documentation/webkitgtk-6.0/method.WebView.load_plain_text.html | 2 Documentation/webkitgtk-6.0/method.WebView.load_request.html | 2 Documentation/webkitgtk-6.0/method.WebView.load_uri.html | 2 Documentation/webkitgtk-6.0/method.WebView.reload.html | 2 Documentation/webkitgtk-6.0/method.WebView.reload_bypass_cache.html | 2 Documentation/webkitgtk-6.0/method.WebView.restore_session_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.save.html | 2 Documentation/webkitgtk-6.0/method.WebView.save_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.save_to_file.html | 2 Documentation/webkitgtk-6.0/method.WebView.save_to_file_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.send_message_to_page.html | 2 Documentation/webkitgtk-6.0/method.WebView.send_message_to_page_finish.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_background_color.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_camera_capture_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_cors_allowlist.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_custom_charset.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_display_capture_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_editable.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_input_method_context.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_is_muted.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_microphone_capture_state.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_settings.html | 2 Documentation/webkitgtk-6.0/method.WebView.set_zoom_level.html | 2 Documentation/webkitgtk-6.0/method.WebView.stop_loading.html | 2 Documentation/webkitgtk-6.0/method.WebView.terminate_web_process.html | 2 Documentation/webkitgtk-6.0/method.WebView.try_close.html | 2 Documentation/webkitgtk-6.0/method.WebViewSessionState.ref.html | 2 Documentation/webkitgtk-6.0/method.WebViewSessionState.serialize.html | 2 Documentation/webkitgtk-6.0/method.WebViewSessionState.unref.html | 2 Documentation/webkitgtk-6.0/method.WebsiteData.get_name.html | 2 Documentation/webkitgtk-6.0/method.WebsiteData.get_size.html | 2 Documentation/webkitgtk-6.0/method.WebsiteData.get_types.html | 2 Documentation/webkitgtk-6.0/method.WebsiteData.ref.html | 2 Documentation/webkitgtk-6.0/method.WebsiteData.unref.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_current_domain.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_requesting_domain.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear_finish.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch_finish.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_cache_directory.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_data_directory.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicon_database.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicons_enabled.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary_finish.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.is_ephemeral.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove_finish.html | 2 Documentation/webkitgtk-6.0/method.WebsiteDataManager.set_favicons_enabled.html | 2 Documentation/webkitgtk-6.0/method.WebsitePolicies.get_autoplay_policy.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_fullscreen.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_geometry.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_locationbar_visible.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_menubar_visible.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_resizable.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_scrollbars_visible.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_statusbar_visible.html | 2 Documentation/webkitgtk-6.0/method.WindowProperties.get_toolbar_visible.html | 2 Documentation/webkitgtk-6.0/migrating-to-webkitgtk-6.0.html | 4 Documentation/webkitgtk-6.0/property.AutomationSession.id.html | 2 Documentation/webkitgtk-6.0/property.ColorChooserRequest.rgba.html | 2 Documentation/webkitgtk-6.0/property.Download.allow-overwrite.html | 2 Documentation/webkitgtk-6.0/property.Download.destination.html | 2 Documentation/webkitgtk-6.0/property.Download.estimated-progress.html | 2 Documentation/webkitgtk-6.0/property.Download.response.html | 2 Documentation/webkitgtk-6.0/property.EditorState.typing-attributes.html | 2 Documentation/webkitgtk-6.0/property.FileChooserRequest.filter.html | 2 Documentation/webkitgtk-6.0/property.FileChooserRequest.mime-types.html | 2 Documentation/webkitgtk-6.0/property.FileChooserRequest.select-multiple.html | 2 Documentation/webkitgtk-6.0/property.FileChooserRequest.selected-files.html | 2 Documentation/webkitgtk-6.0/property.FindController.max-match-count.html | 2 Documentation/webkitgtk-6.0/property.FindController.options.html | 2 Documentation/webkitgtk-6.0/property.FindController.text.html | 2 Documentation/webkitgtk-6.0/property.FindController.web-view.html | 2 Documentation/webkitgtk-6.0/property.GeolocationManager.enable-high-accuracy.html | 2 Documentation/webkitgtk-6.0/property.HitTestResult.context.html | 2 Documentation/webkitgtk-6.0/property.HitTestResult.image-uri.html | 2 Documentation/webkitgtk-6.0/property.HitTestResult.link-label.html | 2 Documentation/webkitgtk-6.0/property.HitTestResult.link-title.html | 2 Documentation/webkitgtk-6.0/property.HitTestResult.link-uri.html | 2 Documentation/webkitgtk-6.0/property.HitTestResult.media-uri.html | 2 Documentation/webkitgtk-6.0/property.InputMethodContext.input-hints.html | 2 Documentation/webkitgtk-6.0/property.InputMethodContext.input-purpose.html | 2 Documentation/webkitgtk-6.0/property.NavigationPolicyDecision.navigation-action.html | 2 Documentation/webkitgtk-6.0/property.NetworkSession.cache-directory.html | 2 Documentation/webkitgtk-6.0/property.NetworkSession.data-directory.html | 2 Documentation/webkitgtk-6.0/property.NetworkSession.is-ephemeral.html | 2 Documentation/webkitgtk-6.0/property.Notification.body.html | 2 Documentation/webkitgtk-6.0/property.Notification.id.html | 2 Documentation/webkitgtk-6.0/property.Notification.tag.html | 2 Documentation/webkitgtk-6.0/property.Notification.title.html | 2 Documentation/webkitgtk-6.0/property.PrintOperation.page-setup.html | 2 Documentation/webkitgtk-6.0/property.PrintOperation.print-settings.html | 2 Documentation/webkitgtk-6.0/property.PrintOperation.web-view.html | 2 Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.request.html | 2 Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.response.html | 2 Documentation/webkitgtk-6.0/property.Settings.allow-file-access-from-file-urls.html | 4 Documentation/webkitgtk-6.0/property.Settings.allow-modal-dialogs.html | 4 Documentation/webkitgtk-6.0/property.Settings.allow-top-navigation-to-data-urls.html | 4 Documentation/webkitgtk-6.0/property.Settings.allow-universal-access-from-file-urls.html | 4 Documentation/webkitgtk-6.0/property.Settings.auto-load-images.html | 4 Documentation/webkitgtk-6.0/property.Settings.cursive-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.default-charset.html | 4 Documentation/webkitgtk-6.0/property.Settings.default-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.default-font-size.html | 4 Documentation/webkitgtk-6.0/property.Settings.default-monospace-font-size.html | 4 Documentation/webkitgtk-6.0/property.Settings.disable-web-security.html | 4 Documentation/webkitgtk-6.0/property.Settings.draw-compositing-indicators.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-2d-canvas-acceleration.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-back-forward-navigation-gestures.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-caret-browsing.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-developer-extras.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-dns-prefetching.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-encrypted-media.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-fullscreen.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-html5-database.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-html5-local-storage.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-hyperlink-auditing.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-javascript-markup.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-javascript.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-media-capabilities.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-media-stream.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-media.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-mediasource.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-mock-capture-devices.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-offline-web-application-cache.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-page-cache.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-resizable-text-areas.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-site-specific-quirks.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-smooth-scrolling.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-spatial-navigation.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-tabs-to-links.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-webaudio.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-webgl.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-webrtc.html | 4 Documentation/webkitgtk-6.0/property.Settings.enable-write-console-messages-to-stdout.html | 4 Documentation/webkitgtk-6.0/property.Settings.fantasy-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.hardware-acceleration-policy.html | 4 Documentation/webkitgtk-6.0/property.Settings.javascript-can-access-clipboard.html | 4 Documentation/webkitgtk-6.0/property.Settings.javascript-can-open-windows-automatically.html | 4 Documentation/webkitgtk-6.0/property.Settings.load-icons-ignoring-image-load-setting.html | 4 Documentation/webkitgtk-6.0/property.Settings.media-content-types-requiring-hardware-support.html | 4 Documentation/webkitgtk-6.0/property.Settings.media-playback-allows-inline.html | 4 Documentation/webkitgtk-6.0/property.Settings.media-playback-requires-user-gesture.html | 4 Documentation/webkitgtk-6.0/property.Settings.minimum-font-size.html | 4 Documentation/webkitgtk-6.0/property.Settings.monospace-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.pictograph-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.print-backgrounds.html | 4 Documentation/webkitgtk-6.0/property.Settings.sans-serif-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.serif-font-family.html | 4 Documentation/webkitgtk-6.0/property.Settings.user-agent.html | 4 Documentation/webkitgtk-6.0/property.Settings.zoom-text-only.html | 4 Documentation/webkitgtk-6.0/property.URIRequest.uri.html | 2 Documentation/webkitgtk-6.0/property.URIResponse.content-length.html | 2 Documentation/webkitgtk-6.0/property.URIResponse.http-headers.html | 2 Documentation/webkitgtk-6.0/property.URIResponse.mime-type.html | 2 Documentation/webkitgtk-6.0/property.URIResponse.status-code.html | 2 Documentation/webkitgtk-6.0/property.URIResponse.suggested-filename.html | 2 Documentation/webkitgtk-6.0/property.URIResponse.uri.html | 2 Documentation/webkitgtk-6.0/property.URISchemeResponse.stream-length.html | 2 Documentation/webkitgtk-6.0/property.URISchemeResponse.stream.html | 2 Documentation/webkitgtk-6.0/property.UserContentFilterStore.path.html | 2 Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-audio-device.html | 2 Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-video-device.html | 2 Documentation/webkitgtk-6.0/property.UserMessage.fd-list.html | 2 Documentation/webkitgtk-6.0/property.UserMessage.name.html | 2 Documentation/webkitgtk-6.0/property.UserMessage.parameters.html | 2 Documentation/webkitgtk-6.0/property.WebContext.memory-pressure-settings.html | 4 Documentation/webkitgtk-6.0/property.WebContext.time-zone-override.html | 4 Documentation/webkitgtk-6.0/property.WebInspector.attached-height.html | 2 Documentation/webkitgtk-6.0/property.WebInspector.can-attach.html | 2 Documentation/webkitgtk-6.0/property.WebInspector.inspected-uri.html | 2 Documentation/webkitgtk-6.0/property.WebResource.response.html | 2 Documentation/webkitgtk-6.0/property.WebResource.uri.html | 2 Documentation/webkitgtk-6.0/property.WebView.automation-presentation-type.html | 2 Documentation/webkitgtk-6.0/property.WebView.camera-capture-state.html | 2 Documentation/webkitgtk-6.0/property.WebView.default-content-security-policy.html | 2 Documentation/webkitgtk-6.0/property.WebView.display-capture-state.html | 2 Documentation/webkitgtk-6.0/property.WebView.editable.html | 4 Documentation/webkitgtk-6.0/property.WebView.estimated-load-progress.html | 2 Documentation/webkitgtk-6.0/property.WebView.favicon.html | 2 Documentation/webkitgtk-6.0/property.WebView.is-controlled-by-automation.html | 2 Documentation/webkitgtk-6.0/property.WebView.is-loading.html | 2 Documentation/webkitgtk-6.0/property.WebView.is-muted.html | 2 Documentation/webkitgtk-6.0/property.WebView.is-playing-audio.html | 2 Documentation/webkitgtk-6.0/property.WebView.is-web-process-responsive.html | 2 Documentation/webkitgtk-6.0/property.WebView.microphone-capture-state.html | 2 Documentation/webkitgtk-6.0/property.WebView.network-session.html | 2 Documentation/webkitgtk-6.0/property.WebView.page-id.html | 2 Documentation/webkitgtk-6.0/property.WebView.related-view.html | 2 Documentation/webkitgtk-6.0/property.WebView.settings.html | 2 Documentation/webkitgtk-6.0/property.WebView.title.html | 2 Documentation/webkitgtk-6.0/property.WebView.uri.html | 2 Documentation/webkitgtk-6.0/property.WebView.user-content-manager.html | 2 Documentation/webkitgtk-6.0/property.WebView.web-context.html | 2 Documentation/webkitgtk-6.0/property.WebView.web-extension-mode.html | 2 Documentation/webkitgtk-6.0/property.WebView.website-policies.html | 2 Documentation/webkitgtk-6.0/property.WebView.zoom-level.html | 2 Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-cache-directory.html | 2 Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-data-directory.html | 2 Documentation/webkitgtk-6.0/property.WebsiteDataManager.is-ephemeral.html | 2 Documentation/webkitgtk-6.0/property.WebsiteDataManager.origin-storage-ratio.html | 2 Documentation/webkitgtk-6.0/property.WebsiteDataManager.total-storage-ratio.html | 2 Documentation/webkitgtk-6.0/property.WebsitePolicies.autoplay.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.fullscreen.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.geometry.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.locationbar-visible.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.menubar-visible.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.resizable.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.scrollbars-visible.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.statusbar-visible.html | 2 Documentation/webkitgtk-6.0/property.WindowProperties.toolbar-visible.html | 2 Documentation/webkitgtk-6.0/signal.AuthenticationRequest.authenticated.html | 2 Documentation/webkitgtk-6.0/signal.AuthenticationRequest.cancelled.html | 2 Documentation/webkitgtk-6.0/signal.AutomationSession.create-web-view.html | 2 Documentation/webkitgtk-6.0/signal.AutomationSession.will-close.html | 2 Documentation/webkitgtk-6.0/signal.BackForwardList.changed.html | 2 Documentation/webkitgtk-6.0/signal.ColorChooserRequest.finished.html | 2 Documentation/webkitgtk-6.0/signal.CookieManager.changed.html | 2 Documentation/webkitgtk-6.0/signal.Download.created-destination.html | 2 Documentation/webkitgtk-6.0/signal.Download.decide-destination.html | 2 Documentation/webkitgtk-6.0/signal.Download.failed.html | 2 Documentation/webkitgtk-6.0/signal.Download.finished.html | 2 Documentation/webkitgtk-6.0/signal.Download.received-data.html | 2 Documentation/webkitgtk-6.0/signal.EditorState.changed.html | 2 Documentation/webkitgtk-6.0/signal.FaviconDatabase.favicon-changed.html | 2 Documentation/webkitgtk-6.0/signal.FindController.counted-matches.html | 2 Documentation/webkitgtk-6.0/signal.FindController.failed-to-find-text.html | 2 Documentation/webkitgtk-6.0/signal.FindController.found-text.html | 2 Documentation/webkitgtk-6.0/signal.GeolocationManager.start.html | 2 Documentation/webkitgtk-6.0/signal.GeolocationManager.stop.html | 2 Documentation/webkitgtk-6.0/signal.InputMethodContext.committed.html | 2 Documentation/webkitgtk-6.0/signal.InputMethodContext.delete-surrounding.html | 2 Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-changed.html | 2 Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-finished.html | 2 Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-started.html | 2 Documentation/webkitgtk-6.0/signal.NetworkSession.download-started.html | 2 Documentation/webkitgtk-6.0/signal.Notification.clicked.html | 2 Documentation/webkitgtk-6.0/signal.Notification.closed.html | 2 Documentation/webkitgtk-6.0/signal.OptionMenu.close.html | 2 Documentation/webkitgtk-6.0/signal.PrintOperation.failed.html | 2 Documentation/webkitgtk-6.0/signal.PrintOperation.finished.html | 2 Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-received.html | 2 Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-with-reply-received.html | 2 Documentation/webkitgtk-6.0/signal.WebContext.automation-started.html | 4 Documentation/webkitgtk-6.0/signal.WebContext.initialize-notification-permissions.html | 4 Documentation/webkitgtk-6.0/signal.WebContext.initialize-web-process-extensions.html | 2 Documentation/webkitgtk-6.0/signal.WebContext.user-message-received.html | 4 Documentation/webkitgtk-6.0/signal.WebInspector.attach.html | 2 Documentation/webkitgtk-6.0/signal.WebInspector.bring-to-front.html | 2 Documentation/webkitgtk-6.0/signal.WebInspector.closed.html | 2 Documentation/webkitgtk-6.0/signal.WebInspector.detach.html | 2 Documentation/webkitgtk-6.0/signal.WebInspector.open-window.html | 2 Documentation/webkitgtk-6.0/signal.WebResource.failed-with-tls-errors.html | 2 Documentation/webkitgtk-6.0/signal.WebResource.failed.html | 2 Documentation/webkitgtk-6.0/signal.WebResource.finished.html | 2 Documentation/webkitgtk-6.0/signal.WebResource.sent-request.html | 2 Documentation/webkitgtk-6.0/signal.WebView.authenticate.html | 2 Documentation/webkitgtk-6.0/signal.WebView.close.html | 2 Documentation/webkitgtk-6.0/signal.WebView.context-menu-dismissed.html | 2 Documentation/webkitgtk-6.0/signal.WebView.context-menu.html | 2 Documentation/webkitgtk-6.0/signal.WebView.create.html | 2 Documentation/webkitgtk-6.0/signal.WebView.decide-policy.html | 2 Documentation/webkitgtk-6.0/signal.WebView.enter-fullscreen.html | 2 Documentation/webkitgtk-6.0/signal.WebView.insecure-content-detected.html | 2 Documentation/webkitgtk-6.0/signal.WebView.leave-fullscreen.html | 2 Documentation/webkitgtk-6.0/signal.WebView.load-changed.html | 2 Documentation/webkitgtk-6.0/signal.WebView.load-failed-with-tls-errors.html | 2 Documentation/webkitgtk-6.0/signal.WebView.load-failed.html | 2 Documentation/webkitgtk-6.0/signal.WebView.mouse-target-changed.html | 2 Documentation/webkitgtk-6.0/signal.WebView.permission-request.html | 2 Documentation/webkitgtk-6.0/signal.WebView.print.html | 2 Documentation/webkitgtk-6.0/signal.WebView.query-permission-state.html | 2 Documentation/webkitgtk-6.0/signal.WebView.ready-to-show.html | 2 Documentation/webkitgtk-6.0/signal.WebView.resource-load-started.html | 2 Documentation/webkitgtk-6.0/signal.WebView.run-as-modal.html | 2 Documentation/webkitgtk-6.0/signal.WebView.run-color-chooser.html | 2 Documentation/webkitgtk-6.0/signal.WebView.run-file-chooser.html | 2 Documentation/webkitgtk-6.0/signal.WebView.script-dialog.html | 2 Documentation/webkitgtk-6.0/signal.WebView.show-notification.html | 2 Documentation/webkitgtk-6.0/signal.WebView.show-option-menu.html | 2 Documentation/webkitgtk-6.0/signal.WebView.submit-form.html | 2 Documentation/webkitgtk-6.0/signal.WebView.user-message-received.html | 2 Documentation/webkitgtk-6.0/signal.WebView.web-process-terminated.html | 2 Documentation/webkitgtk-6.0/struct.ApplicationInfo.html | 2 Documentation/webkitgtk-6.0/struct.Credential.html | 2 Documentation/webkitgtk-6.0/struct.Feature.html | 2 Documentation/webkitgtk-6.0/struct.FeatureList.html | 2 Documentation/webkitgtk-6.0/struct.GeolocationPosition.html | 2 Documentation/webkitgtk-6.0/struct.ITPFirstParty.html | 2 Documentation/webkitgtk-6.0/struct.ITPThirdParty.html | 2 Documentation/webkitgtk-6.0/struct.InputMethodUnderline.html | 2 Documentation/webkitgtk-6.0/struct.MemoryPressureSettings.html | 2 Documentation/webkitgtk-6.0/struct.NavigationAction.html | 2 Documentation/webkitgtk-6.0/struct.NetworkProxySettings.html | 2 Documentation/webkitgtk-6.0/struct.OptionMenuItem.html | 2 Documentation/webkitgtk-6.0/struct.PermissionStateQuery.html | 2 Documentation/webkitgtk-6.0/struct.ScriptDialog.html | 2 Documentation/webkitgtk-6.0/struct.ScriptMessageReply.html | 2 Documentation/webkitgtk-6.0/struct.SecurityOrigin.html | 2 Documentation/webkitgtk-6.0/struct.UserContentFilter.html | 2 Documentation/webkitgtk-6.0/struct.UserScript.html | 2 Documentation/webkitgtk-6.0/struct.UserStyleSheet.html | 2 Documentation/webkitgtk-6.0/struct.WebViewSessionState.html | 2 Documentation/webkitgtk-6.0/struct.WebsiteData.html | 2 Documentation/webkitgtk-6.0/type_func.DownloadError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.FaviconDatabaseError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.JavascriptError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.MediaError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.NetworkError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.NetworkSession.get_default.html | 2 Documentation/webkitgtk-6.0/type_func.NetworkSession.set_memory_pressure_settings.html | 2 Documentation/webkitgtk-6.0/type_func.PolicyError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.PrintError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_pixels.html | 4 Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_points.html | 4 Documentation/webkitgtk-6.0/type_func.Settings.get_all_features.html | 4 Documentation/webkitgtk-6.0/type_func.Settings.get_development_features.html | 4 Documentation/webkitgtk-6.0/type_func.Settings.get_experimental_features.html | 4 Documentation/webkitgtk-6.0/type_func.SnapshotError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.UserContentFilterError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.UserMessageError.quark.html | 2 Documentation/webkitgtk-6.0/type_func.WebContext.get_default.html | 4 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.committed.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.delete_surrounding.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.filter_key_event.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.get_preedit.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_cursor_area.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_in.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_out.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_surrounding.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_changed.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_finished.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_started.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.reset.html | 2 Documentation/webkitgtk-6.0/vfunc.InputMethodContext.set_enable_preedit.html | 2 Documentation/webkitgtk-6.0/vfunc.PermissionRequest.allow.html | 2 Documentation/webkitgtk-6.0/vfunc.PermissionRequest.deny.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.authenticate.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.close.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.context_menu.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.context_menu_dismissed.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.create.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.decide_policy.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.enter_fullscreen.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.insecure_content_detected.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.leave_fullscreen.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.load_changed.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.load_failed.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.load_failed_with_tls_errors.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.mouse_target_changed.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.permission_request.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.print.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.query_permission_state.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.ready_to_show.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.resource_load_started.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.run_as_modal.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.run_color_chooser.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.run_file_chooser.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.script_dialog.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.show_notification.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.show_option_menu.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.submit_form.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.user_message_received.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.web_process_crashed.html | 2 Documentation/webkitgtk-6.0/vfunc.WebView.web_process_terminated.html | 2 Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeFunction.html | 2 Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeWithUserDataFunction.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenu.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenuItem.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.Frame.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.HitTestResult.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.ScriptWorld.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.URIRequest.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.URIResponse.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.UserMessage.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.WebEditor.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.WebFormManager.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.WebHitTestResult.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.WebPage.html | 2 Documentation/webkitgtk-web-process-extension-6.0/class.WebProcessExtension.html | 2 Documentation/webkitgtk-web-process-extension-6.0/classes_hierarchy.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new_with_items.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_gaction.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_separator.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_with_submenu.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new_with_name.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.URIRequest.new.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new.html | 2 Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new_with_fd_list.html | 2 Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageLevel.html | 2 Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageSource.html | 2 Documentation/webkitgtk-web-process-extension-6.0/enum.ContextMenuAction.html | 2 Documentation/webkitgtk-web-process-extension-6.0/enum.UserMessageError.html | 2 Documentation/webkitgtk-web-process-extension-6.0/flags.HitTestResultContext.html | 2 Documentation/webkitgtk-web-process-extension-6.0/gtk4-urlmap.js | 2 Documentation/webkitgtk-web-process-extension-6.0/index.html | 8 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.copy.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.free.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_level.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_line.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source_id.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_text.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.append.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.first.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_event.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_item_at_position.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_items.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_n_items.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_user_data.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.insert.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.last.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.move_item.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.prepend.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove_all.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.set_user_data.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_gaction.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_stock_action.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_submenu.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.is_separator.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.set_submenu.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_id.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context_for_script_world.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.Frame.is_main_frame.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_editable.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_image.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_link.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_media.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_scrollbar.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_selection.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_context.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_image_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_label.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_title.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_media_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.ScriptWorld.get_name.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_headers.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_method.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.set_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_content_length.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_http_headers.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_mime_type.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_status_code.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_suggested_filename.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_fd_list.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_name.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_parameters.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.send_reply.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebEditor.get_page.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_editable.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_image.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_link.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_media.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_scrollbar.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_selection.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_context.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_image_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_js_node.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_label.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_title.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_media_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_editor.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_form_manager.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_id.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_main_frame.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view_finish.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.get_page.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context.html | 2 Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context_finish.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.context.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.image-uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-label.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-title.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.media-uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIRequest.uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.content-length.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.http-headers.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.mime-type.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.status-code.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.suggested-filename.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.fd-list.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.name.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.parameters.html | 2 Documentation/webkitgtk-web-process-extension-6.0/property.WebPage.uri.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.ScriptWorld.window-object-cleared.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebEditor.selection-changed.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.form-controls-associated.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-send-submit-event.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-submit-form.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.console-message-sent.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.context-menu.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.document-loaded.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.send-request.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.user-message-received.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.page-created.html | 2 Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.user-message-received.html | 2 Documentation/webkitgtk-web-process-extension-6.0/struct.ConsoleMessage.html | 2 Documentation/webkitgtk-web-process-extension-6.0/type_func.ScriptWorld.get_default.html | 2 Documentation/webkitgtk-web-process-extension-6.0/type_func.UserMessage.error_quark.html | 2 Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_auto_fill.html | 2 Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_auto_filled.html | 2 Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_user_edited.html | 2 NEWS | 40 Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp | 6 Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp | 34 Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h | 14 Source/JavaScriptCore/jit/GPRInfo.h | 20 Source/JavaScriptCore/jsc.cpp | 2 Source/JavaScriptCore/runtime/MathCommon.cpp | 22 Source/JavaScriptCore/tools/JSDollarVM.cpp | 8 Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp | 21 Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h | 10 Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp | 5 Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp | 5 Source/JavaScriptCore/yarr/YarrPattern.cpp | 5 Source/ThirdParty/ANGLE/CMakeLists.txt | 2 Source/ThirdParty/libsysprof-capture/README.WebKit | 2 Source/ThirdParty/libsysprof-capture/sysprof-capture-writer.c | 7 Source/ThirdParty/libsysprof-capture/sysprof-collector.c | 8 Source/ThirdParty/libsysprof-capture/sysprof-version.h | 6 Source/ThirdParty/skia/CMakeLists.txt | 31 Source/ThirdParty/skia/include/private/base/SkFeatures.h | 4 Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h | 3 Source/ThirdParty/skia/src/core/SkRasterPipeline.h | 2 Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml | 1 Source/WTF/wtf/CMakeLists.txt | 1 Source/WTF/wtf/Compiler.h | 23 Source/WTF/wtf/HexNumber.h | 5 Source/WTF/wtf/PlatformEnableGlib.h | 2 Source/WTF/wtf/SystemTracing.h | 6 Source/WTF/wtf/glib/GSocketMonitor.cpp | 21 Source/WTF/wtf/glib/GSocketMonitor.h | 2 Source/WTF/wtf/glib/Sandbox.cpp | 20 Source/WTF/wtf/glib/Sandbox.h | 2 Source/WTF/wtf/glib/SysprofAnnotator.h | 15 Source/WTF/wtf/posix/FileSystemPOSIX.cpp | 4 Source/WTF/wtf/simde/arm/neon.h | 9803 +++-- Source/WTF/wtf/simde/arm/sve.h | 206 Source/WTF/wtf/simde/wasm/simd128.h |17964 ++++++++++ Source/WTF/wtf/text/StringConcatenateNumbers.h | 6 Source/WTF/wtf/text/StringImpl.h | 8 Source/WTF/wtf/unix/UniStdExtrasUnix.cpp | 2 Source/WebCore/Headers.cmake | 1 Source/WebCore/Modules/WebGPU/GPUDevice.h | 3 Source/WebCore/Modules/fetch/FormDataConsumer.cpp | 8 Source/WebCore/Modules/indexeddb/IDBObjectStoreIdentifier.h | 35 Source/WebCore/Modules/indexeddb/IDBRequest.cpp | 10 Source/WebCore/Modules/indexeddb/IDBRequest.h | 4 Source/WebCore/Modules/indexeddb/IDBTransaction.cpp | 22 Source/WebCore/Modules/indexeddb/IDBTransaction.h | 13 Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp | 8 Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h | 9 Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp | 8 Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h | 9 Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h | 9 Source/WebCore/Modules/indexeddb/client/TransactionOperation.h | 7 Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h | 29 Source/WebCore/Modules/indexeddb/server/IDBServer.cpp | 8 Source/WebCore/Modules/indexeddb/server/IDBServer.h | 9 Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp | 37 Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h | 35 Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp | 184 Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h | 43 Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp | 10 Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h | 9 Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp | 4 Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.h | 5 Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp | 12 Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h | 13 Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp | 10 Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h | 13 Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.cpp | 12 Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h | 15 Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp | 27 Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h | 19 Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h | 3 Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp | 6 Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h | 21 Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp | 6 Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h | 20 Source/WebCore/Modules/indexeddb/shared/IDBRequestData.cpp | 6 Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h | 9 Source/WebCore/Modules/mediasession/MediaSession.cpp | 30 Source/WebCore/Modules/mediasession/MediaSession.h | 1 Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp | 4 Source/WebCore/Modules/mediasource/MediaSource.cpp | 8 Source/WebCore/Modules/mediasource/MediaSource.h | 1 Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.cpp | 5 Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.h | 1 Source/WebCore/Modules/mediasource/MediaSourceInterfaceProxy.h | 1 Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.cpp | 8 Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.h | 1 Source/WebCore/Modules/mediastream/MediaStreamTrackProcessor.cpp | 6 Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp | 2 Source/WebCore/Modules/mediastream/RTCStatsReport.h | 4 Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp | 12 Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp | 167 Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h | 7 Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp | 53 Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h | 3 Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp | 14 Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp | 5 Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp | 62 Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h | 4 Source/WebCore/Modules/reporting/ReportingObserver.cpp | 15 Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp | 4 Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp | 29 Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp | 7 Source/WebCore/Sources.txt | 1 Source/WebCore/accessibility/AccessibilityRenderObject.cpp | 5 Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp | 27 Source/WebCore/accessibility/atspi/AccessibilityAtspi.h | 4 Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp | 26 Source/WebCore/bindings/js/JSAudioWorkletGlobalScopeCustom.cpp | 3 Source/WebCore/bindings/js/JSDOMPromiseDeferred.h | 2 Source/WebCore/bindings/js/JSNavigateEventCustom.cpp | 40 Source/WebCore/bindings/js/SerializedScriptValue.cpp | 24 Source/WebCore/css/CSSPseudoSelectors.json | 2 Source/WebCore/css/FontFace.cpp | 2 Source/WebCore/cssjit/SelectorCompiler.cpp | 7 Source/WebCore/dom/BoundaryPoint.h | 13 Source/WebCore/dom/Document.cpp | 26 Source/WebCore/dom/Document.h | 10 Source/WebCore/dom/FullscreenManager.cpp | 4 Source/WebCore/dom/SimpleRange.cpp | 12 Source/WebCore/dom/SimpleRange.h | 10 Source/WebCore/dom/StyledElement.cpp | 11 Source/WebCore/dom/ViewTransition.cpp | 3 Source/WebCore/editing/DeleteSelectionCommand.cpp | 35 Source/WebCore/fileapi/FileReaderLoader.cpp | 6 Source/WebCore/html/HTMLMediaElement.cpp | 10 Source/WebCore/html/HTMLMediaElement.h | 1 Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp | 13 Source/WebCore/inspector/InspectorStyleSheet.cpp | 153 Source/WebCore/inspector/InspectorStyleSheet.h | 6 Source/WebCore/inspector/agents/InspectorCSSAgent.cpp | 23 Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp | 16 Source/WebCore/loader/CrossOriginAccessControl.cpp | 4 Source/WebCore/loader/CrossOriginAccessControl.h | 2 Source/WebCore/loader/CrossOriginPreflightChecker.cpp | 2 Source/WebCore/loader/CrossOriginPreflightResultCache.cpp | 4 Source/WebCore/loader/CrossOriginPreflightResultCache.h | 7 Source/WebCore/loader/DocumentThreadableLoader.cpp | 7 Source/WebCore/loader/DocumentThreadableLoader.h | 1 Source/WebCore/loader/EmptyClients.cpp | 9 Source/WebCore/loader/PingLoader.cpp | 2 Source/WebCore/page/DiagnosticLoggingKeys.cpp | 25 Source/WebCore/page/DiagnosticLoggingKeys.h | 2 Source/WebCore/page/ElementTargetingController.cpp | 6 Source/WebCore/page/EventHandler.cpp | 23 Source/WebCore/page/EventHandler.h | 4 Source/WebCore/page/NavigateEvent.h | 32 Source/WebCore/page/NavigateEvent.idl | 1 Source/WebCore/page/Page.cpp | 4 Source/WebCore/page/Page.h | 4 Source/WebCore/page/Quirks.cpp | 12 Source/WebCore/page/Quirks.h | 3 Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp | 4 Source/WebCore/page/csp/ContentSecurityPolicyTrustedTypesDirective.cpp | 1 Source/WebCore/platform/SourcesGStreamer.txt | 1 Source/WebCore/platform/SourcesSkia.txt | 1 Source/WebCore/platform/Timer.cpp | 4 Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp | 25 Source/WebCore/platform/audio/gstreamer/AudioDecoderGStreamer.cpp | 22 Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp | 6 Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp | 8 Source/WebCore/platform/glib/UserAgentQuirks.cpp | 7 Source/WebCore/platform/graphics/BitmapImageDescriptor.cpp | 3 Source/WebCore/platform/graphics/BitmapImageSource.cpp | 32 Source/WebCore/platform/graphics/FontRenderOptions.h | 4 Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp | 4 Source/WebCore/platform/graphics/IntRect.h | 9 Source/WebCore/platform/graphics/MediaSourcePrivate.cpp | 3 Source/WebCore/platform/graphics/angle/PlatformDisplayANGLE.cpp | 2 Source/WebCore/platform/graphics/cairo/CairoOperations.cpp | 12 Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp | 3 Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp | 15 Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp | 14 Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp | 31 Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp | 57 Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h | 3 Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp | 30 Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h | 2 Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp | 2 Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp | 6 Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp | 248 Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h | 49 Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp | 23 Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp | 2 Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp | 6 Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp | 12 Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp | 6 Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h | 2 Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp | 20 Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp | 25 Source/WebCore/platform/graphics/skia/FontPlatformDataSkia.cpp | 18 Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp | 60 Source/WebCore/platform/graphics/skia/IntRectSkia.cpp | 47 Source/WebCore/platform/graphics/texmap/TextureMapper.cpp | 5 Source/WebCore/platform/graphics/texmap/TextureMapper.h | 3 Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp | 274 Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h | 19 Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp | 3 Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp | 23 Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp | 32 Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h | 3 Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp | 7 Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp | 5 Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp | 5 Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp | 4 Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.h | 2 Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkFake.h | 2 Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkRialto.h | 2 Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.h | 2 Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h | 2 Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h | 5 Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h | 5 Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.cpp | 192 Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h | 95 Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h | 2 Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h | 2 Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.h | 2 Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp | 72 Source/WebCore/platform/gstreamer/GStreamerQuirks.h | 33 Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp | 25 Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h | 10 Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp | 2 Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h | 2 Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp | 143 Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h | 2 Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp | 2 Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDeviceProvider.cpp | 2 Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp | 1 Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp | 44 Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h | 4 Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp | 82 Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h | 14 Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp | 67 Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h | 4 Source/WebCore/platform/network/FormDataBuilder.cpp | 5 Source/WebCore/platform/skia/SkiaAllocatorFastMalloc.cpp | 81 Source/WebCore/platform/sql/SQLiteStatement.h | 3 Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.cpp | 13 Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.h | 13 Source/WebCore/platform/text/SegmentedString.cpp | 5 Source/WebCore/rendering/EventRegion.cpp | 26 Source/WebCore/rendering/EventRegion.h | 3 Source/WebCore/rendering/RenderBoxModelObject.cpp | 8 Source/WebCore/rendering/RenderFlexibleBox.cpp | 2 Source/WebCore/rendering/RenderLayer.cpp | 57 Source/WebCore/rendering/RenderLayer.h | 35 Source/WebCore/rendering/RenderLayerCompositor.cpp | 56 Source/WebCore/rendering/RenderLayerCompositor.h | 9 Source/WebCore/rendering/RenderTable.cpp | 2 Source/WebCore/rendering/svg/RenderSVGShape.cpp | 3 Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp | 3 Source/WebCore/rendering/updating/RenderTreeBuilder.cpp | 6 Source/WebCore/style/StyleAdjuster.cpp | 11 Source/WebCore/style/StyleScopeRuleSets.cpp | 21 Source/WebCore/style/StyleScopeRuleSets.h | 7 Source/WebCore/testing/Internals.cpp | 9 Source/WebCore/testing/Internals.h | 4 Source/WebCore/testing/Internals.idl | 3 Source/WebCore/workers/service/server/SWServer.cpp | 8 Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js | 10 Source/WebInspectorUI/UserInterface/Views/Main.css | 1 Source/WebInspectorUI/UserInterface/Views/QuickConsole.css | 4 Source/WebInspectorUI/UserInterface/Views/QuickConsole.js | 2 Source/WebInspectorUI/UserInterface/Views/Variables.css | 2 Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp | 2 Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp | 4 Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h | 2 Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp | 2 Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp | 4 Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp | 1 Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp | 9 Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp | 31 Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp | 12 Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h | 10 Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp | 15 Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h | 11 Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in | 8 Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp | 99 Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp | 4 Source/WebKit/Platform/IPC/Connection.h | 1 Source/WebKit/Platform/IPC/Decoder.cpp | 12 Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp | 19 Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb | 2 Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb | 3 Source/WebKit/Scripts/webkit/messages.py | 1 Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp | 3 Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp | 10 Source/WebKit/Shared/WTFArgumentCoders.serialization.in | 1 Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in | 15 Source/WebKit/Shared/WebProcessCreationParameters.h | 1 Source/WebKit/Shared/WebProcessCreationParameters.serialization.in | 1 Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp | 43 Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp | 16 Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp | 15 Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp | 4 Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in | 4 Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp | 8 Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp | 2 Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp | 2 Source/WebKit/UIProcess/Launcher/ProcessLauncher.h | 80 Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp | 23 Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.h | 2 Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp | 10 Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp | 19 Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp | 16 Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.h | 7 Source/WebKit/UIProcess/WebPageProxy.cpp | 30 Source/WebKit/UIProcess/WebProcessPool.h | 4 Source/WebKit/UIProcess/WebProcessProxy.cpp | 24 Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp | 48 Source/WebKit/UIProcess/glib/ScreenManager.cpp | 22 Source/WebKit/UIProcess/glib/ScreenManager.h | 20 Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp | 22 Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp | 18 Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp | 14 Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp | 3 Source/WebKit/WPEPlatform/CMakeLists.txt | 4 Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp | 8 Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h | 9 Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp | 2 Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp | 2 Source/WebKit/WebProcess/Plugins/PluginView.cpp | 2 Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp | 7 Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp | 2 Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp | 22 Source/WebKit/WebProcess/WebPage/WebPage.cpp | 17 Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp | 4 Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp | 23 Source/WebKit/WebProcess/glib/WebProcessGLib.cpp | 15 Source/WebKit/gtk/NEWS | 40 Source/WebKit/gtk/gtk3-urlmap.js.in | 2 Source/WebKit/gtk/gtk3-webkitgtk.toml.in | 2 Source/WebKit/gtk/gtk4-urlmap.js.in | 2 Source/WebKit/gtk/gtk4-webkitgtk.toml.in | 2 Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md | 2 Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in | 2 Source/cmake/FindSysProfCapture.cmake | 2 Source/cmake/OptionsGTK.cmake | 16 Source/cmake/WebKitCompilerFlags.cmake | 13 Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp | 1 debian/changelog | 54 debian/control | 53 debian/control-common.in | 13 debian/control.in | 14 debian/copyright | 6 debian/patches/dont-detect-sse2.patch | 2 debian/patches/fix-epiphany-ftbfs.patch | 42 debian/patches/series | 1 debian/rules | 50 1740 files changed, 30561 insertions(+), 6436 deletions(-) diff: /srv/release.debian.org/tmp/cqJW_Wqd80/webkit2gtk-2.46.0/Source/ThirdParty/skia/src/ports/fontations/Cargo.toml: No such file or directory diff: /srv/release.debian.org/tmp/QKFgqizDJk/webkit2gtk-2.46.3/Source/ThirdParty/skia/src/ports/fontations/Cargo.toml: No such file or directory diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassDeletePropertyFunction.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassDeletePropertyFunction.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassDeletePropertyFunction.html 2024-09-17 07:43:34.076196200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassDeletePropertyFunction.html 2024-10-30 11:52:29.582326000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassEnumeratePropertiesFunction.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassEnumeratePropertiesFunction.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassEnumeratePropertiesFunction.html 2024-09-17 07:43:34.100195400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassEnumeratePropertiesFunction.html 2024-10-30 11:52:29.626325000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassGetPropertyFunction.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassGetPropertyFunction.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassGetPropertyFunction.html 2024-09-17 07:43:34.108195000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassGetPropertyFunction.html 2024-10-30 11:52:29.646324600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassHasPropertyFunction.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassHasPropertyFunction.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassHasPropertyFunction.html 2024-09-17 07:43:34.112195000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassHasPropertyFunction.html 2024-10-30 11:52:29.702323400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassSetPropertyFunction.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassSetPropertyFunction.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ClassSetPropertyFunction.html 2024-09-17 07:43:34.128194600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ClassSetPropertyFunction.html 2024-10-30 11:52:29.726323000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ExceptionHandler.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ExceptionHandler.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.ExceptionHandler.html 2024-09-17 07:43:34.140194200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.ExceptionHandler.html 2024-10-30 11:52:29.738322700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.OptionsFunc.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.OptionsFunc.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/callback.OptionsFunc.html 2024-09-17 07:43:34.168193000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/callback.OptionsFunc.html 2024-10-30 11:52:29.746322600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Class.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Class.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Class.html 2024-09-17 07:43:34.164193400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Class.html 2024-10-30 11:52:29.782322000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Context.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Context.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Context.html 2024-09-17 07:43:34.364187000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Context.html 2024-10-30 11:52:29.914319000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Exception.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Exception.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Exception.html 2024-09-17 07:43:34.484183300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Exception.html 2024-10-30 11:52:30.098315200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Value.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Value.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.Value.html 2024-09-17 07:43:34.576180500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.Value.html 2024-10-30 11:52:30.194313300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.VirtualMachine.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.VirtualMachine.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.VirtualMachine.html 2024-09-17 07:43:34.836172300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.VirtualMachine.html 2024-10-30 11:52:30.474307500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.WeakValue.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.WeakValue.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/class.WeakValue.html 2024-09-17 07:43:34.856171800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/class.WeakValue.html 2024-10-30 11:52:30.502307200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/classes_hierarchy.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/classes_hierarchy.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/classes_hierarchy.html 2024-09-17 07:43:33.504214000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/classes_hierarchy.html 2024-10-30 11:52:29.114335500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.MAJOR_VERSION.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.MAJOR_VERSION.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.MAJOR_VERSION.html 2024-09-17 07:43:34.080196000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.MAJOR_VERSION.html 2024-10-30 11:52:29.538326700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.MICRO_VERSION.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.MICRO_VERSION.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.MICRO_VERSION.html 2024-09-17 07:43:34.084195900 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.MICRO_VERSION.html 2024-10-30 11:52:29.546326600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -100,7 +100,7 @@
-
#define JSC_MICRO_VERSION 0
+        
#define JSC_MICRO_VERSION 3
 
diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.MINOR_VERSION.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.MINOR_VERSION.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.MINOR_VERSION.html 2024-09-17 07:43:34.084195900 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.MINOR_VERSION.html 2024-10-30 11:52:29.578326000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_DFG.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_DFG.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_DFG.html 2024-09-17 07:43:34.092195500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_DFG.html 2024-10-30 11:52:29.578326000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_FTL.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_FTL.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_FTL.html 2024-09-17 07:43:34.124194600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_FTL.html 2024-10-30 11:52:29.590325800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_JIT.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_JIT.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_JIT.html 2024-09-17 07:43:34.164193400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_JIT.html 2024-10-30 11:52:29.630324800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_LLINT.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_LLINT.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/const.OPTIONS_USE_LLINT.html 2024-09-17 07:43:34.180193000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/const.OPTIONS_USE_LLINT.html 2024-10-30 11:52:29.642324700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Context.new.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Context.new.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Context.new.html 2024-09-17 07:43:34.364187000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Context.new.html 2024-10-30 11:52:29.922319000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Context.new_with_virtual_machine.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Context.new_with_virtual_machine.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Context.new_with_virtual_machine.html 2024-09-17 07:43:34.368187000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Context.new_with_virtual_machine.html 2024-10-30 11:52:29.926319000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new.html 2024-09-17 07:43:34.492183200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new.html 2024-10-30 11:52:30.102315200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_printf.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_printf.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_printf.html 2024-09-17 07:43:34.496183000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_printf.html 2024-10-30 11:52:30.106315100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_vprintf.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_vprintf.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_vprintf.html 2024-09-17 07:43:34.504182800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_vprintf.html 2024-10-30 11:52:30.110315000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name.html 2024-09-17 07:43:34.508182500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name.html 2024-10-30 11:52:30.114315000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_printf.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_printf.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_printf.html 2024-09-17 07:43:34.512182500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_printf.html 2024-10-30 11:52:30.118315000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_vprintf.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_vprintf.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_vprintf.html 2024-09-17 07:43:34.516182400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Exception.new_with_name_vprintf.html 2024-10-30 11:52:30.126314900 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array.html 2024-09-17 07:43:34.580180400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array.html 2024-10-30 11:52:30.198313200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array_buffer.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array_buffer.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array_buffer.html 2024-09-17 07:43:34.588180000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array_buffer.html 2024-10-30 11:52:30.206313100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_garray.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_garray.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_garray.html 2024-09-17 07:43:34.592180000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_garray.html 2024-10-30 11:52:30.210313000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_strv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_strv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_strv.html 2024-09-17 07:43:34.596180000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_array_from_strv.html 2024-10-30 11:52:30.214313000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_boolean.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_boolean.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_boolean.html 2024-09-17 07:43:34.600179700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_boolean.html 2024-10-30 11:52:30.218313000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_from_json.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_from_json.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_from_json.html 2024-09-17 07:43:34.604179600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_from_json.html 2024-10-30 11:52:30.222312700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_function.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_function.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_function.html 2024-09-17 07:43:34.616179200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_function.html 2024-10-30 11:52:30.234312500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_function_variadic.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_function_variadic.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_function_variadic.html 2024-09-17 07:43:34.624179100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_function_variadic.html 2024-10-30 11:52:30.242312400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_functionv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_functionv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_functionv.html 2024-09-17 07:43:34.632178800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_functionv.html 2024-10-30 11:52:30.254312000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_null.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_null.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_null.html 2024-09-17 07:43:34.636178700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_null.html 2024-10-30 11:52:30.258312000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_number.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_number.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_number.html 2024-09-17 07:43:34.640178400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_number.html 2024-10-30 11:52:30.262312000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_object.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_object.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_object.html 2024-09-17 07:43:34.644178400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_object.html 2024-10-30 11:52:30.266312000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_string.html 2024-09-17 07:43:34.648178300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_string.html 2024-10-30 11:52:30.270311800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_string_from_bytes.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_string_from_bytes.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_string_from_bytes.html 2024-09-17 07:43:34.652178000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_string_from_bytes.html 2024-10-30 11:52:30.274311800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_typed_array.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_typed_array.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_typed_array.html 2024-09-17 07:43:34.656178000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_typed_array.html 2024-10-30 11:52:30.278311700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_undefined.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_undefined.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.Value.new_undefined.html 2024-09-17 07:43:34.660178000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.Value.new_undefined.html 2024-10-30 11:52:30.282311700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.VirtualMachine.new.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.VirtualMachine.new.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.VirtualMachine.new.html 2024-09-17 07:43:34.840172300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.VirtualMachine.new.html 2024-10-30 11:52:30.478307500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.WeakValue.new.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.WeakValue.new.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/ctor.WeakValue.new.html 2024-09-17 07:43:34.860171800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/ctor.WeakValue.new.html 2024-10-30 11:52:30.506307000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.CheckSyntaxMode.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.CheckSyntaxMode.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.CheckSyntaxMode.html 2024-09-17 07:43:33.812204400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.CheckSyntaxMode.html 2024-10-30 11:52:29.354330500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.CheckSyntaxResult.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.CheckSyntaxResult.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.CheckSyntaxResult.html 2024-09-17 07:43:33.824204000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.CheckSyntaxResult.html 2024-10-30 11:52:29.418329200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.OptionType.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.OptionType.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.OptionType.html 2024-09-17 07:43:33.884202000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.OptionType.html 2024-10-30 11:52:29.494327800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.TypedArrayType.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.TypedArrayType.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/enum.TypedArrayType.html 2024-09-17 07:43:33.920201000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/enum.TypedArrayType.html 2024-10-30 11:52:29.578326000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/flags.ValuePropertyFlags.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/flags.ValuePropertyFlags.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/flags.ValuePropertyFlags.html 2024-09-17 07:43:33.768205600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/flags.ValuePropertyFlags.html 2024-10-30 11:52:29.278332200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.CHECK_VERSION.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.CHECK_VERSION.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.CHECK_VERSION.html 2024-09-17 07:43:34.104195000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.CHECK_VERSION.html 2024-10-30 11:52:29.590325800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.DECLARE_FINAL_TYPE.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.DECLARE_FINAL_TYPE.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.DECLARE_FINAL_TYPE.html 2024-09-17 07:43:34.124194600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.DECLARE_FINAL_TYPE.html 2024-10-30 11:52:29.614325300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.get_major_version.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.get_major_version.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.get_major_version.html 2024-09-17 07:43:34.084195900 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.get_major_version.html 2024-10-30 11:52:29.582326000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.get_micro_version.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.get_micro_version.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.get_micro_version.html 2024-09-17 07:43:34.088195800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.get_micro_version.html 2024-10-30 11:52:29.642324700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.get_minor_version.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.get_minor_version.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.get_minor_version.html 2024-09-17 07:43:34.096195500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.get_minor_version.html 2024-10-30 11:52:29.654324500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_foreach.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_foreach.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_foreach.html 2024-09-17 07:43:34.120194700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_foreach.html 2024-10-30 11:52:29.682324000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_boolean.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_boolean.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_boolean.html 2024-09-17 07:43:34.136194200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_boolean.html 2024-10-30 11:52:29.694323500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_double.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_double.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_double.html 2024-09-17 07:43:34.144194000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_double.html 2024-10-30 11:52:29.726323000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_int.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_int.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_int.html 2024-09-17 07:43:34.148193800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_int.html 2024-10-30 11:52:29.742322700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_option_group.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_option_group.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_option_group.html 2024-09-17 07:43:34.152193800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_option_group.html 2024-10-30 11:52:29.750322600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_range_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_range_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_range_string.html 2024-09-17 07:43:34.176193000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_range_string.html 2024-10-30 11:52:29.758322200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_size.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_size.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_size.html 2024-09-17 07:43:34.244191000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_size.html 2024-10-30 11:52:29.766322100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_string.html 2024-09-17 07:43:34.264190200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_string.html 2024-10-30 11:52:29.770322000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_uint.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_uint.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_get_uint.html 2024-09-17 07:43:34.276189800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_get_uint.html 2024-10-30 11:52:29.774322000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_boolean.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_boolean.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_boolean.html 2024-09-17 07:43:34.280189800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_boolean.html 2024-10-30 11:52:29.782322000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_double.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_double.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_double.html 2024-09-17 07:43:34.284189700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_double.html 2024-10-30 11:52:29.790321600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_int.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_int.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_int.html 2024-09-17 07:43:34.288189400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_int.html 2024-10-30 11:52:29.798321500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_range_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_range_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_range_string.html 2024-09-17 07:43:34.292189400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_range_string.html 2024-10-30 11:52:29.814321000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_size.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_size.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_size.html 2024-09-17 07:43:34.296189300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_size.html 2024-10-30 11:52:29.830320800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_string.html 2024-09-17 07:43:34.300189000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_string.html 2024-10-30 11:52:29.842320700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_uint.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_uint.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/func.options_set_uint.html 2024-09-17 07:43:34.300189000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/func.options_set_uint.html 2024-10-30 11:52:29.854320300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/index.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/index.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/index.html 2024-09-17 07:43:34.880171000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/index.html 2024-10-30 11:52:30.538306200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -135,7 +135,7 @@
- + diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_constructor.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_constructor.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_constructor.html 2024-09-17 07:43:34.180193000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_constructor.html 2024-10-30 11:52:29.798321500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_constructor_variadic.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_constructor_variadic.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_constructor_variadic.html 2024-09-17 07:43:34.192192600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_constructor_variadic.html 2024-10-30 11:52:29.814321000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_constructorv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_constructorv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_constructorv.html 2024-09-17 07:43:34.228191400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_constructorv.html 2024-10-30 11:52:29.830320800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_method.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_method.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_method.html 2024-09-17 07:43:34.244191000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_method.html 2024-10-30 11:52:29.842320700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_method_variadic.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_method_variadic.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_method_variadic.html 2024-09-17 07:43:34.264190200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_method_variadic.html 2024-10-30 11:52:29.854320300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_methodv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_methodv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_methodv.html 2024-09-17 07:43:34.312188600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_methodv.html 2024-10-30 11:52:29.866320100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_property.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_property.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.add_property.html 2024-09-17 07:43:34.324188500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.add_property.html 2024-10-30 11:52:29.874320000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.get_name.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.get_name.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.get_name.html 2024-09-17 07:43:34.328188200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.get_name.html 2024-10-30 11:52:29.878319700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.get_parent.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.get_parent.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Class.get_parent.html 2024-09-17 07:43:34.328188200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Class.get_parent.html 2024-10-30 11:52:29.882319700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.check_syntax.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.check_syntax.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.check_syntax.html 2024-09-17 07:43:34.380186600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.check_syntax.html 2024-10-30 11:52:29.982317700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.clear_exception.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.clear_exception.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.clear_exception.html 2024-09-17 07:43:34.384186500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.clear_exception.html 2024-10-30 11:52:29.986317600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.evaluate.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.evaluate.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.evaluate.html 2024-09-17 07:43:34.392186200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.evaluate.html 2024-10-30 11:52:29.994317500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.evaluate_in_object.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.evaluate_in_object.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.evaluate_in_object.html 2024-09-17 07:43:34.404185800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.evaluate_in_object.html 2024-10-30 11:52:30.010317000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.evaluate_with_source_uri.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.evaluate_with_source_uri.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.evaluate_with_source_uri.html 2024-09-17 07:43:34.408185700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.evaluate_with_source_uri.html 2024-10-30 11:52:30.018317000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_exception.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_exception.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_exception.html 2024-09-17 07:43:34.412185700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_exception.html 2024-10-30 11:52:30.022317000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_global_object.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_global_object.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_global_object.html 2024-09-17 07:43:34.416185600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_global_object.html 2024-10-30 11:52:30.026317000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_value.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_value.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_value.html 2024-09-17 07:43:34.420185300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_value.html 2024-10-30 11:52:30.030316800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_virtual_machine.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_virtual_machine.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.get_virtual_machine.html 2024-09-17 07:43:34.424185300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.get_virtual_machine.html 2024-10-30 11:52:30.034316500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.pop_exception_handler.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.pop_exception_handler.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.pop_exception_handler.html 2024-09-17 07:43:34.424185300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.pop_exception_handler.html 2024-10-30 11:52:30.034316500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.push_exception_handler.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.push_exception_handler.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.push_exception_handler.html 2024-09-17 07:43:34.432185000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.push_exception_handler.html 2024-10-30 11:52:30.042316400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.register_class.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.register_class.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.register_class.html 2024-09-17 07:43:34.440184800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.register_class.html 2024-10-30 11:52:30.050316300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.set_value.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.set_value.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.set_value.html 2024-09-17 07:43:34.440184800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.set_value.html 2024-10-30 11:52:30.054316300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw.html 2024-09-17 07:43:34.444184500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw.html 2024-10-30 11:52:30.058316200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_exception.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_exception.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_exception.html 2024-09-17 07:43:34.448184500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_exception.html 2024-10-30 11:52:30.058316200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_printf.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_printf.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_printf.html 2024-09-17 07:43:34.452184400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_printf.html 2024-10-30 11:52:30.062316200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_with_name.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_with_name.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_with_name.html 2024-09-17 07:43:34.456184100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_with_name.html 2024-10-30 11:52:30.066316000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_with_name_printf.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_with_name_printf.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Context.throw_with_name_printf.html 2024-09-17 07:43:34.460184000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Context.throw_with_name_printf.html 2024-10-30 11:52:30.074315800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_backtrace_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_backtrace_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_backtrace_string.html 2024-09-17 07:43:34.520182400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_backtrace_string.html 2024-10-30 11:52:30.130314600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_column_number.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_column_number.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_column_number.html 2024-09-17 07:43:34.524182000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_column_number.html 2024-10-30 11:52:30.130314600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_line_number.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_line_number.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_line_number.html 2024-09-17 07:43:34.524182000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_line_number.html 2024-10-30 11:52:30.134314500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_message.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_message.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_message.html 2024-09-17 07:43:34.528182000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_message.html 2024-10-30 11:52:30.138314500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_name.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_name.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_name.html 2024-09-17 07:43:34.532182000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_name.html 2024-10-30 11:52:30.142314400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_source_uri.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_source_uri.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.get_source_uri.html 2024-09-17 07:43:34.532182000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.get_source_uri.html 2024-10-30 11:52:30.142314400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.report.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.report.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.report.html 2024-09-17 07:43:34.536181700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.report.html 2024-10-30 11:52:30.146314400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.to_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.to_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Exception.to_string.html 2024-09-17 07:43:34.540181600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Exception.to_string.html 2024-10-30 11:52:30.150314300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_data.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_data.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_data.html 2024-09-17 07:43:34.664178000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_data.html 2024-10-30 11:52:30.286311400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_size.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_size.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_size.html 2024-09-17 07:43:34.668177600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.array_buffer_get_size.html 2024-10-30 11:52:30.290311300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.constructor_call.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.constructor_call.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.constructor_call.html 2024-09-17 07:43:34.672177600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.constructor_call.html 2024-10-30 11:52:30.294311300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.constructor_callv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.constructor_callv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.constructor_callv.html 2024-09-17 07:43:34.676177500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.constructor_callv.html 2024-10-30 11:52:30.302311200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.function_call.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.function_call.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.function_call.html 2024-09-17 07:43:34.680177200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.function_call.html 2024-10-30 11:52:30.306311100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.function_callv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.function_callv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.function_callv.html 2024-09-17 07:43:34.688177000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.function_callv.html 2024-10-30 11:52:30.314311000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.get_context.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.get_context.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.get_context.html 2024-09-17 07:43:34.688177000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.get_context.html 2024-10-30 11:52:30.314311000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_array.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_array.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_array.html 2024-09-17 07:43:34.692176800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_array.html 2024-10-30 11:52:30.318310700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_array_buffer.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_array_buffer.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_array_buffer.html 2024-09-17 07:43:34.696176800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_array_buffer.html 2024-10-30 11:52:30.322310700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_boolean.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_boolean.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_boolean.html 2024-09-17 07:43:34.696176800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_boolean.html 2024-10-30 11:52:30.326310600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_constructor.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_constructor.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_constructor.html 2024-09-17 07:43:34.700176700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_constructor.html 2024-10-30 11:52:30.326310600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_function.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_function.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_function.html 2024-09-17 07:43:34.704176400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_function.html 2024-10-30 11:52:30.330310600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_null.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_null.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_null.html 2024-09-17 07:43:34.708176400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_null.html 2024-10-30 11:52:30.334310500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_number.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_number.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_number.html 2024-09-17 07:43:34.708176400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_number.html 2024-10-30 11:52:30.338310500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_object.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_object.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_object.html 2024-09-17 07:43:34.712176300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_object.html 2024-10-30 11:52:30.338310500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_string.html 2024-09-17 07:43:34.716176300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_string.html 2024-10-30 11:52:30.342310400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_typed_array.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_typed_array.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_typed_array.html 2024-09-17 07:43:34.716176300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_typed_array.html 2024-10-30 11:52:30.346310400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_undefined.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_undefined.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.is_undefined.html 2024-09-17 07:43:34.720176000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.is_undefined.html 2024-10-30 11:52:30.346310400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.new_typed_array_with_buffer.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.new_typed_array_with_buffer.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.new_typed_array_with_buffer.html 2024-09-17 07:43:34.728175900 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.new_typed_array_with_buffer.html 2024-10-30 11:52:30.354310000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_define_property_accessor.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_define_property_accessor.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_define_property_accessor.html 2024-09-17 07:43:34.736175500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_define_property_accessor.html 2024-10-30 11:52:30.366310000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_define_property_data.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_define_property_data.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_define_property_data.html 2024-09-17 07:43:34.740175500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_define_property_data.html 2024-10-30 11:52:30.370309800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_delete_property.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_delete_property.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_delete_property.html 2024-09-17 07:43:34.744175200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_delete_property.html 2024-10-30 11:52:30.374309800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_enumerate_properties.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_enumerate_properties.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_enumerate_properties.html 2024-09-17 07:43:34.748175100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_enumerate_properties.html 2024-10-30 11:52:30.378309700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_get_property.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_get_property.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_get_property.html 2024-09-17 07:43:34.752175000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_get_property.html 2024-10-30 11:52:30.382309400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_get_property_at_index.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_get_property_at_index.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_get_property_at_index.html 2024-09-17 07:43:34.756174800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_get_property_at_index.html 2024-10-30 11:52:30.386309400 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_has_property.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_has_property.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_has_property.html 2024-09-17 07:43:34.760174800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_has_property.html 2024-10-30 11:52:30.390309300 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_invoke_method.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_invoke_method.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_invoke_method.html 2024-09-17 07:43:34.764174700 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_invoke_method.html 2024-10-30 11:52:30.398309200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_invoke_methodv.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_invoke_methodv.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_invoke_methodv.html 2024-09-17 07:43:34.772174400 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_invoke_methodv.html 2024-10-30 11:52:30.402309200 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_is_instance_of.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_is_instance_of.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_is_instance_of.html 2024-09-17 07:43:34.776174300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_is_instance_of.html 2024-10-30 11:52:30.406309100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_set_property.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_set_property.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_set_property.html 2024-09-17 07:43:34.780174300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_set_property.html 2024-10-30 11:52:30.410308800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_set_property_at_index.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_set_property_at_index.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.object_set_property_at_index.html 2024-09-17 07:43:34.780174300 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.object_set_property_at_index.html 2024-10-30 11:52:30.414308800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_boolean.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_boolean.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_boolean.html 2024-09-17 07:43:34.784174000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_boolean.html 2024-10-30 11:52:30.418308700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_double.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_double.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_double.html 2024-09-17 07:43:34.788174000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_double.html 2024-10-30 11:52:30.422308700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_int32.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_int32.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_int32.html 2024-09-17 07:43:34.788174000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_int32.html 2024-10-30 11:52:30.422308700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_json.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_json.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_json.html 2024-09-17 07:43:34.792173900 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_json.html 2024-10-30 11:52:30.430308600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_string.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_string.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_string.html 2024-09-17 07:43:34.796173600 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_string.html 2024-10-30 11:52:30.430308600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_string_as_bytes.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_string_as_bytes.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.to_string_as_bytes.html 2024-09-17 07:43:34.800173500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.to_string_as_bytes.html 2024-10-30 11:52:30.434308500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_buffer.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_buffer.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_buffer.html 2024-09-17 07:43:34.804173500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_buffer.html 2024-10-30 11:52:30.438308500 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_data.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_data.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_data.html 2024-09-17 07:43:34.808173200 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_data.html 2024-10-30 11:52:30.446308100 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_length.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_length.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_length.html 2024-09-17 07:43:34.812173100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_length.html 2024-10-30 11:52:30.450308000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_offset.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_offset.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_offset.html 2024-09-17 07:43:34.816173000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_offset.html 2024-10-30 11:52:30.450308000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_size.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_size.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_size.html 2024-09-17 07:43:34.816173000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_size.html 2024-10-30 11:52:30.454308000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_type.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_type.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.Value.typed_array_get_type.html 2024-09-17 07:43:34.820173000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.Value.typed_array_get_type.html 2024-10-30 11:52:30.458308000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.WeakValue.get_value.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.WeakValue.get_value.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/method.WeakValue.get_value.html 2024-09-17 07:43:34.860171800 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/method.WeakValue.get_value.html 2024-10-30 11:52:30.506307000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Class.context.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Class.context.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Class.context.html 2024-09-17 07:43:34.332188100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Class.context.html 2024-10-30 11:52:29.882319700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Class.name.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Class.name.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Class.name.html 2024-09-17 07:43:34.332188100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Class.name.html 2024-10-30 11:52:29.882319700 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Class.parent.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Class.parent.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Class.parent.html 2024-09-17 07:43:34.332188100 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Class.parent.html 2024-10-30 11:52:29.886319600 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Context.virtual-machine.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Context.virtual-machine.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Context.virtual-machine.html 2024-09-17 07:43:34.460184000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Context.virtual-machine.html 2024-10-30 11:52:30.074315800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Value.context.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Value.context.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.Value.context.html 2024-09-17 07:43:34.820173000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.Value.context.html 2024-10-30 11:52:30.458308000 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.WeakValue.value.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.WeakValue.value.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/property.WeakValue.value.html 2024-09-17 07:43:34.864171500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/property.WeakValue.value.html 2024-10-30 11:52:30.510306800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/signal.WeakValue.cleared.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/signal.WeakValue.cleared.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/signal.WeakValue.cleared.html 2024-09-17 07:43:34.864171500 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/signal.WeakValue.cleared.html 2024-10-30 11:52:30.510306800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/struct.ClassVTable.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/struct.ClassVTable.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/struct.ClassVTable.html 2024-09-17 07:43:34.080196000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/struct.ClassVTable.html 2024-10-30 11:52:29.590325800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/type_func.Context.get_current.html webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/type_func.Context.get_current.html --- webkit2gtk-2.46.0/Documentation/jsc-glib-6.0/type_func.Context.get_current.html 2024-09-17 07:43:34.372187000 +0000 +++ webkit2gtk-2.46.3/Documentation/jsc-glib-6.0/type_func.Context.get_current.html 2024-10-30 11:52:29.930318800 +0000 @@ -62,7 +62,7 @@

JavaScriptCore

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/callback.URISchemeRequestCallback.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/callback.URISchemeRequestCallback.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/callback.URISchemeRequestCallback.html 2024-09-17 07:54:34.134648800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/callback.URISchemeRequestCallback.html 2024-10-30 11:54:51.223427800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.AuthenticationRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.AuthenticationRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.AuthenticationRequest.html 2024-09-17 07:54:34.474646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.AuthenticationRequest.html 2024-10-30 11:54:51.539421300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.AutomationSession.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.AutomationSession.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.AutomationSession.html 2024-09-17 07:54:34.790644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.AutomationSession.html 2024-10-30 11:54:51.891414200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.BackForwardList.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.BackForwardList.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.BackForwardList.html 2024-09-17 07:54:34.862643700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.BackForwardList.html 2024-10-30 11:54:51.987412200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.BackForwardListItem.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.BackForwardListItem.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.BackForwardListItem.html 2024-09-17 07:54:34.974643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.BackForwardListItem.html 2024-10-30 11:54:52.035411100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ClipboardPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ClipboardPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ClipboardPermissionRequest.html 2024-09-17 07:54:35.006642600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ClipboardPermissionRequest.html 2024-10-30 11:54:52.067410500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ColorChooserRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ColorChooserRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ColorChooserRequest.html 2024-09-17 07:54:35.026642600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ColorChooserRequest.html 2024-10-30 11:54:52.087410200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ContextMenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ContextMenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ContextMenu.html 2024-09-17 07:54:35.070642200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ContextMenu.html 2024-10-30 11:54:52.123409500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ContextMenuItem.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ContextMenuItem.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ContextMenuItem.html 2024-09-17 07:54:35.146641700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ContextMenuItem.html 2024-10-30 11:54:52.191408000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.CookieManager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.CookieManager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.CookieManager.html 2024-09-17 07:54:35.202641200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.CookieManager.html 2024-10-30 11:54:52.243407000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.DeviceInfoPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.DeviceInfoPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.DeviceInfoPermissionRequest.html 2024-09-17 07:54:35.338640200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.DeviceInfoPermissionRequest.html 2024-10-30 11:54:52.323405300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.Download.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.Download.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.Download.html 2024-09-17 07:54:35.386640000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.Download.html 2024-10-30 11:54:52.347405000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.EditorState.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.EditorState.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.EditorState.html 2024-09-17 07:54:35.658638000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.EditorState.html 2024-10-30 11:54:52.419403300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FaviconDatabase.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FaviconDatabase.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FaviconDatabase.html 2024-09-17 07:54:35.710637600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FaviconDatabase.html 2024-10-30 11:54:52.455402600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FileChooserRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FileChooserRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FileChooserRequest.html 2024-09-17 07:54:35.750637300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FileChooserRequest.html 2024-10-30 11:54:52.591400000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FindController.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FindController.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FindController.html 2024-09-17 07:54:35.798637200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FindController.html 2024-10-30 11:54:52.631399200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FormSubmissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FormSubmissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.FormSubmissionRequest.html 2024-09-17 07:54:35.890636400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.FormSubmissionRequest.html 2024-10-30 11:54:52.687398000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.GeolocationManager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.GeolocationManager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.GeolocationManager.html 2024-09-17 07:54:35.922636300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.GeolocationManager.html 2024-10-30 11:54:52.711397400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.GeolocationPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.GeolocationPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.GeolocationPermissionRequest.html 2024-09-17 07:54:35.958635800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.GeolocationPermissionRequest.html 2024-10-30 11:54:52.747396700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.HitTestResult.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.HitTestResult.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.HitTestResult.html 2024-09-17 07:54:35.982635700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.HitTestResult.html 2024-10-30 11:54:52.767396200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.InputMethodContext.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.InputMethodContext.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.InputMethodContext.html 2024-09-17 07:54:36.102635000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.InputMethodContext.html 2024-10-30 11:54:52.855394400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.MediaKeySystemPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.MediaKeySystemPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.MediaKeySystemPermissionRequest.html 2024-09-17 07:54:36.218634100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.MediaKeySystemPermissionRequest.html 2024-10-30 11:54:52.955392400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.NavigationPolicyDecision.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.NavigationPolicyDecision.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.NavigationPolicyDecision.html 2024-09-17 07:54:36.230634000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.NavigationPolicyDecision.html 2024-10-30 11:54:52.971392200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.NetworkSession.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.NetworkSession.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.NetworkSession.html 2024-09-17 07:54:36.258633900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.NetworkSession.html 2024-10-30 11:54:52.995391600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.Notification.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.Notification.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.Notification.html 2024-09-17 07:54:36.394632800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.Notification.html 2024-10-30 11:54:53.083389800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.NotificationPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.NotificationPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.NotificationPermissionRequest.html 2024-09-17 07:54:36.438632500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.NotificationPermissionRequest.html 2024-10-30 11:54:53.127389000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.OptionMenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.OptionMenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.OptionMenu.html 2024-09-17 07:54:36.466632400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.OptionMenu.html 2024-10-30 11:54:53.143388500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.PointerLockPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.PointerLockPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.PointerLockPermissionRequest.html 2024-09-17 07:54:36.514632000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.PointerLockPermissionRequest.html 2024-10-30 11:54:53.183387800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.PolicyDecision.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.PolicyDecision.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.PolicyDecision.html 2024-09-17 07:54:36.538631700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.PolicyDecision.html 2024-10-30 11:54:53.199387300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.PrintOperation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.PrintOperation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.PrintOperation.html 2024-09-17 07:54:36.570631500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.PrintOperation.html 2024-10-30 11:54:53.235386600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ResponsePolicyDecision.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ResponsePolicyDecision.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.ResponsePolicyDecision.html 2024-09-17 07:54:36.654631000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.ResponsePolicyDecision.html 2024-10-30 11:54:53.295385400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.SecurityManager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.SecurityManager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.SecurityManager.html 2024-09-17 07:54:36.694630600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.SecurityManager.html 2024-10-30 11:54:53.331384700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.Settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.Settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.Settings.html 2024-09-17 07:54:36.798630000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.Settings.html 2024-10-30 11:54:53.427382700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -507,7 +507,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URIRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URIRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URIRequest.html 2024-09-17 07:54:37.282626400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URIRequest.html 2024-10-30 11:54:53.891373400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URIResponse.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URIResponse.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URIResponse.html 2024-09-17 07:54:37.322626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URIResponse.html 2024-10-30 11:54:53.923372500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URISchemeRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URISchemeRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URISchemeRequest.html 2024-09-17 07:54:37.366625800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URISchemeRequest.html 2024-10-30 11:54:53.967371700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URISchemeResponse.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URISchemeResponse.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.URISchemeResponse.html 2024-09-17 07:54:37.418625600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.URISchemeResponse.html 2024-10-30 11:54:54.019370600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserContentFilterStore.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserContentFilterStore.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserContentFilterStore.html 2024-09-17 07:54:37.454625400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserContentFilterStore.html 2024-10-30 11:54:54.059369800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserContentManager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserContentManager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserContentManager.html 2024-09-17 07:54:37.534624800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserContentManager.html 2024-10-30 11:54:54.135368300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserMediaPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserMediaPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserMediaPermissionRequest.html 2024-09-17 07:54:37.614624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserMediaPermissionRequest.html 2024-10-30 11:54:54.211366700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserMessage.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserMessage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.UserMessage.html 2024-09-17 07:54:37.638624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.UserMessage.html 2024-10-30 11:54:54.235366300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebContext.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebContext.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebContext.html 2024-09-17 07:54:37.690623500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebContext.html 2024-10-30 11:54:54.287365200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebInspector.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebInspector.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebInspector.html 2024-09-17 07:54:37.798622800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebInspector.html 2024-10-30 11:54:54.391363100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebResource.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebResource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebResource.html 2024-09-17 07:54:37.866622400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebResource.html 2024-10-30 11:54:54.455361800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebView.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebView.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebView.html 2024-09-17 07:54:38.126620500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebView.html 2024-10-30 11:54:54.723356200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebViewBase.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebViewBase.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebViewBase.html 2024-09-17 07:54:38.650617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebViewBase.html 2024-10-30 11:54:55.227346000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebsiteDataAccessPermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebsiteDataAccessPermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebsiteDataAccessPermissionRequest.html 2024-09-17 07:54:37.918622000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebsiteDataAccessPermissionRequest.html 2024-10-30 11:54:54.507360700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebsiteDataManager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebsiteDataManager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebsiteDataManager.html 2024-09-17 07:54:37.946622000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebsiteDataManager.html 2024-10-30 11:54:54.543360000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebsitePolicies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebsitePolicies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WebsitePolicies.html 2024-09-17 07:54:38.030621300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WebsitePolicies.html 2024-10-30 11:54:54.627358200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WindowProperties.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WindowProperties.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/class.WindowProperties.html 2024-09-17 07:54:38.678616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/class.WindowProperties.html 2024-10-30 11:54:55.251345400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/classes_hierarchy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/classes_hierarchy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/classes_hierarchy.html 2024-09-17 07:54:33.734651800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/classes_hierarchy.html 2024-10-30 11:54:50.791436700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_COPY.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_COPY.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_COPY.html 2024-09-17 07:54:34.142648700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_COPY.html 2024-10-30 11:54:51.195428400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CREATE_LINK.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CREATE_LINK.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CREATE_LINK.html 2024-09-17 07:54:34.266647800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CREATE_LINK.html 2024-10-30 11:54:51.215427900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CUT.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CUT.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CUT.html 2024-09-17 07:54:34.310647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_CUT.html 2024-10-30 11:54:51.291426400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_INSERT_IMAGE.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_INSERT_IMAGE.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_INSERT_IMAGE.html 2024-09-17 07:54:34.310647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_INSERT_IMAGE.html 2024-10-30 11:54:51.295426400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE.html 2024-09-17 07:54:34.314647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE.html 2024-10-30 11:54:51.347425200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE_AS_PLAIN_TEXT.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE_AS_PLAIN_TEXT.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE_AS_PLAIN_TEXT.html 2024-09-17 07:54:34.314647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_PASTE_AS_PLAIN_TEXT.html 2024-10-30 11:54:51.359425000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_REDO.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_REDO.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_REDO.html 2024-09-17 07:54:34.318647600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_REDO.html 2024-10-30 11:54:51.363425000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_SELECT_ALL.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_SELECT_ALL.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_SELECT_ALL.html 2024-09-17 07:54:34.318647600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_SELECT_ALL.html 2024-10-30 11:54:51.363425000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_UNDO.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_UNDO.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_UNDO.html 2024-09-17 07:54:34.338647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.EDITING_COMMAND_UNDO.html 2024-10-30 11:54:51.367425000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.MAJOR_VERSION.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.MAJOR_VERSION.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.MAJOR_VERSION.html 2024-09-17 07:54:34.346647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.MAJOR_VERSION.html 2024-10-30 11:54:51.367425000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.MICRO_VERSION.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.MICRO_VERSION.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.MICRO_VERSION.html 2024-09-17 07:54:34.374647100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.MICRO_VERSION.html 2024-10-30 11:54:51.411424000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -100,7 +100,7 @@
-
#define WEBKIT_MICRO_VERSION 0
+        
#define WEBKIT_MICRO_VERSION 3
 
diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.MINOR_VERSION.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.MINOR_VERSION.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/const.MINOR_VERSION.html 2024-09-17 07:54:34.378647000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/const.MINOR_VERSION.html 2024-10-30 11:54:51.411424000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ApplicationInfo.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ApplicationInfo.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ApplicationInfo.new.html 2024-09-17 07:54:34.206648300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ApplicationInfo.new.html 2024-10-30 11:54:51.267427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenu.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenu.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenu.new.html 2024-09-17 07:54:35.074642200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenu.new.html 2024-10-30 11:54:52.127409500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenu.new_with_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenu.new_with_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenu.new_with_items.html 2024-09-17 07:54:35.078642100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenu.new_with_items.html 2024-10-30 11:54:52.131409200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_gaction.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_gaction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_gaction.html 2024-09-17 07:54:35.154641600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_gaction.html 2024-10-30 11:54:52.195407900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action.html 2024-09-17 07:54:35.158641600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action.html 2024-10-30 11:54:52.199407800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html 2024-09-17 07:54:35.162641500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html 2024-10-30 11:54:52.203407800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_separator.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_separator.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_separator.html 2024-09-17 07:54:35.162641500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_separator.html 2024-10-30 11:54:52.203407800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_with_submenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_with_submenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_with_submenu.html 2024-09-17 07:54:35.166641500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.ContextMenuItem.new_with_submenu.html 2024-10-30 11:54:52.207407700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Credential.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Credential.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Credential.new.html 2024-09-17 07:54:34.394647100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Credential.new.html 2024-10-30 11:54:51.467422700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate.html 2024-09-17 07:54:34.410647000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate.html 2024-10-30 11:54:51.471422700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate_pin.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate_pin.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate_pin.html 2024-09-17 07:54:34.414646900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Credential.new_for_certificate_pin.html 2024-10-30 11:54:51.475422600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.GeolocationPosition.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.GeolocationPosition.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.GeolocationPosition.new.html 2024-09-17 07:54:34.578645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.GeolocationPosition.new.html 2024-10-30 11:54:51.619419800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.InputMethodUnderline.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.InputMethodUnderline.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.InputMethodUnderline.new.html 2024-09-17 07:54:34.598645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.InputMethodUnderline.new.html 2024-10-30 11:54:51.643419300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.MemoryPressureSettings.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.MemoryPressureSettings.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.MemoryPressureSettings.new.html 2024-09-17 07:54:34.646645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.MemoryPressureSettings.new.html 2024-10-30 11:54:51.683418500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.NetworkProxySettings.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.NetworkProxySettings.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.NetworkProxySettings.new.html 2024-09-17 07:54:34.714644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.NetworkProxySettings.new.html 2024-10-30 11:54:51.755416900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.NetworkSession.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.NetworkSession.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.NetworkSession.new.html 2024-09-17 07:54:36.270633700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.NetworkSession.new.html 2024-10-30 11:54:52.999391600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.NetworkSession.new_ephemeral.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.NetworkSession.new_ephemeral.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.NetworkSession.new_ephemeral.html 2024-09-17 07:54:36.270633700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.NetworkSession.new_ephemeral.html 2024-10-30 11:54:53.003391500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.PrintOperation.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.PrintOperation.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.PrintOperation.new.html 2024-09-17 07:54:36.574631500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.PrintOperation.new.html 2024-10-30 11:54:53.239386600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new.html 2024-09-17 07:54:34.834643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new.html 2024-10-30 11:54:51.847415000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new_for_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new_for_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new_for_uri.html 2024-09-17 07:54:34.838643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.SecurityOrigin.new_for_uri.html 2024-10-30 11:54:51.851415000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Settings.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Settings.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Settings.new.html 2024-09-17 07:54:36.802630000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Settings.new.html 2024-10-30 11:54:53.427382700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -125,7 +125,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Settings.new_with_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Settings.new_with_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.Settings.new_with_settings.html 2024-09-17 07:54:36.806630000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.Settings.new_with_settings.html 2024-10-30 11:54:53.431382700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -126,7 +126,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.URIRequest.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.URIRequest.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.URIRequest.new.html 2024-09-17 07:54:37.286626600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.URIRequest.new.html 2024-10-30 11:54:53.895373000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.URISchemeResponse.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.URISchemeResponse.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.URISchemeResponse.new.html 2024-09-17 07:54:37.422625500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.URISchemeResponse.new.html 2024-10-30 11:54:54.023370500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserContentFilterStore.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserContentFilterStore.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserContentFilterStore.new.html 2024-09-17 07:54:37.458625300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserContentFilterStore.new.html 2024-10-30 11:54:54.063369800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserContentManager.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserContentManager.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserContentManager.new.html 2024-09-17 07:54:37.538624800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserContentManager.new.html 2024-10-30 11:54:54.139368300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserMessage.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserMessage.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserMessage.new.html 2024-09-17 07:54:37.646623800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserMessage.new.html 2024-10-30 11:54:54.243366000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserMessage.new_with_fd_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserMessage.new_with_fd_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserMessage.new_with_fd_list.html 2024-09-17 07:54:37.650623800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserMessage.new_with_fd_list.html 2024-10-30 11:54:54.247366000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserScript.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserScript.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserScript.new.html 2024-09-17 07:54:34.882643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserScript.new.html 2024-10-30 11:54:51.887414200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserScript.new_for_world.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserScript.new_for_world.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserScript.new_for_world.html 2024-09-17 07:54:34.894643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserScript.new_for_world.html 2024-10-30 11:54:51.895414000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new.html 2024-09-17 07:54:34.918643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new.html 2024-10-30 11:54:51.911413700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new_for_world.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new_for_world.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new_for_world.html 2024-09-17 07:54:34.926643100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.UserStyleSheet.new_for_world.html 2024-10-30 11:54:51.915413600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebContext.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebContext.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebContext.new.html 2024-09-17 07:54:37.694623500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebContext.new.html 2024-10-30 11:54:54.291365100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -123,7 +123,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebView.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebView.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebView.new.html 2024-09-17 07:54:38.126620500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebView.new.html 2024-10-30 11:54:54.723356200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebViewSessionState.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebViewSessionState.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebViewSessionState.new.html 2024-09-17 07:54:34.962643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebViewSessionState.new.html 2024-10-30 11:54:51.943413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new.html 2024-09-17 07:54:38.034621200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new.html 2024-10-30 11:54:54.631358100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new_with_policies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new_with_policies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new_with_policies.html 2024-09-17 07:54:38.038621200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/ctor.WebsitePolicies.new_with_policies.html 2024-10-30 11:54:54.635358000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.AuthenticationScheme.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.AuthenticationScheme.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.AuthenticationScheme.html 2024-09-17 07:54:34.026649700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.AuthenticationScheme.html 2024-10-30 11:54:50.967433000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.AutomationBrowsingContextPresentation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.AutomationBrowsingContextPresentation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.AutomationBrowsingContextPresentation.html 2024-09-17 07:54:34.034649600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.AutomationBrowsingContextPresentation.html 2024-10-30 11:54:50.999432300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.AutoplayPolicy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.AutoplayPolicy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.AutoplayPolicy.html 2024-09-17 07:54:34.042649500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.AutoplayPolicy.html 2024-10-30 11:54:51.059431000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CacheModel.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CacheModel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CacheModel.html 2024-09-17 07:54:34.066649400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CacheModel.html 2024-10-30 11:54:51.063431000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.ContextMenuAction.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.ContextMenuAction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.ContextMenuAction.html 2024-09-17 07:54:34.110649000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.ContextMenuAction.html 2024-10-30 11:54:51.119430000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CookieAcceptPolicy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CookieAcceptPolicy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CookieAcceptPolicy.html 2024-09-17 07:54:34.114649000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CookieAcceptPolicy.html 2024-10-30 11:54:51.135429600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CookiePersistentStorage.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CookiePersistentStorage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CookiePersistentStorage.html 2024-09-17 07:54:34.142648700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CookiePersistentStorage.html 2024-10-30 11:54:51.139429600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CredentialPersistence.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CredentialPersistence.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.CredentialPersistence.html 2024-09-17 07:54:34.162648700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.CredentialPersistence.html 2024-10-30 11:54:51.147429500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.FeatureStatus.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.FeatureStatus.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.FeatureStatus.html 2024-09-17 07:54:34.186648600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.FeatureStatus.html 2024-10-30 11:54:51.155429100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.HardwareAccelerationPolicy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.HardwareAccelerationPolicy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.HardwareAccelerationPolicy.html 2024-09-17 07:54:34.186648600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.HardwareAccelerationPolicy.html 2024-10-30 11:54:51.155429100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.InputPurpose.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.InputPurpose.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.InputPurpose.html 2024-09-17 07:54:34.190648600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.InputPurpose.html 2024-10-30 11:54:51.159429000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.InsecureContentEvent.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.InsecureContentEvent.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.InsecureContentEvent.html 2024-09-17 07:54:34.206648300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.InsecureContentEvent.html 2024-10-30 11:54:51.175428900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.LoadEvent.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.LoadEvent.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.LoadEvent.html 2024-09-17 07:54:34.290647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.LoadEvent.html 2024-10-30 11:54:51.175428900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.MediaCaptureState.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.MediaCaptureState.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.MediaCaptureState.html 2024-09-17 07:54:34.294647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.MediaCaptureState.html 2024-10-30 11:54:51.179428800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.NavigationType.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.NavigationType.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.NavigationType.html 2024-09-17 07:54:34.294647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.NavigationType.html 2024-10-30 11:54:51.183428500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.NetworkProxyMode.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.NetworkProxyMode.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.NetworkProxyMode.html 2024-09-17 07:54:34.298647600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.NetworkProxyMode.html 2024-10-30 11:54:51.183428500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.PermissionState.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.PermissionState.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.PermissionState.html 2024-09-17 07:54:34.298647600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.PermissionState.html 2024-10-30 11:54:51.287426500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.PolicyDecisionType.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.PolicyDecisionType.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.PolicyDecisionType.html 2024-09-17 07:54:34.462646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.PolicyDecisionType.html 2024-10-30 11:54:51.419423800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.PrintOperationResponse.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.PrintOperationResponse.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.PrintOperationResponse.html 2024-09-17 07:54:34.462646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.PrintOperationResponse.html 2024-10-30 11:54:51.431423700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.SaveMode.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.SaveMode.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.SaveMode.html 2024-09-17 07:54:34.466646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.SaveMode.html 2024-10-30 11:54:51.455423000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.ScriptDialogType.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.ScriptDialogType.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.ScriptDialogType.html 2024-09-17 07:54:34.466646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.ScriptDialogType.html 2024-10-30 11:54:51.459423000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.SnapshotRegion.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.SnapshotRegion.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.SnapshotRegion.html 2024-09-17 07:54:34.470646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.SnapshotRegion.html 2024-10-30 11:54:51.507422000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.TLSErrorsPolicy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.TLSErrorsPolicy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.TLSErrorsPolicy.html 2024-09-17 07:54:34.470646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.TLSErrorsPolicy.html 2024-10-30 11:54:51.527421700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.UserContentInjectedFrames.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.UserContentInjectedFrames.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.UserContentInjectedFrames.html 2024-09-17 07:54:34.522646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.UserContentInjectedFrames.html 2024-10-30 11:54:51.531421400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.UserScriptInjectionTime.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.UserScriptInjectionTime.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.UserScriptInjectionTime.html 2024-09-17 07:54:34.522646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.UserScriptInjectionTime.html 2024-10-30 11:54:51.531421400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.UserStyleLevel.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.UserStyleLevel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.UserStyleLevel.html 2024-09-17 07:54:34.530646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.UserStyleLevel.html 2024-10-30 11:54:51.531421400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.WebExtensionMode.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.WebExtensionMode.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.WebExtensionMode.html 2024-09-17 07:54:34.562646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.WebExtensionMode.html 2024-10-30 11:54:51.535421400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.WebProcessTerminationReason.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.WebProcessTerminationReason.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/enum.WebProcessTerminationReason.html 2024-09-17 07:54:34.562646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/enum.WebProcessTerminationReason.html 2024-10-30 11:54:51.543421300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.DownloadError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.DownloadError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.DownloadError.html 2024-09-17 07:54:33.958650000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.DownloadError.html 2024-10-30 11:54:50.999432300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.FaviconDatabaseError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.FaviconDatabaseError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.FaviconDatabaseError.html 2024-09-17 07:54:34.226648300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.FaviconDatabaseError.html 2024-10-30 11:54:51.247427200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.JavascriptError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.JavascriptError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.JavascriptError.html 2024-09-17 07:54:34.238648200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.JavascriptError.html 2024-10-30 11:54:51.251427200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.MediaError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.MediaError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.MediaError.html 2024-09-17 07:54:34.242648100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.MediaError.html 2024-10-30 11:54:51.255427100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.NetworkError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.NetworkError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.NetworkError.html 2024-09-17 07:54:34.258648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.NetworkError.html 2024-10-30 11:54:51.259427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.PolicyError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.PolicyError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.PolicyError.html 2024-09-17 07:54:34.350647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.PolicyError.html 2024-10-30 11:54:51.263427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.PrintError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.PrintError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.PrintError.html 2024-09-17 07:54:34.354647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.PrintError.html 2024-10-30 11:54:51.295426400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.SnapshotError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.SnapshotError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.SnapshotError.html 2024-09-17 07:54:34.358647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.SnapshotError.html 2024-10-30 11:54:51.307426200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.UserContentFilterError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.UserContentFilterError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.UserContentFilterError.html 2024-09-17 07:54:34.362647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.UserContentFilterError.html 2024-10-30 11:54:51.355425100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.UserMessageError.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.UserMessageError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/error.UserMessageError.html 2024-09-17 07:54:34.366647200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/error.UserMessageError.html 2024-10-30 11:54:51.427423700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.EditorTypingAttributes.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.EditorTypingAttributes.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.EditorTypingAttributes.html 2024-09-17 07:54:34.006649700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.EditorTypingAttributes.html 2024-10-30 11:54:50.951433400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.FindOptions.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.FindOptions.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.FindOptions.html 2024-09-17 07:54:34.066649400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.FindOptions.html 2024-10-30 11:54:50.979432800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.HitTestResultContext.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.HitTestResultContext.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.HitTestResultContext.html 2024-09-17 07:54:34.070649400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.HitTestResultContext.html 2024-10-30 11:54:50.983432800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.InputHints.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.InputHints.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.InputHints.html 2024-09-17 07:54:34.102649200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.InputHints.html 2024-10-30 11:54:50.987432700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.SnapshotOptions.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.SnapshotOptions.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.SnapshotOptions.html 2024-09-17 07:54:34.118649000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.SnapshotOptions.html 2024-10-30 11:54:50.999432300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.WebsiteDataTypes.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.WebsiteDataTypes.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/flags.WebsiteDataTypes.html 2024-09-17 07:54:34.134648800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/flags.WebsiteDataTypes.html 2024-10-30 11:54:51.007432200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.CHECK_VERSION.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.CHECK_VERSION.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.CHECK_VERSION.html 2024-09-17 07:54:34.178648500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.CHECK_VERSION.html 2024-10-30 11:54:51.207428200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DECLARE_DERIVABLE_TYPE.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DECLARE_DERIVABLE_TYPE.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DECLARE_DERIVABLE_TYPE.html 2024-09-17 07:54:34.234648200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DECLARE_DERIVABLE_TYPE.html 2024-10-30 11:54:51.287426500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DECLARE_FINAL_TYPE.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DECLARE_FINAL_TYPE.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DECLARE_FINAL_TYPE.html 2024-09-17 07:54:34.266647800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DECLARE_FINAL_TYPE.html 2024-10-30 11:54:51.347425200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DECLARE_TYPE.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DECLARE_TYPE.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DECLARE_TYPE.html 2024-09-17 07:54:34.326647500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DECLARE_TYPE.html 2024-10-30 11:54:51.375424600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DEPRECATED_FOR.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DEPRECATED_FOR.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.DEPRECATED_FOR.html 2024-09-17 07:54:34.330647500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.DEPRECATED_FOR.html 2024-10-30 11:54:51.375424600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.get_major_version.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.get_major_version.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.get_major_version.html 2024-09-17 07:54:34.150648800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.get_major_version.html 2024-10-30 11:54:51.199428300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.get_micro_version.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.get_micro_version.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.get_micro_version.html 2024-09-17 07:54:34.154648800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.get_micro_version.html 2024-10-30 11:54:51.223427800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.get_minor_version.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.get_minor_version.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.get_minor_version.html 2024-09-17 07:54:34.190648600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.get_minor_version.html 2024-10-30 11:54:51.227427700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.media_key_system_permission_get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.media_key_system_permission_get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.media_key_system_permission_get_name.html 2024-09-17 07:54:34.246648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.media_key_system_permission_get_name.html 2024-10-30 11:54:51.227427700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.uri_for_display.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.uri_for_display.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.uri_for_display.html 2024-09-17 07:54:34.246648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.uri_for_display.html 2024-10-30 11:54:51.379424600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_audio_device.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_audio_device.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_audio_device.html 2024-09-17 07:54:34.250648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_audio_device.html 2024-10-30 11:54:51.431423700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_display_device.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_display_device.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_display_device.html 2024-09-17 07:54:34.274648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_display_device.html 2024-10-30 11:54:51.443423300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_video_device.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_video_device.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_video_device.html 2024-09-17 07:54:34.278648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/func.user_media_permission_is_for_video_device.html 2024-10-30 11:54:51.451423200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/gtk4-urlmap.js webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/gtk4-urlmap.js --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/gtk4-urlmap.js 2024-09-17 07:54:38.742616200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/gtk4-urlmap.js 2024-10-30 11:54:55.331344000 +0000 @@ -10,7 +10,7 @@ ["Gdk", "https://docs.gtk.org/gdk4/"], ["Gtk", "https://docs.gtk.org/gtk4/"], ["JavaScriptCore", "../javascriptcoregtk" + baseURLApiLevelSuffix], - ["Soup", "https://libsoup.org/libsoup-3.0/"], + ["Soup", "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/"], ["WebKit", "../webkitgtk" + baseURLApiLevelSuffix], ["WebKitWebProcessExtension", "../webkitgtk-web-process-extension" + baseURLApiLevelSuffix] ] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/iface.PermissionRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/iface.PermissionRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/iface.PermissionRequest.html 2024-09-17 07:54:34.446646700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/iface.PermissionRequest.html 2024-10-30 11:54:51.407424000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/index.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/index.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/index.html 2024-09-17 07:54:38.726616100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/index.html 2024-10-30 11:54:55.315344000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -147,7 +147,7 @@ - Soup + Soup @@ -173,7 +173,7 @@
Version2.46.0
Version2.46.3
AuthorsThe WebKit GTK and WPE teams
LicenseBSD, LGPL-2.1
Websitehttps://webkit.org
- + @@ -274,7 +274,7 @@ - + diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_name.html 2024-09-17 07:54:34.214648200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_name.html 2024-10-30 11:54:51.271427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_version.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_version.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_version.html 2024-09-17 07:54:34.238648200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.get_version.html 2024-10-30 11:54:51.275426900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.ref.html 2024-09-17 07:54:34.266647800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.ref.html 2024-10-30 11:54:51.275426900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_name.html 2024-09-17 07:54:34.286647800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_name.html 2024-10-30 11:54:51.295426400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_version.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_version.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_version.html 2024-09-17 07:54:34.382647000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.set_version.html 2024-10-30 11:54:51.351425200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ApplicationInfo.unref.html 2024-09-17 07:54:34.386647000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ApplicationInfo.unref.html 2024-10-30 11:54:51.455423000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.authenticate.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.authenticate.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.authenticate.html 2024-09-17 07:54:34.478646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.authenticate.html 2024-10-30 11:54:51.563420800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.can_save_credentials.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.can_save_credentials.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.can_save_credentials.html 2024-09-17 07:54:34.482646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.can_save_credentials.html 2024-10-30 11:54:51.567420700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.cancel.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.cancel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.cancel.html 2024-09-17 07:54:34.486646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.cancel.html 2024-10-30 11:54:51.571420700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_certificate_pin_flags.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_certificate_pin_flags.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_certificate_pin_flags.html 2024-09-17 07:54:34.486646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_certificate_pin_flags.html 2024-10-30 11:54:51.575420600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_host.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_host.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_host.html 2024-09-17 07:54:34.490646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_host.html 2024-10-30 11:54:51.575420600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_port.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_port.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_port.html 2024-09-17 07:54:34.494646300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_port.html 2024-10-30 11:54:51.579420600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_proposed_credential.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_proposed_credential.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_proposed_credential.html 2024-09-17 07:54:34.498646300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_proposed_credential.html 2024-10-30 11:54:51.583420500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_realm.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_realm.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_realm.html 2024-09-17 07:54:34.498646300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_realm.html 2024-10-30 11:54:51.587420500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_scheme.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_scheme.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_scheme.html 2024-09-17 07:54:34.502646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_scheme.html 2024-10-30 11:54:51.587420500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_security_origin.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_security_origin.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_security_origin.html 2024-09-17 07:54:34.506646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.get_security_origin.html 2024-10-30 11:54:51.591420400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_for_proxy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_for_proxy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_for_proxy.html 2024-09-17 07:54:34.506646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_for_proxy.html 2024-10-30 11:54:51.595420100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_retry.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_retry.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_retry.html 2024-09-17 07:54:34.510646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.is_retry.html 2024-10-30 11:54:51.595420100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_can_save_credentials.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_can_save_credentials.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_can_save_credentials.html 2024-09-17 07:54:34.514646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_can_save_credentials.html 2024-10-30 11:54:51.599420000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_proposed_credential.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_proposed_credential.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_proposed_credential.html 2024-09-17 07:54:34.518646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AuthenticationRequest.set_proposed_credential.html 2024-10-30 11:54:51.603420000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AutomationSession.get_application_info.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AutomationSession.get_application_info.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AutomationSession.get_application_info.html 2024-09-17 07:54:34.794644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AutomationSession.get_application_info.html 2024-10-30 11:54:51.951413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AutomationSession.get_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AutomationSession.get_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AutomationSession.get_id.html 2024-09-17 07:54:34.794644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AutomationSession.get_id.html 2024-10-30 11:54:51.955412900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AutomationSession.set_application_info.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AutomationSession.set_application_info.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.AutomationSession.set_application_info.html 2024-09-17 07:54:34.798644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.AutomationSession.set_application_info.html 2024-10-30 11:54:51.959412800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_item.html 2024-09-17 07:54:34.870643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_item.html 2024-10-30 11:54:51.991412200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list.html 2024-09-17 07:54:34.874643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list.html 2024-10-30 11:54:51.991412200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list_with_limit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list_with_limit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list_with_limit.html 2024-09-17 07:54:34.890643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_back_list_with_limit.html 2024-10-30 11:54:51.995412000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_current_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_current_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_current_item.html 2024-09-17 07:54:34.894643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_current_item.html 2024-10-30 11:54:51.999412000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_item.html 2024-09-17 07:54:34.898643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_item.html 2024-10-30 11:54:52.003411800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list.html 2024-09-17 07:54:34.902643400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list.html 2024-10-30 11:54:52.007411700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list_with_limit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list_with_limit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list_with_limit.html 2024-09-17 07:54:34.910643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_forward_list_with_limit.html 2024-10-30 11:54:52.007411700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_length.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_length.html 2024-09-17 07:54:34.918643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_length.html 2024-10-30 11:54:52.011411700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_nth_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_nth_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardList.get_nth_item.html 2024-09-17 07:54:34.930643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardList.get_nth_item.html 2024-10-30 11:54:52.015411600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_original_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_original_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_original_uri.html 2024-09-17 07:54:34.978643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_original_uri.html 2024-10-30 11:54:52.039411000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_title.html 2024-09-17 07:54:34.982643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_title.html 2024-10-30 11:54:52.043411000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_uri.html 2024-09-17 07:54:34.986642800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.BackForwardListItem.get_uri.html 2024-10-30 11:54:52.047411000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.cancel.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.cancel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.cancel.html 2024-09-17 07:54:35.030642500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.cancel.html 2024-10-30 11:54:52.091410200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.finish.html 2024-09-17 07:54:35.034642500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.finish.html 2024-10-30 11:54:52.091410200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_element_rectangle.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_element_rectangle.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_element_rectangle.html 2024-09-17 07:54:35.038642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_element_rectangle.html 2024-10-30 11:54:52.095410000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_rgba.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_rgba.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_rgba.html 2024-09-17 07:54:35.038642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.get_rgba.html 2024-10-30 11:54:52.099409800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.set_rgba.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.set_rgba.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ColorChooserRequest.set_rgba.html 2024-09-17 07:54:35.042642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ColorChooserRequest.set_rgba.html 2024-10-30 11:54:52.099409800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.append.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.append.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.append.html 2024-09-17 07:54:35.082642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.append.html 2024-10-30 11:54:52.131409200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.first.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.first.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.first.html 2024-09-17 07:54:35.082642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.first.html 2024-10-30 11:54:52.135409000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_event.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_event.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_event.html 2024-09-17 07:54:35.086642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_event.html 2024-10-30 11:54:52.139409000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_item_at_position.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_item_at_position.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_item_at_position.html 2024-09-17 07:54:35.094642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_item_at_position.html 2024-10-30 11:54:52.143409000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_items.html 2024-09-17 07:54:35.094642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_items.html 2024-10-30 11:54:52.147409000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_n_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_n_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_n_items.html 2024-09-17 07:54:35.098642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_n_items.html 2024-10-30 11:54:52.147409000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_user_data.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_user_data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.get_user_data.html 2024-09-17 07:54:35.102642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.get_user_data.html 2024-10-30 11:54:52.151409000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.insert.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.insert.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.insert.html 2024-09-17 07:54:35.106642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.insert.html 2024-10-30 11:54:52.155408900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.last.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.last.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.last.html 2024-09-17 07:54:35.110642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.last.html 2024-10-30 11:54:52.159408800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.move_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.move_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.move_item.html 2024-09-17 07:54:35.114642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.move_item.html 2024-10-30 11:54:52.163408500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.prepend.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.prepend.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.prepend.html 2024-09-17 07:54:35.114642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.prepend.html 2024-10-30 11:54:52.163408500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.remove.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.remove.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.remove.html 2024-09-17 07:54:35.118641900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.remove.html 2024-10-30 11:54:52.167408500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.remove_all.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.remove_all.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.remove_all.html 2024-09-17 07:54:35.122641800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.remove_all.html 2024-10-30 11:54:52.171408400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.set_user_data.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.set_user_data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenu.set_user_data.html 2024-09-17 07:54:35.126641800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenu.set_user_data.html 2024-10-30 11:54:52.171408400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_gaction.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_gaction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_gaction.html 2024-09-17 07:54:35.170641400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_gaction.html 2024-10-30 11:54:52.211407700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_stock_action.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_stock_action.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_stock_action.html 2024-09-17 07:54:35.174641400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_stock_action.html 2024-10-30 11:54:52.215407600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_submenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_submenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_submenu.html 2024-09-17 07:54:35.174641400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.get_submenu.html 2024-10-30 11:54:52.215407600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.is_separator.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.is_separator.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.is_separator.html 2024-09-17 07:54:35.178641600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.is_separator.html 2024-10-30 11:54:52.219407600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.set_submenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.set_submenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ContextMenuItem.set_submenu.html 2024-09-17 07:54:35.182641500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ContextMenuItem.set_submenu.html 2024-10-30 11:54:52.223407300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie.html 2024-09-17 07:54:35.214641000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie.html 2024-10-30 11:54:52.247407000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie_finish.html 2024-09-17 07:54:35.218641000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.add_cookie_finish.html 2024-10-30 11:54:52.251407000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie.html 2024-09-17 07:54:35.222641200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie.html 2024-10-30 11:54:52.259406600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie_finish.html 2024-09-17 07:54:35.226641200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.delete_cookie_finish.html 2024-10-30 11:54:52.263406500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy.html 2024-09-17 07:54:35.234641000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy.html 2024-10-30 11:54:52.267406500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy_finish.html 2024-09-17 07:54:35.242641000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_accept_policy_finish.html 2024-10-30 11:54:52.271406400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies.html 2024-09-17 07:54:35.254640800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies.html 2024-10-30 11:54:52.275406400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies_finish.html 2024-09-17 07:54:35.262641000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_all_cookies_finish.html 2024-10-30 11:54:52.279406300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies.html 2024-09-17 07:54:35.270640900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies.html 2024-10-30 11:54:52.283406300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies_finish.html 2024-09-17 07:54:35.278640700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.get_cookies_finish.html 2024-10-30 11:54:52.287406000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies.html 2024-09-17 07:54:35.290640600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies.html 2024-10-30 11:54:52.291406000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies_finish.html 2024-09-17 07:54:35.298640500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.replace_cookies_finish.html 2024-10-30 11:54:52.295405900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.set_accept_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.set_accept_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.set_accept_policy.html 2024-09-17 07:54:35.306640600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.set_accept_policy.html 2024-10-30 11:54:52.299405800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.set_persistent_storage.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.set_persistent_storage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.CookieManager.set_persistent_storage.html 2024-09-17 07:54:35.314640500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.CookieManager.set_persistent_storage.html 2024-10-30 11:54:52.303405800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.copy.html 2024-09-17 07:54:34.418646800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.copy.html 2024-10-30 11:54:51.475422600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.free.html 2024-09-17 07:54:34.418646800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.free.html 2024-10-30 11:54:51.479422600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_certificate.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_certificate.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_certificate.html 2024-09-17 07:54:34.422646800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_certificate.html 2024-10-30 11:54:51.483422500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_password.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_password.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_password.html 2024-09-17 07:54:34.426646700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_password.html 2024-10-30 11:54:51.483422500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_persistence.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_persistence.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_persistence.html 2024-09-17 07:54:34.430646700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_persistence.html 2024-10-30 11:54:51.487422500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_username.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_username.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.get_username.html 2024-09-17 07:54:34.430646700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.get_username.html 2024-10-30 11:54:51.491422400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.has_password.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.has_password.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Credential.has_password.html 2024-09-17 07:54:34.450646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Credential.has_password.html 2024-10-30 11:54:51.491422400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.cancel.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.cancel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.cancel.html 2024-09-17 07:54:35.390640000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.cancel.html 2024-10-30 11:54:52.351404700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_allow_overwrite.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_allow_overwrite.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_allow_overwrite.html 2024-09-17 07:54:35.398640000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_allow_overwrite.html 2024-10-30 11:54:52.351404700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_destination.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_destination.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_destination.html 2024-09-17 07:54:35.402639900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_destination.html 2024-10-30 11:54:52.355404600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_elapsed_time.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_elapsed_time.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_elapsed_time.html 2024-09-17 07:54:35.410639800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_elapsed_time.html 2024-10-30 11:54:52.359404600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_estimated_progress.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_estimated_progress.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_estimated_progress.html 2024-09-17 07:54:35.418639700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_estimated_progress.html 2024-10-30 11:54:52.363404500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_received_data_length.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_received_data_length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_received_data_length.html 2024-09-17 07:54:35.562638800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_received_data_length.html 2024-10-30 11:54:52.363404500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_request.html 2024-09-17 07:54:35.570638700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_request.html 2024-10-30 11:54:52.367404500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_response.html 2024-09-17 07:54:35.574638600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_response.html 2024-10-30 11:54:52.371404400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_web_view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_web_view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.get_web_view.html 2024-09-17 07:54:35.582638500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.get_web_view.html 2024-10-30 11:54:52.375404400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.set_allow_overwrite.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.set_allow_overwrite.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.set_allow_overwrite.html 2024-09-17 07:54:35.586638500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.set_allow_overwrite.html 2024-10-30 11:54:52.375404400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.set_destination.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.set_destination.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Download.set_destination.html 2024-09-17 07:54:35.594638600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Download.set_destination.html 2024-10-30 11:54:52.379404300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.get_typing_attributes.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.get_typing_attributes.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.get_typing_attributes.html 2024-09-17 07:54:35.662638000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.get_typing_attributes.html 2024-10-30 11:54:52.423403300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_copy_available.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_copy_available.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_copy_available.html 2024-09-17 07:54:35.666638000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_copy_available.html 2024-10-30 11:54:52.423403300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_cut_available.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_cut_available.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_cut_available.html 2024-09-17 07:54:35.670637800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_cut_available.html 2024-10-30 11:54:52.427403200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_paste_available.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_paste_available.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_paste_available.html 2024-09-17 07:54:35.678638000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_paste_available.html 2024-10-30 11:54:52.431403200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_redo_available.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_redo_available.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_redo_available.html 2024-09-17 07:54:35.682638000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_redo_available.html 2024-10-30 11:54:52.431403200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_undo_available.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_undo_available.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.EditorState.is_undo_available.html 2024-09-17 07:54:35.686637900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.EditorState.is_undo_available.html 2024-10-30 11:54:52.435403000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.clear.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.clear.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.clear.html 2024-09-17 07:54:35.714637500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.clear.html 2024-10-30 11:54:52.459402600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon.html 2024-09-17 07:54:35.722637700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon.html 2024-10-30 11:54:52.463402500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_finish.html 2024-09-17 07:54:35.726637600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_finish.html 2024-10-30 11:54:52.559400600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_uri.html 2024-09-17 07:54:35.730637600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FaviconDatabase.get_favicon_uri.html 2024-10-30 11:54:52.563400500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_category.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_category.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_category.html 2024-09-17 07:54:34.530646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_category.html 2024-10-30 11:54:51.503422000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_default_value.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_default_value.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_default_value.html 2024-09-17 07:54:34.534646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_default_value.html 2024-10-30 11:54:51.503422000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_details.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_details.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_details.html 2024-09-17 07:54:34.538646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_details.html 2024-10-30 11:54:51.511422000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_identifier.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_identifier.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_identifier.html 2024-09-17 07:54:34.542646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_identifier.html 2024-10-30 11:54:51.515421900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_name.html 2024-09-17 07:54:34.542646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_name.html 2024-10-30 11:54:51.519421800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_status.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_status.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.get_status.html 2024-09-17 07:54:34.546645900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.get_status.html 2024-10-30 11:54:51.523421800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.ref.html 2024-09-17 07:54:34.550645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.ref.html 2024-10-30 11:54:51.523421800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Feature.unref.html 2024-09-17 07:54:34.550645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Feature.unref.html 2024-10-30 11:54:51.535421400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.get.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.get.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.get.html 2024-09-17 07:54:34.558646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.get.html 2024-10-30 11:54:51.547421200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.get_length.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.get_length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.get_length.html 2024-09-17 07:54:34.558646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.get_length.html 2024-10-30 11:54:51.551421200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.ref.html 2024-09-17 07:54:34.566645900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.ref.html 2024-10-30 11:54:51.551421200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FeatureList.unref.html 2024-09-17 07:54:34.570645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FeatureList.unref.html 2024-10-30 11:54:51.611420000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.cancel.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.cancel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.cancel.html 2024-09-17 07:54:35.754637200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.cancel.html 2024-10-30 11:54:52.591400000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types.html 2024-09-17 07:54:35.758637400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types.html 2024-10-30 11:54:52.595399900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types_filter.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types_filter.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types_filter.html 2024-09-17 07:54:35.762637400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_mime_types_filter.html 2024-10-30 11:54:52.599399800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_select_multiple.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_select_multiple.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_select_multiple.html 2024-09-17 07:54:35.766637300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_select_multiple.html 2024-10-30 11:54:52.603399500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_selected_files.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_selected_files.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_selected_files.html 2024-09-17 07:54:35.770637300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.get_selected_files.html 2024-10-30 11:54:52.607399500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.select_files.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.select_files.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FileChooserRequest.select_files.html 2024-09-17 07:54:35.774637200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FileChooserRequest.select_files.html 2024-10-30 11:54:52.607399500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.count_matches.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.count_matches.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.count_matches.html 2024-09-17 07:54:35.802637000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.count_matches.html 2024-10-30 11:54:52.635398900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_max_match_count.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_max_match_count.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_max_match_count.html 2024-09-17 07:54:35.806637000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_max_match_count.html 2024-10-30 11:54:52.639398800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_options.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_options.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_options.html 2024-09-17 07:54:35.810637000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_options.html 2024-10-30 11:54:52.643398800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_search_text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_search_text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_search_text.html 2024-09-17 07:54:35.814637000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_search_text.html 2024-10-30 11:54:52.647398700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_web_view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_web_view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.get_web_view.html 2024-09-17 07:54:35.818637000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.get_web_view.html 2024-10-30 11:54:52.651398700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search.html 2024-09-17 07:54:35.830636700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search.html 2024-10-30 11:54:52.655398600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search_finish.html 2024-09-17 07:54:35.834636700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search_finish.html 2024-10-30 11:54:52.659398600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search_next.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search_next.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search_next.html 2024-09-17 07:54:35.838636600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search_next.html 2024-10-30 11:54:52.659398600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search_previous.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search_previous.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FindController.search_previous.html 2024-09-17 07:54:35.842636800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FindController.search_previous.html 2024-10-30 11:54:52.663398300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.list_text_fields.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.list_text_fields.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.list_text_fields.html 2024-09-17 07:54:35.898636300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.list_text_fields.html 2024-10-30 11:54:52.695397600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.submit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.submit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.submit.html 2024-09-17 07:54:35.902636300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.FormSubmissionRequest.submit.html 2024-10-30 11:54:52.695397600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationManager.failed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationManager.failed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationManager.failed.html 2024-09-17 07:54:35.926636200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationManager.failed.html 2024-10-30 11:54:52.715397400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationManager.get_enable_high_accuracy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationManager.get_enable_high_accuracy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationManager.get_enable_high_accuracy.html 2024-09-17 07:54:35.930636200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationManager.get_enable_high_accuracy.html 2024-10-30 11:54:52.719397300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationManager.update_position.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationManager.update_position.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationManager.update_position.html 2024-09-17 07:54:35.934636000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationManager.update_position.html 2024-10-30 11:54:52.719397300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.copy.html 2024-09-17 07:54:34.578645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.copy.html 2024-10-30 11:54:51.623419800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.free.html 2024-09-17 07:54:34.582645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.free.html 2024-10-30 11:54:51.623419800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude.html 2024-09-17 07:54:34.582645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude.html 2024-10-30 11:54:51.627419500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude_accuracy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude_accuracy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude_accuracy.html 2024-09-17 07:54:34.586645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_altitude_accuracy.html 2024-10-30 11:54:51.627419500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_heading.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_heading.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_heading.html 2024-09-17 07:54:34.590645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_heading.html 2024-10-30 11:54:51.631419400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_speed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_speed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_speed.html 2024-09-17 07:54:34.590645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_speed.html 2024-10-30 11:54:51.635419400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_timestamp.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_timestamp.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_timestamp.html 2024-09-17 07:54:34.594645500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.GeolocationPosition.set_timestamp.html 2024-10-30 11:54:51.635419400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_editable.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_editable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_editable.html 2024-09-17 07:54:35.990635600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_editable.html 2024-10-30 11:54:52.771396200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_image.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_image.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_image.html 2024-09-17 07:54:35.994635600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_image.html 2024-10-30 11:54:52.775396000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_link.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_link.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_link.html 2024-09-17 07:54:36.002635500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_link.html 2024-10-30 11:54:52.779396000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_media.html 2024-09-17 07:54:36.006635700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_media.html 2024-10-30 11:54:52.783396000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_scrollbar.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_scrollbar.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_scrollbar.html 2024-09-17 07:54:36.010635600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_scrollbar.html 2024-10-30 11:54:52.787396000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_selection.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_selection.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_selection.html 2024-09-17 07:54:36.018635500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.context_is_selection.html 2024-10-30 11:54:52.787396000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_context.html 2024-09-17 07:54:36.022635500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_context.html 2024-10-30 11:54:52.791395700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_image_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_image_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_image_uri.html 2024-09-17 07:54:36.026635400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_image_uri.html 2024-10-30 11:54:52.795395600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_label.html 2024-09-17 07:54:36.030635400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_label.html 2024-10-30 11:54:52.799395600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_title.html 2024-09-17 07:54:36.034635300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_title.html 2024-10-30 11:54:52.799395600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_uri.html 2024-09-17 07:54:36.038635300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_link_uri.html 2024-10-30 11:54:52.803395500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_media_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_media_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.HitTestResult.get_media_uri.html 2024-09-17 07:54:36.042635200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.HitTestResult.get_media_uri.html 2024-10-30 11:54:52.807395500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_domain.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_domain.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_domain.html 2024-09-17 07:54:34.610645500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_domain.html 2024-10-30 11:54:51.655419000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_last_update_time.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_last_update_time.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_last_update_time.html 2024-09-17 07:54:34.614645500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_last_update_time.html 2024-10-30 11:54:51.659418800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_website_data_access_allowed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_website_data_access_allowed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_website_data_access_allowed.html 2024-09-17 07:54:34.618645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.get_website_data_access_allowed.html 2024-10-30 11:54:51.659418800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.ref.html 2024-09-17 07:54:34.622645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.ref.html 2024-10-30 11:54:51.663418800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPFirstParty.unref.html 2024-09-17 07:54:34.622645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPFirstParty.unref.html 2024-10-30 11:54:51.667418700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_domain.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_domain.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_domain.html 2024-09-17 07:54:34.630645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_domain.html 2024-10-30 11:54:51.671418700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_first_parties.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_first_parties.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_first_parties.html 2024-09-17 07:54:34.630645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.get_first_parties.html 2024-10-30 11:54:51.671418700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.ref.html 2024-09-17 07:54:34.634645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.ref.html 2024-10-30 11:54:51.675418600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ITPThirdParty.unref.html 2024-09-17 07:54:34.638645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ITPThirdParty.unref.html 2024-10-30 11:54:51.679418600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.filter_key_event.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.filter_key_event.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.filter_key_event.html 2024-09-17 07:54:36.110634800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.filter_key_event.html 2024-10-30 11:54:52.859394300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_hints.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_hints.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_hints.html 2024-09-17 07:54:36.114634800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_hints.html 2024-10-30 11:54:52.863394300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_purpose.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_purpose.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_purpose.html 2024-09-17 07:54:36.118634700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.get_input_purpose.html 2024-10-30 11:54:52.867394200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.get_preedit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.get_preedit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.get_preedit.html 2024-09-17 07:54:36.122634600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.get_preedit.html 2024-10-30 11:54:52.871394200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_cursor_area.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_cursor_area.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_cursor_area.html 2024-09-17 07:54:36.130634800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_cursor_area.html 2024-10-30 11:54:52.875394000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_in.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_in.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_in.html 2024-09-17 07:54:36.134634700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_in.html 2024-10-30 11:54:52.879394000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_out.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_out.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_out.html 2024-09-17 07:54:36.134634700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_focus_out.html 2024-10-30 11:54:52.879394000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_surrounding.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_surrounding.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_surrounding.html 2024-09-17 07:54:36.142634600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.notify_surrounding.html 2024-10-30 11:54:52.887393700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.reset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.reset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.reset.html 2024-09-17 07:54:36.142634600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.reset.html 2024-10-30 11:54:52.887393700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.set_enable_preedit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.set_enable_preedit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.set_enable_preedit.html 2024-09-17 07:54:36.146634600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.set_enable_preedit.html 2024-10-30 11:54:52.891393700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_hints.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_hints.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_hints.html 2024-09-17 07:54:36.150634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_hints.html 2024-10-30 11:54:52.891393700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_purpose.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_purpose.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_purpose.html 2024-09-17 07:54:36.154634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodContext.set_input_purpose.html 2024-10-30 11:54:52.895393600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodUnderline.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodUnderline.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodUnderline.copy.html 2024-09-17 07:54:34.602645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodUnderline.copy.html 2024-10-30 11:54:51.643419300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodUnderline.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodUnderline.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodUnderline.free.html 2024-09-17 07:54:34.606645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodUnderline.free.html 2024-10-30 11:54:51.647419200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodUnderline.set_color.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodUnderline.set_color.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.InputMethodUnderline.set_color.html 2024-09-17 07:54:34.606645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.InputMethodUnderline.set_color.html 2024-10-30 11:54:51.651419200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.copy.html 2024-09-17 07:54:34.646645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.copy.html 2024-10-30 11:54:51.687418200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.free.html 2024-09-17 07:54:34.650645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.free.html 2024-10-30 11:54:51.691418200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_conservative_threshold.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_conservative_threshold.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_conservative_threshold.html 2024-09-17 07:54:34.654645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_conservative_threshold.html 2024-10-30 11:54:51.691418200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_kill_threshold.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_kill_threshold.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_kill_threshold.html 2024-09-17 07:54:34.654645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_kill_threshold.html 2024-10-30 11:54:51.695418100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_memory_limit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_memory_limit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_memory_limit.html 2024-09-17 07:54:34.658645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_memory_limit.html 2024-10-30 11:54:51.695418100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_poll_interval.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_poll_interval.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_poll_interval.html 2024-09-17 07:54:34.662645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_poll_interval.html 2024-10-30 11:54:51.699418000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_strict_threshold.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_strict_threshold.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_strict_threshold.html 2024-09-17 07:54:34.662645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.get_strict_threshold.html 2024-10-30 11:54:51.703418000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_conservative_threshold.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_conservative_threshold.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_conservative_threshold.html 2024-09-17 07:54:34.666645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_conservative_threshold.html 2024-10-30 11:54:51.707418000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_kill_threshold.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_kill_threshold.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_kill_threshold.html 2024-09-17 07:54:34.670645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_kill_threshold.html 2024-10-30 11:54:51.707418000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_memory_limit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_memory_limit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_memory_limit.html 2024-09-17 07:54:34.674645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_memory_limit.html 2024-10-30 11:54:51.711418000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_poll_interval.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_poll_interval.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_poll_interval.html 2024-09-17 07:54:34.674645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_poll_interval.html 2024-10-30 11:54:51.715417900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_strict_threshold.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_strict_threshold.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_strict_threshold.html 2024-09-17 07:54:34.678645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.MemoryPressureSettings.set_strict_threshold.html 2024-10-30 11:54:51.719417600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.copy.html 2024-09-17 07:54:34.686645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.copy.html 2024-10-30 11:54:51.723417500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.free.html 2024-09-17 07:54:34.686645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.free.html 2024-10-30 11:54:51.727417500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_frame_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_frame_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_frame_name.html 2024-09-17 07:54:34.690645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_frame_name.html 2024-10-30 11:54:51.731417400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_modifiers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_modifiers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_modifiers.html 2024-09-17 07:54:34.694645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_modifiers.html 2024-10-30 11:54:51.731417400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_mouse_button.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_mouse_button.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_mouse_button.html 2024-09-17 07:54:34.694645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_mouse_button.html 2024-10-30 11:54:51.735417400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_navigation_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_navigation_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_navigation_type.html 2024-09-17 07:54:34.698644900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_navigation_type.html 2024-10-30 11:54:51.739417300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.get_request.html 2024-09-17 07:54:34.702644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.get_request.html 2024-10-30 11:54:51.739417300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.is_redirect.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.is_redirect.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.is_redirect.html 2024-09-17 07:54:34.706644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.is_redirect.html 2024-10-30 11:54:51.743417300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.is_user_gesture.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.is_user_gesture.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationAction.is_user_gesture.html 2024-09-17 07:54:34.706644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationAction.is_user_gesture.html 2024-10-30 11:54:51.747417200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationPolicyDecision.get_navigation_action.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationPolicyDecision.get_navigation_action.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NavigationPolicyDecision.get_navigation_action.html 2024-09-17 07:54:36.234634000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NavigationPolicyDecision.get_navigation_action.html 2024-10-30 11:54:52.975392000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkProxySettings.add_proxy_for_scheme.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkProxySettings.add_proxy_for_scheme.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkProxySettings.add_proxy_for_scheme.html 2024-09-17 07:54:34.718644600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkProxySettings.add_proxy_for_scheme.html 2024-10-30 11:54:51.759416800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkProxySettings.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkProxySettings.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkProxySettings.copy.html 2024-09-17 07:54:34.722644600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkProxySettings.copy.html 2024-10-30 11:54:51.763416800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkProxySettings.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkProxySettings.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkProxySettings.free.html 2024-09-17 07:54:34.726644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkProxySettings.free.html 2024-10-30 11:54:51.763416800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.allow_tls_certificate_for_host.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.allow_tls_certificate_for_host.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.allow_tls_certificate_for_host.html 2024-09-17 07:54:36.282633500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.allow_tls_certificate_for_host.html 2024-10-30 11:54:53.011391200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.download_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.download_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.download_uri.html 2024-09-17 07:54:36.286633500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.download_uri.html 2024-10-30 11:54:53.015391000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_cookie_manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_cookie_manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_cookie_manager.html 2024-09-17 07:54:36.290633400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_cookie_manager.html 2024-10-30 11:54:53.019391000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_enabled.html 2024-09-17 07:54:36.290633400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_enabled.html 2024-10-30 11:54:53.023391000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary.html 2024-09-17 07:54:36.298633600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary.html 2024-10-30 11:54:53.027391000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary_finish.html 2024-09-17 07:54:36.302633500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_itp_summary_finish.html 2024-10-30 11:54:53.031391000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_persistent_credential_storage_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_persistent_credential_storage_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_persistent_credential_storage_enabled.html 2024-09-17 07:54:36.306633500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_persistent_credential_storage_enabled.html 2024-10-30 11:54:53.035390900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_tls_errors_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_tls_errors_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_tls_errors_policy.html 2024-09-17 07:54:36.310633400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_tls_errors_policy.html 2024-10-30 11:54:53.039390800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_website_data_manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_website_data_manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.get_website_data_manager.html 2024-09-17 07:54:36.318633300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.get_website_data_manager.html 2024-10-30 11:54:53.039390800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.is_ephemeral.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.is_ephemeral.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.is_ephemeral.html 2024-09-17 07:54:36.322633300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.is_ephemeral.html 2024-10-30 11:54:53.043390500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.prefetch_dns.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.prefetch_dns.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.prefetch_dns.html 2024-09-17 07:54:36.330633200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.prefetch_dns.html 2024-10-30 11:54:53.047390500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_itp_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_itp_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_itp_enabled.html 2024-09-17 07:54:36.338633300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_itp_enabled.html 2024-10-30 11:54:53.051390400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_persistent_credential_storage_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_persistent_credential_storage_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_persistent_credential_storage_enabled.html 2024-09-17 07:54:36.342633200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_persistent_credential_storage_enabled.html 2024-10-30 11:54:53.051390400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_proxy_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_proxy_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_proxy_settings.html 2024-09-17 07:54:36.350633100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_proxy_settings.html 2024-10-30 11:54:53.059390300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_tls_errors_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_tls_errors_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.NetworkSession.set_tls_errors_policy.html 2024-09-17 07:54:36.358633000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.NetworkSession.set_tls_errors_policy.html 2024-10-30 11:54:53.059390300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.clicked.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.clicked.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.clicked.html 2024-09-17 07:54:36.394632800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.clicked.html 2024-10-30 11:54:53.087389700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.close.html 2024-09-17 07:54:36.398632800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.close.html 2024-10-30 11:54:53.087389700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_body.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_body.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_body.html 2024-09-17 07:54:36.402632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_body.html 2024-10-30 11:54:53.091389700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_id.html 2024-09-17 07:54:36.402632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_id.html 2024-10-30 11:54:53.095389600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_tag.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_tag.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_tag.html 2024-09-17 07:54:36.406632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_tag.html 2024-10-30 11:54:53.095389600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Notification.get_title.html 2024-09-17 07:54:36.410632600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Notification.get_title.html 2024-10-30 11:54:53.099389600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.activate_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.activate_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.activate_item.html 2024-09-17 07:54:36.470632300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.activate_item.html 2024-10-30 11:54:53.147388500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.close.html 2024-09-17 07:54:36.474632300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.close.html 2024-10-30 11:54:53.151388400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.get_event.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.get_event.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.get_event.html 2024-09-17 07:54:36.482632200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.get_event.html 2024-10-30 11:54:53.151388400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.get_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.get_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.get_item.html 2024-09-17 07:54:36.490632000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.get_item.html 2024-10-30 11:54:53.155388400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.get_n_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.get_n_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.get_n_items.html 2024-09-17 07:54:36.494632000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.get_n_items.html 2024-10-30 11:54:53.159388300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.select_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.select_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenu.select_item.html 2024-09-17 07:54:36.494632000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenu.select_item.html 2024-10-30 11:54:53.163388300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.copy.html 2024-09-17 07:54:34.730644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.copy.html 2024-10-30 11:54:51.767416700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.free.html 2024-09-17 07:54:34.734644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.free.html 2024-10-30 11:54:51.771416700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_label.html 2024-09-17 07:54:34.734644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_label.html 2024-10-30 11:54:51.775416600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_tooltip.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_tooltip.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_tooltip.html 2024-09-17 07:54:34.738644600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.get_tooltip.html 2024-10-30 11:54:51.775416600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_enabled.html 2024-09-17 07:54:34.742644500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_enabled.html 2024-10-30 11:54:51.779416600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_child.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_child.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_child.html 2024-09-17 07:54:34.742644500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_child.html 2024-10-30 11:54:51.783416300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_label.html 2024-09-17 07:54:34.746644500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_group_label.html 2024-10-30 11:54:51.783416300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_selected.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_selected.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_selected.html 2024-09-17 07:54:34.750644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.OptionMenuItem.is_selected.html 2024-10-30 11:54:51.787416200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionRequest.allow.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionRequest.allow.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionRequest.allow.html 2024-09-17 07:54:34.454646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionRequest.allow.html 2024-10-30 11:54:51.411424000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionRequest.deny.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionRequest.deny.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionRequest.deny.html 2024-09-17 07:54:34.454646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionRequest.deny.html 2024-10-30 11:54:51.435423400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.finish.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.finish.html 2024-10-30 11:54:51.795416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_name.html 2024-09-17 07:54:34.758644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_name.html 2024-10-30 11:54:51.795416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_security_origin.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_security_origin.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_security_origin.html 2024-09-17 07:54:34.762644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.get_security_origin.html 2024-10-30 11:54:51.799416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.ref.html 2024-09-17 07:54:34.762644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.ref.html 2024-10-30 11:54:51.803416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PermissionStateQuery.unref.html 2024-09-17 07:54:34.766644500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PermissionStateQuery.unref.html 2024-10-30 11:54:51.803416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.download.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.download.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.download.html 2024-09-17 07:54:36.542631900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.download.html 2024-10-30 11:54:53.203387300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.ignore.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.ignore.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.ignore.html 2024-09-17 07:54:36.542631900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.ignore.html 2024-10-30 11:54:53.203387300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.use.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.use.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.use.html 2024-09-17 07:54:36.546631800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.use.html 2024-10-30 11:54:53.207387200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.use_with_policies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.use_with_policies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PolicyDecision.use_with_policies.html 2024-09-17 07:54:36.550631800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PolicyDecision.use_with_policies.html 2024-10-30 11:54:53.211387200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.get_page_setup.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.get_page_setup.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.get_page_setup.html 2024-09-17 07:54:36.582631300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.get_page_setup.html 2024-10-30 11:54:53.247386500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.get_print_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.get_print_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.get_print_settings.html 2024-09-17 07:54:36.586631500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.get_print_settings.html 2024-10-30 11:54:53.251386400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.print.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.print.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.print.html 2024-09-17 07:54:36.594631400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.print.html 2024-10-30 11:54:53.255386400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.run_dialog.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.run_dialog.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.run_dialog.html 2024-09-17 07:54:36.602631300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.run_dialog.html 2024-10-30 11:54:53.259386300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.set_page_setup.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.set_page_setup.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.set_page_setup.html 2024-09-17 07:54:36.610631200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.set_page_setup.html 2024-10-30 11:54:53.263386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.set_print_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.set_print_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.PrintOperation.set_print_settings.html 2024-09-17 07:54:36.614631200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.PrintOperation.set_print_settings.html 2024-10-30 11:54:53.267386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_request.html 2024-09-17 07:54:36.658630800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_request.html 2024-10-30 11:54:53.299385300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_response.html 2024-09-17 07:54:36.662630800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.get_response.html 2024-10-30 11:54:53.303385300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_main_frame_main_resource.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_main_frame_main_resource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_main_frame_main_resource.html 2024-09-17 07:54:36.666631000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_main_frame_main_resource.html 2024-10-30 11:54:53.307385200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_mime_type_supported.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_mime_type_supported.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_mime_type_supported.html 2024-09-17 07:54:36.670631000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ResponsePolicyDecision.is_mime_type_supported.html 2024-10-30 11:54:53.311385200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.close.html 2024-09-17 07:54:34.770644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.close.html 2024-10-30 11:54:51.811416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.confirm_set_confirmed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.confirm_set_confirmed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.confirm_set_confirmed.html 2024-09-17 07:54:34.774644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.confirm_set_confirmed.html 2024-10-30 11:54:51.811416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.get_dialog_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.get_dialog_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.get_dialog_type.html 2024-09-17 07:54:34.778644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.get_dialog_type.html 2024-10-30 11:54:51.815415600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.get_message.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.get_message.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.get_message.html 2024-09-17 07:54:34.778644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.get_message.html 2024-10-30 11:54:51.819415600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_get_default_text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_get_default_text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_get_default_text.html 2024-09-17 07:54:34.782644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_get_default_text.html 2024-10-30 11:54:51.819415600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_set_text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_set_text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_set_text.html 2024-09-17 07:54:34.786644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.prompt_set_text.html 2024-10-30 11:54:51.823415500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.ref.html 2024-09-17 07:54:34.810644100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.ref.html 2024-10-30 11:54:51.827415500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptDialog.unref.html 2024-09-17 07:54:34.814644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptDialog.unref.html 2024-10-30 11:54:51.831415400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.ref.html 2024-09-17 07:54:34.818644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.ref.html 2024-10-30 11:54:51.835415400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_error_message.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_error_message.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_error_message.html 2024-09-17 07:54:34.822644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_error_message.html 2024-10-30 11:54:51.835415400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_value.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_value.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_value.html 2024-09-17 07:54:34.826644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.return_value.html 2024-10-30 11:54:51.839415300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.ScriptMessageReply.unref.html 2024-09-17 07:54:34.826644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.ScriptMessageReply.unref.html 2024-10-30 11:54:51.839415300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_cors_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_cors_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_cors_enabled.html 2024-09-17 07:54:36.698630600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_cors_enabled.html 2024-10-30 11:54:53.335384600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_display_isolated.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_display_isolated.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_display_isolated.html 2024-09-17 07:54:36.702630500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_display_isolated.html 2024-10-30 11:54:53.335384600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_empty_document.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_empty_document.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_empty_document.html 2024-09-17 07:54:36.706630500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_empty_document.html 2024-10-30 11:54:53.339384600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_local.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_local.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_local.html 2024-09-17 07:54:36.710630700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_local.html 2024-10-30 11:54:53.343384500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_no_access.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_no_access.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_no_access.html 2024-09-17 07:54:36.710630700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_no_access.html 2024-10-30 11:54:53.343384500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_secure.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_secure.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_secure.html 2024-09-17 07:54:36.714630600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.register_uri_scheme_as_secure.html 2024-10-30 11:54:53.347384500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_cors_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_cors_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_cors_enabled.html 2024-09-17 07:54:36.718630600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_cors_enabled.html 2024-10-30 11:54:53.351384400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_display_isolated.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_display_isolated.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_display_isolated.html 2024-09-17 07:54:36.722630500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_display_isolated.html 2024-10-30 11:54:53.355384300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_empty_document.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_empty_document.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_empty_document.html 2024-09-17 07:54:36.726630400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_empty_document.html 2024-10-30 11:54:53.359384000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_local.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_local.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_local.html 2024-09-17 07:54:36.730630400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_local.html 2024-10-30 11:54:53.363384000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_no_access.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_no_access.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_no_access.html 2024-09-17 07:54:36.734630300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_no_access.html 2024-10-30 11:54:53.367384000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_secure.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_secure.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_secure.html 2024-09-17 07:54:36.738630300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityManager.uri_scheme_is_secure.html 2024-10-30 11:54:53.367384000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_host.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_host.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_host.html 2024-09-17 07:54:34.838643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_host.html 2024-10-30 11:54:51.855414900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_port.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_port.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_port.html 2024-09-17 07:54:34.842643700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_port.html 2024-10-30 11:54:51.859414800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_protocol.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_protocol.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_protocol.html 2024-09-17 07:54:34.846643700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.get_protocol.html 2024-10-30 11:54:51.859414800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.ref.html 2024-09-17 07:54:34.850643900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.ref.html 2024-10-30 11:54:51.863414800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.to_string.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.to_string.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.to_string.html 2024-09-17 07:54:34.850643900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.to_string.html 2024-10-30 11:54:51.867414700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.SecurityOrigin.unref.html 2024-09-17 07:54:34.854643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.SecurityOrigin.unref.html 2024-10-30 11:54:51.867414700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.apply_from_key_file.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.apply_from_key_file.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.apply_from_key_file.html 2024-09-17 07:54:36.826629600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.apply_from_key_file.html 2024-10-30 11:54:53.451382200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -357,7 +357,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_file_access_from_file_urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_file_access_from_file_urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_file_access_from_file_urls.html 2024-09-17 07:54:36.830629600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_file_access_from_file_urls.html 2024-10-30 11:54:53.455382000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_modal_dialogs.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_modal_dialogs.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_modal_dialogs.html 2024-09-17 07:54:36.834629800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_modal_dialogs.html 2024-10-30 11:54:53.459382000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_top_navigation_to_data_urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_top_navigation_to_data_urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_top_navigation_to_data_urls.html 2024-09-17 07:54:36.834629800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_top_navigation_to_data_urls.html 2024-10-30 11:54:53.463382000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_universal_access_from_file_urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_universal_access_from_file_urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_allow_universal_access_from_file_urls.html 2024-09-17 07:54:36.838629700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_allow_universal_access_from_file_urls.html 2024-10-30 11:54:53.467382000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_auto_load_images.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_auto_load_images.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_auto_load_images.html 2024-09-17 07:54:36.842629700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_auto_load_images.html 2024-10-30 11:54:53.467382000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_cursive_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_cursive_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_cursive_font_family.html 2024-09-17 07:54:36.846629600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_cursive_font_family.html 2024-10-30 11:54:53.471382000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_charset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_charset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_charset.html 2024-09-17 07:54:36.850629600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_charset.html 2024-10-30 11:54:53.475381900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_font_family.html 2024-09-17 07:54:36.850629600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_font_family.html 2024-10-30 11:54:53.479381800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_font_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_font_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_font_size.html 2024-09-17 07:54:36.854629500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_font_size.html 2024-10-30 11:54:53.483381500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_monospace_font_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_monospace_font_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_default_monospace_font_size.html 2024-09-17 07:54:36.858629500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_default_monospace_font_size.html 2024-10-30 11:54:53.483381500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_disable_web_security.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_disable_web_security.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_disable_web_security.html 2024-09-17 07:54:36.862629400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_disable_web_security.html 2024-10-30 11:54:53.487381500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_draw_compositing_indicators.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_draw_compositing_indicators.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_draw_compositing_indicators.html 2024-09-17 07:54:36.862629400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_draw_compositing_indicators.html 2024-10-30 11:54:53.491381400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_2d_canvas_acceleration.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_2d_canvas_acceleration.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_2d_canvas_acceleration.html 2024-09-17 07:54:36.866629400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_2d_canvas_acceleration.html 2024-10-30 11:54:53.495381400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_back_forward_navigation_gestures.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_back_forward_navigation_gestures.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_back_forward_navigation_gestures.html 2024-09-17 07:54:36.870629300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_back_forward_navigation_gestures.html 2024-10-30 11:54:53.499381300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_caret_browsing.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_caret_browsing.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_caret_browsing.html 2024-09-17 07:54:36.874629500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_caret_browsing.html 2024-10-30 11:54:53.499381300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_developer_extras.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_developer_extras.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_developer_extras.html 2024-09-17 07:54:36.878629400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_developer_extras.html 2024-10-30 11:54:53.503381300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_dns_prefetching.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_dns_prefetching.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_dns_prefetching.html 2024-09-17 07:54:36.878629400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_dns_prefetching.html 2024-10-30 11:54:53.507381200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_encrypted_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_encrypted_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_encrypted_media.html 2024-09-17 07:54:36.882629400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_encrypted_media.html 2024-10-30 11:54:53.511381100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_fullscreen.html 2024-09-17 07:54:36.886629300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_fullscreen.html 2024-10-30 11:54:53.511381100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_database.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_database.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_database.html 2024-09-17 07:54:36.890629300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_database.html 2024-10-30 11:54:53.515380900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_local_storage.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_local_storage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_local_storage.html 2024-09-17 07:54:36.894629200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_html5_local_storage.html 2024-10-30 11:54:53.519380800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_hyperlink_auditing.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_hyperlink_auditing.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_hyperlink_auditing.html 2024-09-17 07:54:36.894629200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_hyperlink_auditing.html 2024-10-30 11:54:53.523380800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript.html 2024-09-17 07:54:36.898629200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript.html 2024-10-30 11:54:53.527380700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript_markup.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript_markup.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript_markup.html 2024-09-17 07:54:36.902629100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_javascript_markup.html 2024-10-30 11:54:53.527380700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_media.html 2024-09-17 07:54:36.906629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_media.html 2024-10-30 11:54:53.531380700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_capabilities.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_capabilities.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_capabilities.html 2024-09-17 07:54:36.910629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_capabilities.html 2024-10-30 11:54:53.535380600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_stream.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_stream.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_stream.html 2024-09-17 07:54:36.910629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_media_stream.html 2024-10-30 11:54:53.539380600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_mediasource.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_mediasource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_mediasource.html 2024-09-17 07:54:36.914629200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_mediasource.html 2024-10-30 11:54:53.539380600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_mock_capture_devices.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_mock_capture_devices.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_mock_capture_devices.html 2024-09-17 07:54:36.918629200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_mock_capture_devices.html 2024-10-30 11:54:53.543380500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_offline_web_application_cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_offline_web_application_cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_offline_web_application_cache.html 2024-09-17 07:54:36.922629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_offline_web_application_cache.html 2024-10-30 11:54:53.547380200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_page_cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_page_cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_page_cache.html 2024-09-17 07:54:36.926629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_page_cache.html 2024-10-30 11:54:53.551380200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_resizable_text_areas.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_resizable_text_areas.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_resizable_text_areas.html 2024-09-17 07:54:36.926629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_resizable_text_areas.html 2024-10-30 11:54:53.551380200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_site_specific_quirks.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_site_specific_quirks.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_site_specific_quirks.html 2024-09-17 07:54:36.930629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_site_specific_quirks.html 2024-10-30 11:54:53.555380000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_smooth_scrolling.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_smooth_scrolling.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_smooth_scrolling.html 2024-09-17 07:54:36.934629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_smooth_scrolling.html 2024-10-30 11:54:53.559380000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_spatial_navigation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_spatial_navigation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_spatial_navigation.html 2024-09-17 07:54:36.938629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_spatial_navigation.html 2024-10-30 11:54:53.563380000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_tabs_to_links.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_tabs_to_links.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_tabs_to_links.html 2024-09-17 07:54:36.942628900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_tabs_to_links.html 2024-10-30 11:54:53.563380000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_webaudio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_webaudio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_webaudio.html 2024-09-17 07:54:36.942628900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_webaudio.html 2024-10-30 11:54:53.567380000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_webgl.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_webgl.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_webgl.html 2024-09-17 07:54:36.946628800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_webgl.html 2024-10-30 11:54:53.571380000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_webrtc.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_webrtc.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_webrtc.html 2024-09-17 07:54:36.950628800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_webrtc.html 2024-10-30 11:54:53.575379800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_write_console_messages_to_stdout.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_write_console_messages_to_stdout.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_enable_write_console_messages_to_stdout.html 2024-09-17 07:54:36.954628700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_enable_write_console_messages_to_stdout.html 2024-10-30 11:54:53.575379800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_fantasy_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_fantasy_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_fantasy_font_family.html 2024-09-17 07:54:36.958629000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_fantasy_font_family.html 2024-10-30 11:54:53.579379600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_feature_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_feature_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_feature_enabled.html 2024-09-17 07:54:36.962628800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_feature_enabled.html 2024-10-30 11:54:53.583379500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_hardware_acceleration_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_hardware_acceleration_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_hardware_acceleration_policy.html 2024-09-17 07:54:36.962628800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_hardware_acceleration_policy.html 2024-10-30 11:54:53.587379500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_access_clipboard.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_access_clipboard.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_access_clipboard.html 2024-09-17 07:54:36.966628800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_access_clipboard.html 2024-10-30 11:54:53.591379400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_open_windows_automatically.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_open_windows_automatically.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_open_windows_automatically.html 2024-09-17 07:54:36.970628700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_javascript_can_open_windows_automatically.html 2024-10-30 11:54:53.591379400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_load_icons_ignoring_image_load_setting.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_load_icons_ignoring_image_load_setting.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_load_icons_ignoring_image_load_setting.html 2024-09-17 07:54:36.974628700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_load_icons_ignoring_image_load_setting.html 2024-10-30 11:54:53.595379400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_media_content_types_requiring_hardware_support.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_media_content_types_requiring_hardware_support.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_media_content_types_requiring_hardware_support.html 2024-09-17 07:54:36.978628600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_media_content_types_requiring_hardware_support.html 2024-10-30 11:54:53.599379300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_allows_inline.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_allows_inline.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_allows_inline.html 2024-09-17 07:54:36.978628600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_allows_inline.html 2024-10-30 11:54:53.603379200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_requires_user_gesture.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_requires_user_gesture.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_requires_user_gesture.html 2024-09-17 07:54:36.982628600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_media_playback_requires_user_gesture.html 2024-10-30 11:54:53.603379200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_minimum_font_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_minimum_font_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_minimum_font_size.html 2024-09-17 07:54:36.986628500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_minimum_font_size.html 2024-10-30 11:54:53.607379200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_monospace_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_monospace_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_monospace_font_family.html 2024-09-17 07:54:36.990628500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_monospace_font_family.html 2024-10-30 11:54:53.611379000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_pictograph_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_pictograph_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_pictograph_font_family.html 2024-09-17 07:54:36.990628500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_pictograph_font_family.html 2024-10-30 11:54:53.615378900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_print_backgrounds.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_print_backgrounds.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_print_backgrounds.html 2024-09-17 07:54:36.994628400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_print_backgrounds.html 2024-10-30 11:54:53.615378900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_sans_serif_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_sans_serif_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_sans_serif_font_family.html 2024-09-17 07:54:36.998628600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_sans_serif_font_family.html 2024-10-30 11:54:53.619378800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_serif_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_serif_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_serif_font_family.html 2024-09-17 07:54:37.002628600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_serif_font_family.html 2024-10-30 11:54:53.623378800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_user_agent.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_user_agent.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_user_agent.html 2024-09-17 07:54:37.006628500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_user_agent.html 2024-10-30 11:54:53.627378700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_zoom_text_only.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_zoom_text_only.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.get_zoom_text_only.html 2024-09-17 07:54:37.006628500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.get_zoom_text_only.html 2024-10-30 11:54:53.627378700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -354,7 +354,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_file_access_from_file_urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_file_access_from_file_urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_file_access_from_file_urls.html 2024-09-17 07:54:37.010628500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_file_access_from_file_urls.html 2024-10-30 11:54:53.631378700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_modal_dialogs.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_modal_dialogs.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_modal_dialogs.html 2024-09-17 07:54:37.014628400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_modal_dialogs.html 2024-10-30 11:54:53.635378600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_top_navigation_to_data_urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_top_navigation_to_data_urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_top_navigation_to_data_urls.html 2024-09-17 07:54:37.018628400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_top_navigation_to_data_urls.html 2024-10-30 11:54:53.639378500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_universal_access_from_file_urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_universal_access_from_file_urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_allow_universal_access_from_file_urls.html 2024-09-17 07:54:37.018628400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_allow_universal_access_from_file_urls.html 2024-10-30 11:54:53.639378500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_auto_load_images.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_auto_load_images.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_auto_load_images.html 2024-09-17 07:54:37.022628300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_auto_load_images.html 2024-10-30 11:54:53.643378300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_cursive_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_cursive_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_cursive_font_family.html 2024-09-17 07:54:37.026628300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_cursive_font_family.html 2024-10-30 11:54:53.647378200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_charset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_charset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_charset.html 2024-09-17 07:54:37.030628200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_charset.html 2024-10-30 11:54:53.647378200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_font_family.html 2024-09-17 07:54:37.030628200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_font_family.html 2024-10-30 11:54:53.651378200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_font_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_font_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_font_size.html 2024-09-17 07:54:37.034628200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_font_size.html 2024-10-30 11:54:53.655378000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_monospace_font_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_monospace_font_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_default_monospace_font_size.html 2024-09-17 07:54:37.038628300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_default_monospace_font_size.html 2024-10-30 11:54:53.659378000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_disable_web_security.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_disable_web_security.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_disable_web_security.html 2024-09-17 07:54:37.042628300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_disable_web_security.html 2024-10-30 11:54:53.659378000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_draw_compositing_indicators.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_draw_compositing_indicators.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_draw_compositing_indicators.html 2024-09-17 07:54:37.042628300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_draw_compositing_indicators.html 2024-10-30 11:54:53.663378000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_2d_canvas_acceleration.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_2d_canvas_acceleration.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_2d_canvas_acceleration.html 2024-09-17 07:54:37.046628200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_2d_canvas_acceleration.html 2024-10-30 11:54:53.667378000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_back_forward_navigation_gestures.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_back_forward_navigation_gestures.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_back_forward_navigation_gestures.html 2024-09-17 07:54:37.050628200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_back_forward_navigation_gestures.html 2024-10-30 11:54:53.667378000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_caret_browsing.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_caret_browsing.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_caret_browsing.html 2024-09-17 07:54:37.054628100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_caret_browsing.html 2024-10-30 11:54:53.671377700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_developer_extras.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_developer_extras.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_developer_extras.html 2024-09-17 07:54:37.054628100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_developer_extras.html 2024-10-30 11:54:53.675377600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_dns_prefetching.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_dns_prefetching.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_dns_prefetching.html 2024-09-17 07:54:37.058628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_dns_prefetching.html 2024-10-30 11:54:53.679377600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_encrypted_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_encrypted_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_encrypted_media.html 2024-09-17 07:54:37.062628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_encrypted_media.html 2024-10-30 11:54:53.679377600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_fullscreen.html 2024-09-17 07:54:37.066628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_fullscreen.html 2024-10-30 11:54:53.683377500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_database.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_database.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_database.html 2024-09-17 07:54:37.066628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_database.html 2024-10-30 11:54:53.687377500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_local_storage.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_local_storage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_local_storage.html 2024-09-17 07:54:37.070628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_html5_local_storage.html 2024-10-30 11:54:53.687377500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_hyperlink_auditing.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_hyperlink_auditing.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_hyperlink_auditing.html 2024-09-17 07:54:37.074627900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_hyperlink_auditing.html 2024-10-30 11:54:53.691377400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript.html 2024-09-17 07:54:37.078628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript.html 2024-10-30 11:54:53.695377300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript_markup.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript_markup.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript_markup.html 2024-09-17 07:54:37.078628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_javascript_markup.html 2024-10-30 11:54:53.699377300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_media.html 2024-09-17 07:54:37.082628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_media.html 2024-10-30 11:54:53.699377300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_capabilities.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_capabilities.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_capabilities.html 2024-09-17 07:54:37.086628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_capabilities.html 2024-10-30 11:54:53.703377000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_stream.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_stream.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_stream.html 2024-09-17 07:54:37.090628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_media_stream.html 2024-10-30 11:54:53.707377000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_mediasource.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_mediasource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_mediasource.html 2024-09-17 07:54:37.090628000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_mediasource.html 2024-10-30 11:54:53.707377000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_mock_capture_devices.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_mock_capture_devices.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_mock_capture_devices.html 2024-09-17 07:54:37.094627900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_mock_capture_devices.html 2024-10-30 11:54:53.711377000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_offline_web_application_cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_offline_web_application_cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_offline_web_application_cache.html 2024-09-17 07:54:37.098627800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_offline_web_application_cache.html 2024-10-30 11:54:53.715376900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_page_cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_page_cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_page_cache.html 2024-09-17 07:54:37.102627800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_page_cache.html 2024-10-30 11:54:53.719376800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_resizable_text_areas.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_resizable_text_areas.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_resizable_text_areas.html 2024-09-17 07:54:37.102627800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_resizable_text_areas.html 2024-10-30 11:54:53.719376800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_site_specific_quirks.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_site_specific_quirks.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_site_specific_quirks.html 2024-09-17 07:54:37.106627700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_site_specific_quirks.html 2024-10-30 11:54:53.723376800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_smooth_scrolling.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_smooth_scrolling.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_smooth_scrolling.html 2024-09-17 07:54:37.110627700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_smooth_scrolling.html 2024-10-30 11:54:53.727376700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_spatial_navigation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_spatial_navigation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_spatial_navigation.html 2024-09-17 07:54:37.114627600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_spatial_navigation.html 2024-10-30 11:54:53.731376600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_tabs_to_links.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_tabs_to_links.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_tabs_to_links.html 2024-09-17 07:54:37.114627600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_tabs_to_links.html 2024-10-30 11:54:53.731376600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_webaudio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_webaudio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_webaudio.html 2024-09-17 07:54:37.118627500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_webaudio.html 2024-10-30 11:54:53.735376400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_webgl.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_webgl.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_webgl.html 2024-09-17 07:54:37.122627700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_webgl.html 2024-10-30 11:54:53.739376300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_webrtc.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_webrtc.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_webrtc.html 2024-09-17 07:54:37.126627700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_webrtc.html 2024-10-30 11:54:53.739376300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_write_console_messages_to_stdout.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_write_console_messages_to_stdout.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_enable_write_console_messages_to_stdout.html 2024-09-17 07:54:37.130627600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_enable_write_console_messages_to_stdout.html 2024-10-30 11:54:53.743376300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_fantasy_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_fantasy_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_fantasy_font_family.html 2024-09-17 07:54:37.130627600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_fantasy_font_family.html 2024-10-30 11:54:53.747376200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_feature_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_feature_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_feature_enabled.html 2024-09-17 07:54:37.134627600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_feature_enabled.html 2024-10-30 11:54:53.751376200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -356,7 +356,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_hardware_acceleration_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_hardware_acceleration_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_hardware_acceleration_policy.html 2024-09-17 07:54:37.138627500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_hardware_acceleration_policy.html 2024-10-30 11:54:53.755376000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_access_clipboard.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_access_clipboard.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_access_clipboard.html 2024-09-17 07:54:37.142627500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_access_clipboard.html 2024-10-30 11:54:53.755376000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_open_windows_automatically.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_open_windows_automatically.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_open_windows_automatically.html 2024-09-17 07:54:37.146627400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_javascript_can_open_windows_automatically.html 2024-10-30 11:54:53.759376000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_load_icons_ignoring_image_load_setting.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_load_icons_ignoring_image_load_setting.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_load_icons_ignoring_image_load_setting.html 2024-09-17 07:54:37.146627400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_load_icons_ignoring_image_load_setting.html 2024-10-30 11:54:53.763376000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_media_content_types_requiring_hardware_support.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_media_content_types_requiring_hardware_support.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_media_content_types_requiring_hardware_support.html 2024-09-17 07:54:37.150627400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_media_content_types_requiring_hardware_support.html 2024-10-30 11:54:53.767375700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_allows_inline.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_allows_inline.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_allows_inline.html 2024-09-17 07:54:37.154627300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_allows_inline.html 2024-10-30 11:54:53.767375700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_requires_user_gesture.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_requires_user_gesture.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_requires_user_gesture.html 2024-09-17 07:54:37.158627300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_media_playback_requires_user_gesture.html 2024-10-30 11:54:53.771375700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_minimum_font_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_minimum_font_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_minimum_font_size.html 2024-09-17 07:54:37.158627300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_minimum_font_size.html 2024-10-30 11:54:53.775375600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_monospace_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_monospace_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_monospace_font_family.html 2024-09-17 07:54:37.162627500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_monospace_font_family.html 2024-10-30 11:54:53.775375600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_pictograph_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_pictograph_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_pictograph_font_family.html 2024-09-17 07:54:37.166627400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_pictograph_font_family.html 2024-10-30 11:54:53.779375600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_print_backgrounds.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_print_backgrounds.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_print_backgrounds.html 2024-09-17 07:54:37.170627400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_print_backgrounds.html 2024-10-30 11:54:53.783375500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_sans_serif_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_sans_serif_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_sans_serif_font_family.html 2024-09-17 07:54:37.170627400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_sans_serif_font_family.html 2024-10-30 11:54:53.787375500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_serif_font_family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_serif_font_family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_serif_font_family.html 2024-09-17 07:54:37.174627300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_serif_font_family.html 2024-10-30 11:54:53.787375500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_user_agent.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_user_agent.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_user_agent.html 2024-09-17 07:54:37.178627300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_user_agent.html 2024-10-30 11:54:53.791375400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_user_agent_with_application_details.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_user_agent_with_application_details.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_user_agent_with_application_details.html 2024-09-17 07:54:37.182627200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_user_agent_with_application_details.html 2024-10-30 11:54:53.795375300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -356,7 +356,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_zoom_text_only.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_zoom_text_only.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.Settings.set_zoom_text_only.html 2024-09-17 07:54:37.186627100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.Settings.set_zoom_text_only.html 2024-10-30 11:54:53.799375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -355,7 +355,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.get_http_headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.get_http_headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.get_http_headers.html 2024-09-17 07:54:37.290626500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.get_http_headers.html 2024-10-30 11:54:53.895373000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.get_http_method.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.get_http_method.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.get_http_method.html 2024-09-17 07:54:37.294626500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.get_http_method.html 2024-10-30 11:54:53.899373000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.get_uri.html 2024-09-17 07:54:37.298626400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.get_uri.html 2024-10-30 11:54:53.903373000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.set_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.set_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIRequest.set_uri.html 2024-09-17 07:54:37.302626400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIRequest.set_uri.html 2024-10-30 11:54:53.907373000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_content_length.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_content_length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_content_length.html 2024-09-17 07:54:37.326626300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_content_length.html 2024-10-30 11:54:53.927372500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_http_headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_http_headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_http_headers.html 2024-09-17 07:54:37.330626200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_http_headers.html 2024-10-30 11:54:53.931372400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_mime_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_mime_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_mime_type.html 2024-09-17 07:54:37.334626200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_mime_type.html 2024-10-30 11:54:53.931372400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_status_code.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_status_code.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_status_code.html 2024-09-17 07:54:37.334626200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_status_code.html 2024-10-30 11:54:53.935372400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_suggested_filename.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_suggested_filename.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_suggested_filename.html 2024-09-17 07:54:37.338626100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_suggested_filename.html 2024-10-30 11:54:53.939372300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URIResponse.get_uri.html 2024-09-17 07:54:37.342626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URIResponse.get_uri.html 2024-10-30 11:54:53.939372300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish.html 2024-09-17 07:54:37.370626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish.html 2024-10-30 11:54:53.975371600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_error.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_error.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_error.html 2024-09-17 07:54:37.374626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_error.html 2024-10-30 11:54:53.979371500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_with_response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_with_response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_with_response.html 2024-09-17 07:54:37.378625900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.finish_with_response.html 2024-10-30 11:54:53.983371500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_body.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_body.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_body.html 2024-09-17 07:54:37.378625900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_body.html 2024-10-30 11:54:53.983371500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_headers.html 2024-09-17 07:54:37.382625800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_headers.html 2024-10-30 11:54:53.987371200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_method.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_method.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_method.html 2024-09-17 07:54:37.386625800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_http_method.html 2024-10-30 11:54:53.991371200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_path.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_path.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_path.html 2024-09-17 07:54:37.390625700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_path.html 2024-10-30 11:54:53.991371200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_scheme.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_scheme.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_scheme.html 2024-09-17 07:54:37.390625700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_scheme.html 2024-10-30 11:54:53.995371000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_uri.html 2024-09-17 07:54:37.394625700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_uri.html 2024-10-30 11:54:53.999371000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_web_view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_web_view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_web_view.html 2024-09-17 07:54:37.398625600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeRequest.get_web_view.html 2024-10-30 11:54:53.999371000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_content_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_content_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_content_type.html 2024-09-17 07:54:37.426625500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_content_type.html 2024-10-30 11:54:54.027370500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_http_headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_http_headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_http_headers.html 2024-09-17 07:54:37.430625400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_http_headers.html 2024-10-30 11:54:54.031370400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_status.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_status.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_status.html 2024-09-17 07:54:37.430625400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.URISchemeResponse.set_status.html 2024-10-30 11:54:54.035370300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilter.get_identifier.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilter.get_identifier.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilter.get_identifier.html 2024-09-17 07:54:34.862643700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilter.get_identifier.html 2024-10-30 11:54:51.875414600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilter.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilter.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilter.ref.html 2024-09-17 07:54:34.862643700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilter.ref.html 2024-10-30 11:54:51.875414600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilter.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilter.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilter.unref.html 2024-09-17 07:54:34.870643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilter.unref.html 2024-10-30 11:54:51.879414300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers.html 2024-09-17 07:54:37.466625200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers.html 2024-10-30 11:54:54.067369700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers_finish.html 2024-09-17 07:54:37.470625200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.fetch_identifiers_finish.html 2024-10-30 11:54:54.071369600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.get_path.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.get_path.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.get_path.html 2024-09-17 07:54:37.474625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.get_path.html 2024-10-30 11:54:54.075369600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load.html 2024-09-17 07:54:37.478625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load.html 2024-10-30 11:54:54.079369500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load_finish.html 2024-09-17 07:54:37.482625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.load_finish.html 2024-10-30 11:54:54.083369300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove.html 2024-09-17 07:54:37.486625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove.html 2024-10-30 11:54:54.087369200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove_finish.html 2024-09-17 07:54:37.490625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.remove_finish.html 2024-10-30 11:54:54.091369200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save.html 2024-09-17 07:54:37.498625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save.html 2024-10-30 11:54:54.099369000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_finish.html 2024-09-17 07:54:37.502625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_finish.html 2024-10-30 11:54:54.099369000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file.html 2024-09-17 07:54:37.506625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file.html 2024-10-30 11:54:54.107369000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file_finish.html 2024-09-17 07:54:37.510625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentFilterStore.save_from_file_finish.html 2024-10-30 11:54:54.111369000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.add_filter.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.add_filter.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.add_filter.html 2024-09-17 07:54:37.542624700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.add_filter.html 2024-10-30 11:54:54.147368000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.add_script.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.add_script.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.add_script.html 2024-09-17 07:54:37.546624700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.add_script.html 2024-10-30 11:54:54.151368000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.add_style_sheet.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.add_style_sheet.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.add_style_sheet.html 2024-09-17 07:54:37.550624600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.add_style_sheet.html 2024-10-30 11:54:54.155367900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler.html 2024-09-17 07:54:37.554624600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler.html 2024-10-30 11:54:54.159367800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler_with_reply.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler_with_reply.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler_with_reply.html 2024-09-17 07:54:37.562624500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.register_script_message_handler_with_reply.html 2024-10-30 11:54:54.163367700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_filters.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_filters.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_filters.html 2024-09-17 07:54:37.562624500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_filters.html 2024-10-30 11:54:54.167367700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_scripts.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_scripts.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_scripts.html 2024-09-17 07:54:37.566624400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_scripts.html 2024-10-30 11:54:54.167367700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_style_sheets.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_style_sheets.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_style_sheets.html 2024-09-17 07:54:37.566624400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_all_style_sheets.html 2024-10-30 11:54:54.171367600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter.html 2024-09-17 07:54:37.570624400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter.html 2024-10-30 11:54:54.171367600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter_by_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter_by_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter_by_id.html 2024-09-17 07:54:37.574624500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_filter_by_id.html 2024-10-30 11:54:54.175367400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_script.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_script.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_script.html 2024-09-17 07:54:37.574624500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_script.html 2024-10-30 11:54:54.179367300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_style_sheet.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_style_sheet.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.remove_style_sheet.html 2024-09-17 07:54:37.578624500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.remove_style_sheet.html 2024-10-30 11:54:54.179367300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.unregister_script_message_handler.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.unregister_script_message_handler.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserContentManager.unregister_script_message_handler.html 2024-09-17 07:54:37.582624400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserContentManager.unregister_script_message_handler.html 2024-10-30 11:54:54.187367200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.get_fd_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.get_fd_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.get_fd_list.html 2024-09-17 07:54:37.654623700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.get_fd_list.html 2024-10-30 11:54:54.251366000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.get_name.html 2024-09-17 07:54:37.658624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.get_name.html 2024-10-30 11:54:54.255365800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.get_parameters.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.get_parameters.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.get_parameters.html 2024-09-17 07:54:37.658624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.get_parameters.html 2024-10-30 11:54:54.255365800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.send_reply.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.send_reply.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserMessage.send_reply.html 2024-09-17 07:54:37.662624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserMessage.send_reply.html 2024-10-30 11:54:54.259365800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserScript.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserScript.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserScript.ref.html 2024-09-17 07:54:34.898643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserScript.ref.html 2024-10-30 11:54:51.895414000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserScript.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserScript.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserScript.unref.html 2024-09-17 07:54:34.902643400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserScript.unref.html 2024-10-30 11:54:51.899414000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserStyleSheet.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserStyleSheet.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserStyleSheet.ref.html 2024-09-17 07:54:34.934643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserStyleSheet.ref.html 2024-10-30 11:54:51.919413600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserStyleSheet.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserStyleSheet.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.UserStyleSheet.unref.html 2024-09-17 07:54:34.938643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.UserStyleSheet.unref.html 2024-10-30 11:54:51.923413500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.add_path_to_sandbox.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.add_path_to_sandbox.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.add_path_to_sandbox.html 2024-09-17 07:54:37.698623700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.add_path_to_sandbox.html 2024-10-30 11:54:54.295365000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -162,7 +162,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_cache_model.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_cache_model.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_cache_model.html 2024-09-17 07:54:37.702623600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_cache_model.html 2024-10-30 11:54:54.299365000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_geolocation_manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_geolocation_manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_geolocation_manager.html 2024-09-17 07:54:37.706623600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_geolocation_manager.html 2024-10-30 11:54:54.303364800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_network_session_for_automation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_network_session_for_automation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_network_session_for_automation.html 2024-09-17 07:54:37.710623500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_network_session_for_automation.html 2024-10-30 11:54:54.307364700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_security_manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_security_manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_security_manager.html 2024-09-17 07:54:37.710623500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_security_manager.html 2024-10-30 11:54:54.307364700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_enabled.html 2024-09-17 07:54:37.714623500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_enabled.html 2024-10-30 11:54:54.311364700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_languages.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_languages.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_languages.html 2024-09-17 07:54:37.718623400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_spell_checking_languages.html 2024-10-30 11:54:54.315364600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_time_zone_override.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_time_zone_override.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.get_time_zone_override.html 2024-09-17 07:54:37.718623400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.get_time_zone_override.html 2024-10-30 11:54:54.315364600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.initialize_notification_permissions.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.initialize_notification_permissions.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.initialize_notification_permissions.html 2024-09-17 07:54:37.726623300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.initialize_notification_permissions.html 2024-10-30 11:54:54.323364500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -162,7 +162,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.is_automation_allowed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.is_automation_allowed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.is_automation_allowed.html 2024-09-17 07:54:37.726623300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.is_automation_allowed.html 2024-10-30 11:54:54.323364500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -160,7 +160,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.register_uri_scheme.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.register_uri_scheme.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.register_uri_scheme.html 2024-09-17 07:54:37.734623200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.register_uri_scheme.html 2024-10-30 11:54:54.331364400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -164,7 +164,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.send_message_to_all_extensions.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.send_message_to_all_extensions.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.send_message_to_all_extensions.html 2024-09-17 07:54:37.738623400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.send_message_to_all_extensions.html 2024-10-30 11:54:54.335364000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -161,7 +161,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_automation_allowed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_automation_allowed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_automation_allowed.html 2024-09-17 07:54:37.742623300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_automation_allowed.html 2024-10-30 11:54:54.339364000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -161,7 +161,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_cache_model.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_cache_model.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_cache_model.html 2024-09-17 07:54:37.746623300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_cache_model.html 2024-10-30 11:54:54.343364000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -161,7 +161,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_preferred_languages.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_preferred_languages.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_preferred_languages.html 2024-09-17 07:54:37.750623200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_preferred_languages.html 2024-10-30 11:54:54.343364000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -161,7 +161,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_enabled.html 2024-09-17 07:54:37.750623200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_enabled.html 2024-10-30 11:54:54.347364000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -161,7 +161,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_languages.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_languages.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_languages.html 2024-09-17 07:54:37.754623200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_spell_checking_languages.html 2024-10-30 11:54:54.351364000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -161,7 +161,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_directory.html 2024-09-17 07:54:37.758623100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_directory.html 2024-10-30 11:54:54.355363800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_initialization_user_data.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_initialization_user_data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_initialization_user_data.html 2024-09-17 07:54:37.762623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebContext.set_web_process_extensions_initialization_user_data.html 2024-10-30 11:54:54.355363800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.attach.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.attach.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.attach.html 2024-09-17 07:54:37.802622800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.attach.html 2024-10-30 11:54:54.395363000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.close.html 2024-09-17 07:54:37.806622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.close.html 2024-10-30 11:54:54.395363000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.detach.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.detach.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.detach.html 2024-09-17 07:54:37.806622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.detach.html 2024-10-30 11:54:54.399362800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_attached_height.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_attached_height.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_attached_height.html 2024-09-17 07:54:37.810622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_attached_height.html 2024-10-30 11:54:54.403362800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_can_attach.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_can_attach.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_can_attach.html 2024-09-17 07:54:37.814622600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_can_attach.html 2024-10-30 11:54:54.403362800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_inspected_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_inspected_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_inspected_uri.html 2024-09-17 07:54:37.818622600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_inspected_uri.html 2024-10-30 11:54:54.407362700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_web_view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_web_view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.get_web_view.html 2024-09-17 07:54:37.818622600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.get_web_view.html 2024-10-30 11:54:54.411362600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.is_attached.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.is_attached.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.is_attached.html 2024-09-17 07:54:37.822622800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.is_attached.html 2024-10-30 11:54:54.415362600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.show.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.show.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebInspector.show.html 2024-09-17 07:54:37.826622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebInspector.show.html 2024-10-30 11:54:54.415362600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_data.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_data.html 2024-09-17 07:54:37.870622400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_data.html 2024-10-30 11:54:54.459361600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_data_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_data_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_data_finish.html 2024-09-17 07:54:37.874622300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_data_finish.html 2024-10-30 11:54:54.463361500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_response.html 2024-09-17 07:54:37.878622300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_response.html 2024-10-30 11:54:54.467361500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebResource.get_uri.html 2024-09-17 07:54:37.882622200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebResource.get_uri.html 2024-10-30 11:54:54.471361400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function.html 2024-09-17 07:54:38.142620300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function.html 2024-10-30 11:54:54.739356000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function_finish.html 2024-09-17 07:54:38.146620300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.call_async_javascript_function_finish.html 2024-10-30 11:54:54.743355800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command.html 2024-09-17 07:54:38.150620500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command.html 2024-10-30 11:54:54.747355700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command_finish.html 2024-09-17 07:54:38.154620400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_execute_editing_command_finish.html 2024-10-30 11:54:54.751355600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_go_back.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_go_back.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_go_back.html 2024-09-17 07:54:38.158620400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_go_back.html 2024-10-30 11:54:54.755355600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_go_forward.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_go_forward.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_go_forward.html 2024-09-17 07:54:38.162620300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_go_forward.html 2024-10-30 11:54:54.755355600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_show_mime_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_show_mime_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.can_show_mime_type.html 2024-09-17 07:54:38.166620300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.can_show_mime_type.html 2024-10-30 11:54:54.759355500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.download_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.download_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.download_uri.html 2024-09-17 07:54:38.166620300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.download_uri.html 2024-10-30 11:54:54.763355500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript.html 2024-09-17 07:54:38.178620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript.html 2024-10-30 11:54:54.775355000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript_finish.html 2024-09-17 07:54:38.182620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.evaluate_javascript_finish.html 2024-10-30 11:54:54.779355000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command.html 2024-09-17 07:54:38.186620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command.html 2024-10-30 11:54:54.783355000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command_with_argument.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command_with_argument.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command_with_argument.html 2024-09-17 07:54:38.190620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.execute_editing_command_with_argument.html 2024-10-30 11:54:54.787355000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_automation_presentation_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_automation_presentation_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_automation_presentation_type.html 2024-09-17 07:54:38.194620100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_automation_presentation_type.html 2024-10-30 11:54:54.787355000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_back_forward_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_back_forward_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_back_forward_list.html 2024-09-17 07:54:38.198620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_back_forward_list.html 2024-10-30 11:54:54.791355000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_background_color.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_background_color.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_background_color.html 2024-09-17 07:54:38.202620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_background_color.html 2024-10-30 11:54:54.795354800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_camera_capture_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_camera_capture_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_camera_capture_state.html 2024-09-17 07:54:38.202620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_camera_capture_state.html 2024-10-30 11:54:54.799354800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_context.html 2024-09-17 07:54:38.206620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_context.html 2024-10-30 11:54:54.799354800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_custom_charset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_custom_charset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_custom_charset.html 2024-09-17 07:54:38.210620000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_custom_charset.html 2024-10-30 11:54:54.803354700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_default_content_security_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_default_content_security_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_default_content_security_policy.html 2024-09-17 07:54:38.214619900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_default_content_security_policy.html 2024-10-30 11:54:54.807354500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_display_capture_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_display_capture_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_display_capture_state.html 2024-09-17 07:54:38.214619900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_display_capture_state.html 2024-10-30 11:54:54.811354400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_editor_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_editor_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_editor_state.html 2024-09-17 07:54:38.218619800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_editor_state.html 2024-10-30 11:54:54.811354400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_estimated_load_progress.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_estimated_load_progress.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_estimated_load_progress.html 2024-09-17 07:54:38.222619800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_estimated_load_progress.html 2024-10-30 11:54:54.815354300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_favicon.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_favicon.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_favicon.html 2024-09-17 07:54:38.226619700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_favicon.html 2024-10-30 11:54:54.819354300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_find_controller.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_find_controller.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_find_controller.html 2024-09-17 07:54:38.230619700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_find_controller.html 2024-10-30 11:54:54.823354200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_input_method_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_input_method_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_input_method_context.html 2024-09-17 07:54:38.234619900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_input_method_context.html 2024-10-30 11:54:54.827354200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_inspector.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_inspector.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_inspector.html 2024-09-17 07:54:38.234619900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_inspector.html 2024-10-30 11:54:54.827354200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_is_muted.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_is_muted.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_is_muted.html 2024-09-17 07:54:38.238619800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_is_muted.html 2024-10-30 11:54:54.831354100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_is_web_process_responsive.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_is_web_process_responsive.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_is_web_process_responsive.html 2024-09-17 07:54:38.242619800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_is_web_process_responsive.html 2024-10-30 11:54:54.835354000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_main_resource.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_main_resource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_main_resource.html 2024-09-17 07:54:38.246619700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_main_resource.html 2024-10-30 11:54:54.839353800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_microphone_capture_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_microphone_capture_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_microphone_capture_state.html 2024-09-17 07:54:38.246619700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_microphone_capture_state.html 2024-10-30 11:54:54.843353700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_network_session.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_network_session.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_network_session.html 2024-09-17 07:54:38.250619600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_network_session.html 2024-10-30 11:54:54.843353700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_page_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_page_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_page_id.html 2024-09-17 07:54:38.254619600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_page_id.html 2024-10-30 11:54:54.847353700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_session_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_session_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_session_state.html 2024-09-17 07:54:38.258619500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_session_state.html 2024-10-30 11:54:54.851353600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_settings.html 2024-09-17 07:54:38.262619500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_settings.html 2024-10-30 11:54:54.855353600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_snapshot.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_snapshot.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_snapshot.html 2024-09-17 07:54:38.266619400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_snapshot.html 2024-10-30 11:54:54.859353500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_snapshot_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_snapshot_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_snapshot_finish.html 2024-09-17 07:54:38.270619400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_snapshot_finish.html 2024-10-30 11:54:54.863353500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_title.html 2024-09-17 07:54:38.274619600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_title.html 2024-10-30 11:54:54.867353400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_tls_info.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_tls_info.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_tls_info.html 2024-09-17 07:54:38.282619500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_tls_info.html 2024-10-30 11:54:54.875353000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_uri.html 2024-09-17 07:54:38.286619400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_uri.html 2024-10-30 11:54:54.879353000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_user_content_manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_user_content_manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_user_content_manager.html 2024-09-17 07:54:38.290619400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_user_content_manager.html 2024-10-30 11:54:54.883353000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_web_extension_mode.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_web_extension_mode.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_web_extension_mode.html 2024-09-17 07:54:38.294619300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_web_extension_mode.html 2024-10-30 11:54:54.887353000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_website_policies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_website_policies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_website_policies.html 2024-09-17 07:54:38.298619300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_website_policies.html 2024-10-30 11:54:54.891353000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_window_properties.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_window_properties.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_window_properties.html 2024-09-17 07:54:38.302619200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_window_properties.html 2024-10-30 11:54:54.891353000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_zoom_level.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_zoom_level.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.get_zoom_level.html 2024-09-17 07:54:38.302619200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.get_zoom_level.html 2024-10-30 11:54:54.895352800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.go_back.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.go_back.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.go_back.html 2024-09-17 07:54:38.306619200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.go_back.html 2024-10-30 11:54:54.899352800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.go_forward.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.go_forward.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.go_forward.html 2024-09-17 07:54:38.310619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.go_forward.html 2024-10-30 11:54:54.899352800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.go_to_back_forward_list_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.go_to_back_forward_list_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.go_to_back_forward_list_item.html 2024-09-17 07:54:38.310619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.go_to_back_forward_list_item.html 2024-10-30 11:54:54.903352500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_controlled_by_automation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_controlled_by_automation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_controlled_by_automation.html 2024-09-17 07:54:38.314619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_controlled_by_automation.html 2024-10-30 11:54:54.907352400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_editable.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_editable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_editable.html 2024-09-17 07:54:38.318619300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_editable.html 2024-10-30 11:54:54.911352400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -303,6 +303,14 @@ +
+
Version2.46.0
Version2.46.3
AuthorsThe WebKit GTK and WPE teams
LicenseBSD, LGPL-2.1
Websitehttps://webkit.org
Browse documentationBrowse documentation
+ + + +
Gets propertyWebKit.WebView:editable
+
+ diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_loading.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_loading.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_loading.html 2024-09-17 07:54:38.322619200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_loading.html 2024-10-30 11:54:54.915352300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_playing_audio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_playing_audio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.is_playing_audio.html 2024-09-17 07:54:38.326619100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.is_playing_audio.html 2024-10-30 11:54:54.915352300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_alternate_html.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_alternate_html.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_alternate_html.html 2024-09-17 07:54:38.330619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_alternate_html.html 2024-10-30 11:54:54.923352200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_bytes.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_bytes.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_bytes.html 2024-09-17 07:54:38.338619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_bytes.html 2024-10-30 11:54:54.927352200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_html.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_html.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_html.html 2024-09-17 07:54:38.342619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_html.html 2024-10-30 11:54:54.931352000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_plain_text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_plain_text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_plain_text.html 2024-09-17 07:54:38.346619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_plain_text.html 2024-10-30 11:54:54.935351800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_request.html 2024-09-17 07:54:38.350618800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_request.html 2024-10-30 11:54:54.939351800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.load_uri.html 2024-09-17 07:54:38.350618800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.load_uri.html 2024-10-30 11:54:54.943351700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.reload.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.reload.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.reload.html 2024-09-17 07:54:38.354618800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.reload.html 2024-10-30 11:54:54.943351700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.reload_bypass_cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.reload_bypass_cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.reload_bypass_cache.html 2024-09-17 07:54:38.354618800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.reload_bypass_cache.html 2024-10-30 11:54:54.947351700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.restore_session_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.restore_session_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.restore_session_state.html 2024-09-17 07:54:38.358619000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.restore_session_state.html 2024-10-30 11:54:54.947351700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save.html 2024-09-17 07:54:38.366618900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save.html 2024-10-30 11:54:54.955351600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save_finish.html 2024-09-17 07:54:38.370618800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save_finish.html 2024-10-30 11:54:54.959351500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save_to_file.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save_to_file.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save_to_file.html 2024-09-17 07:54:38.374618800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save_to_file.html 2024-10-30 11:54:54.963351200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save_to_file_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save_to_file_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.save_to_file_finish.html 2024-09-17 07:54:38.378618700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.save_to_file_finish.html 2024-10-30 11:54:54.967351200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page.html 2024-09-17 07:54:38.386618600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page.html 2024-10-30 11:54:54.975351000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page_finish.html 2024-09-17 07:54:38.390618600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.send_message_to_page_finish.html 2024-10-30 11:54:54.979351000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_background_color.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_background_color.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_background_color.html 2024-09-17 07:54:38.394618500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_background_color.html 2024-10-30 11:54:54.979351000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_camera_capture_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_camera_capture_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_camera_capture_state.html 2024-09-17 07:54:38.394618500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_camera_capture_state.html 2024-10-30 11:54:54.983351000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_cors_allowlist.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_cors_allowlist.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_cors_allowlist.html 2024-09-17 07:54:38.398618700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_cors_allowlist.html 2024-10-30 11:54:54.987351000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_custom_charset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_custom_charset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_custom_charset.html 2024-09-17 07:54:38.402618600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_custom_charset.html 2024-10-30 11:54:54.991351000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_display_capture_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_display_capture_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_display_capture_state.html 2024-09-17 07:54:38.406618600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_display_capture_state.html 2024-10-30 11:54:54.995350600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_editable.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_editable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_editable.html 2024-09-17 07:54:38.410618500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_editable.html 2024-10-30 11:54:54.999350500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_input_method_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_input_method_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_input_method_context.html 2024-09-17 07:54:38.414618500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_input_method_context.html 2024-10-30 11:54:55.003350500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_is_muted.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_is_muted.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_is_muted.html 2024-09-17 07:54:38.418618400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_is_muted.html 2024-10-30 11:54:55.007350400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_microphone_capture_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_microphone_capture_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_microphone_capture_state.html 2024-09-17 07:54:38.422618400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_microphone_capture_state.html 2024-10-30 11:54:55.007350400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_settings.html 2024-09-17 07:54:38.422618400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_settings.html 2024-10-30 11:54:55.011350400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_zoom_level.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_zoom_level.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.set_zoom_level.html 2024-09-17 07:54:38.426618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.set_zoom_level.html 2024-10-30 11:54:55.015350300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.stop_loading.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.stop_loading.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.stop_loading.html 2024-09-17 07:54:38.430618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.stop_loading.html 2024-10-30 11:54:55.019350300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.terminate_web_process.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.terminate_web_process.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.terminate_web_process.html 2024-09-17 07:54:38.434618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.terminate_web_process.html 2024-10-30 11:54:55.019350300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.try_close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.try_close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebView.try_close.html 2024-09-17 07:54:38.434618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebView.try_close.html 2024-10-30 11:54:55.023350200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebViewSessionState.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebViewSessionState.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebViewSessionState.ref.html 2024-09-17 07:54:34.966642900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebViewSessionState.ref.html 2024-10-30 11:54:51.947413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebViewSessionState.serialize.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebViewSessionState.serialize.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebViewSessionState.serialize.html 2024-09-17 07:54:34.970642800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebViewSessionState.serialize.html 2024-10-30 11:54:51.951413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebViewSessionState.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebViewSessionState.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebViewSessionState.unref.html 2024-09-17 07:54:34.974643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebViewSessionState.unref.html 2024-10-30 11:54:51.951413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.get_name.html 2024-09-17 07:54:34.946643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.get_name.html 2024-10-30 11:54:51.927413500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.get_size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.get_size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.get_size.html 2024-09-17 07:54:34.950643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.get_size.html 2024-10-30 11:54:51.931413400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.get_types.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.get_types.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.get_types.html 2024-09-17 07:54:34.954643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.get_types.html 2024-10-30 11:54:51.935413400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.ref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.ref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.ref.html 2024-09-17 07:54:34.958643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.ref.html 2024-10-30 11:54:51.935413400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.unref.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.unref.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteData.unref.html 2024-09-17 07:54:34.958643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteData.unref.html 2024-10-30 11:54:51.939413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_current_domain.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_current_domain.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_current_domain.html 2024-09-17 07:54:37.922622000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_current_domain.html 2024-10-30 11:54:54.511360600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_requesting_domain.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_requesting_domain.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_requesting_domain.html 2024-09-17 07:54:37.922622000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataAccessPermissionRequest.get_requesting_domain.html 2024-10-30 11:54:54.515360600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear.html 2024-09-17 07:54:37.954621800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear.html 2024-10-30 11:54:54.551360000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear_finish.html 2024-09-17 07:54:37.958621700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.clear_finish.html 2024-10-30 11:54:54.555359600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch.html 2024-09-17 07:54:37.962621700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch.html 2024-10-30 11:54:54.563359500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch_finish.html 2024-09-17 07:54:37.966621600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.fetch_finish.html 2024-10-30 11:54:54.567359400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_cache_directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_cache_directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_cache_directory.html 2024-09-17 07:54:37.970621600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_cache_directory.html 2024-10-30 11:54:54.567359400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_data_directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_data_directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_data_directory.html 2024-09-17 07:54:37.974621500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_base_data_directory.html 2024-10-30 11:54:54.571359400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicon_database.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicon_database.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicon_database.html 2024-09-17 07:54:37.978621500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicon_database.html 2024-10-30 11:54:54.575359300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicons_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicons_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicons_enabled.html 2024-09-17 07:54:37.978621500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_favicons_enabled.html 2024-10-30 11:54:54.575359300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary.html 2024-09-17 07:54:37.982621400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary.html 2024-10-30 11:54:54.583359200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary_finish.html 2024-09-17 07:54:37.986621600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.get_itp_summary_finish.html 2024-10-30 11:54:54.587359000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.is_ephemeral.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.is_ephemeral.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.is_ephemeral.html 2024-09-17 07:54:37.990621600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.is_ephemeral.html 2024-10-30 11:54:54.587359000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove.html 2024-09-17 07:54:37.998621500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove.html 2024-10-30 11:54:54.595358800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove_finish.html 2024-09-17 07:54:38.002621400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.remove_finish.html 2024-10-30 11:54:54.599358800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.set_favicons_enabled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.set_favicons_enabled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsiteDataManager.set_favicons_enabled.html 2024-09-17 07:54:38.006621400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsiteDataManager.set_favicons_enabled.html 2024-10-30 11:54:54.603358700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsitePolicies.get_autoplay_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsitePolicies.get_autoplay_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WebsitePolicies.get_autoplay_policy.html 2024-09-17 07:54:38.038621200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WebsitePolicies.get_autoplay_policy.html 2024-10-30 11:54:54.639358000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_fullscreen.html 2024-09-17 07:54:38.682616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_fullscreen.html 2024-10-30 11:54:55.259345300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_geometry.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_geometry.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_geometry.html 2024-09-17 07:54:38.682616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_geometry.html 2024-10-30 11:54:55.263345200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_locationbar_visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_locationbar_visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_locationbar_visible.html 2024-09-17 07:54:38.686616700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_locationbar_visible.html 2024-10-30 11:54:55.263345200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_menubar_visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_menubar_visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_menubar_visible.html 2024-09-17 07:54:38.690616600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_menubar_visible.html 2024-10-30 11:54:55.267345200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_resizable.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_resizable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_resizable.html 2024-09-17 07:54:38.690616600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_resizable.html 2024-10-30 11:54:55.271345100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_scrollbars_visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_scrollbars_visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_scrollbars_visible.html 2024-09-17 07:54:38.694616600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_scrollbars_visible.html 2024-10-30 11:54:55.271345100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_statusbar_visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_statusbar_visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_statusbar_visible.html 2024-09-17 07:54:38.698616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_statusbar_visible.html 2024-10-30 11:54:55.275345000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_toolbar_visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_toolbar_visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/method.WindowProperties.get_toolbar_visible.html 2024-09-17 07:54:38.698616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/method.WindowProperties.get_toolbar_visible.html 2024-10-30 11:54:55.279344800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/migrating-to-webkitgtk-6.0.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/migrating-to-webkitgtk-6.0.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/migrating-to-webkitgtk-6.0.html 2024-09-17 07:54:33.734651800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/migrating-to-webkitgtk-6.0.html 2024-10-30 11:54:50.791436700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -95,7 +95,7 @@

Upgrade to libsoup 3

libsoup 2 and libsoup 3 cannot be linked together. If your application currently uses webkit2gtk-4.0, you must first port to webkit2gtk-4.1 by eliminating use -of libsoup 2. See Migrating from libsoup 2 +of libsoup 2. See Migrating from libsoup 2 for guidance on this. After first migrating to webkit2gtk-4.1, then it is time to start looking into webkitgtk-6.0.

Stop Using Deprecated APIs

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.AutomationSession.id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.AutomationSession.id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.AutomationSession.id.html 2024-09-17 07:54:34.802644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.AutomationSession.id.html 2024-10-30 11:54:51.959412800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.ColorChooserRequest.rgba.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.ColorChooserRequest.rgba.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.ColorChooserRequest.rgba.html 2024-09-17 07:54:35.042642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.ColorChooserRequest.rgba.html 2024-10-30 11:54:52.103409800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.allow-overwrite.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.allow-overwrite.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.allow-overwrite.html 2024-09-17 07:54:35.594638600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.allow-overwrite.html 2024-10-30 11:54:52.379404300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.destination.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.destination.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.destination.html 2024-09-17 07:54:35.598638500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.destination.html 2024-10-30 11:54:52.383404000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.estimated-progress.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.estimated-progress.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.estimated-progress.html 2024-09-17 07:54:35.602638500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.estimated-progress.html 2024-10-30 11:54:52.383404000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Download.response.html 2024-09-17 07:54:35.602638500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Download.response.html 2024-10-30 11:54:52.383404000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.EditorState.typing-attributes.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.EditorState.typing-attributes.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.EditorState.typing-attributes.html 2024-09-17 07:54:35.690637800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.EditorState.typing-attributes.html 2024-10-30 11:54:52.435403000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.filter.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.filter.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.filter.html 2024-09-17 07:54:35.774637200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.filter.html 2024-10-30 11:54:52.611399400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.mime-types.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.mime-types.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.mime-types.html 2024-09-17 07:54:35.778637200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.mime-types.html 2024-10-30 11:54:52.611399400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.select-multiple.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.select-multiple.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.select-multiple.html 2024-09-17 07:54:35.778637200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.select-multiple.html 2024-10-30 11:54:52.611399400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.selected-files.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.selected-files.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FileChooserRequest.selected-files.html 2024-09-17 07:54:35.782637100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FileChooserRequest.selected-files.html 2024-10-30 11:54:52.615399400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.max-match-count.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.max-match-count.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.max-match-count.html 2024-09-17 07:54:35.842636800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.max-match-count.html 2024-10-30 11:54:52.663398300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.options.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.options.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.options.html 2024-09-17 07:54:35.846636800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.options.html 2024-10-30 11:54:52.663398300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.text.html 2024-09-17 07:54:35.846636800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.text.html 2024-10-30 11:54:52.667398200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.web-view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.web-view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.FindController.web-view.html 2024-09-17 07:54:35.850636700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.FindController.web-view.html 2024-10-30 11:54:52.667398200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.GeolocationManager.enable-high-accuracy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.GeolocationManager.enable-high-accuracy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.GeolocationManager.enable-high-accuracy.html 2024-09-17 07:54:35.934636000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.GeolocationManager.enable-high-accuracy.html 2024-10-30 11:54:52.723397300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.context.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.context.html 2024-09-17 07:54:36.042635200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.context.html 2024-10-30 11:54:52.807395500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.image-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.image-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.image-uri.html 2024-09-17 07:54:36.046635400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.image-uri.html 2024-10-30 11:54:52.807395500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.link-label.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.link-label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.link-label.html 2024-09-17 07:54:36.046635400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.link-label.html 2024-10-30 11:54:52.811395400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.link-title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.link-title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.link-title.html 2024-09-17 07:54:36.046635400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.link-title.html 2024-10-30 11:54:52.811395400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.link-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.link-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.link-uri.html 2024-09-17 07:54:36.050635300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.link-uri.html 2024-10-30 11:54:52.811395400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.media-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.media-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.HitTestResult.media-uri.html 2024-09-17 07:54:36.050635300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.HitTestResult.media-uri.html 2024-10-30 11:54:52.815395400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.InputMethodContext.input-hints.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.InputMethodContext.input-hints.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.InputMethodContext.input-hints.html 2024-09-17 07:54:36.154634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.InputMethodContext.input-hints.html 2024-10-30 11:54:52.895393600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.InputMethodContext.input-purpose.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.InputMethodContext.input-purpose.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.InputMethodContext.input-purpose.html 2024-09-17 07:54:36.154634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.InputMethodContext.input-purpose.html 2024-10-30 11:54:52.899393600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NavigationPolicyDecision.navigation-action.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NavigationPolicyDecision.navigation-action.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NavigationPolicyDecision.navigation-action.html 2024-09-17 07:54:36.234634000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NavigationPolicyDecision.navigation-action.html 2024-10-30 11:54:52.975392000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NetworkSession.cache-directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NetworkSession.cache-directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NetworkSession.cache-directory.html 2024-09-17 07:54:36.358633000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NetworkSession.cache-directory.html 2024-10-30 11:54:53.063390300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NetworkSession.data-directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NetworkSession.data-directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NetworkSession.data-directory.html 2024-09-17 07:54:36.362633000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NetworkSession.data-directory.html 2024-10-30 11:54:53.063390300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NetworkSession.is-ephemeral.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NetworkSession.is-ephemeral.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.NetworkSession.is-ephemeral.html 2024-09-17 07:54:36.362633000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.NetworkSession.is-ephemeral.html 2024-10-30 11:54:53.063390300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.body.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.body.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.body.html 2024-09-17 07:54:36.414632600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.body.html 2024-10-30 11:54:53.099389600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.id.html 2024-09-17 07:54:36.414632600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.id.html 2024-10-30 11:54:53.103389500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.tag.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.tag.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.tag.html 2024-09-17 07:54:36.418632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.tag.html 2024-10-30 11:54:53.103389500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Notification.title.html 2024-09-17 07:54:36.418632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Notification.title.html 2024-10-30 11:54:53.103389500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.PrintOperation.page-setup.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.PrintOperation.page-setup.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.PrintOperation.page-setup.html 2024-09-17 07:54:36.618631100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.PrintOperation.page-setup.html 2024-10-30 11:54:53.267386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.PrintOperation.print-settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.PrintOperation.print-settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.PrintOperation.print-settings.html 2024-09-17 07:54:36.618631100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.PrintOperation.print-settings.html 2024-10-30 11:54:53.267386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.PrintOperation.web-view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.PrintOperation.web-view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.PrintOperation.web-view.html 2024-09-17 07:54:36.622631000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.PrintOperation.web-view.html 2024-10-30 11:54:53.267386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.request.html 2024-09-17 07:54:36.670631000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.request.html 2024-10-30 11:54:53.311385200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.response.html 2024-09-17 07:54:36.674630900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.ResponsePolicyDecision.response.html 2024-10-30 11:54:53.311385200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-file-access-from-file-urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-file-access-from-file-urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-file-access-from-file-urls.html 2024-09-17 07:54:37.186627100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-file-access-from-file-urls.html 2024-10-30 11:54:53.799375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-modal-dialogs.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-modal-dialogs.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-modal-dialogs.html 2024-09-17 07:54:37.190627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-modal-dialogs.html 2024-10-30 11:54:53.803375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-top-navigation-to-data-urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-top-navigation-to-data-urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-top-navigation-to-data-urls.html 2024-09-17 07:54:37.190627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-top-navigation-to-data-urls.html 2024-10-30 11:54:53.803375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-universal-access-from-file-urls.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-universal-access-from-file-urls.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.allow-universal-access-from-file-urls.html 2024-09-17 07:54:37.194627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.allow-universal-access-from-file-urls.html 2024-10-30 11:54:53.807375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.auto-load-images.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.auto-load-images.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.auto-load-images.html 2024-09-17 07:54:37.194627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.auto-load-images.html 2024-10-30 11:54:53.807375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.cursive-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.cursive-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.cursive-font-family.html 2024-09-17 07:54:37.194627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.cursive-font-family.html 2024-10-30 11:54:53.807375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-charset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-charset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-charset.html 2024-09-17 07:54:37.198627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-charset.html 2024-10-30 11:54:53.807375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-font-family.html 2024-09-17 07:54:37.198627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-font-family.html 2024-10-30 11:54:53.811375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-font-size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-font-size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-font-size.html 2024-09-17 07:54:37.198627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-font-size.html 2024-10-30 11:54:53.811375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-monospace-font-size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-monospace-font-size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.default-monospace-font-size.html 2024-09-17 07:54:37.198627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.default-monospace-font-size.html 2024-10-30 11:54:53.811375000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.disable-web-security.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.disable-web-security.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.disable-web-security.html 2024-09-17 07:54:37.202627200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.disable-web-security.html 2024-10-30 11:54:53.815374900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.draw-compositing-indicators.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.draw-compositing-indicators.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.draw-compositing-indicators.html 2024-09-17 07:54:37.202627200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.draw-compositing-indicators.html 2024-10-30 11:54:53.815374900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-2d-canvas-acceleration.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-2d-canvas-acceleration.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-2d-canvas-acceleration.html 2024-09-17 07:54:37.202627200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-2d-canvas-acceleration.html 2024-10-30 11:54:53.815374900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-back-forward-navigation-gestures.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-back-forward-navigation-gestures.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-back-forward-navigation-gestures.html 2024-09-17 07:54:37.206627100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-back-forward-navigation-gestures.html 2024-10-30 11:54:53.815374900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-caret-browsing.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-caret-browsing.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-caret-browsing.html 2024-09-17 07:54:37.206627100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-caret-browsing.html 2024-10-30 11:54:53.819374800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-developer-extras.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-developer-extras.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-developer-extras.html 2024-09-17 07:54:37.206627100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-developer-extras.html 2024-10-30 11:54:53.819374800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-dns-prefetching.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-dns-prefetching.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-dns-prefetching.html 2024-09-17 07:54:37.210627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-dns-prefetching.html 2024-10-30 11:54:53.819374800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-encrypted-media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-encrypted-media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-encrypted-media.html 2024-09-17 07:54:37.210627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-encrypted-media.html 2024-10-30 11:54:53.823374700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-fullscreen.html 2024-09-17 07:54:37.210627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-fullscreen.html 2024-10-30 11:54:53.823374700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-html5-database.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-html5-database.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-html5-database.html 2024-09-17 07:54:37.210627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-html5-database.html 2024-10-30 11:54:53.823374700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-html5-local-storage.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-html5-local-storage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-html5-local-storage.html 2024-09-17 07:54:37.214627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-html5-local-storage.html 2024-10-30 11:54:53.827374700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-hyperlink-auditing.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-hyperlink-auditing.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-hyperlink-auditing.html 2024-09-17 07:54:37.214627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-hyperlink-auditing.html 2024-10-30 11:54:53.827374700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-javascript-markup.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-javascript-markup.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-javascript-markup.html 2024-09-17 07:54:37.218627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-javascript-markup.html 2024-10-30 11:54:53.831374400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-javascript.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-javascript.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-javascript.html 2024-09-17 07:54:37.214627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-javascript.html 2024-10-30 11:54:53.827374700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-media-capabilities.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-media-capabilities.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-media-capabilities.html 2024-09-17 07:54:37.222627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-media-capabilities.html 2024-10-30 11:54:53.831374400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-media-stream.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-media-stream.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-media-stream.html 2024-09-17 07:54:37.222627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-media-stream.html 2024-10-30 11:54:53.835374400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-media.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-media.html 2024-09-17 07:54:37.218627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-media.html 2024-10-30 11:54:53.831374400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-mediasource.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-mediasource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-mediasource.html 2024-09-17 07:54:37.222627000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-mediasource.html 2024-10-30 11:54:53.835374400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-mock-capture-devices.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-mock-capture-devices.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-mock-capture-devices.html 2024-09-17 07:54:37.226626900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-mock-capture-devices.html 2024-10-30 11:54:53.835374400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-offline-web-application-cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-offline-web-application-cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-offline-web-application-cache.html 2024-09-17 07:54:37.226626900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-offline-web-application-cache.html 2024-10-30 11:54:53.839374300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-page-cache.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-page-cache.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-page-cache.html 2024-09-17 07:54:37.226626900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-page-cache.html 2024-10-30 11:54:53.839374300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-resizable-text-areas.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-resizable-text-areas.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-resizable-text-areas.html 2024-09-17 07:54:37.230626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-resizable-text-areas.html 2024-10-30 11:54:53.839374300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-site-specific-quirks.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-site-specific-quirks.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-site-specific-quirks.html 2024-09-17 07:54:37.230626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-site-specific-quirks.html 2024-10-30 11:54:53.843374300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-smooth-scrolling.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-smooth-scrolling.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-smooth-scrolling.html 2024-09-17 07:54:37.230626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-smooth-scrolling.html 2024-10-30 11:54:53.843374300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-spatial-navigation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-spatial-navigation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-spatial-navigation.html 2024-09-17 07:54:37.234626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-spatial-navigation.html 2024-10-30 11:54:53.843374300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-tabs-to-links.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-tabs-to-links.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-tabs-to-links.html 2024-09-17 07:54:37.234626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-tabs-to-links.html 2024-10-30 11:54:53.847374200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-webaudio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-webaudio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-webaudio.html 2024-09-17 07:54:37.234626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-webaudio.html 2024-10-30 11:54:53.847374200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-webgl.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-webgl.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-webgl.html 2024-09-17 07:54:37.238626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-webgl.html 2024-10-30 11:54:53.847374200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-webrtc.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-webrtc.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-webrtc.html 2024-09-17 07:54:37.238626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-webrtc.html 2024-10-30 11:54:53.851374100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-write-console-messages-to-stdout.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-write-console-messages-to-stdout.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.enable-write-console-messages-to-stdout.html 2024-09-17 07:54:37.238626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.enable-write-console-messages-to-stdout.html 2024-10-30 11:54:53.851374100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.fantasy-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.fantasy-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.fantasy-font-family.html 2024-09-17 07:54:37.242626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.fantasy-font-family.html 2024-10-30 11:54:53.851374100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.hardware-acceleration-policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.hardware-acceleration-policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.hardware-acceleration-policy.html 2024-09-17 07:54:37.242626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.hardware-acceleration-policy.html 2024-10-30 11:54:53.855374000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.javascript-can-access-clipboard.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.javascript-can-access-clipboard.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.javascript-can-access-clipboard.html 2024-09-17 07:54:37.242626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.javascript-can-access-clipboard.html 2024-10-30 11:54:53.855374000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.javascript-can-open-windows-automatically.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.javascript-can-open-windows-automatically.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.javascript-can-open-windows-automatically.html 2024-09-17 07:54:37.246626900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.javascript-can-open-windows-automatically.html 2024-10-30 11:54:53.855374000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.load-icons-ignoring-image-load-setting.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.load-icons-ignoring-image-load-setting.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.load-icons-ignoring-image-load-setting.html 2024-09-17 07:54:37.246626900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.load-icons-ignoring-image-load-setting.html 2024-10-30 11:54:53.859374000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.media-content-types-requiring-hardware-support.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.media-content-types-requiring-hardware-support.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.media-content-types-requiring-hardware-support.html 2024-09-17 07:54:37.246626900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.media-content-types-requiring-hardware-support.html 2024-10-30 11:54:53.859374000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.media-playback-allows-inline.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.media-playback-allows-inline.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.media-playback-allows-inline.html 2024-09-17 07:54:37.250626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.media-playback-allows-inline.html 2024-10-30 11:54:53.859374000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.media-playback-requires-user-gesture.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.media-playback-requires-user-gesture.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.media-playback-requires-user-gesture.html 2024-09-17 07:54:37.250626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.media-playback-requires-user-gesture.html 2024-10-30 11:54:53.863373800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.minimum-font-size.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.minimum-font-size.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.minimum-font-size.html 2024-09-17 07:54:37.250626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.minimum-font-size.html 2024-10-30 11:54:53.863373800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.monospace-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.monospace-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.monospace-font-family.html 2024-09-17 07:54:37.254626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.monospace-font-family.html 2024-10-30 11:54:53.863373800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.pictograph-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.pictograph-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.pictograph-font-family.html 2024-09-17 07:54:37.254626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.pictograph-font-family.html 2024-10-30 11:54:53.863373800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.print-backgrounds.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.print-backgrounds.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.print-backgrounds.html 2024-09-17 07:54:37.254626800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.print-backgrounds.html 2024-10-30 11:54:53.867373700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.sans-serif-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.sans-serif-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.sans-serif-font-family.html 2024-09-17 07:54:37.258626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.sans-serif-font-family.html 2024-10-30 11:54:53.867373700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.serif-font-family.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.serif-font-family.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.serif-font-family.html 2024-09-17 07:54:37.258626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.serif-font-family.html 2024-10-30 11:54:53.867373700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.user-agent.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.user-agent.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.user-agent.html 2024-09-17 07:54:37.258626700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.user-agent.html 2024-10-30 11:54:53.871373700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.zoom-text-only.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.zoom-text-only.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.Settings.zoom-text-only.html 2024-09-17 07:54:37.262626600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.Settings.zoom-text-only.html 2024-10-30 11:54:53.871373700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -225,7 +225,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIRequest.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIRequest.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIRequest.uri.html 2024-09-17 07:54:37.302626400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIRequest.uri.html 2024-10-30 11:54:53.907373000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.content-length.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.content-length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.content-length.html 2024-09-17 07:54:37.342626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.content-length.html 2024-10-30 11:54:53.943372200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.http-headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.http-headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.http-headers.html 2024-09-17 07:54:37.342626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.http-headers.html 2024-10-30 11:54:53.943372200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.mime-type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.mime-type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.mime-type.html 2024-09-17 07:54:37.346626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.mime-type.html 2024-10-30 11:54:53.943372200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.status-code.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.status-code.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.status-code.html 2024-09-17 07:54:37.346626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.status-code.html 2024-10-30 11:54:53.943372200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.suggested-filename.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.suggested-filename.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.suggested-filename.html 2024-09-17 07:54:37.346626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.suggested-filename.html 2024-10-30 11:54:53.947372200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URIResponse.uri.html 2024-09-17 07:54:37.346626000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URIResponse.uri.html 2024-10-30 11:54:53.947372200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream-length.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream-length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream-length.html 2024-09-17 07:54:37.434625400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream-length.html 2024-10-30 11:54:54.035370300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream.html 2024-09-17 07:54:37.434625400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.URISchemeResponse.stream.html 2024-10-30 11:54:54.035370300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserContentFilterStore.path.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserContentFilterStore.path.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserContentFilterStore.path.html 2024-09-17 07:54:37.510625000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserContentFilterStore.path.html 2024-10-30 11:54:54.111369000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-audio-device.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-audio-device.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-audio-device.html 2024-09-17 07:54:37.614624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-audio-device.html 2024-10-30 11:54:54.215366600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-video-device.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-video-device.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-video-device.html 2024-09-17 07:54:37.618624200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMediaPermissionRequest.is-for-video-device.html 2024-10-30 11:54:54.215366600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMessage.fd-list.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMessage.fd-list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMessage.fd-list.html 2024-09-17 07:54:37.662624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMessage.fd-list.html 2024-10-30 11:54:54.259365800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMessage.name.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMessage.name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMessage.name.html 2024-09-17 07:54:37.662624000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMessage.name.html 2024-10-30 11:54:54.263365700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMessage.parameters.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMessage.parameters.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.UserMessage.parameters.html 2024-09-17 07:54:37.666623800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.UserMessage.parameters.html 2024-10-30 11:54:54.263365700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebContext.memory-pressure-settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebContext.memory-pressure-settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebContext.memory-pressure-settings.html 2024-09-17 07:54:37.762623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebContext.memory-pressure-settings.html 2024-10-30 11:54:54.359363800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -117,7 +117,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebContext.time-zone-override.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebContext.time-zone-override.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebContext.time-zone-override.html 2024-09-17 07:54:37.762623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebContext.time-zone-override.html 2024-10-30 11:54:54.359363800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -117,7 +117,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebInspector.attached-height.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebInspector.attached-height.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebInspector.attached-height.html 2024-09-17 07:54:37.826622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebInspector.attached-height.html 2024-10-30 11:54:54.415362600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebInspector.can-attach.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebInspector.can-attach.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebInspector.can-attach.html 2024-09-17 07:54:37.826622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebInspector.can-attach.html 2024-10-30 11:54:54.419362500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebInspector.inspected-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebInspector.inspected-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebInspector.inspected-uri.html 2024-09-17 07:54:37.826622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebInspector.inspected-uri.html 2024-10-30 11:54:54.419362500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebResource.response.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebResource.response.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebResource.response.html 2024-09-17 07:54:37.886622200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebResource.response.html 2024-10-30 11:54:54.471361400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebResource.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebResource.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebResource.uri.html 2024-09-17 07:54:37.886622200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebResource.uri.html 2024-10-30 11:54:54.475361300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.automation-presentation-type.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.automation-presentation-type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.automation-presentation-type.html 2024-09-17 07:54:38.438618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.automation-presentation-type.html 2024-10-30 11:54:55.023350200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.camera-capture-state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.camera-capture-state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.camera-capture-state.html 2024-09-17 07:54:38.438618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.camera-capture-state.html 2024-10-30 11:54:55.027350000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.default-content-security-policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.default-content-security-policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.default-content-security-policy.html 2024-09-17 07:54:38.442618400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.default-content-security-policy.html 2024-10-30 11:54:55.027350000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.display-capture-state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.display-capture-state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.display-capture-state.html 2024-09-17 07:54:38.442618400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.display-capture-state.html 2024-10-30 11:54:55.031350000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.editable.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.editable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.editable.html 2024-09-17 07:54:38.446618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.editable.html 2024-10-30 11:54:55.031350000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -189,6 +189,8 @@ Default valueFALSE + Getter methodwebkit_web_view_is_editable() + Setter methodwebkit_web_view_set_editable() diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.estimated-load-progress.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.estimated-load-progress.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.estimated-load-progress.html 2024-09-17 07:54:38.446618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.estimated-load-progress.html 2024-10-30 11:54:55.035349800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.favicon.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.favicon.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.favicon.html 2024-09-17 07:54:38.446618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.favicon.html 2024-10-30 11:54:55.035349800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-controlled-by-automation.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-controlled-by-automation.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-controlled-by-automation.html 2024-09-17 07:54:38.450618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-controlled-by-automation.html 2024-10-30 11:54:55.035349800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-loading.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-loading.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-loading.html 2024-09-17 07:54:38.450618300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-loading.html 2024-10-30 11:54:55.039349800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-muted.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-muted.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-muted.html 2024-09-17 07:54:38.454618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-muted.html 2024-10-30 11:54:55.039349800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-playing-audio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-playing-audio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-playing-audio.html 2024-09-17 07:54:38.454618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-playing-audio.html 2024-10-30 11:54:55.043349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-web-process-responsive.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-web-process-responsive.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.is-web-process-responsive.html 2024-09-17 07:54:38.458618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.is-web-process-responsive.html 2024-10-30 11:54:55.043349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.microphone-capture-state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.microphone-capture-state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.microphone-capture-state.html 2024-09-17 07:54:38.458618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.microphone-capture-state.html 2024-10-30 11:54:55.043349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.network-session.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.network-session.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.network-session.html 2024-09-17 07:54:38.458618200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.network-session.html 2024-10-30 11:54:55.047349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.page-id.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.page-id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.page-id.html 2024-09-17 07:54:38.462618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.page-id.html 2024-10-30 11:54:55.047349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.related-view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.related-view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.related-view.html 2024-09-17 07:54:38.462618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.related-view.html 2024-10-30 11:54:55.047349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.settings.html 2024-09-17 07:54:38.462618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.settings.html 2024-10-30 11:54:55.047349700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.title.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.title.html 2024-09-17 07:54:38.466618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.title.html 2024-10-30 11:54:55.051349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.uri.html 2024-09-17 07:54:38.466618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.uri.html 2024-10-30 11:54:55.051349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.user-content-manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.user-content-manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.user-content-manager.html 2024-09-17 07:54:38.466618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.user-content-manager.html 2024-10-30 11:54:55.051349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.web-context.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.web-context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.web-context.html 2024-09-17 07:54:38.466618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.web-context.html 2024-10-30 11:54:55.055349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.web-extension-mode.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.web-extension-mode.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.web-extension-mode.html 2024-09-17 07:54:38.470618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.web-extension-mode.html 2024-10-30 11:54:55.055349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.website-policies.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.website-policies.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.website-policies.html 2024-09-17 07:54:38.470618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.website-policies.html 2024-10-30 11:54:55.055349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.zoom-level.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.zoom-level.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebView.zoom-level.html 2024-09-17 07:54:38.470618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebView.zoom-level.html 2024-10-30 11:54:55.055349600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-cache-directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-cache-directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-cache-directory.html 2024-09-17 07:54:38.006621400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-cache-directory.html 2024-10-30 11:54:54.603358700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-data-directory.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-data-directory.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-data-directory.html 2024-09-17 07:54:38.006621400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.base-data-directory.html 2024-10-30 11:54:54.603358700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.is-ephemeral.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.is-ephemeral.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.is-ephemeral.html 2024-09-17 07:54:38.010621300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.is-ephemeral.html 2024-10-30 11:54:54.607358700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.origin-storage-ratio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.origin-storage-ratio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.origin-storage-ratio.html 2024-09-17 07:54:38.010621300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.origin-storage-ratio.html 2024-10-30 11:54:54.607358700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.total-storage-ratio.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.total-storage-ratio.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsiteDataManager.total-storage-ratio.html 2024-09-17 07:54:38.010621300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsiteDataManager.total-storage-ratio.html 2024-10-30 11:54:54.607358700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsitePolicies.autoplay.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsitePolicies.autoplay.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WebsitePolicies.autoplay.html 2024-09-17 07:54:38.042621100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WebsitePolicies.autoplay.html 2024-10-30 11:54:54.639358000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.fullscreen.html 2024-09-17 07:54:38.702616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.fullscreen.html 2024-10-30 11:54:55.279344800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.geometry.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.geometry.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.geometry.html 2024-09-17 07:54:38.702616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.geometry.html 2024-10-30 11:54:55.279344800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.locationbar-visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.locationbar-visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.locationbar-visible.html 2024-09-17 07:54:38.702616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.locationbar-visible.html 2024-10-30 11:54:55.279344800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.menubar-visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.menubar-visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.menubar-visible.html 2024-09-17 07:54:38.702616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.menubar-visible.html 2024-10-30 11:54:55.283344700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.resizable.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.resizable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.resizable.html 2024-09-17 07:54:38.702616500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.resizable.html 2024-10-30 11:54:55.283344700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.scrollbars-visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.scrollbars-visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.scrollbars-visible.html 2024-09-17 07:54:38.706616400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.scrollbars-visible.html 2024-10-30 11:54:55.283344700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.statusbar-visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.statusbar-visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.statusbar-visible.html 2024-09-17 07:54:38.706616400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.statusbar-visible.html 2024-10-30 11:54:55.283344700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.toolbar-visible.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.toolbar-visible.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/property.WindowProperties.toolbar-visible.html 2024-09-17 07:54:38.706616400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/property.WindowProperties.toolbar-visible.html 2024-10-30 11:54:55.283344700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.authenticated.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.authenticated.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.authenticated.html 2024-09-17 07:54:34.522646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.authenticated.html 2024-10-30 11:54:51.607420000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.cancelled.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.cancelled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.cancelled.html 2024-09-17 07:54:34.526646100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AuthenticationRequest.cancelled.html 2024-10-30 11:54:51.607420000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AutomationSession.create-web-view.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AutomationSession.create-web-view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AutomationSession.create-web-view.html 2024-09-17 07:54:34.806644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AutomationSession.create-web-view.html 2024-10-30 11:54:51.963412800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AutomationSession.will-close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AutomationSession.will-close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.AutomationSession.will-close.html 2024-09-17 07:54:34.806644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.AutomationSession.will-close.html 2024-10-30 11:54:51.967412700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.BackForwardList.changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.BackForwardList.changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.BackForwardList.changed.html 2024-09-17 07:54:34.934643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.BackForwardList.changed.html 2024-10-30 11:54:52.019411600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.ColorChooserRequest.finished.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.ColorChooserRequest.finished.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.ColorChooserRequest.finished.html 2024-09-17 07:54:35.046642300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.ColorChooserRequest.finished.html 2024-10-30 11:54:52.103409800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.CookieManager.changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.CookieManager.changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.CookieManager.changed.html 2024-09-17 07:54:35.318640500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.CookieManager.changed.html 2024-10-30 11:54:52.303405800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.created-destination.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.created-destination.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.created-destination.html 2024-09-17 07:54:35.606638400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.created-destination.html 2024-10-30 11:54:52.387404000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.decide-destination.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.decide-destination.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.decide-destination.html 2024-09-17 07:54:35.618638300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.decide-destination.html 2024-10-30 11:54:52.391404000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.failed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.failed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.failed.html 2024-09-17 07:54:35.626638200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.failed.html 2024-10-30 11:54:52.395403900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.finished.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.finished.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.finished.html 2024-09-17 07:54:35.630638100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.finished.html 2024-10-30 11:54:52.395403900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.received-data.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.received-data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Download.received-data.html 2024-09-17 07:54:35.634638300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Download.received-data.html 2024-10-30 11:54:52.399403800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.EditorState.changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.EditorState.changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.EditorState.changed.html 2024-09-17 07:54:35.694637800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.EditorState.changed.html 2024-10-30 11:54:52.435403000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FaviconDatabase.favicon-changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FaviconDatabase.favicon-changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FaviconDatabase.favicon-changed.html 2024-09-17 07:54:35.734637500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FaviconDatabase.favicon-changed.html 2024-10-30 11:54:52.567400500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FindController.counted-matches.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FindController.counted-matches.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FindController.counted-matches.html 2024-09-17 07:54:35.854636700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FindController.counted-matches.html 2024-10-30 11:54:52.667398200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FindController.failed-to-find-text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FindController.failed-to-find-text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FindController.failed-to-find-text.html 2024-09-17 07:54:35.858636600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FindController.failed-to-find-text.html 2024-10-30 11:54:52.671398200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FindController.found-text.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FindController.found-text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.FindController.found-text.html 2024-09-17 07:54:35.866636500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.FindController.found-text.html 2024-10-30 11:54:52.675398000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.GeolocationManager.start.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.GeolocationManager.start.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.GeolocationManager.start.html 2024-09-17 07:54:35.938636000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.GeolocationManager.start.html 2024-10-30 11:54:52.727397000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.GeolocationManager.stop.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.GeolocationManager.stop.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.GeolocationManager.stop.html 2024-09-17 07:54:35.942636000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.GeolocationManager.stop.html 2024-10-30 11:54:52.727397000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.committed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.committed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.committed.html 2024-09-17 07:54:36.158634400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.committed.html 2024-10-30 11:54:52.899393600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.delete-surrounding.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.delete-surrounding.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.delete-surrounding.html 2024-09-17 07:54:36.162634400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.delete-surrounding.html 2024-10-30 11:54:52.903393500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-changed.html 2024-09-17 07:54:36.166634300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-changed.html 2024-10-30 11:54:52.907393500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-finished.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-finished.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-finished.html 2024-09-17 07:54:36.166634300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-finished.html 2024-10-30 11:54:52.907393500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-started.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-started.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-started.html 2024-09-17 07:54:36.166634300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.InputMethodContext.preedit-started.html 2024-10-30 11:54:52.907393500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.NetworkSession.download-started.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.NetworkSession.download-started.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.NetworkSession.download-started.html 2024-09-17 07:54:36.370633000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.NetworkSession.download-started.html 2024-10-30 11:54:53.067390200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Notification.clicked.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Notification.clicked.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Notification.clicked.html 2024-09-17 07:54:36.422632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Notification.clicked.html 2024-10-30 11:54:53.103389500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Notification.closed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Notification.closed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.Notification.closed.html 2024-09-17 07:54:36.422632700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.Notification.closed.html 2024-10-30 11:54:53.107389200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.OptionMenu.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.OptionMenu.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.OptionMenu.close.html 2024-09-17 07:54:36.498632000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.OptionMenu.close.html 2024-10-30 11:54:53.167388000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.PrintOperation.failed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.PrintOperation.failed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.PrintOperation.failed.html 2024-09-17 07:54:36.626631300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.PrintOperation.failed.html 2024-10-30 11:54:53.271386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.PrintOperation.finished.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.PrintOperation.finished.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.PrintOperation.finished.html 2024-09-17 07:54:36.630631200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.PrintOperation.finished.html 2024-10-30 11:54:53.271386000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-received.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-received.html 2024-09-17 07:54:37.586624400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-received.html 2024-10-30 11:54:54.187367200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-with-reply-received.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-with-reply-received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-with-reply-received.html 2024-09-17 07:54:37.590624300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.UserContentManager.script-message-with-reply-received.html 2024-10-30 11:54:54.195367000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.automation-started.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.automation-started.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.automation-started.html 2024-09-17 07:54:37.766623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.automation-started.html 2024-10-30 11:54:54.363363700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -128,7 +128,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.initialize-notification-permissions.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.initialize-notification-permissions.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.initialize-notification-permissions.html 2024-09-17 07:54:37.770623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.initialize-notification-permissions.html 2024-10-30 11:54:54.367363500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -127,7 +127,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.initialize-web-process-extensions.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.initialize-web-process-extensions.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.initialize-web-process-extensions.html 2024-09-17 07:54:37.774623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.initialize-web-process-extensions.html 2024-10-30 11:54:54.367363500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.user-message-received.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.user-message-received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebContext.user-message-received.html 2024-09-17 07:54:37.774623000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebContext.user-message-received.html 2024-10-30 11:54:54.371363400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -128,7 +128,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.attach.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.attach.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.attach.html 2024-09-17 07:54:37.830622700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.attach.html 2024-10-30 11:54:54.423362500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.bring-to-front.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.bring-to-front.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.bring-to-front.html 2024-09-17 07:54:37.834622600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.bring-to-front.html 2024-10-30 11:54:54.427362200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.closed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.closed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.closed.html 2024-09-17 07:54:37.838622600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.closed.html 2024-10-30 11:54:54.427362200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.detach.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.detach.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.detach.html 2024-09-17 07:54:37.842622500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.detach.html 2024-10-30 11:54:54.431362200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.open-window.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.open-window.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebInspector.open-window.html 2024-09-17 07:54:37.846622500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebInspector.open-window.html 2024-10-30 11:54:54.435362000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.failed-with-tls-errors.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.failed-with-tls-errors.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.failed-with-tls-errors.html 2024-09-17 07:54:37.890622100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.failed-with-tls-errors.html 2024-10-30 11:54:54.479361300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.failed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.failed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.failed.html 2024-09-17 07:54:37.886622200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.failed.html 2024-10-30 11:54:54.475361300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.finished.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.finished.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.finished.html 2024-09-17 07:54:37.894622000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.finished.html 2024-10-30 11:54:54.479361300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.sent-request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.sent-request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebResource.sent-request.html 2024-09-17 07:54:37.898622000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebResource.sent-request.html 2024-10-30 11:54:54.483361200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.authenticate.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.authenticate.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.authenticate.html 2024-09-17 07:54:38.478618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.authenticate.html 2024-10-30 11:54:55.063349200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.close.html 2024-09-17 07:54:38.478618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.close.html 2024-10-30 11:54:55.067349200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.context-menu-dismissed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.context-menu-dismissed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.context-menu-dismissed.html 2024-09-17 07:54:38.490618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.context-menu-dismissed.html 2024-10-30 11:54:55.075349000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.context-menu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.context-menu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.context-menu.html 2024-09-17 07:54:38.490618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.context-menu.html 2024-10-30 11:54:55.075349000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.create.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.create.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.create.html 2024-09-17 07:54:38.494618000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.create.html 2024-10-30 11:54:55.079349000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.decide-policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.decide-policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.decide-policy.html 2024-09-17 07:54:38.502617800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.decide-policy.html 2024-10-30 11:54:55.087349000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.enter-fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.enter-fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.enter-fullscreen.html 2024-09-17 07:54:38.506617800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.enter-fullscreen.html 2024-10-30 11:54:55.091348600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.insecure-content-detected.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.insecure-content-detected.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.insecure-content-detected.html 2024-09-17 07:54:38.510617700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.insecure-content-detected.html 2024-10-30 11:54:55.095348600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.leave-fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.leave-fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.leave-fullscreen.html 2024-09-17 07:54:38.514617700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.leave-fullscreen.html 2024-10-30 11:54:55.095348600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.load-changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.load-changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.load-changed.html 2024-09-17 07:54:38.518617600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.load-changed.html 2024-10-30 11:54:55.103348500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.load-failed-with-tls-errors.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.load-failed-with-tls-errors.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.load-failed-with-tls-errors.html 2024-09-17 07:54:38.530617700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.load-failed-with-tls-errors.html 2024-10-30 11:54:55.115348300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.load-failed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.load-failed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.load-failed.html 2024-09-17 07:54:38.526617800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.load-failed.html 2024-10-30 11:54:55.107348400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.mouse-target-changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.mouse-target-changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.mouse-target-changed.html 2024-09-17 07:54:38.538617600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.mouse-target-changed.html 2024-10-30 11:54:55.119348300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.permission-request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.permission-request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.permission-request.html 2024-09-17 07:54:38.546617500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.permission-request.html 2024-10-30 11:54:55.123348000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.print.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.print.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.print.html 2024-09-17 07:54:38.554617400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.print.html 2024-10-30 11:54:55.127348000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.query-permission-state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.query-permission-state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.query-permission-state.html 2024-09-17 07:54:38.558617400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.query-permission-state.html 2024-10-30 11:54:55.131348000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.ready-to-show.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.ready-to-show.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.ready-to-show.html 2024-09-17 07:54:38.558617400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.ready-to-show.html 2024-10-30 11:54:55.135347800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.resource-load-started.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.resource-load-started.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.resource-load-started.html 2024-09-17 07:54:38.562617500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.resource-load-started.html 2024-10-30 11:54:55.139347800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.run-as-modal.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.run-as-modal.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.run-as-modal.html 2024-09-17 07:54:38.566617500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.run-as-modal.html 2024-10-30 11:54:55.143347700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.run-color-chooser.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.run-color-chooser.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.run-color-chooser.html 2024-09-17 07:54:38.574617400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.run-color-chooser.html 2024-10-30 11:54:55.147347700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.run-file-chooser.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.run-file-chooser.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.run-file-chooser.html 2024-09-17 07:54:38.578617300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.run-file-chooser.html 2024-10-30 11:54:55.155347300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.script-dialog.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.script-dialog.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.script-dialog.html 2024-09-17 07:54:38.586617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.script-dialog.html 2024-10-30 11:54:55.159347300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.show-notification.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.show-notification.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.show-notification.html 2024-09-17 07:54:38.590617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.show-notification.html 2024-10-30 11:54:55.163347200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.show-option-menu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.show-option-menu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.show-option-menu.html 2024-09-17 07:54:38.594617100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.show-option-menu.html 2024-10-30 11:54:55.167347200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.submit-form.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.submit-form.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.submit-form.html 2024-09-17 07:54:38.598617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.submit-form.html 2024-10-30 11:54:55.171347100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.user-message-received.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.user-message-received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.user-message-received.html 2024-09-17 07:54:38.602617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.user-message-received.html 2024-10-30 11:54:55.175347000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.web-process-terminated.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.web-process-terminated.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/signal.WebView.web-process-terminated.html 2024-09-17 07:54:38.606617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/signal.WebView.web-process-terminated.html 2024-10-30 11:54:55.179347000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ApplicationInfo.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ApplicationInfo.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ApplicationInfo.html 2024-09-17 07:54:34.202648400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ApplicationInfo.html 2024-10-30 11:54:51.267427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.Credential.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.Credential.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.Credential.html 2024-09-17 07:54:34.390647000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.Credential.html 2024-10-30 11:54:51.463423000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.Feature.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.Feature.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.Feature.html 2024-09-17 07:54:34.466646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.Feature.html 2024-10-30 11:54:51.499422000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.FeatureList.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.FeatureList.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.FeatureList.html 2024-09-17 07:54:34.554645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.FeatureList.html 2024-10-30 11:54:51.539421300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.GeolocationPosition.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.GeolocationPosition.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.GeolocationPosition.html 2024-09-17 07:54:34.574645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.GeolocationPosition.html 2024-10-30 11:54:51.615419900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ITPFirstParty.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ITPFirstParty.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ITPFirstParty.html 2024-09-17 07:54:34.610645500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ITPFirstParty.html 2024-10-30 11:54:51.651419200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ITPThirdParty.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ITPThirdParty.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ITPThirdParty.html 2024-09-17 07:54:34.626645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ITPThirdParty.html 2024-10-30 11:54:51.667418700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.InputMethodUnderline.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.InputMethodUnderline.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.InputMethodUnderline.html 2024-09-17 07:54:34.598645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.InputMethodUnderline.html 2024-10-30 11:54:51.639419300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.MemoryPressureSettings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.MemoryPressureSettings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.MemoryPressureSettings.html 2024-09-17 07:54:34.642645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.MemoryPressureSettings.html 2024-10-30 11:54:51.683418500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.NavigationAction.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.NavigationAction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.NavigationAction.html 2024-09-17 07:54:34.682645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.NavigationAction.html 2024-10-30 11:54:51.723417500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.NetworkProxySettings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.NetworkProxySettings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.NetworkProxySettings.html 2024-09-17 07:54:34.710644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.NetworkProxySettings.html 2024-10-30 11:54:51.747417200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.OptionMenuItem.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.OptionMenuItem.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.OptionMenuItem.html 2024-09-17 07:54:34.726644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.OptionMenuItem.html 2024-10-30 11:54:51.767416700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.PermissionStateQuery.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.PermissionStateQuery.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.PermissionStateQuery.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.PermissionStateQuery.html 2024-10-30 11:54:51.791416200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ScriptDialog.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ScriptDialog.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ScriptDialog.html 2024-09-17 07:54:34.770644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ScriptDialog.html 2024-10-30 11:54:51.807416000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ScriptMessageReply.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ScriptMessageReply.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.ScriptMessageReply.html 2024-09-17 07:54:34.814644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.ScriptMessageReply.html 2024-10-30 11:54:51.831415400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.SecurityOrigin.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.SecurityOrigin.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.SecurityOrigin.html 2024-09-17 07:54:34.830644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.SecurityOrigin.html 2024-10-30 11:54:51.843415300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.UserContentFilter.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.UserContentFilter.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.UserContentFilter.html 2024-09-17 07:54:34.858643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.UserContentFilter.html 2024-10-30 11:54:51.871414700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.UserScript.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.UserScript.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.UserScript.html 2024-09-17 07:54:34.874643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.UserScript.html 2024-10-30 11:54:51.879414300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.UserStyleSheet.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.UserStyleSheet.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.UserStyleSheet.html 2024-09-17 07:54:34.910643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.UserStyleSheet.html 2024-10-30 11:54:51.899414000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.WebViewSessionState.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.WebViewSessionState.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.WebViewSessionState.html 2024-09-17 07:54:34.962643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.WebViewSessionState.html 2024-10-30 11:54:51.943413000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.WebsiteData.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.WebsiteData.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/struct.WebsiteData.html 2024-09-17 07:54:34.942643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/struct.WebsiteData.html 2024-10-30 11:54:51.923413500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.DownloadError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.DownloadError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.DownloadError.quark.html 2024-09-17 07:54:34.190648600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.DownloadError.quark.html 2024-10-30 11:54:51.247427200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.FaviconDatabaseError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.FaviconDatabaseError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.FaviconDatabaseError.quark.html 2024-09-17 07:54:34.234648200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.FaviconDatabaseError.quark.html 2024-10-30 11:54:51.251427200 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.JavascriptError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.JavascriptError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.JavascriptError.quark.html 2024-09-17 07:54:34.238648200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.JavascriptError.quark.html 2024-10-30 11:54:51.255427100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.MediaError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.MediaError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.MediaError.quark.html 2024-09-17 07:54:34.254648000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.MediaError.quark.html 2024-10-30 11:54:51.255427100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.NetworkError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.NetworkError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.NetworkError.quark.html 2024-09-17 07:54:34.346647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.NetworkError.quark.html 2024-10-30 11:54:51.259427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.NetworkSession.get_default.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.NetworkSession.get_default.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.NetworkSession.get_default.html 2024-09-17 07:54:36.274633600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.NetworkSession.get_default.html 2024-10-30 11:54:53.007391500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.NetworkSession.set_memory_pressure_settings.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.NetworkSession.set_memory_pressure_settings.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.NetworkSession.set_memory_pressure_settings.html 2024-09-17 07:54:36.278633600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.NetworkSession.set_memory_pressure_settings.html 2024-10-30 11:54:53.007391500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.PolicyError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.PolicyError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.PolicyError.quark.html 2024-09-17 07:54:34.354647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.PolicyError.quark.html 2024-10-30 11:54:51.263427000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.PrintError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.PrintError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.PrintError.quark.html 2024-09-17 07:54:34.358647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.PrintError.quark.html 2024-10-30 11:54:51.303426300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_pixels.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_pixels.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_pixels.html 2024-09-17 07:54:36.810629800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_pixels.html 2024-10-30 11:54:53.435382600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -131,7 +131,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_points.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_points.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_points.html 2024-09-17 07:54:36.814629800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.font_size_to_points.html 2024-10-30 11:54:53.439382600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -131,7 +131,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.get_all_features.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.get_all_features.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.get_all_features.html 2024-09-17 07:54:36.814629800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.get_all_features.html 2024-10-30 11:54:53.443382500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -131,7 +131,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.get_development_features.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.get_development_features.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.get_development_features.html 2024-09-17 07:54:36.818629700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.get_development_features.html 2024-10-30 11:54:53.443382500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -131,7 +131,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.get_experimental_features.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.get_experimental_features.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.Settings.get_experimental_features.html 2024-09-17 07:54:36.822629700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.Settings.get_experimental_features.html 2024-10-30 11:54:53.447382500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -131,7 +131,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.SnapshotError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.SnapshotError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.SnapshotError.quark.html 2024-09-17 07:54:34.358647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.SnapshotError.quark.html 2024-10-30 11:54:51.311426000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.UserContentFilterError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.UserContentFilterError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.UserContentFilterError.quark.html 2024-09-17 07:54:34.362647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.UserContentFilterError.quark.html 2024-10-30 11:54:51.375424600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.UserMessageError.quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.UserMessageError.quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.UserMessageError.quark.html 2024-09-17 07:54:34.366647200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.UserMessageError.quark.html 2024-10-30 11:54:51.443423300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.WebContext.get_default.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.WebContext.get_default.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/type_func.WebContext.get_default.html 2024-09-17 07:54:37.694623500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/type_func.WebContext.get_default.html 2024-10-30 11:54:54.291365100 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -123,7 +123,7 @@ Description - [src] + [src] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.committed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.committed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.committed.html 2024-09-17 07:54:36.170634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.committed.html 2024-10-30 11:54:52.907393500 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.delete_surrounding.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.delete_surrounding.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.delete_surrounding.html 2024-09-17 07:54:36.170634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.delete_surrounding.html 2024-10-30 11:54:52.911393400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.filter_key_event.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.filter_key_event.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.filter_key_event.html 2024-09-17 07:54:36.174634500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.filter_key_event.html 2024-10-30 11:54:52.915393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.get_preedit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.get_preedit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.get_preedit.html 2024-09-17 07:54:36.178634400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.get_preedit.html 2024-10-30 11:54:52.919393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_cursor_area.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_cursor_area.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_cursor_area.html 2024-09-17 07:54:36.182634400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_cursor_area.html 2024-10-30 11:54:52.923393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_in.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_in.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_in.html 2024-09-17 07:54:36.186634300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_in.html 2024-10-30 11:54:52.923393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_out.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_out.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_out.html 2024-09-17 07:54:36.190634300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_focus_out.html 2024-10-30 11:54:52.927393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_surrounding.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_surrounding.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_surrounding.html 2024-09-17 07:54:36.194634200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.notify_surrounding.html 2024-10-30 11:54:52.931393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_changed.html 2024-09-17 07:54:36.194634200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_changed.html 2024-10-30 11:54:52.931393000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_finished.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_finished.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_finished.html 2024-09-17 07:54:36.194634200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_finished.html 2024-10-30 11:54:52.935392900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_started.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_started.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_started.html 2024-09-17 07:54:36.198634100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.preedit_started.html 2024-10-30 11:54:52.935392900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.reset.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.reset.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.reset.html 2024-09-17 07:54:36.198634100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.reset.html 2024-10-30 11:54:52.935392900 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.set_enable_preedit.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.set_enable_preedit.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.set_enable_preedit.html 2024-09-17 07:54:36.202634000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.InputMethodContext.set_enable_preedit.html 2024-10-30 11:54:52.939392800 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.allow.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.allow.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.allow.html 2024-09-17 07:54:34.458646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.allow.html 2024-10-30 11:54:51.435423400 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.deny.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.deny.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.deny.html 2024-09-17 07:54:34.458646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.PermissionRequest.deny.html 2024-10-30 11:54:51.439423300 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.authenticate.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.authenticate.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.authenticate.html 2024-09-17 07:54:38.606617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.authenticate.html 2024-10-30 11:54:55.179347000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.close.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.close.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.close.html 2024-09-17 07:54:38.606617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.close.html 2024-10-30 11:54:55.179347000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu.html 2024-10-30 11:54:55.179347000 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu_dismissed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu_dismissed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu_dismissed.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.context_menu_dismissed.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.create.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.create.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.create.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.create.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.decide_policy.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.decide_policy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.decide_policy.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.decide_policy.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.enter_fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.enter_fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.enter_fullscreen.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.enter_fullscreen.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.insecure_content_detected.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.insecure_content_detected.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.insecure_content_detected.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.insecure_content_detected.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.leave_fullscreen.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.leave_fullscreen.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.leave_fullscreen.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.leave_fullscreen.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.load_changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.load_changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.load_changed.html 2024-09-17 07:54:38.610617200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.load_changed.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed.html 2024-10-30 11:54:55.183346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed_with_tls_errors.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed_with_tls_errors.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed_with_tls_errors.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.load_failed_with_tls_errors.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.mouse_target_changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.mouse_target_changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.mouse_target_changed.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.mouse_target_changed.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.permission_request.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.permission_request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.permission_request.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.permission_request.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.print.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.print.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.print.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.print.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.query_permission_state.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.query_permission_state.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.query_permission_state.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.query_permission_state.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.ready_to_show.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.ready_to_show.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.ready_to_show.html 2024-09-17 07:54:38.614617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.ready_to_show.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.resource_load_started.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.resource_load_started.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.resource_load_started.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.resource_load_started.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.run_as_modal.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.run_as_modal.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.run_as_modal.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.run_as_modal.html 2024-10-30 11:54:55.187346700 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.run_color_chooser.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.run_color_chooser.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.run_color_chooser.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.run_color_chooser.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.run_file_chooser.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.run_file_chooser.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.run_file_chooser.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.run_file_chooser.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.script_dialog.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.script_dialog.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.script_dialog.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.script_dialog.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.show_notification.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.show_notification.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.show_notification.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.show_notification.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.show_option_menu.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.show_option_menu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.show_option_menu.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.show_option_menu.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.submit_form.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.submit_form.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.submit_form.html 2024-09-17 07:54:38.618617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.submit_form.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.user_message_received.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.user_message_received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.user_message_received.html 2024-09-17 07:54:38.622617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.user_message_received.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_crashed.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_crashed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_crashed.html 2024-09-17 07:54:38.622617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_crashed.html 2024-10-30 11:54:55.191346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_terminated.html webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_terminated.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_terminated.html 2024-09-17 07:54:38.622617000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-6.0/vfunc.WebView.web_process_terminated.html 2024-10-30 11:54:55.195346600 +0000 @@ -62,7 +62,7 @@

WebKit

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeFunction.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeFunction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeFunction.html 2024-09-17 07:54:34.294647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeFunction.html 2024-10-30 11:54:50.471443200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeWithUserDataFunction.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeWithUserDataFunction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeWithUserDataFunction.html 2024-09-17 07:54:34.306647500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/callback.WebProcessExtensionInitializeWithUserDataFunction.html 2024-10-30 11:54:50.551441700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenu.html 2024-09-17 07:54:34.450646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenu.html 2024-10-30 11:54:50.643439800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenuItem.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenuItem.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenuItem.html 2024-09-17 07:54:34.518646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.ContextMenuItem.html 2024-10-30 11:54:50.719438000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.Frame.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.Frame.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.Frame.html 2024-09-17 07:54:34.566645900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.Frame.html 2024-10-30 11:54:50.771437200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.HitTestResult.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.HitTestResult.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.HitTestResult.html 2024-09-17 07:54:34.602645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.HitTestResult.html 2024-10-30 11:54:50.815436100 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.ScriptWorld.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.ScriptWorld.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.ScriptWorld.html 2024-09-17 07:54:34.666645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.ScriptWorld.html 2024-10-30 11:54:50.895434600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.URIRequest.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.URIRequest.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.URIRequest.html 2024-09-17 07:54:34.702644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.URIRequest.html 2024-10-30 11:54:50.931433700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.URIResponse.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.URIResponse.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.URIResponse.html 2024-09-17 07:54:34.734644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.URIResponse.html 2024-10-30 11:54:50.963433000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.UserMessage.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.UserMessage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.UserMessage.html 2024-09-17 07:54:34.778644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.UserMessage.html 2024-10-30 11:54:51.015432100 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebEditor.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebEditor.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebEditor.html 2024-09-17 07:54:34.822644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebEditor.html 2024-10-30 11:54:51.063431000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebFormManager.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebFormManager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebFormManager.html 2024-09-17 07:54:34.850643900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebFormManager.html 2024-10-30 11:54:51.091430400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebHitTestResult.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebHitTestResult.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebHitTestResult.html 2024-09-17 07:54:34.894643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebHitTestResult.html 2024-10-30 11:54:51.135429600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebPage.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebPage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebPage.html 2024-09-17 07:54:34.950643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebPage.html 2024-10-30 11:54:51.191428400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebProcessExtension.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebProcessExtension.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/class.WebProcessExtension.html 2024-09-17 07:54:35.026642600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/class.WebProcessExtension.html 2024-10-30 11:54:51.263427000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/classes_hierarchy.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/classes_hierarchy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/classes_hierarchy.html 2024-09-17 07:54:34.002649800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/classes_hierarchy.html 2024-10-30 11:54:50.127450200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new.html 2024-09-17 07:54:34.454646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new.html 2024-10-30 11:54:50.647439700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new_with_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new_with_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new_with_items.html 2024-09-17 07:54:34.458646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenu.new_with_items.html 2024-10-30 11:54:50.651439400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_gaction.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_gaction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_gaction.html 2024-09-17 07:54:34.522646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_gaction.html 2024-10-30 11:54:50.723438000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action.html 2024-09-17 07:54:34.526646100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action.html 2024-10-30 11:54:50.727438000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html 2024-09-17 07:54:34.530646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_from_stock_action_with_label.html 2024-10-30 11:54:50.731438000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_separator.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_separator.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_separator.html 2024-09-17 07:54:34.534646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_separator.html 2024-10-30 11:54:50.735437900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_with_submenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_with_submenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_with_submenu.html 2024-09-17 07:54:34.538646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ContextMenuItem.new_with_submenu.html 2024-10-30 11:54:50.739437800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new.html 2024-09-17 07:54:34.670645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new.html 2024-10-30 11:54:50.899434600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new_with_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new_with_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new_with_name.html 2024-09-17 07:54:34.674645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.ScriptWorld.new_with_name.html 2024-10-30 11:54:50.903434300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.URIRequest.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.URIRequest.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.URIRequest.new.html 2024-09-17 07:54:34.702644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.URIRequest.new.html 2024-10-30 11:54:50.935433600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new.html 2024-09-17 07:54:34.782644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new.html 2024-10-30 11:54:51.019432000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new_with_fd_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new_with_fd_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new_with_fd_list.html 2024-09-17 07:54:34.786644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/ctor.UserMessage.new_with_fd_list.html 2024-10-30 11:54:51.023432000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageLevel.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageLevel.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageLevel.html 2024-09-17 07:54:34.310647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageLevel.html 2024-10-30 11:54:50.299446800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageSource.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageSource.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageSource.html 2024-09-17 07:54:34.314647700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.ConsoleMessageSource.html 2024-10-30 11:54:50.359445600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.ContextMenuAction.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.ContextMenuAction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.ContextMenuAction.html 2024-09-17 07:54:34.350647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.ContextMenuAction.html 2024-10-30 11:54:50.539441800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.UserMessageError.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.UserMessageError.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/enum.UserMessageError.html 2024-09-17 07:54:34.350647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/enum.UserMessageError.html 2024-10-30 11:54:50.543441800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/flags.HitTestResultContext.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/flags.HitTestResultContext.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/flags.HitTestResultContext.html 2024-09-17 07:54:34.182648400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/flags.HitTestResultContext.html 2024-10-30 11:54:50.299446800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/gtk4-urlmap.js webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/gtk4-urlmap.js --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/gtk4-urlmap.js 2024-09-17 07:54:35.090642000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/gtk4-urlmap.js 2024-10-30 11:54:51.319425800 +0000 @@ -10,7 +10,7 @@ ["Gdk", "https://docs.gtk.org/gdk4/"], ["Gtk", "https://docs.gtk.org/gtk4/"], ["JavaScriptCore", "../javascriptcoregtk" + baseURLApiLevelSuffix], - ["Soup", "https://libsoup.org/libsoup-3.0/"], + ["Soup", "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/"], ["WebKit", "../webkitgtk" + baseURLApiLevelSuffix], ["WebKitWebProcessExtension", "../webkitgtk-web-process-extension" + baseURLApiLevelSuffix] ] diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/index.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/index.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/index.html 2024-09-17 07:54:35.078642100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/index.html 2024-10-30 11:54:51.311426000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

@@ -135,7 +135,7 @@ - Soup + Soup @@ -161,7 +161,7 @@
- + @@ -253,7 +253,7 @@ - + diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.copy.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.copy.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.copy.html 2024-09-17 07:54:34.334647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.copy.html 2024-10-30 11:54:50.507442500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.free.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.free.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.free.html 2024-09-17 07:54:34.334647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.free.html 2024-10-30 11:54:50.535441900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_level.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_level.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_level.html 2024-09-17 07:54:34.338647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_level.html 2024-10-30 11:54:50.543441800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_line.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_line.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_line.html 2024-09-17 07:54:34.342647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_line.html 2024-10-30 11:54:50.547441700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source.html 2024-09-17 07:54:34.346647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source.html 2024-10-30 11:54:50.547441700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source_id.html 2024-09-17 07:54:34.346647300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_source_id.html 2024-10-30 11:54:50.551441700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_text.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_text.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_text.html 2024-09-17 07:54:34.350647400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ConsoleMessage.get_text.html 2024-10-30 11:54:50.567441200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.append.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.append.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.append.html 2024-09-17 07:54:34.458646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.append.html 2024-10-30 11:54:50.655439400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.first.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.first.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.first.html 2024-09-17 07:54:34.462646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.first.html 2024-10-30 11:54:50.659439300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_event.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_event.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_event.html 2024-09-17 07:54:34.466646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_event.html 2024-10-30 11:54:50.663439300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_item_at_position.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_item_at_position.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_item_at_position.html 2024-09-17 07:54:34.470646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_item_at_position.html 2024-10-30 11:54:50.667439200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_items.html 2024-09-17 07:54:34.474646600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_items.html 2024-10-30 11:54:50.667439200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_n_items.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_n_items.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_n_items.html 2024-09-17 07:54:34.478646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_n_items.html 2024-10-30 11:54:50.671439200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_user_data.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_user_data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_user_data.html 2024-09-17 07:54:34.478646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.get_user_data.html 2024-10-30 11:54:50.675439100 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.insert.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.insert.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.insert.html 2024-09-17 07:54:34.482646500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.insert.html 2024-10-30 11:54:50.679438800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.last.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.last.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.last.html 2024-09-17 07:54:34.486646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.last.html 2024-10-30 11:54:50.683438800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.move_item.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.move_item.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.move_item.html 2024-09-17 07:54:34.490646400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.move_item.html 2024-10-30 11:54:50.687438700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.prepend.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.prepend.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.prepend.html 2024-09-17 07:54:34.494646300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.prepend.html 2024-10-30 11:54:50.687438700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove.html 2024-09-17 07:54:34.494646300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove.html 2024-10-30 11:54:50.691438700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove_all.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove_all.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove_all.html 2024-09-17 07:54:34.498646300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.remove_all.html 2024-10-30 11:54:50.695438600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.set_user_data.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.set_user_data.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.set_user_data.html 2024-09-17 07:54:34.502646200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenu.set_user_data.html 2024-10-30 11:54:50.695438600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_gaction.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_gaction.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_gaction.html 2024-09-17 07:54:34.538646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_gaction.html 2024-10-30 11:54:50.739437800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_stock_action.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_stock_action.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_stock_action.html 2024-09-17 07:54:34.542646000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_stock_action.html 2024-10-30 11:54:50.743437500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_submenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_submenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_submenu.html 2024-09-17 07:54:34.546645900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.get_submenu.html 2024-10-30 11:54:50.747437500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.is_separator.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.is_separator.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.is_separator.html 2024-09-17 07:54:34.550645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.is_separator.html 2024-10-30 11:54:50.751437400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.set_submenu.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.set_submenu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.set_submenu.html 2024-09-17 07:54:34.550645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ContextMenuItem.set_submenu.html 2024-10-30 11:54:50.755437400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_id.html 2024-09-17 07:54:34.570645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_id.html 2024-10-30 11:54:50.775436900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context.html 2024-09-17 07:54:34.574645800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context.html 2024-10-30 11:54:50.779436800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context_for_script_world.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context_for_script_world.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context_for_script_world.html 2024-09-17 07:54:34.578645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_js_context_for_script_world.html 2024-10-30 11:54:50.783436800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_uri.html 2024-09-17 07:54:34.578645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.get_uri.html 2024-10-30 11:54:50.787436700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.is_main_frame.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.is_main_frame.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.is_main_frame.html 2024-09-17 07:54:34.582645700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.Frame.is_main_frame.html 2024-10-30 11:54:50.791436700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_editable.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_editable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_editable.html 2024-09-17 07:54:34.606645600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_editable.html 2024-10-30 11:54:50.823436000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_image.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_image.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_image.html 2024-09-17 07:54:34.610645500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_image.html 2024-10-30 11:54:50.831436000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_link.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_link.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_link.html 2024-09-17 07:54:34.614645500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_link.html 2024-10-30 11:54:50.835435900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_media.html 2024-09-17 07:54:34.618645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_media.html 2024-10-30 11:54:50.843435500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_scrollbar.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_scrollbar.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_scrollbar.html 2024-09-17 07:54:34.618645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_scrollbar.html 2024-10-30 11:54:50.847435500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_selection.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_selection.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_selection.html 2024-09-17 07:54:34.622645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.context_is_selection.html 2024-10-30 11:54:50.851435400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_context.html 2024-09-17 07:54:34.626645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_context.html 2024-10-30 11:54:50.851435400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_image_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_image_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_image_uri.html 2024-09-17 07:54:34.630645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_image_uri.html 2024-10-30 11:54:50.855435400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_label.html 2024-09-17 07:54:34.630645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_label.html 2024-10-30 11:54:50.859435300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_title.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_title.html 2024-09-17 07:54:34.634645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_title.html 2024-10-30 11:54:50.863435300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_uri.html 2024-09-17 07:54:34.638645200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_link_uri.html 2024-10-30 11:54:50.867435200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_media_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_media_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_media_uri.html 2024-09-17 07:54:34.642645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.HitTestResult.get_media_uri.html 2024-10-30 11:54:50.871435000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ScriptWorld.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ScriptWorld.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.ScriptWorld.get_name.html 2024-09-17 07:54:34.678645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.ScriptWorld.get_name.html 2024-10-30 11:54:50.911434200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_headers.html 2024-09-17 07:54:34.706644800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_headers.html 2024-10-30 11:54:50.939433600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_method.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_method.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_method.html 2024-09-17 07:54:34.710644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_http_method.html 2024-10-30 11:54:50.943433500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_uri.html 2024-09-17 07:54:34.714644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.get_uri.html 2024-10-30 11:54:50.943433500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.set_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.set_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.set_uri.html 2024-09-17 07:54:34.714644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIRequest.set_uri.html 2024-10-30 11:54:50.947433500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_content_length.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_content_length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_content_length.html 2024-09-17 07:54:34.738644600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_content_length.html 2024-10-30 11:54:50.967433000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_http_headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_http_headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_http_headers.html 2024-09-17 07:54:34.738644600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_http_headers.html 2024-10-30 11:54:50.971433000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_mime_type.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_mime_type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_mime_type.html 2024-09-17 07:54:34.742644500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_mime_type.html 2024-10-30 11:54:50.975432900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_status_code.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_status_code.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_status_code.html 2024-09-17 07:54:34.746644500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_status_code.html 2024-10-30 11:54:50.979432800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_suggested_filename.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_suggested_filename.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_suggested_filename.html 2024-09-17 07:54:34.750644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_suggested_filename.html 2024-10-30 11:54:50.979432800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_uri.html 2024-09-17 07:54:34.750644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.URIResponse.get_uri.html 2024-10-30 11:54:50.983432800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_fd_list.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_fd_list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_fd_list.html 2024-09-17 07:54:34.790644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_fd_list.html 2024-10-30 11:54:51.031431700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_name.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_name.html 2024-09-17 07:54:34.794644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_name.html 2024-10-30 11:54:51.031431700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_parameters.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_parameters.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_parameters.html 2024-09-17 07:54:34.794644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.get_parameters.html 2024-10-30 11:54:51.035431600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.send_reply.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.send_reply.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.send_reply.html 2024-09-17 07:54:34.798644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.UserMessage.send_reply.html 2024-10-30 11:54:51.039431600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebEditor.get_page.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebEditor.get_page.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebEditor.get_page.html 2024-09-17 07:54:34.826644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebEditor.get_page.html 2024-10-30 11:54:51.067431000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_editable.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_editable.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_editable.html 2024-09-17 07:54:34.898643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_editable.html 2024-10-30 11:54:51.139429600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_image.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_image.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_image.html 2024-09-17 07:54:34.898643500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_image.html 2024-10-30 11:54:51.143429500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_link.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_link.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_link.html 2024-09-17 07:54:34.902643400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_link.html 2024-10-30 11:54:51.147429500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_media.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_media.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_media.html 2024-09-17 07:54:34.906643400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_media.html 2024-10-30 11:54:51.147429500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_scrollbar.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_scrollbar.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_scrollbar.html 2024-09-17 07:54:34.910643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_scrollbar.html 2024-10-30 11:54:51.151429400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_selection.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_selection.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_selection.html 2024-09-17 07:54:34.910643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.context_is_selection.html 2024-10-30 11:54:51.155429100 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_context.html 2024-09-17 07:54:34.914643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_context.html 2024-10-30 11:54:51.155429100 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_image_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_image_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_image_uri.html 2024-09-17 07:54:34.918643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_image_uri.html 2024-10-30 11:54:51.159429000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_js_node.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_js_node.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_js_node.html 2024-09-17 07:54:34.922643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_js_node.html 2024-10-30 11:54:51.163429000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_label.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_label.html 2024-09-17 07:54:34.922643200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_label.html 2024-10-30 11:54:51.167429000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_title.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_title.html 2024-09-17 07:54:34.926643100 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_title.html 2024-10-30 11:54:51.171429000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_uri.html 2024-09-17 07:54:34.930643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_link_uri.html 2024-10-30 11:54:51.171429000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_media_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_media_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_media_uri.html 2024-09-17 07:54:34.934643300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebHitTestResult.get_media_uri.html 2024-10-30 11:54:51.175428900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_editor.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_editor.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_editor.html 2024-09-17 07:54:34.958643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_editor.html 2024-10-30 11:54:51.195428400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_form_manager.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_form_manager.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_form_manager.html 2024-09-17 07:54:34.962643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_form_manager.html 2024-10-30 11:54:51.199428300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_id.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_id.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_id.html 2024-09-17 07:54:34.966642900 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_id.html 2024-10-30 11:54:51.203428300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_main_frame.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_main_frame.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_main_frame.html 2024-09-17 07:54:34.970642800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_main_frame.html 2024-10-30 11:54:51.203428300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_uri.html 2024-09-17 07:54:34.970642800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.get_uri.html 2024-10-30 11:54:51.207428200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view.html 2024-09-17 07:54:34.978643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view.html 2024-10-30 11:54:51.215427900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view_finish.html 2024-09-17 07:54:34.982643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebPage.send_message_to_view_finish.html 2024-10-30 11:54:51.219427800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.get_page.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.get_page.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.get_page.html 2024-09-17 07:54:35.030642500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.get_page.html 2024-10-30 11:54:51.267427000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context.html 2024-09-17 07:54:35.038642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context.html 2024-10-30 11:54:51.271427000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context_finish.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context_finish.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context_finish.html 2024-09-17 07:54:35.042642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/method.WebProcessExtension.send_message_to_context_finish.html 2024-10-30 11:54:51.275426900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.context.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.context.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.context.html 2024-09-17 07:54:34.642645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.context.html 2024-10-30 11:54:50.871435000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.image-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.image-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.image-uri.html 2024-09-17 07:54:34.642645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.image-uri.html 2024-10-30 11:54:50.871435000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-label.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-label.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-label.html 2024-09-17 07:54:34.642645400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-label.html 2024-10-30 11:54:50.875434900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-title.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-title.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-title.html 2024-09-17 07:54:34.646645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-title.html 2024-10-30 11:54:50.875434900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-uri.html 2024-09-17 07:54:34.646645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.link-uri.html 2024-10-30 11:54:50.875434900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.media-uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.media-uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.media-uri.html 2024-09-17 07:54:34.646645300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.HitTestResult.media-uri.html 2024-10-30 11:54:50.875434900 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIRequest.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIRequest.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIRequest.uri.html 2024-09-17 07:54:34.714644700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIRequest.uri.html 2024-10-30 11:54:50.947433500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.content-length.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.content-length.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.content-length.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.content-length.html 2024-10-30 11:54:50.983432800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.http-headers.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.http-headers.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.http-headers.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.http-headers.html 2024-10-30 11:54:50.987432700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.mime-type.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.mime-type.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.mime-type.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.mime-type.html 2024-10-30 11:54:50.987432700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.status-code.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.status-code.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.status-code.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.status-code.html 2024-10-30 11:54:50.987432700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.suggested-filename.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.suggested-filename.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.suggested-filename.html 2024-09-17 07:54:34.754644400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.suggested-filename.html 2024-10-30 11:54:50.987432700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.uri.html 2024-09-17 07:54:34.758644300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.URIResponse.uri.html 2024-10-30 11:54:50.991432700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.fd-list.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.fd-list.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.fd-list.html 2024-09-17 07:54:34.798644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.fd-list.html 2024-10-30 11:54:51.039431600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.name.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.name.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.name.html 2024-09-17 07:54:34.798644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.name.html 2024-10-30 11:54:51.039431600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.parameters.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.parameters.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.parameters.html 2024-09-17 07:54:34.802644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.UserMessage.parameters.html 2024-10-30 11:54:51.039431600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.WebPage.uri.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.WebPage.uri.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/property.WebPage.uri.html 2024-09-17 07:54:34.982643000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/property.WebPage.uri.html 2024-10-30 11:54:51.219427800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.ScriptWorld.window-object-cleared.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.ScriptWorld.window-object-cleared.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.ScriptWorld.window-object-cleared.html 2024-09-17 07:54:34.682645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.ScriptWorld.window-object-cleared.html 2024-10-30 11:54:50.915434100 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebEditor.selection-changed.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebEditor.selection-changed.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebEditor.selection-changed.html 2024-09-17 07:54:34.830644000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebEditor.selection-changed.html 2024-10-30 11:54:51.071431000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.form-controls-associated.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.form-controls-associated.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.form-controls-associated.html 2024-09-17 07:54:34.866643700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.form-controls-associated.html 2024-10-30 11:54:51.107430200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-send-submit-event.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-send-submit-event.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-send-submit-event.html 2024-09-17 07:54:34.870643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-send-submit-event.html 2024-10-30 11:54:51.111430200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-submit-form.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-submit-form.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-submit-form.html 2024-09-17 07:54:34.874643600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebFormManager.will-submit-form.html 2024-10-30 11:54:51.119430000 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.console-message-sent.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.console-message-sent.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.console-message-sent.html 2024-09-17 07:54:34.986642800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.console-message-sent.html 2024-10-30 11:54:51.223427800 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.context-menu.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.context-menu.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.context-menu.html 2024-09-17 07:54:34.990642800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.context-menu.html 2024-10-30 11:54:51.227427700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.document-loaded.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.document-loaded.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.document-loaded.html 2024-09-17 07:54:34.994642700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.document-loaded.html 2024-10-30 11:54:51.231427700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.send-request.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.send-request.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.send-request.html 2024-09-17 07:54:34.998642700 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.send-request.html 2024-10-30 11:54:51.235427600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.user-message-received.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.user-message-received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.user-message-received.html 2024-09-17 07:54:35.002642600 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebPage.user-message-received.html 2024-10-30 11:54:51.239427600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.page-created.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.page-created.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.page-created.html 2024-09-17 07:54:35.042642400 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.page-created.html 2024-10-30 11:54:51.279426600 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.user-message-received.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.user-message-received.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.user-message-received.html 2024-09-17 07:54:35.046642300 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/signal.WebProcessExtension.user-message-received.html 2024-10-30 11:54:51.283426500 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/struct.ConsoleMessage.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/struct.ConsoleMessage.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/struct.ConsoleMessage.html 2024-09-17 07:54:34.306647500 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/struct.ConsoleMessage.html 2024-10-30 11:54:50.467443200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.ScriptWorld.get_default.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.ScriptWorld.get_default.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.ScriptWorld.get_default.html 2024-09-17 07:54:34.674645000 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.ScriptWorld.get_default.html 2024-10-30 11:54:50.907434200 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.UserMessage.error_quark.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.UserMessage.error_quark.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.UserMessage.error_quark.html 2024-09-17 07:54:34.786644200 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.UserMessage.error_quark.html 2024-10-30 11:54:51.027431700 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_auto_fill.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_auto_fill.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_auto_fill.html 2024-09-17 07:54:34.854643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_auto_fill.html 2024-10-30 11:54:51.095430400 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_auto_filled.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_auto_filled.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_auto_filled.html 2024-09-17 07:54:34.858643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_auto_filled.html 2024-10-30 11:54:51.099430300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_user_edited.html webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_user_edited.html --- webkit2gtk-2.46.0/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_user_edited.html 2024-09-17 07:54:34.858643800 +0000 +++ webkit2gtk-2.46.3/Documentation/webkitgtk-web-process-extension-6.0/type_func.WebFormManager.input_element_is_user_edited.html 2024-10-30 11:54:51.103430300 +0000 @@ -62,7 +62,7 @@

WebKitWebProcessExtension

API Version: 6.0

-

Library Version: 2.46.0

+

Library Version: 2.46.3

diff -Nru webkit2gtk-2.46.0/NEWS webkit2gtk-2.46.3/NEWS --- webkit2gtk-2.46.0/NEWS 2024-09-17 07:52:31.447590600 +0000 +++ webkit2gtk-2.46.3/NEWS 2024-10-30 12:49:59.486945000 +0000 @@ -1,4 +1,44 @@ ================ +WebKitGTK 2.46.3 +================ + +What's new in WebKitGTK 2.46.3? + + - Flatten layers to a plane when preseve-3d style is set. + - Fix DuckDuckGo links by adding a user agent quirk. + - Fix several crashes and rendering issues. + +================ +WebKitGTK 2.46.2 +================ + +What's new in WebKitGTK 2.46.2? + + - Own well-known bus name on a11y bus. + - Improve memory consumption when putImageData is used repeatedly on accelerated canvas. + - Disable cached web process suspension for now to prevent leaks. + - Improve text kerning with different combinations of antialias and hinting settings. + - Destroy all network sessions on process exit. + - Fix visible rectangle calculation when there are animations. + - Fix the build with ENABLE_NOTIFICATIONS=OFF. + - Fix the build with ENABLE_FULLSCREEN_API=OFF. + - Fix the build with ENABLE_WEB_AUDIO=OFF. + - Fix the build on ppc64le. + - Fix several crashes and rendering issues. + +================ +WebKitGTK 2.46.1 +================ + +What's new in WebKitGTK 2.46.1? + + - Fix login QR code not shown in WhatsApp web. + - Disable PSON by default again in GTK 3 API versions. + - Disable DMABuf video sink by default to prevent file descriptor leaks. + - Fix the build with GCC 13. + - Fix several crashes and rendering issues. + +================ WebKitGTK 2.46.0 ================ diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp 2024-08-19 06:28:35.595387500 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp 2024-09-30 08:15:01.100258400 +0000 @@ -5785,14 +5785,16 @@ } else { RefPtr propertyName; if (m_containsRestElement) - propertyName = generator.emitNodeForProperty(args->argumentRegister(indexInArguments++), target.propertyExpression); + propertyName = generator.emitNodeForProperty(args->argumentRegister(indexInArguments), target.propertyExpression); else propertyName = generator.emitNodeForProperty(target.propertyExpression); if (!target.propertyExpression->isNumber() && !target.propertyExpression->isString()) { // ToPropertyKey(Number | String) does not have side-effect. // And for Number case, passing it to GetByVal is better for performance. - propertyName = generator.emitToPropertyKeyOrNumber(propertyName.get(), propertyName.get()); + propertyName = generator.emitToPropertyKeyOrNumber(m_containsRestElement ? args->argumentRegister(indexInArguments) : generator.newTemporary(), propertyName.get()); } + if (m_containsRestElement) + indexInArguments++; if (target.pattern->isAssignmentElementNode()) targetBaseAndPropertyName = static_cast(target.pattern)->emitNodesForDestructuring(generator); generator.emitGetByVal(temp.get(), rhs, propertyName.get()); diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp 2024-08-19 06:28:35.643386000 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp 2024-10-30 09:22:36.502297000 +0000 @@ -13586,6 +13586,7 @@ Label incrementLoop; Jump done; + constexpr bool preserveIndexReg = true; compileHasIndexedProperty(node, operationHasEnumerableIndexedProperty, scopedLambda()>([&] { GPRReg newIndexGPR = newIndex.gpr(); GPRReg scratchGPR = scratch.gpr(); @@ -13600,7 +13601,7 @@ initMode.link(this); done = branch32(AboveOrEqual, newIndexGPR, Address(enumeratorGPR, JSPropertyNameEnumerator::indexedLengthOffset())); return std::make_pair(newIndexGPR, scratchGPR); - })); + }), preserveIndexReg); branchTest32(Zero, scratch.gpr()).linkTo(incrementLoop, this); done.link(this); @@ -15350,7 +15351,7 @@ sizeGPR, storageGPR)); } -void SpeculativeJIT::compileHasIndexedProperty(Node* node, S_JITOperation_GCZ slowPathOperation, const ScopedLambda()>& prefix) +void SpeculativeJIT::compileHasIndexedProperty(Node* node, S_JITOperation_GCZ slowPathOperation, const ScopedLambda()>& prefix, bool preserveIndexReg) { auto baseEdge = m_graph.varArgChild(node, 0); SpeculateCellOperand base(this, baseEdge); @@ -15477,7 +15478,34 @@ } } - addSlowPathGenerator(slowPathCall(slowCases, this, slowPathOperation, resultGPR, LinkableConstant::globalObject(*this, node), baseGPR, indexGPR)); + Vector savePlans; + silentSpillAllRegistersImpl(false, savePlans, resultGPR); + Label doneOperationCall = label(); + addSlowPathGeneratorLambda([=, this, savePlans = WTFMove(savePlans), slowCases = WTFMove(slowCases)]() { + slowCases.link(this); + + if (preserveIndexReg) + pushToSave(indexGPR); + silentSpill(savePlans); + + setupArguments(LinkableConstant::globalObject(*this, node), baseGPR, indexGPR); + appendCall(slowPathOperation); + std::optional exceptionReg; + if (preserveIndexReg) + exceptionReg = tryHandleOrGetExceptionUnderSilentSpill(savePlans, resultGPR, indexGPR); + else + exceptionReg = tryHandleOrGetExceptionUnderSilentSpill(savePlans, resultGPR); + setupResults(resultGPR); + + silentFill(savePlans); + if (preserveIndexReg) + popToRestore(indexGPR); + + if (exceptionReg) + exceptionCheck(*exceptionReg); + + jump().linkTo(doneOperationCall, this); + }); } void SpeculativeJIT::compileExtractCatchLocal(Node* node) diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h webkit2gtk-2.46.3/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h --- webkit2gtk-2.46.0/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h 2024-08-19 06:28:35.643386000 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h 2024-10-30 09:22:36.502297000 +0000 @@ -1065,8 +1065,8 @@ // 1) nullopt the exception was handled // 2) valid GPRReg containing the exception that won't interfere with silentFill. // 3) InvalidGPRReg meaning the exception needs to be loaded from VM. - template - std::optional tryHandleOrGetExceptionUnderSilentSpill(const auto& plans, ResultRegType result) + template + std::optional tryHandleOrGetExceptionUnderSilentSpill(const auto& plans, ResultRegType result, OtherSpilledRegTypes... otherSpilledRegs) { ASSERT(m_underSilentSpill); using ResultType = typename FunctionTraits::ResultType; @@ -1088,6 +1088,14 @@ spilledRegs.add(result, IgnoreVectors); } + if constexpr (sizeof...(OtherSpilledRegTypes) > 0) { + constexpr auto addRegIfNeeded = [](auto& spilledRegs, auto& reg) ALWAYS_INLINE_LAMBDA { + static_assert(std::is_same_v> || std::is_same_v>); + spilledRegs.add(reg, IgnoreVectors); + }; + (addRegIfNeeded(spilledRegs, otherSpilledRegs), ...); + } + if (spilledRegs.buildAndValidate().contains(exceptionReg, IgnoreVectors)) { // It would be nice if we could do m_gprs.tryAllocate() but we're possibly on a slow path and register allocation state is // probably garbage. @@ -1767,7 +1775,7 @@ void compileCallNumberConstructor(Node*); void compileLogShadowChickenPrologue(Node*); void compileLogShadowChickenTail(Node*); - void compileHasIndexedProperty(Node*, S_JITOperation_GCZ, const ScopedLambda()>& prefix); + void compileHasIndexedProperty(Node*, S_JITOperation_GCZ, const ScopedLambda()>& prefix, bool = false); void compileExtractCatchLocal(Node*); void compileClearCatchLocals(Node*); void compileProfileType(Node*); diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/jit/GPRInfo.h webkit2gtk-2.46.3/Source/JavaScriptCore/jit/GPRInfo.h --- webkit2gtk-2.46.0/Source/JavaScriptCore/jit/GPRInfo.h 2024-08-19 06:28:35.735383000 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/jit/GPRInfo.h 2024-10-21 09:00:02.679247100 +0000 @@ -756,16 +756,16 @@ static constexpr GPRReg wasmBaseMemoryPointer = regCS3; static constexpr GPRReg wasmBoundsCheckingSizeRegister = regCS4; - static constexpr GPRReg regWS0 = RICSV64Registers::x6; - static constexpr GPRReg regWS1 = RICSV64Registers::x7; - static constexpr GPRReg regWA0 = RICSV64Registers::x10; - static constexpr GPRReg regWA1 = RICSV64Registers::x11; - static constexpr GPRReg regWA2 = RICSV64Registers::x12; - static constexpr GPRReg regWA3 = RICSV64Registers::x13; - static constexpr GPRReg regWA4 = RICSV64Registers::x14; - static constexpr GPRReg regWA5 = RICSV64Registers::x15; - static constexpr GPRReg regWA6 = RICSV64Registers::x16; - static constexpr GPRReg regWA7 = RICSV64Registers::x17; + static constexpr GPRReg regWS0 = RISCV64Registers::x6; + static constexpr GPRReg regWS1 = RISCV64Registers::x7; + static constexpr GPRReg regWA0 = RISCV64Registers::x10; + static constexpr GPRReg regWA1 = RISCV64Registers::x11; + static constexpr GPRReg regWA2 = RISCV64Registers::x12; + static constexpr GPRReg regWA3 = RISCV64Registers::x13; + static constexpr GPRReg regWA4 = RISCV64Registers::x14; + static constexpr GPRReg regWA5 = RISCV64Registers::x15; + static constexpr GPRReg regWA6 = RISCV64Registers::x16; + static constexpr GPRReg regWA7 = RISCV64Registers::x17; static constexpr GPRReg patchpointScratchRegister = RISCV64Registers::x30; // Should match dataTempRegister diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/jsc.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/jsc.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/jsc.cpp 2024-08-19 06:28:35.755382500 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/jsc.cpp 2024-10-21 09:00:02.683247000 +0000 @@ -1929,7 +1929,7 @@ return JSValue::encode(jsUndefined()); } - return JSValue::encode(realm); + return JSValue::encode(realm->globalThis()); } static URL computeFilePath(VM& vm, JSGlobalObject* globalObject, CallFrame* callFrame) diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/runtime/MathCommon.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/runtime/MathCommon.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/runtime/MathCommon.cpp 2024-08-19 06:28:35.815380600 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/runtime/MathCommon.cpp 2024-10-21 09:00:02.683247000 +0000 @@ -635,6 +635,28 @@ return std::nearbyint(operand); } +#if OS(LINUX) && !defined(__GLIBC__) +static inline float roundevenf(float operand) +{ + float rounded = roundf(operand); + if (fabsf(operand - rounded) == 0.5f) { + if (fmod(rounded, 2.0f) != 0.0f) + return rounded - copysignf(1.0f, operand); + } + return rounded; +} + +static inline double roundeven(double operand) +{ + double rounded = round(operand); + if (fabs(operand - rounded) == 0.5) { + if (fmod(rounded, 2.0) != 0.0) + return rounded - copysign(1.0, operand); + } + return rounded; +} +#endif + JSC_DEFINE_NOEXCEPT_JIT_OPERATION(f32_roundeven, float, (float operand)) { return roundevenf(operand); } JSC_DEFINE_NOEXCEPT_JIT_OPERATION(f64_roundeven, double, (double operand)) { return roundeven(operand); } JSC_DEFINE_NOEXCEPT_JIT_OPERATION(f32_trunc, float, (float operand)) { return std::trunc(operand); } diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/tools/JSDollarVM.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/tools/JSDollarVM.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/tools/JSDollarVM.cpp 2024-08-19 06:28:35.843379700 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/tools/JSDollarVM.cpp 2024-10-21 09:00:02.683247000 +0000 @@ -1754,12 +1754,12 @@ JSC_DEFINE_CUSTOM_GETTER(customGetAccessorGlobalObject, (JSGlobalObject* globalObject, EncodedJSValue, PropertyName)) { - return JSValue::encode(globalObject); + return JSValue::encode(globalObject->globalThis()); } JSC_DEFINE_CUSTOM_GETTER(customGetValueGlobalObject, (JSGlobalObject* globalObject, EncodedJSValue, PropertyName)) { - return JSValue::encode(globalObject); + return JSValue::encode(globalObject->globalThis()); } JSC_DEFINE_CUSTOM_SETTER(customSetAccessor, (JSGlobalObject* globalObject, EncodedJSValue thisObject, EncodedJSValue encodedValue, PropertyName)) @@ -1789,7 +1789,7 @@ JSObject* object = asObject(value); PutPropertySlot slot(object); - object->put(object, globalObject, Identifier::fromString(vm, "result"_s), globalObject, slot); + object->put(object, globalObject, Identifier::fromString(vm, "result"_s), globalObject->globalThis(), slot); return true; } @@ -1825,7 +1825,7 @@ JSObject* object = asObject(value); PutPropertySlot slot(object); - object->put(object, globalObject, Identifier::fromString(vm, "result"_s), globalObject, slot); + object->put(object, globalObject, Identifier::fromString(vm, "result"_s), globalObject->globalThis(), slot); return true; } diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp 2024-09-16 08:33:15.105030000 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp 2024-10-21 09:00:02.683247000 +0000 @@ -3052,56 +3052,67 @@ PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDLoad(ExpressionType, uint32_t, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDStore(ExpressionType, ExpressionType, uint32_t) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDSplat(SIMDLane, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDShuffle(v128_t, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDShift(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDExtmul(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDLoadSplat(SIMDLaneOperation, ExpressionType, uint32_t, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDLoadLane(SIMDLaneOperation, ExpressionType, ExpressionType, uint32_t, uint8_t, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDStoreLane(SIMDLaneOperation, ExpressionType, ExpressionType, uint32_t, uint8_t) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDLoadExtend(SIMDLaneOperation, ExpressionType, uint32_t, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDLoadPad(SIMDLaneOperation, ExpressionType, uint32_t, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } void BBQJIT::materializeVectorConstant(v128_t, Location) @@ -3112,46 +3123,56 @@ ExpressionType BBQJIT::addConstant(v128_t) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addExtractLane(SIMDInfo, uint8_t, Value, Value&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addReplaceLane(SIMDInfo, uint8_t, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDI_V(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDV_V(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDBitwiseSelect(ExpressionType, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDRelOp(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType, B3::Air::Arg, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDV_VV(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; } PartialResult WARN_UNUSED_RETURN BBQJIT::addSIMDRelaxedFMA(SIMDLaneOperation, SIMDInfo, ExpressionType, ExpressionType, ExpressionType, ExpressionType&) { UNREACHABLE_FOR_PLATFORM(); + return { }; + } void BBQJIT::emitStoreConst(Value constant, Location loc) diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h --- webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h 2024-08-19 06:28:35.867379200 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmIRGeneratorHelpers.h 2024-10-30 09:22:36.502297000 +0000 @@ -51,10 +51,12 @@ , m_callSiteIndex(callSiteIndex) { } - PatchpointExceptionHandle(std::optional hasExceptionHandlers, unsigned callSiteIndex, unsigned numLiveValues) + PatchpointExceptionHandle(std::optional hasExceptionHandlers, unsigned callSiteIndex, unsigned numLiveValues, unsigned firstStackmapParamOffset, unsigned firstStackmapChildOffset) : m_hasExceptionHandlers(hasExceptionHandlers) , m_callSiteIndex(callSiteIndex) , m_numLiveValues(numLiveValues) + , m_firstStackmapParamOffset(firstStackmapParamOffset) + , m_firstStackmapChildOffset(firstStackmapChildOffset) { } template @@ -69,10 +71,8 @@ return; StackMap values(*m_numLiveValues); - unsigned paramsOffset = params.size() - *m_numLiveValues; - unsigned childrenOffset = params.value()->numChildren() - *m_numLiveValues; for (unsigned i = 0; i < *m_numLiveValues; ++i) - values[i] = OSREntryValue(params[i + paramsOffset], params.value()->child(i + childrenOffset)->type()); + values[i] = OSREntryValue(params[i + m_firstStackmapParamOffset], params.value()->child(i + m_firstStackmapChildOffset)->type()); generator->addStackMap(m_callSiteIndex, WTFMove(values)); } @@ -80,6 +80,8 @@ std::optional m_hasExceptionHandlers; unsigned m_callSiteIndex { s_invalidCallSiteIndex }; std::optional m_numLiveValues { }; + unsigned m_firstStackmapParamOffset { }; + unsigned m_firstStackmapChildOffset { }; }; #else diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp 2024-09-16 08:33:15.105030000 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp 2024-10-30 09:22:36.502297000 +0000 @@ -4605,6 +4605,9 @@ if (!mustSaveState) return { m_hasExceptionHandlers, callSiteIndex() }; + unsigned firstStackmapChildOffset = patch->numChildren(); + unsigned firstStackmapParamOffset = firstStackmapChildOffset + m_proc.resultCount(patch->type()); + Vector liveValues; Origin origin = this->origin(); @@ -4633,7 +4636,7 @@ patch->effects.exitsSideways = true; patch->appendVectorWithRep(liveValues, ValueRep::LateColdAny); - return { m_hasExceptionHandlers, callSiteIndex(), static_cast(liveValues.size()) }; + return { m_hasExceptionHandlers, callSiteIndex(), static_cast(liveValues.size()), firstStackmapParamOffset, firstStackmapChildOffset }; } auto OMGIRGenerator::addCatchToUnreachable(unsigned exceptionIndex, const TypeDefinition& signature, ControlType& data, ResultList& results) -> PartialResult diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp 2024-08-19 06:28:35.871379000 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp 2024-10-30 09:22:36.506296900 +0000 @@ -4295,6 +4295,9 @@ if (!mustSaveState) return { m_hasExceptionHandlers, callSiteIndex() }; + unsigned firstStackmapChildOffset = patch->numChildren(); + unsigned firstStackmapParamOffset = firstStackmapChildOffset + m_proc.resultCount(patch->type()); + Vector liveValues; Origin origin = this->origin(); @@ -4328,7 +4331,7 @@ patch->effects.exitsSideways = true; patch->appendVectorWithRep(liveValues, ValueRep::LateColdAny); - return { m_hasExceptionHandlers, callSiteIndex(), static_cast(liveValues.size()) }; + return { m_hasExceptionHandlers, callSiteIndex(), static_cast(liveValues.size()), firstStackmapParamOffset, firstStackmapChildOffset }; } auto OMGIRGenerator::addCatchToUnreachable(unsigned exceptionIndex, const TypeDefinition& signature, ControlType& data, ResultList& results) -> PartialResult diff -Nru webkit2gtk-2.46.0/Source/JavaScriptCore/yarr/YarrPattern.cpp webkit2gtk-2.46.3/Source/JavaScriptCore/yarr/YarrPattern.cpp --- webkit2gtk-2.46.0/Source/JavaScriptCore/yarr/YarrPattern.cpp 2024-08-19 06:28:35.887378500 +0000 +++ webkit2gtk-2.46.3/Source/JavaScriptCore/yarr/YarrPattern.cpp 2024-10-30 09:22:36.506296900 +0000 @@ -234,6 +234,8 @@ } } + std::sort(asciiMatches.begin(), asciiMatches.end()); + std::sort(unicodeMatches.begin(), unicodeMatches.end()); performOp(); } @@ -362,6 +364,9 @@ utf32Strings.append(string); } + std::sort(matches.begin(), matches.end()); + std::sort(matchesUnicode.begin(), matchesUnicode.end()); + performSetOpWithStrings(utf32Strings); performSetOpWithMatches(matches, emptyRanges, matchesUnicode, emptyRanges); } diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/ANGLE/CMakeLists.txt webkit2gtk-2.46.3/Source/ThirdParty/ANGLE/CMakeLists.txt --- webkit2gtk-2.46.0/Source/ThirdParty/ANGLE/CMakeLists.txt 2024-08-19 06:28:35.887378500 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/ANGLE/CMakeLists.txt 2024-10-21 09:00:02.683247000 +0000 @@ -7,6 +7,8 @@ set(angle_enable_d3d9 TRUE) set(angle_enable_d3d11 TRUE) set(angle_is_winuwp FALSE) +elseif (ANDROID) + set(is_android TRUE) elseif (UNIX) set(is_linux TRUE) endif () diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/README.WebKit webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/README.WebKit --- webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/README.WebKit 2024-08-19 06:28:36.291366000 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/README.WebKit 2024-09-30 08:15:01.100258400 +0000 @@ -2,7 +2,7 @@ official Sysprof repository. - URL: https://gitlab.gnome.org/GNOME/sysprof - - Commit: 594a3037c0e7cc1bf97f162a392aa4f8989c9dce (tag: 46.0) + - Commit: 5513868c49b54151b1df3f752a210709322e630c (tag: 47.0) The simplest way of updating its contents is to re-create the directory from scratch, and restoring the needed files with Git. Example commands: diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/sysprof-capture-writer.c webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/sysprof-capture-writer.c --- webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/sysprof-capture-writer.c 2024-08-19 06:28:36.295366000 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/sysprof-capture-writer.c 2024-09-30 08:15:01.100258400 +0000 @@ -1697,7 +1697,7 @@ { SysprofCaptureAllocation *ev; size_t len; - unsigned int n_addrs; + int n_addrs; assert (self != NULL); assert (backtrace_func != NULL); @@ -1707,6 +1707,9 @@ if (!ev) return false; + if ((n_addrs = backtrace_func (ev->addrs, MAX_UNWIND_DEPTH, backtrace_data)) < 0) + n_addrs = 0; + sysprof_capture_writer_frame_init (&ev->frame, len, cpu, @@ -1720,8 +1723,6 @@ ev->tid = tid; ev->n_addrs = 0; - n_addrs = backtrace_func (ev->addrs, MAX_UNWIND_DEPTH, backtrace_data); - if (n_addrs <= MAX_UNWIND_DEPTH) ev->n_addrs = n_addrs; diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/sysprof-collector.c webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/sysprof-collector.c --- webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/sysprof-collector.c 2024-08-19 06:28:36.295366000 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/sysprof-collector.c 2024-09-30 08:15:01.100258400 +0000 @@ -58,6 +58,7 @@ #include #include +#include #include #include #ifdef __linux__ @@ -140,7 +141,7 @@ { #ifdef F_GETFL long fcntl_flags; - fcntl_flags = fcntl (peer_fd, F_GETFL); + fcntl_flags = fcntl (fd, F_GETFL); if (fcntl_flags == -1) return false; @@ -151,7 +152,7 @@ fcntl_flags &= ~O_NDELAY; #endif - if (fcntl (peer_fd, F_SETFL, fcntl_flags) == -1) + if (fcntl (fd, F_SETFL, fcntl_flags) == -1) return false; return true; @@ -524,6 +525,9 @@ else n_addrs = 0; + if (n_addrs < 0) + n_addrs = 0; + ev->n_addrs = ((n_addrs < 0) ? 0 : (n_addrs > MAX_UNWIND_DEPTH) ? MAX_UNWIND_DEPTH : n_addrs); ev->frame.len = sizeof *ev + sizeof (SysprofCaptureAddress) * ev->n_addrs; ev->frame.type = SYSPROF_CAPTURE_FRAME_ALLOCATION; diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/sysprof-version.h webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/sysprof-version.h --- webkit2gtk-2.46.0/Source/ThirdParty/libsysprof-capture/sysprof-version.h 2024-08-19 06:28:36.295366000 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/libsysprof-capture/sysprof-version.h 2024-09-30 08:15:01.100258400 +0000 @@ -69,7 +69,7 @@ * * sysprof major version component (e.g. 1 if %SYSPROF_VERSION is 1.2.3) */ -#define SYSPROF_MAJOR_VERSION (46) +#define SYSPROF_MAJOR_VERSION (47) /** * SYSPROF_MINOR_VERSION: @@ -90,7 +90,7 @@ * * sysprof version. */ -#define SYSPROF_VERSION (46.0) +#define SYSPROF_VERSION (47.0) /** * SYSPROF_VERSION_S: @@ -98,7 +98,7 @@ * sysprof version, encoded as a string, useful for printing and * concatenation. */ -#define SYSPROF_VERSION_S "46.0" +#define SYSPROF_VERSION_S "47.0" #define SYSPROF_ENCODE_VERSION(major,minor,micro) \ ((major) << 24 | (minor) << 16 | (micro) << 8) diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/skia/CMakeLists.txt webkit2gtk-2.46.3/Source/ThirdParty/skia/CMakeLists.txt --- webkit2gtk-2.46.0/Source/ThirdParty/skia/CMakeLists.txt 2024-08-19 06:28:37.767321000 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/skia/CMakeLists.txt 2024-10-21 09:00:02.683247000 +0000 @@ -5,6 +5,10 @@ find_package(Fontconfig 2.13.0 REQUIRED) find_package(WebP REQUIRED COMPONENTS mux) +if (ANDROID) + find_package(EXPAT REQUIRED) +endif () + # # SKIA_ROOT_DIR may point to a checkout from the upstream Skia repository, # where a static build has been done under "out/Static" as follows: @@ -871,15 +875,14 @@ src/opts/SkOpts_hsw.cpp src/opts/SkOpts_skx.cpp - src/ports/SkDebug_stdio.cpp src/ports/SkFontConfigInterface.cpp src/ports/SkFontConfigInterface_direct.cpp src/ports/SkFontConfigInterface_direct_factory.cpp src/ports/SkFontHost_FreeType.cpp src/ports/SkFontHost_FreeType_common.cpp - src/ports/SkFontMgr_fontconfig.cpp src/ports/SkGlobalInitialization_default.cpp src/ports/SkImageGenerator_skia.cpp + src/ports/SkMemory_malloc.cpp src/ports/SkOSFile_posix.cpp src/ports/SkOSFile_stdio.cpp @@ -892,23 +895,25 @@ modules/skcms/src/skcms_TransformSkx.cc ) -if (USE_SYSTEM_MALLOC) - target_sources(Skia PRIVATE src/ports/SkMemory_malloc.cpp) +if (ANDROID) + target_sources(Skia PRIVATE src/ports/SkDebug_android.cpp) + target_sources(Skia PRIVATE src/ports/SkFontMgr_android.cpp) + target_sources(Skia PRIVATE src/ports/SkFontMgr_android_parser.cpp) + + target_link_libraries(Skia PRIVATE + EXPAT::EXPAT + ) else () - # Using WTF headers needs including Source/WTF/config.h first, and - # in turn that needs cmakeconfig.h from the top build directory, so - # arrange the include directories accordingly. - target_sources(Skia PRIVATE ${WEBCORE_DIR}/platform/skia/SkiaAllocatorFastMalloc.cpp) - set_property( - SOURCE ${WEBCORE_DIR}/platform/skia/SkiaAllocatorFastMalloc.cpp - APPEND PROPERTY INCLUDE_DIRECTORIES ${WTF_DIR} ${CMAKE_BINARY_DIR} + target_sources(Skia PRIVATE src/ports/SkDebug_stdio.cpp) + target_sources(Skia PRIVATE src/ports/SkFontMgr_fontconfig.cpp) + + target_link_libraries(Skia PRIVATE + Fontconfig::Fontconfig ) - target_link_libraries(Skia PRIVATE WebKit::WTF) endif () target_link_libraries(Skia PRIVATE Epoxy::Epoxy - Fontconfig::Fontconfig Freetype::Freetype JPEG::JPEG PNG::PNG diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/skia/include/private/base/SkFeatures.h webkit2gtk-2.46.3/Source/ThirdParty/skia/include/private/base/SkFeatures.h --- webkit2gtk-2.46.0/Source/ThirdParty/skia/include/private/base/SkFeatures.h 2024-08-19 06:28:37.879317800 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/skia/include/private/base/SkFeatures.h 2024-10-21 09:00:02.683247000 +0000 @@ -69,6 +69,10 @@ #define SK_CPU_LOONGARCH 1 #endif +#if defined(__powerpc__) || defined (__powerpc64__) + #define SK_CPU_PPC 1 +#endif + /** * SK_CPU_SSE_LEVEL * diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h webkit2gtk-2.46.3/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h --- webkit2gtk-2.46.0/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h 2024-08-19 06:28:37.971315000 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h 2024-10-21 09:00:02.683247000 +0000 @@ -39,6 +39,8 @@ // - Clang 18 runs into an ICE on armv7/androideabi with [[clang::musttail]]. // (http://crbug.com/1504548) // - Android RISC-V also runs into an ICE (b/314692534) + // - So does Linux ppc64le (https://github.com/llvm/llvm-project/issues/108014, + // https://github.com/llvm/llvm-project/issues/98859) // - LoongArch developers indicate they had to turn it off // - Windows builds generate incorrect code with [[clang::musttail]] and crash mysteriously. // (http://crbug.com/1505442) @@ -47,6 +49,7 @@ && !defined(__EMSCRIPTEN__) \ && !defined(__arm__) \ && !defined(__riscv) \ + && !defined(__powerpc__) \ && !defined(__loongarch__) \ && !defined(_WIN32) && !defined(__SYMBIAN32__) #define SKCMS_HAS_MUSTTAIL 1 diff -Nru webkit2gtk-2.46.0/Source/ThirdParty/skia/src/core/SkRasterPipeline.h webkit2gtk-2.46.3/Source/ThirdParty/skia/src/core/SkRasterPipeline.h --- webkit2gtk-2.46.0/Source/ThirdParty/skia/src/core/SkRasterPipeline.h 2024-08-19 06:28:38.247306600 +0000 +++ webkit2gtk-2.46.3/Source/ThirdParty/skia/src/core/SkRasterPipeline.h 2024-10-21 09:00:02.683247000 +0000 @@ -27,7 +27,7 @@ struct skcms_TransferFunction; #if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \ - !defined(SK_CPU_LOONGARCH) + !defined(SK_CPU_LOONGARCH) && !defined(SK_CPU_PPC) #define SK_HAS_MUSTTAIL 1 #else #define SK_HAS_MUSTTAIL 0 diff -Nru webkit2gtk-2.46.0/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml webkit2gtk-2.46.3/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml --- webkit2gtk-2.46.0/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml 2024-09-16 08:33:15.109030000 +0000 +++ webkit2gtk-2.46.3/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml 2024-09-30 08:15:01.100258400 +0000 @@ -1634,6 +1634,7 @@ type: bool status: embedder humanReadableName: "Canvas uses accelerated drawing" + condition: USE(CA) || USE(SKIA) defaultValue: WebKitLegacy: "PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)": true diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/CMakeLists.txt webkit2gtk-2.46.3/Source/WTF/wtf/CMakeLists.txt --- webkit2gtk-2.46.0/Source/WTF/wtf/CMakeLists.txt 2024-08-19 06:28:38.519298300 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/CMakeLists.txt 2024-10-21 09:00:02.687247000 +0000 @@ -403,6 +403,7 @@ simde/simde.h simde/arm/neon.h simde/arm/sve.h + simde/wasm/simd128.h simdutf/simdutf_impl.h diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/Compiler.h webkit2gtk-2.46.3/Source/WTF/wtf/Compiler.h --- webkit2gtk-2.46.0/Source/WTF/wtf/Compiler.h 2024-08-19 06:28:38.523298300 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/Compiler.h 2024-10-21 09:00:02.687247000 +0000 @@ -238,6 +238,20 @@ #define FALLTHROUGH #endif +/* LIFETIME_BOUND */ + +#if !defined(LIFETIME_BOUND) && defined(__cplusplus) +#if defined(__has_cpp_attribute) && __has_cpp_attribute(clang::lifetimebound) +#define LIFETIME_BOUND [[clang::lifetimebound]] +#elif COMPILER_HAS_ATTRIBUTE(lifetimebound) +#define LIFETIME_BOUND __attribute__((lifetimebound)) +#endif +#endif + +#if !defined(LIFETIME_BOUND) +#define LIFETIME_BOUND +#endif + /* LIKELY */ #if !defined(LIKELY) @@ -270,11 +284,18 @@ /* MUST_TAIL_CALL */ +// 32-bit platforms use different calling conventions, so a MUST_TAIL_CALL function +// written for 64-bit may fail to tail call on 32-bit. +// It also doesn't work on ppc64le: https://github.com/llvm/llvm-project/issues/98859 +#if COMPILER(CLANG) +#if __SIZEOF_POINTER__ == 8 #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute) -#if __has_cpp_attribute(clang::musttail) +#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) #define MUST_TAIL_CALL [[clang::musttail]] #endif #endif +#endif +#endif #if !defined(MUST_TAIL_CALL) #define MUST_TAIL_CALL diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/HexNumber.h webkit2gtk-2.46.3/Source/WTF/wtf/HexNumber.h --- webkit2gtk-2.46.0/Source/WTF/wtf/HexNumber.h 2024-08-19 06:28:38.531298000 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/HexNumber.h 2024-09-30 08:15:01.100258400 +0000 @@ -52,8 +52,7 @@ std::array buffer; unsigned length; - const LChar* characters() const { return &*(buffer.end() - length); } - std::span span() const { return { characters(), length }; } + std::span span() const LIFETIME_BOUND { return std::span { buffer }.last(length); } }; template HexNumberBuffer hex(NumberType number, unsigned minimumDigits = 0, HexConversionMode mode = Uppercase) @@ -83,8 +82,6 @@ template void writeTo(CharacterType* destination) const { StringImpl::copyCharacters(destination, m_buffer.span()); } private: - const LChar* characters() const { return m_buffer.characters(); } - const HexNumberBuffer& m_buffer; }; diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/PlatformEnableGlib.h webkit2gtk-2.46.3/Source/WTF/wtf/PlatformEnableGlib.h --- webkit2gtk-2.46.0/Source/WTF/wtf/PlatformEnableGlib.h 2024-08-19 06:28:38.539297800 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/PlatformEnableGlib.h 2024-10-21 09:00:02.687247000 +0000 @@ -43,7 +43,7 @@ #define ENABLE_KINETIC_SCROLLING 1 #endif -#if !defined(ENABLE_NOTIFICATION_EVENT) +#if !defined(ENABLE_NOTIFICATION_EVENT) && ENABLE(NOTIFICATIONS) #define ENABLE_NOTIFICATION_EVENT 1 #endif diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/SystemTracing.h webkit2gtk-2.46.3/Source/WTF/wtf/SystemTracing.h --- webkit2gtk-2.46.0/Source/WTF/wtf/SystemTracing.h 2024-09-16 08:33:15.109030000 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/SystemTracing.h 2024-09-30 08:15:01.104258500 +0000 @@ -172,10 +172,12 @@ #if PLATFORM(GTK) || PLATFORM(WPE) GTKWPEPortRange = 20000, + FlushPendingLayerChangesStart, + FlushPendingLayerChangesEnd, WaitForCompositionCompletionStart, WaitForCompositionCompletionEnd, - FrameCompositionStart, - FrameCompositionEnd, + RenderLayerTreeStart, + RenderLayerTreeEnd, LayerFlushStart, LayerFlushEnd, UpdateLayerContentBuffersStart, diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/glib/GSocketMonitor.cpp webkit2gtk-2.46.3/Source/WTF/wtf/glib/GSocketMonitor.cpp --- webkit2gtk-2.46.0/Source/WTF/wtf/glib/GSocketMonitor.cpp 2024-08-19 06:28:38.571296700 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/glib/GSocketMonitor.cpp 2024-10-21 09:00:02.687247000 +0000 @@ -33,6 +33,7 @@ GSocketMonitor::~GSocketMonitor() { + RELEASE_ASSERT(!m_isExecutingCallback); stop(); } @@ -40,7 +41,17 @@ { if (g_cancellable_is_cancelled(monitor->m_cancellable.get())) return G_SOURCE_REMOVE; - return monitor->m_callback(condition); + + monitor->m_isExecutingCallback = true; + gboolean result = monitor->m_callback(condition); + monitor->m_isExecutingCallback = false; + + if (monitor->m_shouldDestroyCallback) { + monitor->m_callback = nullptr; + monitor->m_shouldDestroyCallback = false; + } + + return result; } void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, Function&& callback) @@ -65,7 +76,13 @@ m_cancellable = nullptr; g_source_destroy(m_source.get()); m_source = nullptr; - m_callback = nullptr; + + // It's normal to stop the socket monitor from inside its callback. + // Don't destroy the callback while it's still executing. + if (m_isExecutingCallback) + m_shouldDestroyCallback = true; + else + m_callback = nullptr; } } // namespace WTF diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/glib/GSocketMonitor.h webkit2gtk-2.46.3/Source/WTF/wtf/glib/GSocketMonitor.h --- webkit2gtk-2.46.0/Source/WTF/wtf/glib/GSocketMonitor.h 2024-08-19 06:28:38.571296700 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/glib/GSocketMonitor.h 2024-10-21 09:00:02.687247000 +0000 @@ -51,6 +51,8 @@ GRefPtr m_source; GRefPtr m_cancellable; Function m_callback; + bool m_isExecutingCallback { false }; + bool m_shouldDestroyCallback { false }; }; } // namespace WTF diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/glib/Sandbox.cpp webkit2gtk-2.46.3/Source/WTF/wtf/glib/Sandbox.cpp --- webkit2gtk-2.46.0/Source/WTF/wtf/glib/Sandbox.cpp 2024-08-29 11:52:43.073542600 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/glib/Sandbox.cpp 2024-10-21 09:00:02.687247000 +0000 @@ -26,9 +26,11 @@ #include "config.h" #include +#include #include #include #include +#include #include namespace WTF { @@ -97,6 +99,24 @@ return returnValue; } +bool checkFlatpakPortalVersion(int version) +{ + static int flatpakPortalVersion = -1; + static std::once_flag onceFlag; + + std::call_once(onceFlag, [] { + GRefPtr proxy = adoptGRef(g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, nullptr, "org.freedesktop.portal.Flatpak", "/org/freedesktop/portal/Flatpak", "org.freedesktop.portal.Flatpak", nullptr, nullptr)); + if (!proxy) + return; + GRefPtr result = adoptGRef(g_dbus_proxy_get_cached_property(proxy.get(), "version")); + if (!result) + return; + flatpakPortalVersion = g_variant_get_uint32(result.get()); + }); + + return flatpakPortalVersion != -1 && flatpakPortalVersion >= version; +} + const CString& sandboxedUserRuntimeDirectory() { static LazyNeverDestroyed userRuntimeDirectory; diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/glib/Sandbox.h webkit2gtk-2.46.3/Source/WTF/wtf/glib/Sandbox.h --- webkit2gtk-2.46.0/Source/WTF/wtf/glib/Sandbox.h 2024-08-29 11:52:43.073542600 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/glib/Sandbox.h 2024-10-21 09:00:02.687247000 +0000 @@ -28,6 +28,7 @@ WTF_EXPORT_PRIVATE bool isInsideSnap(); WTF_EXPORT_PRIVATE bool shouldUseBubblewrap(); WTF_EXPORT_PRIVATE bool shouldUsePortal(); +WTF_EXPORT_PRIVATE bool checkFlatpakPortalVersion(int); WTF_EXPORT_PRIVATE const CString& sandboxedUserRuntimeDirectory(); @@ -38,5 +39,6 @@ using WTF::isInsideSnap; using WTF::shouldUseBubblewrap; using WTF::shouldUsePortal; +using WTF::checkFlatpakPortalVersion; using WTF::sandboxedUserRuntimeDirectory; diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/glib/SysprofAnnotator.h webkit2gtk-2.46.3/Source/WTF/wtf/glib/SysprofAnnotator.h --- webkit2gtk-2.46.0/Source/WTF/wtf/glib/SysprofAnnotator.h 2024-09-16 08:33:15.109030000 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/glib/SysprofAnnotator.h 2024-09-30 08:15:01.104258500 +0000 @@ -136,7 +136,8 @@ case BackingStoreFlushStart: case BuildTransactionStart: case WaitForCompositionCompletionStart: - case FrameCompositionStart: + case RenderLayerTreeStart: + case FlushPendingLayerChangesStart: case LayerFlushStart: case SyncMessageStart: case SyncTouchEventStart: @@ -194,7 +195,8 @@ case WebHTMLViewPaintEnd: case BackingStoreFlushEnd: case WaitForCompositionCompletionEnd: - case FrameCompositionEnd: + case RenderLayerTreeEnd: + case FlushPendingLayerChangesEnd: case LayerFlushEnd: case BuildTransactionEnd: case SyncMessageEnd: @@ -438,12 +440,15 @@ case WakeUpAndApplyDisplayListEnd: return "WakeUpAndApplyDisplayList"_s; + case FlushPendingLayerChangesStart: + case FlushPendingLayerChangesEnd: + return "FlushPendingLayerChanges"_s; case WaitForCompositionCompletionStart: case WaitForCompositionCompletionEnd: return "WaitForCompositionCompletion"_s; - case FrameCompositionStart: - case FrameCompositionEnd: - return "FrameComposition"_s; + case RenderLayerTreeStart: + case RenderLayerTreeEnd: + return "RenderLayerTree"_s; case LayerFlushStart: case LayerFlushEnd: return "LayerFlush"_s; diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/posix/FileSystemPOSIX.cpp webkit2gtk-2.46.3/Source/WTF/wtf/posix/FileSystemPOSIX.cpp --- webkit2gtk-2.46.0/Source/WTF/wtf/posix/FileSystemPOSIX.cpp 2024-08-19 06:28:38.575296600 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/posix/FileSystemPOSIX.cpp 2024-10-21 09:00:02.687247000 +0000 @@ -62,7 +62,7 @@ if (fsRep.isNull()) return invalidPlatformFileHandle; - int platformFlag = 0; + int platformFlag = O_CLOEXEC; switch (mode) { case FileOpenMode::Read: platformFlag |= O_RDONLY; @@ -271,7 +271,7 @@ if (snprintf(buffer, PATH_MAX, "%s/%sXXXXXX", temporaryFileDirectory(), prefix.utf8().data()) >= PATH_MAX) goto end; - handle = mkstemp(buffer); + handle = mkostemp(buffer, O_CLOEXEC); if (handle < 0) goto end; diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/simde/arm/neon.h webkit2gtk-2.46.3/Source/WTF/wtf/simde/arm/neon.h --- webkit2gtk-2.46.0/Source/WTF/wtf/simde/arm/neon.h 2024-08-19 06:28:38.583296300 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/simde/arm/neon.h 2024-10-21 09:00:02.699247000 +0000 @@ -1,5 +1,5 @@ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon.h :: */ /* SPDX-License-Identifier: MIT * @@ -32,7 +32,7 @@ #define SIMDE_ARM_NEON_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/types.h :: */ /* SPDX-License-Identifier: MIT * @@ -66,7 +66,7 @@ #define SIMDE_ARM_NEON_TYPES_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-common.h :: */ /* SPDX-License-Identifier: MIT * @@ -100,7 +100,7 @@ #define SIMDE_COMMON_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/hedley.h :: */ /* Hedley - https://nemequ.github.io/hedley * Created by Evan Nemerson @@ -2151,7 +2151,7 @@ #define SIMDE_VERSION_MAJOR 0 #define SIMDE_VERSION_MINOR 8 -#define SIMDE_VERSION_MICRO 2 +#define SIMDE_VERSION_MICRO 3 #define SIMDE_VERSION HEDLEY_VERSION_ENCODE(SIMDE_VERSION_MAJOR, SIMDE_VERSION_MINOR, SIMDE_VERSION_MICRO) // Also update meson.build in the root directory of the repository @@ -2159,7 +2159,7 @@ #include /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-detect-clang.h :: */ /* Detect Clang Version * Created by Evan Nemerson @@ -2294,7 +2294,7 @@ #endif /* !defined(SIMDE_DETECT_CLANG_H) */ /* :: End simde/simde-detect-clang.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-arch.h :: */ /* Architecture detection * Created by Evan Nemerson @@ -2341,7 +2341,7 @@ #define SIMDE_ARCH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* Alpha */ @@ -2429,6 +2429,9 @@ #if defined(__ARM_FEATURE_CRYPTO) && __ARM_FEATURE_CRYPTO # define SIMDE_ARCH_ARM_CRYPTO #endif +#if defined(__ARM_FEATURE_CRC32) && __ARM_FEATURE_CRC32 +# define SIMDE_ARCH_ARM_CRC32 +#endif #if defined(__ARM_FEATURE_DOTPROD) && __ARM_FEATURE_DOTPROD # define SIMDE_ARCH_ARM_DOTPROD #endif @@ -2986,7 +2989,7 @@ #endif /* !defined(SIMDE_ARCH_H) */ /* :: End simde/simde-arch.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-features.h :: */ /* SPDX-License-Identifier: MIT * @@ -3023,9 +3026,9 @@ #define SIMDE_FEATURES_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-diagnostic.h :: */ /* SPDX-License-Identifier: MIT * @@ -3077,11 +3080,11 @@ #define SIMDE_DIAGNOSTIC_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* This is only to help us implement functions like _mm_undefined_ps. */ #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) @@ -4222,9 +4225,9 @@ #endif /* !defined(SIMDE_FEATURES_H) */ /* :: End simde/simde-features.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-math.h :: */ /* SPDX-License-Identifier: MIT * @@ -4262,9 +4265,9 @@ #define SIMDE_MATH_H 1 /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) @@ -4405,7 +4408,7 @@ #endif #endif -#if !defined(SIMDE_NANF) +#if !defined(SIMDE_MATH_NANF) #if \ HEDLEY_HAS_BUILTIN(__builtin_nanf) || \ HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ @@ -5182,16 +5185,36 @@ #endif #endif +#if !defined(simde_math_pow) + #if SIMDE_MATH_BUILTIN_LIBM(pow) + #define simde_math_pow(y, x) __builtin_pow(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_pow(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_pow(y, x) pow(y, x) + #endif +#endif + +#if !defined(simde_math_powf) + #if SIMDE_MATH_BUILTIN_LIBM(powf) + #define simde_math_powf(y, x) __builtin_powf(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_powf(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_powf(y, x) powf(y, x) + #endif +#endif + #if HEDLEY_HAS_BUILTIN(__builtin_exp10) || HEDLEY_GCC_VERSION_CHECK(3,4,0) # define simde_math_exp10(v) __builtin_exp10(v) #else -# define simde_math_exp10(v) pow(10.0, (v)) +# define simde_math_exp10(v) simde_math_pow(10.0, (v)) #endif #if HEDLEY_HAS_BUILTIN(__builtin_exp10f) || HEDLEY_GCC_VERSION_CHECK(3,4,0) # define simde_math_exp10f(v) __builtin_exp10f(v) #else -# define simde_math_exp10f(v) powf(10.0f, (v)) +# define simde_math_exp10f(v) simde_math_powf(10.0f, (v)) #endif #if !defined(simde_math_fabs) @@ -5434,26 +5457,6 @@ #endif #endif -#if !defined(simde_math_pow) - #if SIMDE_MATH_BUILTIN_LIBM(pow) - #define simde_math_pow(y, x) __builtin_pow(y, x) - #elif defined(SIMDE_MATH_HAVE_CMATH) - #define simde_math_pow(y, x) std::pow(y, x) - #elif defined(SIMDE_MATH_HAVE_MATH_H) - #define simde_math_pow(y, x) pow(y, x) - #endif -#endif - -#if !defined(simde_math_powf) - #if SIMDE_MATH_BUILTIN_LIBM(powf) - #define simde_math_powf(y, x) __builtin_powf(y, x) - #elif defined(SIMDE_MATH_HAVE_CMATH) - #define simde_math_powf(y, x) std::pow(y, x) - #elif defined(SIMDE_MATH_HAVE_MATH_H) - #define simde_math_powf(y, x) powf(y, x) - #endif -#endif - #if !defined(simde_math_rint) #if SIMDE_MATH_BUILTIN_LIBM(rint) #define simde_math_rint(v) __builtin_rint(v) @@ -6295,7 +6298,7 @@ #endif /* !defined(SIMDE_MATH_H) */ /* :: End simde/simde-math.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-constify.h :: */ /* SPDX-License-Identifier: MIT * @@ -6350,7 +6353,7 @@ #define SIMDE_CONSTIFY_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ @@ -6697,7 +6700,7 @@ #endif /* :: End simde/simde-constify.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-align.h :: */ /* Alignment * Created by Evan Nemerson @@ -6754,7 +6757,7 @@ #define SIMDE_ALIGN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* I know this seems a little silly, but some non-hosted compilers * don't have stddef.h, so we try to accommodate them. */ @@ -7952,7 +7955,7 @@ SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_uint64_as_float64, simde_float64, uint64_t) /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/check.h :: */ /* Check (assertions) * Portable Snippets - https://github.com/nemequ/portable-snippets @@ -7974,9 +7977,9 @@ #endif /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include #if !defined(_WIN32) @@ -8017,7 +8020,7 @@ # endif /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/debug-trap.h :: */ /* Debugging assertions and traps * Portable Snippets - https://github.com/nemequ/portable-snippets @@ -8506,6 +8509,9 @@ # if (!HEDLEY_GCC_VERSION_CHECK(9,0,0) && !defined(SIMDE_ARCH_AARCH64)) || (!defined(SIMDE_ARCH_AARCH64) && defined(SIMDE_ARCH_ARM)) # define SIMDE_BUG_GCC_REV_260989 # endif +# if !HEDLEY_GCC_VERSION_CHECK(11,5,0) && (defined(SIMDE_ARCH_ARM4) || defined(SIMDE_ARCH_AARCH64)) +# define SIMDE_BUG_GCC_114521 +# endif # if defined(SIMDE_ARCH_ARM) && !defined(SIMDE_ARCH_AARCH64) # define SIMDE_BUG_GCC_95399 # define SIMDE_BUG_GCC_95471 @@ -8703,7 +8709,7 @@ #endif /* !defined(SIMDE_COMMON_H) */ /* :: End simde/simde-common.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-f16.h :: */ /* SPDX-License-Identifier: MIT * @@ -8733,11 +8739,11 @@ */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if !defined(SIMDE_FLOAT16_H) #define SIMDE_FLOAT16_H @@ -9033,7 +9039,7 @@ #endif /* !defined(SIMDE_FLOAT16_H) */ /* :: End simde/simde-f16.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-bf16.h :: */ /* SPDX-License-Identifier: MIT * @@ -9062,11 +9068,11 @@ */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if !defined(SIMDE_BFLOAT16_H) #define SIMDE_BFLOAT16_H @@ -10665,7 +10671,7 @@ /* :: End simde/arm/neon/types.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/aba.h :: */ /* SPDX-License-Identifier: MIT * @@ -10697,7 +10703,7 @@ #define SIMDE_ARM_NEON_ABA_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/abd.h :: */ /* SPDX-License-Identifier: MIT * @@ -10730,7 +10736,7 @@ #define SIMDE_ARM_NEON_ABD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/abs.h :: */ /* SPDX-License-Identifier: MIT * @@ -10757,13 +10763,14 @@ * Copyright: * 2020 Evan Nemerson * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ABS_H) #define SIMDE_ARM_NEON_ABS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -10809,10 +10816,14 @@ r_, a_ = simde_float16x4_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vabsh_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv64 = __riscv_vfabs_v_f16m1(a_.sv64 , 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vabsh_f16(a_.values[i]); + } + #endif return simde_float16x4_from_private(r_); #endif @@ -10832,10 +10843,14 @@ r_, a_ = simde_float32x2_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] < 0 ? -a_.values[i] : a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfabs_v_f32m1(a_.sv64 , 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] < 0 ? -a_.values[i] : a_.values[i]; + } + #endif return simde_float32x2_from_private(r_); #endif @@ -10855,10 +10870,14 @@ r_, a_ = simde_float64x1_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] < 0 ? -a_.values[i] : a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfabs_v_f64m1(a_.sv64 , 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] < 0 ? -a_.values[i] : a_.values[i]; + } + #endif return simde_float64x1_from_private(r_); #endif @@ -10880,6 +10899,8 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_abs_pi8(a_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmax_vv_i8m1(a_.sv64 , __riscv_vneg_v_i8m1(a_.sv64 , 8) , 8); #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT8_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -10910,6 +10931,8 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_abs_pi16(a_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmax_vv_i16m1(a_.sv64 , __riscv_vneg_v_i16m1(a_.sv64 , 4) , 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100761) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT16_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -10940,6 +10963,8 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_abs_pi32(a_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmax_vv_i32m1(a_.sv64 , __riscv_vneg_v_i32m1(a_.sv64 , 2) , 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100761) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT32_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -10968,7 +10993,9 @@ r_, a_ = simde_int64x1_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmax_vv_i64m1(a_.sv64 , __riscv_vneg_v_i64m1(a_.sv64 , 1) , 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT64_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); #else @@ -10996,10 +11023,14 @@ r_, a_ = simde_float16x8_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vabsh_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv128 = __riscv_vfabs_v_f16m1(a_.sv128 , 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vabsh_f16(a_.values[i]); + } + #endif return simde_float16x8_from_private(r_); #endif @@ -11023,6 +11054,8 @@ #if defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f32x4_abs(a_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfabs_v_f32m1(a_.sv128 , 4); #elif defined(SIMDE_X86_SSE_NATIVE) simde_float32 mask_; uint32_t u32_ = UINT32_C(0x7FFFFFFF); @@ -11060,6 +11093,8 @@ uint64_t u64_ = UINT64_C(0x7FFFFFFFFFFFFFFF); simde_memcpy(&mask_, &u64_, sizeof(u64_)); r_.m128d = _mm_and_pd(_mm_set1_pd(mask_), a_.m128d); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfabs_v_f64m1(a_.sv128 , 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -11093,6 +11128,8 @@ r_.m128i = _mm_min_epu8(a_.m128i, _mm_sub_epi8(_mm_setzero_si128(), a_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_abs(a_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmax_vv_i8m1(a_.sv128 , __riscv_vneg_v_i8m1(a_.sv128 , 16) , 16); #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT8_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -11129,6 +11166,8 @@ r_.m128i = _mm_max_epi16(a_.m128i, _mm_sub_epi16(_mm_setzero_si128(), a_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_abs(a_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmax_vv_i16m1(a_.sv128 , __riscv_vneg_v_i16m1(a_.sv128 , 8) , 8); #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT16_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -11166,6 +11205,8 @@ r_.m128i = _mm_sub_epi32(_mm_xor_si128(a_.m128i, m), m); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_abs(a_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmax_vv_i32m1(a_.sv128 , __riscv_vneg_v_i32m1(a_.sv128 , 4) , 4); #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT32_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -11187,6 +11228,7 @@ SIMDE_FUNCTION_ATTRIBUTES simde_int64x2_t simde_vabsq_s64(simde_int64x2_t a) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabsq_s64(a); #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -11205,6 +11247,8 @@ r_.m128i = _mm_sub_epi64(_mm_xor_si128(a_.m128i, m), m); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i64x2_abs(a_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmax_vv_i64m1(a_.sv128 , __riscv_vneg_v_i64m1(a_.sv128 , 2) , 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < INT64_C(0)); r_.values = (-a_.values & m) | (a_.values & ~m); @@ -11229,7 +11273,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ABS_H) */ /* :: End simde/arm/neon/abs.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/subl.h :: */ /* SPDX-License-Identifier: MIT * @@ -11256,13 +11300,14 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SUBL_H) #define SIMDE_ARM_NEON_SUBL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sub.h :: */ /* SPDX-License-Identifier: MIT * @@ -11295,7 +11340,7 @@ #define SIMDE_ARM_NEON_SUB_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -12021,7 +12066,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUB_H) */ /* :: End simde/arm/neon/sub.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/movl.h :: */ /* SPDX-License-Identifier: MIT * @@ -12048,13 +12093,14 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MOVL_H) #define SIMDE_ARM_NEON_MOVL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/combine.h :: */ /* SPDX-License-Identifier: MIT * @@ -12082,13 +12128,14 @@ * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_COMBINE_H) #define SIMDE_ARM_NEON_COMBINE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -12104,14 +12151,16 @@ simde_float16x4_private low_ = simde_float16x4_to_private(low), high_ = simde_float16x4_to_private(high); - - size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < halfway ; i++) { - r_.values[i] = low_.values[i]; - r_.values[i + halfway] = high_.values[i]; - } - + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vslideup_vx_f16m1(low_.sv64, high_.sv64, 4, 8); + #else + size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; + SIMDE_VECTORIZE + for (size_t i = 0 ; i < halfway ; i++) { + r_.values[i] = low_.values[i]; + r_.values[i + halfway] = high_.values[i]; + } + #endif return simde_float16x8_from_private(r_); #endif } @@ -12134,7 +12183,9 @@ /* Note: __builtin_shufflevector can have a the output contain * twice the number of elements, __builtin_shuffle cannot. * Using SIMDE_SHUFFLE_VECTOR_ here would not work. */ - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_f32m1(low_.sv64, high_.sv64, 2, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12164,7 +12215,9 @@ low_ = simde_float64x1_to_private(low), high_ = simde_float64x1_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_f64m1(low_.sv64, high_.sv64, 1, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12194,7 +12247,9 @@ low_ = simde_int8x8_to_private(low), high_ = simde_int8x8_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_i8m1(low_.sv64, high_.sv64, 8, 16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12224,7 +12279,9 @@ low_ = simde_int16x4_to_private(low), high_ = simde_int16x4_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_i16m1(low_.sv64, high_.sv64, 4, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3, 4, 5, 6, 7); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12254,7 +12311,9 @@ low_ = simde_int32x2_to_private(low), high_ = simde_int32x2_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_i32m1(low_.sv64, high_.sv64, 2, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12284,7 +12343,9 @@ low_ = simde_int64x1_to_private(low), high_ = simde_int64x1_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_i64m1(low_.sv64, high_.sv64, 1, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12314,7 +12375,9 @@ low_ = simde_uint8x8_to_private(low), high_ = simde_uint8x8_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_u8m1(low_.sv64, high_.sv64, 8, 16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12344,7 +12407,9 @@ low_ = simde_uint16x4_to_private(low), high_ = simde_uint16x4_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_u16m1(low_.sv64, high_.sv64, 4, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3, 4, 5, 6, 7); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12374,7 +12439,9 @@ low_ = simde_uint32x2_to_private(low), high_ = simde_uint32x2_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_u32m1(low_.sv64, high_.sv64, 2, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1, 2, 3); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12404,7 +12471,9 @@ low_ = simde_uint64x1_to_private(low), high_ = simde_uint64x1_to_private(high); - #if defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vslideup_vx_u64m1(low_.sv64, high_.sv64, 1, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(low_.values, high_.values, 0, 1); #else size_t halfway = (sizeof(r_.values) / sizeof(r_.values[0])) / 2; @@ -12553,7 +12622,10 @@ simde_int16x8_private r_; simde_int8x8_private a_ = simde_int8x8_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t va = __riscv_vlmul_trunc_v_i8m1_i8mf2 (a_.sv64); + r_.sv128 = __riscv_vwcvt_x_x_v_i16m1 (va, 8); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -12586,7 +12658,10 @@ simde_int32x4_private r_; simde_int16x4_private a_ = simde_int16x4_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) + #if defined(SIMDE_RISCV_V_NATIVE) + vint16mf2_t va = __riscv_vlmul_trunc_v_i16m1_i16mf2 (a_.sv64); + r_.sv128 = __riscv_vwcvt_x_x_v_i32m1 (va, 4); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -12619,7 +12694,10 @@ simde_int64x2_private r_; simde_int32x2_private a_ = simde_int32x2_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vint32mf2_t va = __riscv_vlmul_trunc_v_i32m1_i32mf2(a_.sv64); + r_.sv128 = __riscv_vwcvt_x_x_v_i64m1 (va, 2); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -12652,7 +12730,10 @@ simde_uint16x8_private r_; simde_uint8x8_private a_ = simde_uint8x8_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8mf2_t va = __riscv_vlmul_trunc_v_u8m1_u8mf2(a_.sv64); + r_.sv128 = __riscv_vwcvtu_x_x_v_u16m1 (va, 8); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -12685,7 +12766,10 @@ simde_uint32x4_private r_; simde_uint16x4_private a_ = simde_uint16x4_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16mf2_t va = __riscv_vlmul_trunc_v_u16m1_u16mf2(a_.sv64); + r_.sv128 = __riscv_vwcvtu_x_x_v_u32m1 (va, 4); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100761) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -12718,7 +12802,10 @@ simde_uint64x2_private r_; simde_uint32x2_private a_ = simde_uint32x2_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32mf2_t va = __riscv_vlmul_trunc_v_u32m1_u32mf2(a_.sv64); + r_.sv128 = __riscv_vwcvtu_x_x_v_u64m1 (va, 2); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -12741,7 +12828,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MOVL_H) */ /* :: End simde/arm/neon/movl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/movl_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -12774,11 +12861,11 @@ #define SIMDE_ARM_NEON_MOVL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/get_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -12806,13 +12893,14 @@ * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_GET_HIGH_H) #define SIMDE_ARM_NEON_GET_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -12826,12 +12914,14 @@ #else simde_float16x4_private r_; simde_float16x8_private a_ = simde_float16x8_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i + (sizeof(r_.values) / sizeof(r_.values[0]))]; - } - + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vslidedown_vx_f16m1(a_.sv128 , 4 , 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i + (sizeof(r_.values) / sizeof(r_.values[0]))]; + } + #endif return simde_float16x4_from_private(r_); #endif } @@ -12849,7 +12939,9 @@ simde_float32x2_private r_; simde_float32x4_private a_ = simde_float32x4_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_f32m1(a_.sv128 , 2 , 4); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 2, 3); #else SIMDE_VECTORIZE @@ -12875,7 +12967,9 @@ simde_float64x1_private r_; simde_float64x2_private a_ = simde_float64x2_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_f64m1(a_.sv128 , 1 , 2); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 1); #else SIMDE_VECTORIZE @@ -12901,7 +12995,9 @@ simde_int8x8_private r_; simde_int8x16_private a_ = simde_int8x16_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_i8m1(a_.sv128 , 8 , 16); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 8, 9, 10, 11, 12, 13, 14, 15); #else SIMDE_VECTORIZE @@ -12927,7 +13023,9 @@ simde_int16x4_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_i16m1(a_.sv128 , 4 , 8); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 4, 5, 6, 7); #else SIMDE_VECTORIZE @@ -12953,7 +13051,9 @@ simde_int32x2_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_i32m1(a_.sv128 , 2 , 4); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 2, 3); #else SIMDE_VECTORIZE @@ -12979,7 +13079,9 @@ simde_int64x1_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_i64m1(a_.sv128 , 1 , 2); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 1); #else SIMDE_VECTORIZE @@ -13005,7 +13107,9 @@ simde_uint8x8_private r_; simde_uint8x16_private a_ = simde_uint8x16_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_u8m1(a_.sv128 , 8 , 16); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 8, 9, 10, 11, 12, 13, 14,15); #else SIMDE_VECTORIZE @@ -13031,7 +13135,9 @@ simde_uint16x4_private r_; simde_uint16x8_private a_ = simde_uint16x8_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_u16m1(a_.sv128 , 4 , 8); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 4, 5, 6, 7); #else SIMDE_VECTORIZE @@ -13057,7 +13163,9 @@ simde_uint32x2_private r_; simde_uint32x4_private a_ = simde_uint32x4_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_u32m1(a_.sv128 , 2 , 4); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 2, 3); #else SIMDE_VECTORIZE @@ -13083,7 +13191,9 @@ simde_uint64x1_private r_; simde_uint64x2_private a_ = simde_uint64x2_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vslidedown_vx_u64m1(a_.sv128 , 1 , 2); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 1); #else SIMDE_VECTORIZE @@ -13288,7 +13398,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MOVL_HIGH_H) */ /* :: End simde/arm/neon/movl_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -13299,6 +13409,12 @@ simde_vsubl_s8(simde_int8x8_t a, simde_int8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubl_s8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int8x8_private a_ = simde_int8x8_to_private(a); + simde_int8x8_private b_ = simde_int8x8_to_private(b); + r_.sv128 = __riscv_vwsub_vv_i16m1(__riscv_vlmul_trunc_v_i8m1_i8mf2(a_.sv64) , __riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv64) , 8); + return simde_int16x8_from_private(r_); #else return simde_vsubq_s16(simde_vmovl_s8(a), simde_vmovl_s8(b)); #endif @@ -13313,6 +13429,12 @@ simde_vsubl_s16(simde_int16x4_t a, simde_int16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubl_s16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int16x4_private a_ = simde_int16x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + r_.sv128 = __riscv_vwsub_vv_i32m1(__riscv_vlmul_trunc_v_i16m1_i16mf2(a_.sv64) , __riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv64) , 4); + return simde_int32x4_from_private(r_); #else return simde_vsubq_s32(simde_vmovl_s16(a), simde_vmovl_s16(b)); #endif @@ -13327,6 +13449,12 @@ simde_vsubl_s32(simde_int32x2_t a, simde_int32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubl_s32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int32x2_private a_ = simde_int32x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + r_.sv128 = __riscv_vwsub_vv_i64m1(__riscv_vlmul_trunc_v_i32m1_i32mf2(a_.sv64) , __riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv64) , 2); + return simde_int64x2_from_private(r_); #else return simde_vsubq_s64(simde_vmovl_s32(a), simde_vmovl_s32(b)); #endif @@ -13341,6 +13469,12 @@ simde_vsubl_u8(simde_uint8x8_t a, simde_uint8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubl_u8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint8x8_private a_ = simde_uint8x8_to_private(a); + simde_uint8x8_private b_ = simde_uint8x8_to_private(b); + r_.sv128 = __riscv_vwsubu_vv_u16m1(__riscv_vlmul_trunc_v_u8m1_u8mf2 (a_.sv64) , __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv64) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vsubq_u16(simde_vmovl_u8(a), simde_vmovl_u8(b)); #endif @@ -13355,6 +13489,12 @@ simde_vsubl_u16(simde_uint16x4_t a, simde_uint16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubl_u16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint16x4_private a_ = simde_uint16x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + r_.sv128 = __riscv_vwsubu_vv_u32m1(__riscv_vlmul_trunc_v_u16m1_u16mf2 (a_.sv64) , __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vsubq_u32(simde_vmovl_u16(a), simde_vmovl_u16(b)); #endif @@ -13369,6 +13509,12 @@ simde_vsubl_u32(simde_uint32x2_t a, simde_uint32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubl_u32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint32x2_private a_ = simde_uint32x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + r_.sv128 = __riscv_vwsubu_vv_u64m1(__riscv_vlmul_trunc_v_u32m1_u32mf2 (a_.sv64) , __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64) , 4); + return simde_uint64x2_from_private(r_); #else return simde_vsubq_u64(simde_vmovl_u32(a), simde_vmovl_u32(b)); #endif @@ -13384,7 +13530,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUBL_H) */ /* :: End simde/arm/neon/subl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/movn.h :: */ /* SPDX-License-Identifier: MIT * @@ -13410,13 +13556,14 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MOVN_H) #define SIMDE_ARM_NEON_MOVN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -13431,7 +13578,9 @@ simde_int8x8_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vlmul_ext_v_i8mf2_i8m1(__riscv_vncvt_x_x_w_i8mf2(a_.sv128, 8)); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -13457,7 +13606,9 @@ simde_int16x4_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vlmul_ext_v_i16mf2_i16m1(__riscv_vncvt_x_x_w_i16mf2(a_.sv128, 4)); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -13483,7 +13634,9 @@ simde_int32x2_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vlmul_ext_v_i32mf2_i32m1(__riscv_vncvt_x_x_w_i32mf2(a_.sv128, 2)); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -13509,7 +13662,9 @@ simde_uint8x8_private r_; simde_uint16x8_private a_ = simde_uint16x8_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vlmul_ext_v_u8mf2_u8m1(__riscv_vncvt_x_x_w_u8mf2(a_.sv128, 8)); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -13535,7 +13690,9 @@ simde_uint16x4_private r_; simde_uint32x4_private a_ = simde_uint32x4_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vlmul_ext_v_u16mf2_u16m1(__riscv_vncvt_x_x_w_u16mf2(a_.sv128, 4)); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -13561,7 +13718,9 @@ simde_uint32x2_private r_; simde_uint64x2_private a_ = simde_uint64x2_to_private(a); - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vlmul_ext_v_u32mf2_u32m1(__riscv_vncvt_x_x_w_u32mf2(a_.sv128, 2)); + #elif defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -13584,9 +13743,9 @@ #endif /* !defined(SIMDE_ARM_NEON_MOVN_H) */ /* :: End simde/arm/neon/movn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/reinterpret.h :: */ /* SPDX-License-Identifier: MIT * @@ -13621,7 +13780,7 @@ #define SIMDE_ARM_NEON_REINTERPRET_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -21716,7 +21875,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ABD_H) */ /* :: End simde/arm/neon/abd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/add.h :: */ /* SPDX-License-Identifier: MIT * @@ -21750,7 +21909,7 @@ #define SIMDE_ARM_NEON_ADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -22861,7 +23020,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ABA_H) */ /* :: End simde/arm/neon/aba.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/abal.h :: */ /* SPDX-License-Identifier: MIT * @@ -22887,13 +23046,14 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ABAL_H) #define SIMDE_ARM_NEON_ABAL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/abdl.h :: */ /* SPDX-License-Identifier: MIT * @@ -22925,13 +23085,13 @@ #define SIMDE_ARM_NEON_ABDL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -23048,7 +23208,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ABDL_H) */ /* :: End simde/arm/neon/abdl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -23059,6 +23219,14 @@ simde_vabal_s8(simde_int16x8_t a, simde_int8x8_t b, simde_int8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vabal_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_, a_ = simde_int16x8_to_private(a); + simde_int8x8_private b_ = simde_int8x8_to_private(b); + simde_int8x8_private c_ = simde_int8x8_to_private(c); + vint16m1_t rst = __riscv_vwsub_vv_i16m1(__riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv64) , \ + __riscv_vlmul_trunc_v_i8m1_i8mf2(c_.sv64) , 8); + r_.sv128 = __riscv_vadd_vv_i16m1(__riscv_vmax_vv_i16m1(rst , __riscv_vneg_v_i16m1(rst , 8) , 8), a_.sv128, 8); + return simde_int16x8_from_private(r_); #else return simde_vaddq_s16(simde_vabdl_s8(b, c), a); #endif @@ -23073,6 +23241,13 @@ simde_vabal_s16(simde_int32x4_t a, simde_int16x4_t b, simde_int16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vabal_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_, a_ = simde_int32x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + simde_int16x4_private c_ = simde_int16x4_to_private(c); + vint32m1_t rst = __riscv_vwsub_vv_i32m1(__riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv64) , __riscv_vlmul_trunc_v_i16m1_i16mf2(c_.sv64) , 4); + r_.sv128 = __riscv_vadd_vv_i32m1(__riscv_vmax_vv_i32m1(rst , __riscv_vneg_v_i32m1(rst , 4) , 4), a_.sv128, 4); + return simde_int32x4_from_private(r_); #else return simde_vaddq_s32(simde_vabdl_s16(b, c), a); #endif @@ -23087,6 +23262,13 @@ simde_vabal_s32(simde_int64x2_t a, simde_int32x2_t b, simde_int32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vabal_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_, a_ = simde_int64x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + simde_int32x2_private c_ = simde_int32x2_to_private(c); + vint64m1_t rst = __riscv_vwsub_vv_i64m1(__riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv64) , __riscv_vlmul_trunc_v_i32m1_i32mf2(c_.sv64) , 2); + r_.sv128 = __riscv_vadd_vv_i64m1(__riscv_vmax_vv_i64m1(rst , __riscv_vneg_v_i64m1(rst , 2) , 2), a_.sv128, 2); + return simde_int64x2_from_private(r_); #else return simde_vaddq_s64(simde_vabdl_s32(b, c), a); #endif @@ -23101,6 +23283,16 @@ simde_vabal_u8(simde_uint16x8_t a, simde_uint8x8_t b, simde_uint8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vabal_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_, a_ = simde_uint16x8_to_private(a); + simde_uint8x8_private b_ = simde_uint8x8_to_private(b); + simde_uint8x8_private c_ = simde_uint8x8_to_private(c); + vint16m1_t a_tmp = __riscv_vreinterpret_v_u16m1_i16m1(__riscv_vwcvtu_x_x_v_u16m1(__riscv_vlmul_trunc_v_u8m1_u8mf2(b_.sv64), 8)); + vint16m1_t b_tmp = __riscv_vreinterpret_v_u16m1_i16m1(__riscv_vwcvtu_x_x_v_u16m1(__riscv_vlmul_trunc_v_u8m1_u8mf2(c_.sv64), 8)); + vint16m1_t rst = __riscv_vsub_vv_i16m1(a_tmp, b_tmp, 8); + r_.sv128 = __riscv_vadd_vv_u16m1(__riscv_vreinterpret_v_i16m1_u16m1(__riscv_vmax_vv_i16m1(rst , __riscv_vneg_v_i16m1(rst , 8) , 8)), \ + a_.sv128, 8); + return simde_uint16x8_from_private(r_); #else return simde_vaddq_u16(simde_vabdl_u8(b, c), a); #endif @@ -23115,6 +23307,16 @@ simde_vabal_u16(simde_uint32x4_t a, simde_uint16x4_t b, simde_uint16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vabal_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_, a_ = simde_uint32x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + simde_uint16x4_private c_ = simde_uint16x4_to_private(c); + vint32m1_t a_tmp = __riscv_vreinterpret_v_u32m1_i32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vlmul_trunc_v_u16m1_u16mf2(b_.sv64), 4)); + vint32m1_t b_tmp = __riscv_vreinterpret_v_u32m1_i32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vlmul_trunc_v_u16m1_u16mf2(c_.sv64), 4)); + vint32m1_t rst = __riscv_vsub_vv_i32m1(a_tmp, b_tmp, 4); + r_.sv128 = __riscv_vadd_vv_u32m1(__riscv_vreinterpret_v_i32m1_u32m1(__riscv_vmax_vv_i32m1(rst , __riscv_vneg_v_i32m1(rst , 4) , 4)), \ + a_.sv128, 4); + return simde_uint32x4_from_private(r_); #else return simde_vaddq_u32(simde_vabdl_u16(b, c), a); #endif @@ -23129,6 +23331,16 @@ simde_vabal_u32(simde_uint64x2_t a, simde_uint32x2_t b, simde_uint32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vabal_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_, a_ = simde_uint64x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + simde_uint32x2_private c_ = simde_uint32x2_to_private(c); + vint64m1_t a_tmp = __riscv_vreinterpret_v_u64m1_i64m1(__riscv_vwcvtu_x_x_v_u64m1(__riscv_vlmul_trunc_v_u32m1_u32mf2(b_.sv64), 2)); + vint64m1_t b_tmp = __riscv_vreinterpret_v_u64m1_i64m1(__riscv_vwcvtu_x_x_v_u64m1(__riscv_vlmul_trunc_v_u32m1_u32mf2(c_.sv64), 2)); + vint64m1_t rst = __riscv_vsub_vv_i64m1(a_tmp, b_tmp, 4); + r_.sv128 = __riscv_vadd_vv_u64m1(__riscv_vreinterpret_v_i64m1_u64m1(__riscv_vmax_vv_i64m1(rst , __riscv_vneg_v_i64m1(rst , 2) , 2)), \ + a_.sv128, 2); + return simde_uint64x2_from_private(r_); #else return simde_vaddq_u64(simde_vabdl_u32(b, c), a); #endif @@ -23145,7 +23357,7 @@ #endif /* !defined(SIMDE_ARM_NEON_abal_H) */ /* :: End simde/arm/neon/abal.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/abal_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -23177,11 +23389,11 @@ #define SIMDE_ARM_NEON_ABAL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -23277,11 +23489,11 @@ #endif /* !defined(SIMDE_ARM_NEON_abal_H) */ /* :: End simde/arm/neon/abal_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/abdl_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -23307,13 +23519,14 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ABDL_HIGH_H) #define SIMDE_ARM_NEON_ABDL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -23324,6 +23537,14 @@ simde_vabdl_high_s8(simde_int8x16_t a, simde_int8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabdl_high_s8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int8x16_private a_ = simde_int8x16_to_private(a); + simde_int8x16_private b_ = simde_int8x16_to_private(b); + vint16m1_t rst = __riscv_vwsub_vv_i16m1(__riscv_vlmul_trunc_v_i8m1_i8mf2(__riscv_vslidedown_vx_i8m1(a_.sv128 , 8 , 16)), + __riscv_vlmul_trunc_v_i8m1_i8mf2(__riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16)) , 8); + r_.sv128 = __riscv_vmax_vv_i16m1(rst , __riscv_vneg_v_i16m1(rst , 8) , 8); + return simde_int16x8_from_private(r_); #else return simde_vabdl_s8(simde_vget_high_s8(a), simde_vget_high_s8(b)); #endif @@ -23338,6 +23559,14 @@ simde_vabdl_high_s16(simde_int16x8_t a, simde_int16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabdl_high_s16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + vint32m1_t rst = __riscv_vwsub_vv_i32m1(__riscv_vlmul_trunc_v_i16m1_i16mf2(__riscv_vslidedown_vx_i16m1(a_.sv128 , 4 , 8)) , \ + __riscv_vlmul_trunc_v_i16m1_i16mf2(__riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8)) , 4); + r_.sv128 = __riscv_vmax_vv_i32m1(rst , __riscv_vneg_v_i32m1(rst , 4) , 4); + return simde_int32x4_from_private(r_); #else return simde_vabdl_s16(simde_vget_high_s16(a), simde_vget_high_s16(b)); #endif @@ -23352,6 +23581,14 @@ simde_vabdl_high_s32(simde_int32x4_t a, simde_int32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabdl_high_s32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + vint64m1_t rst = __riscv_vwsub_vv_i64m1(__riscv_vlmul_trunc_v_i32m1_i32mf2(__riscv_vslidedown_vx_i32m1(a_.sv128 , 2 , 4)) , \ + __riscv_vlmul_trunc_v_i32m1_i32mf2(__riscv_vslidedown_vx_i32m1(b_.sv128 , 2 , 4)) , 2); + r_.sv128 = __riscv_vmax_vv_i64m1(rst , __riscv_vneg_v_i64m1(rst , 2) , 2); + return simde_int64x2_from_private(r_); #else return simde_vabdl_s32(simde_vget_high_s32(a), simde_vget_high_s32(b)); #endif @@ -23366,6 +23603,17 @@ simde_vabdl_high_u8(simde_uint8x16_t a, simde_uint8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabdl_high_u8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint8x16_private a_ = simde_uint8x16_to_private(a); + simde_uint8x16_private b_ = simde_uint8x16_to_private(b); + vint16m1_t a_tmp = __riscv_vreinterpret_v_u16m1_i16m1(__riscv_vwcvtu_x_x_v_u16m1( \ + __riscv_vlmul_trunc_v_u8m1_u8mf2(__riscv_vslidedown_vx_u8m1(a_.sv128 , 8 , 16)), 8)); + vint16m1_t b_tmp = __riscv_vreinterpret_v_u16m1_i16m1(__riscv_vwcvtu_x_x_v_u16m1( \ + __riscv_vlmul_trunc_v_u8m1_u8mf2(__riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16)), 8)); + vint16m1_t rst = __riscv_vsub_vv_i16m1(a_tmp, b_tmp, 8); + r_.sv128 = __riscv_vreinterpret_v_i16m1_u16m1(__riscv_vmax_vv_i16m1(rst , __riscv_vneg_v_i16m1(rst , 8) , 8)); + return simde_uint16x8_from_private(r_); #else return simde_vabdl_u8(simde_vget_high_u8(a), simde_vget_high_u8(b)); #endif @@ -23380,6 +23628,17 @@ simde_vabdl_high_u16(simde_uint16x8_t a, simde_uint16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabdl_high_u16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + vint32m1_t a_tmp = __riscv_vreinterpret_v_u32m1_i32m1(__riscv_vwcvtu_x_x_v_u32m1( \ + __riscv_vlmul_trunc_v_u16m1_u16mf2(__riscv_vslidedown_vx_u16m1(a_.sv128 , 4 , 8)), 4)); + vint32m1_t b_tmp = __riscv_vreinterpret_v_u32m1_i32m1(__riscv_vwcvtu_x_x_v_u32m1( \ + __riscv_vlmul_trunc_v_u16m1_u16mf2(__riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8)), 4)); + vint32m1_t rst = __riscv_vsub_vv_i32m1(a_tmp, b_tmp, 4); + r_.sv128 = __riscv_vreinterpret_v_i32m1_u32m1(__riscv_vmax_vv_i32m1(rst , __riscv_vneg_v_i32m1(rst , 4) , 4)); + return simde_uint32x4_from_private(r_); #else return simde_vabdl_u16(simde_vget_high_u16(a), simde_vget_high_u16(b)); #endif @@ -23394,6 +23653,17 @@ simde_vabdl_high_u32(simde_uint32x4_t a, simde_uint32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vabdl_high_u32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + vint64m1_t a_tmp = __riscv_vreinterpret_v_u64m1_i64m1(__riscv_vwcvtu_x_x_v_u64m1( \ + __riscv_vlmul_trunc_v_u32m1_u32mf2(__riscv_vslidedown_vx_u32m1(a_.sv128 , 2 , 4)), 2)); + vint64m1_t b_tmp = __riscv_vreinterpret_v_u64m1_i64m1(__riscv_vwcvtu_x_x_v_u64m1( \ + __riscv_vlmul_trunc_v_u32m1_u32mf2(__riscv_vslidedown_vx_u32m1(b_.sv128 , 2 , 4)), 2)); + vint64m1_t rst = __riscv_vsub_vv_i64m1(a_tmp, b_tmp, 4); + r_.sv128 = __riscv_vreinterpret_v_i64m1_u64m1(__riscv_vmax_vv_i64m1(rst , __riscv_vneg_v_i64m1(rst , 2) , 2)); + return simde_uint64x2_from_private(r_); #else return simde_vabdl_u32(simde_vget_high_u32(a), simde_vget_high_u32(b)); #endif @@ -23409,11 +23679,11 @@ #endif /* !defined(SIMDE_ARM_NEON_ABDL_HIGH_H) */ /* :: End simde/arm/neon/abdl_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addhn.h :: */ /* SPDX-License-Identifier: MIT * @@ -23445,9 +23715,9 @@ #define SIMDE_ARM_NEON_ADDHN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shr_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -23475,13 +23745,14 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SHR_N_H) #define SIMDE_ARM_NEON_SHR_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -23552,7 +23823,9 @@ a_ = simde_int8x8_to_private(a); int32_t n_ = (n == 8) ? 7 : n; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsra_vx_i8m1 (a_.sv64, n_, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values >> n_; #else SIMDE_VECTORIZE @@ -23585,7 +23858,9 @@ a_ = simde_int16x4_to_private(a); int32_t n_ = (n == 16) ? 15 : n; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsra_vx_i16m1 (a_.sv64, n_, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values >> n_; #else SIMDE_VECTORIZE @@ -23615,7 +23890,9 @@ a_ = simde_int32x2_to_private(a); int32_t n_ = (n == 32) ? 31 : n; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsra_vx_i32m1 (a_.sv64, n_, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n_; #else SIMDE_VECTORIZE @@ -23645,7 +23922,9 @@ a_ = simde_int64x1_to_private(a); int32_t n_ = (n == 64) ? 63 : n; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsra_vx_i64m1 (a_.sv64, n_, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n_; #else SIMDE_VECTORIZE @@ -23675,7 +23954,9 @@ if (n == 8) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsrl_vx_u8m1 (a_.sv64, n, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -23709,7 +23990,9 @@ if (n == 16) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsrl_vx_u16m1 (a_.sv64, n, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -23742,7 +24025,9 @@ if (n == 32) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsrl_vx_u32m1 (a_.sv64, n, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -23775,7 +24060,9 @@ if (n == 64) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsrl_vx_u64m1 (a_.sv64, n, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -23821,6 +24108,9 @@ _mm_and_si128(_mm_set1_epi16(0x00FF), _mm_srai_epi16(_mm_slli_epi16(a_.m128i, 8), 8 + (n)))); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shr(a_.v128, ((n) == 8) ? 7 : HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + int32_t n_ = (n == 8) ? 7 : n; + r_.sv128 = __riscv_vsra_vx_i8m1 (a_.sv128, n_, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> ((n == 8) ? 7 : n); #else @@ -23854,6 +24144,9 @@ r_.m128i = _mm_srai_epi16(a_.m128i, n); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_shr(a_.v128, ((n) == 16) ? 15 : HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + int32_t n_ = (n == 16) ? 15 : n; + r_.sv128 = __riscv_vsra_vx_i16m1 (a_.sv128, n_, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> ((n == 16) ? 15 : n); #else @@ -23887,6 +24180,9 @@ r_.m128i = _mm_srai_epi32(a_.m128i, n); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_shr(a_.v128, ((n) == 32) ? 31 : HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + int32_t n_ = (n == 32) ? 31 : n; + r_.sv128 = __riscv_vsra_vx_i32m1 (a_.sv128, n_, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> ((n == 32) ? 31 : n); #else @@ -23919,6 +24215,9 @@ #if defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i64x2_shr(a_.v128, ((n) == 64) ? 63 : HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + int32_t n_ = (n == 64) ? 63 : n; + r_.sv128 = __riscv_vsra_vx_i64m1 (a_.sv128, n_, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> ((n == 64) ? 63 : n); #else @@ -23960,7 +24259,9 @@ if (n == 8) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsrl_vx_u8m1 (a_.sv128, n, 16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -24000,7 +24301,9 @@ if (n == 16) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsrl_vx_u16m1 (a_.sv128, n, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -24040,7 +24343,9 @@ if (n == 32) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsrl_vx_u32m1 (a_.sv128, n, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -24080,7 +24385,9 @@ if (n == 64) { simde_memset(&r_, 0, sizeof(r_)); } else { - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_97248) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsrl_vx_u64m1 (a_.sv128, n, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_97248) r_.values = a_.values >> n; #else SIMDE_VECTORIZE @@ -24110,10 +24417,10 @@ #endif /* !defined(SIMDE_ARM_NEON_SHR_N_H) */ /* :: End simde/arm/neon/shr_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -24293,7 +24600,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDHN_H) */ /* :: End simde/arm/neon/addhn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addhn_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -24325,9 +24632,9 @@ #define SIMDE_ARM_NEON_ADDHN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -24423,7 +24730,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDHN_HIGH_H) */ /* :: End simde/arm/neon/addhn_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addl.h :: */ /* SPDX-License-Identifier: MIT * @@ -24450,19 +24757,20 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ADDL_H) #define SIMDE_ARM_NEON_ADDL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -24473,6 +24781,13 @@ simde_vaddl_s8(simde_int8x8_t a, simde_int8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddl_s8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int8x8_private a_ = simde_int8x8_to_private(a); + simde_int8x8_private b_ = simde_int8x8_to_private(b); + + r_.sv128 = __riscv_vwadd_vv_i16m1(__riscv_vlmul_trunc_v_i8m1_i8mf2(a_.sv64) , __riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv64) , 8); + return simde_int16x8_from_private(r_); #else return simde_vaddq_s16(simde_vmovl_s8(a), simde_vmovl_s8(b)); #endif @@ -24487,6 +24802,13 @@ simde_vaddl_s16(simde_int16x4_t a, simde_int16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddl_s16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int16x4_private a_ = simde_int16x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + + r_.sv128 = __riscv_vwadd_vv_i32m1(__riscv_vlmul_trunc_v_i16m1_i16mf2(a_.sv64) , __riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv64) , 4); + return simde_int32x4_from_private(r_); #else return simde_vaddq_s32(simde_vmovl_s16(a), simde_vmovl_s16(b)); #endif @@ -24501,6 +24823,13 @@ simde_vaddl_s32(simde_int32x2_t a, simde_int32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddl_s32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int32x2_private a_ = simde_int32x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + + r_.sv128 = __riscv_vwadd_vv_i64m1(__riscv_vlmul_trunc_v_i32m1_i32mf2(a_.sv64) , __riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv64) , 2); + return simde_int64x2_from_private(r_); #else return simde_vaddq_s64(simde_vmovl_s32(a), simde_vmovl_s32(b)); #endif @@ -24515,6 +24844,13 @@ simde_vaddl_u8(simde_uint8x8_t a, simde_uint8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddl_u8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint8x8_private a_ = simde_uint8x8_to_private(a); + simde_uint8x8_private b_ = simde_uint8x8_to_private(b); + + r_.sv128 = __riscv_vwaddu_vv_u16m1(__riscv_vlmul_trunc_v_u8m1_u8mf2 (a_.sv64) , __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv64) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vaddq_u16(simde_vmovl_u8(a), simde_vmovl_u8(b)); #endif @@ -24529,6 +24865,13 @@ simde_vaddl_u16(simde_uint16x4_t a, simde_uint16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddl_u16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint16x4_private a_ = simde_uint16x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + + r_.sv128 = __riscv_vwaddu_vv_u32m1(__riscv_vlmul_trunc_v_u16m1_u16mf2 (a_.sv64) , __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vaddq_u32(simde_vmovl_u16(a), simde_vmovl_u16(b)); #endif @@ -24543,6 +24886,13 @@ simde_vaddl_u32(simde_uint32x2_t a, simde_uint32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddl_u32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint32x2_private a_ = simde_uint32x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + + r_.sv128 = __riscv_vwaddu_vv_u64m1(__riscv_vlmul_trunc_v_u32m1_u32mf2 (a_.sv64) , __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64) , 4); + return simde_uint64x2_from_private(r_); #else return simde_vaddq_u64(simde_vmovl_u32(a), simde_vmovl_u32(b)); #endif @@ -24558,7 +24908,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDL_H) */ /* :: End simde/arm/neon/addl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addlv.h :: */ /* SPDX-License-Identifier: MIT * @@ -24584,17 +24934,18 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ADDLV_H) #define SIMDE_ARM_NEON_ADDLV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addv.h :: */ /* SPDX-License-Identifier: MIT * @@ -24620,13 +24971,14 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ADDV_H) #define SIMDE_ARM_NEON_ADDV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -24642,11 +24994,17 @@ #else simde_float32x2_private a_ = simde_float32x2_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vfloat32m1_t zero = __riscv_vfmv_v_f_f32m1(0 , 1); + vfloat32m1_t sum = __riscv_vfredosum_vs_f32m1_f32m1(a_.sv64 , zero , 2); + r = __riscv_vfmv_f_s_f32m1_f32 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24666,11 +25024,17 @@ #else simde_int8x8_private a_ = simde_int8x8_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8m1_t zero = __riscv_vmv_v_x_i8m1(0 , 1); + vint8m1_t sum = __riscv_vredsum_vs_i8m1_i8m1(a_.sv64 , zero , 8); + r = __riscv_vmv_x_s_i8m1_i8 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24690,11 +25054,17 @@ #else simde_int16x4_private a_ = simde_int16x4_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m1_t zero = __riscv_vmv_v_x_i16m1(0 , 1); + vint16m1_t sum = __riscv_vredsum_vs_i16m1_i16m1(a_.sv64 , zero , 4); + r = __riscv_vmv_x_s_i16m1_i16 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24714,11 +25084,17 @@ #else simde_int32x2_private a_ = simde_int32x2_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m1_t zero = __riscv_vmv_v_x_i32m1(0 , 1); + vint32m1_t sum = __riscv_vredsum_vs_i32m1_i32m1(a_.sv64 , zero , 2); + r = __riscv_vmv_x_s_i32m1_i32 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24738,11 +25114,17 @@ #else simde_uint8x8_private a_ = simde_uint8x8_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t zero = __riscv_vmv_v_x_u8m1(0 , 1); + vuint8m1_t sum = __riscv_vredsum_vs_u8m1_u8m1(a_.sv64 , zero , 8); + r = __riscv_vmv_x_s_u8m1_u8 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24762,11 +25144,17 @@ #else simde_uint16x4_private a_ = simde_uint16x4_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16m1_t zero = __riscv_vmv_v_x_u16m1(0 , 1); + vuint16m1_t sum = __riscv_vredsum_vs_u16m1_u16m1(a_.sv64 , zero , 4); + r = __riscv_vmv_x_s_u16m1_u16(sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24786,11 +25174,17 @@ #else simde_uint32x2_private a_ = simde_uint32x2_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32m1_t zero = __riscv_vmv_v_x_u32m1(0 , 1); + vuint32m1_t sum = __riscv_vredsum_vs_u32m1_u32m1(a_.sv64 , zero , 2); + r = __riscv_vmv_x_s_u32m1_u32 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24810,11 +25204,17 @@ #else simde_float32x4_private a_ = simde_float32x4_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vfloat32m1_t zero = __riscv_vfmv_v_f_f32m1(0 , 1); + vfloat32m1_t sum = __riscv_vfredosum_vs_f32m1_f32m1(a_.sv128 , zero , 4); + r = __riscv_vfmv_f_s_f32m1_f32 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24834,11 +25234,17 @@ #else simde_float64x2_private a_ = simde_float64x2_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vfloat64m1_t zero = __riscv_vfmv_v_f_f64m1(0 , 1); + vfloat64m1_t sum = __riscv_vfredosum_vs_f64m1_f64m1(a_.sv128 , zero , 2); + r = __riscv_vfmv_f_s_f64m1_f64 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24858,11 +25264,17 @@ #else simde_int8x16_private a_ = simde_int8x16_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8m1_t zero = __riscv_vmv_v_x_i8m1(0 , 1); + vint8m1_t sum = __riscv_vredsum_vs_i8m1_i8m1(a_.sv128 , zero , 16); + r = __riscv_vmv_x_s_i8m1_i8 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24882,11 +25294,17 @@ #else simde_int16x8_private a_ = simde_int16x8_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m1_t zero = __riscv_vmv_v_x_i16m1(0 , 1); + vint16m1_t sum = __riscv_vredsum_vs_i16m1_i16m1(a_.sv128 , zero , 8); + r = __riscv_vmv_x_s_i16m1_i16 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24906,11 +25324,17 @@ #else simde_int32x4_private a_ = simde_int32x4_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m1_t zero = __riscv_vmv_v_x_i32m1(0 , 1); + vint32m1_t sum = __riscv_vredsum_vs_i32m1_i32m1(a_.sv128 , zero , 4); + r = __riscv_vmv_x_s_i32m1_i32 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24930,11 +25354,17 @@ #else simde_int64x2_private a_ = simde_int64x2_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m1_t zero = __riscv_vmv_v_x_i64m1(0 , 1); + vint64m1_t sum = __riscv_vredsum_vs_i64m1_i64m1(a_.sv128 , zero , 2); + r = __riscv_vmv_x_s_i64m1_i64 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24959,11 +25389,17 @@ #else simde_uint8x16_private a_ = simde_uint8x16_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t zero = __riscv_vmv_v_x_u8m1(0 , 1); + vuint8m1_t sum = __riscv_vredsum_vs_u8m1_u8m1(a_.sv128 , zero , 16); + r = __riscv_vmv_x_s_u8m1_u8 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -24983,11 +25419,17 @@ #else simde_uint16x8_private a_ = simde_uint16x8_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16m1_t zero = __riscv_vmv_v_x_u16m1(0 , 1); + vuint16m1_t sum = __riscv_vredsum_vs_u16m1_u16m1(a_.sv128 , zero , 8); + r = __riscv_vmv_x_s_u16m1_u16(sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -25007,11 +25449,17 @@ #else simde_uint32x4_private a_ = simde_uint32x4_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32m1_t zero = __riscv_vmv_v_x_u32m1(0 , 1); + vuint32m1_t sum = __riscv_vredsum_vs_u32m1_u32m1(a_.sv128 , zero , 4); + r = __riscv_vmv_x_s_u32m1_u32 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -25031,11 +25479,17 @@ #else simde_uint64x2_private a_ = simde_uint64x2_to_private(a); - r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t zero = __riscv_vmv_v_x_u64m1(0 , 1); + vuint64m1_t sum = __riscv_vredsum_vs_u64m1_u64m1(a_.sv128 , zero , 2); + r = __riscv_vmv_x_s_u64m1_u64 (sum); + #else + r = 0; + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif #endif return r; @@ -25060,16 +25514,22 @@ simde_vaddlv_s8(simde_int8x8_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddlv_s8(a); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddvq_s16(simde_vmovl_s8(a)); #else simde_int8x8_private a_ = simde_int8x8_to_private(a); int16_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m1_t zero = __riscv_vmv_v_x_i16m1(0 , 1); + vint16m1_t sum = __riscv_vwredsum_vs_i8m1_i16m1(a_.sv64 , zero , 8); + r = __riscv_vmv_x_s_i16m1_i16 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25084,16 +25544,22 @@ simde_vaddlv_s16(simde_int16x4_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddlv_s16(a); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddvq_s32(simde_vmovl_s16(a)); #else simde_int16x4_private a_ = simde_int16x4_to_private(a); int32_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m1_t zero = __riscv_vmv_v_x_i32m1(0 , 1); + vint32m1_t sum = __riscv_vwredsum_vs_i16m1_i32m1(a_.sv64 , zero , 4); + r = __riscv_vmv_x_s_i32m1_i32 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25108,16 +25574,22 @@ simde_vaddlv_s32(simde_int32x2_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddlv_s32(a); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddvq_s64(simde_vmovl_s32(a)); #else simde_int32x2_private a_ = simde_int32x2_to_private(a); int64_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m1_t zero = __riscv_vmv_v_x_i64m1(0 , 1); + vint64m1_t sum = __riscv_vwredsum_vs_i32m1_i64m1(a_.sv64 , zero , 2); + r = __riscv_vmv_x_s_i64m1_i64 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25132,16 +25604,22 @@ simde_vaddlv_u8(simde_uint8x8_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddlv_u8(a); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddvq_u16(simde_vmovl_u8(a)); #else simde_uint8x8_private a_ = simde_uint8x8_to_private(a); uint16_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16m1_t zero = __riscv_vmv_v_x_u16m1(0 , 1); + vuint16m1_t sum = __riscv_vwredsumu_vs_u8m1_u16m1(a_.sv64 , zero , 8); + r = __riscv_vmv_x_s_u16m1_u16 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25156,16 +25634,22 @@ simde_vaddlv_u16(simde_uint16x4_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddlv_u16(a); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddvq_u32(simde_vmovl_u16(a)); #else simde_uint16x4_private a_ = simde_uint16x4_to_private(a); uint32_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32m1_t zero = __riscv_vmv_v_x_u32m1(0 , 1); + vuint32m1_t sum = __riscv_vwredsumu_vs_u16m1_u32m1(a_.sv64 , zero , 4); + r = __riscv_vmv_x_s_u32m1_u32 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25180,16 +25664,22 @@ simde_vaddlv_u32(simde_uint32x2_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddlv_u32(a); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddvq_u64(simde_vmovl_u32(a)); #else simde_uint32x2_private a_ = simde_uint32x2_to_private(a); uint64_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t zero = __riscv_vmv_v_x_u64m1(0 , 1); + vuint64m1_t sum = __riscv_vwredsumu_vs_u32m1_u64m1(a_.sv64 , zero , 2); + r = __riscv_vmv_x_s_u64m1_u64 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25214,10 +25704,16 @@ simde_int8x16_private a_ = simde_int8x16_to_private(a); int16_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m1_t zero = __riscv_vmv_v_x_i16m1(0 , 1); + vint16m1_t sum = __riscv_vwredsum_vs_i8m1_i16m1(a_.sv128 , zero , 16); + r = __riscv_vmv_x_s_i16m1_i16 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25243,10 +25739,16 @@ simde_int16x8_private a_ = simde_int16x8_to_private(a); int32_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m1_t zero = __riscv_vmv_v_x_i32m1(0 , 1); + vint32m1_t sum = __riscv_vwredsum_vs_i16m1_i32m1(a_.sv128 , zero , 8); + r = __riscv_vmv_x_s_i32m1_i32 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25265,10 +25767,16 @@ simde_int32x4_private a_ = simde_int32x4_to_private(a); int64_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m1_t zero = __riscv_vmv_v_x_i64m1(0 , 1); + vint64m1_t sum = __riscv_vwredsum_vs_i32m1_i64m1(a_.sv128 , zero , 4); + r = __riscv_vmv_x_s_i64m1_i64 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25292,10 +25800,16 @@ simde_uint8x16_private a_ = simde_uint8x16_to_private(a); uint16_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16m1_t zero = __riscv_vmv_v_x_u16m1(0 , 1); + vuint16m1_t sum = __riscv_vwredsumu_vs_u8m1_u16m1(a_.sv128 , zero , 16); + r = __riscv_vmv_x_s_u16m1_u16 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25318,14 +25832,20 @@ return HEDLEY_STATIC_CAST(uint32_t, _mm_cvtsi128_si32(a_)); #else simde_uint16x8_private a_ = simde_uint16x8_to_private(a); - uint32_t r = 0; - - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + uint32_t r = 0; + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32m1_t zero = __riscv_vmv_v_x_u32m1(0 , 1); + vuint32m1_t sum = __riscv_vwredsumu_vs_u16m1_u32m1(a_.sv128 , zero , 8); + r = __riscv_vmv_x_s_u32m1_u32 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; + #endif } #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -25342,10 +25862,16 @@ simde_uint32x4_private a_ = simde_uint32x4_to_private(a); uint64_t r = 0; - SIMDE_VECTORIZE_REDUCTION(+:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r += a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t zero = __riscv_vmv_v_x_u64m1(0 , 1); + vuint64m1_t sum = __riscv_vwredsumu_vs_u32m1_u64m1(a_.sv128 , zero , 4); + r = __riscv_vmv_x_s_u64m1_u64 (sum); + #else + SIMDE_VECTORIZE_REDUCTION(+:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r += a_.values[i]; + } + #endif return r; #endif @@ -25361,7 +25887,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDLV_H) */ /* :: End simde/arm/neon/addlv.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addl_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -25388,19 +25914,20 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ADDL_HIGH_H) #define SIMDE_ARM_NEON_ADDL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -25411,6 +25938,15 @@ simde_vaddl_high_s8(simde_int8x16_t a, simde_int8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddl_high_s8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int8x16_private a_ = simde_int8x16_to_private(a); + simde_int8x16_private b_ = simde_int8x16_to_private(b); + + a_.sv128 = __riscv_vslidedown_vx_i8m1(a_.sv128 , 8 , 16); + b_.sv128 = __riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwadd_vv_i16m1(__riscv_vlmul_trunc_v_i8m1_i8mf2(a_.sv128) , __riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv128) , 8); + return simde_int16x8_from_private(r_); #else return simde_vaddq_s16(simde_vmovl_high_s8(a), simde_vmovl_high_s8(b)); #endif @@ -25425,6 +25961,15 @@ simde_vaddl_high_s16(simde_int16x8_t a, simde_int16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddl_high_s16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + + a_.sv128 = __riscv_vslidedown_vx_i16m1(a_.sv128 , 4 , 8); + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwadd_vv_i32m1(__riscv_vlmul_trunc_v_i16m1_i16mf2(a_.sv128) , __riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv128) , 4); + return simde_int32x4_from_private(r_); #else return simde_vaddq_s32(simde_vmovl_high_s16(a), simde_vmovl_high_s16(b)); #endif @@ -25439,6 +25984,15 @@ simde_vaddl_high_s32(simde_int32x4_t a, simde_int32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddl_high_s32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + + a_.sv128 = __riscv_vslidedown_vx_i32m1(a_.sv128 , 2, 4); + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2, 4); + r_.sv128 = __riscv_vwadd_vv_i64m1(__riscv_vlmul_trunc_v_i32m1_i32mf2(a_.sv128) , __riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv128) , 2); + return simde_int64x2_from_private(r_); #else return simde_vaddq_s64(simde_vmovl_high_s32(a), simde_vmovl_high_s32(b)); #endif @@ -25453,6 +26007,15 @@ simde_vaddl_high_u8(simde_uint8x16_t a, simde_uint8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddl_high_u8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint8x16_private a_ = simde_uint8x16_to_private(a); + simde_uint8x16_private b_ = simde_uint8x16_to_private(b); + + a_.sv128 = __riscv_vslidedown_vx_u8m1(a_.sv128 , 8 , 16); + b_.sv128 = __riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwaddu_vv_u16m1(__riscv_vlmul_trunc_v_u8m1_u8mf2 (a_.sv128) , __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv128) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vaddq_u16(simde_vmovl_high_u8(a), simde_vmovl_high_u8(b)); #endif @@ -25467,6 +26030,15 @@ simde_vaddl_high_u16(simde_uint16x8_t a, simde_uint16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddl_high_u16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + + a_.sv128 = __riscv_vslidedown_vx_u16m1(a_.sv128 , 4 , 8); + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwaddu_vv_u32m1(__riscv_vlmul_trunc_v_u16m1_u16mf2 (a_.sv128) , __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv128) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vaddq_u32(simde_vmovl_high_u16(a), simde_vmovl_high_u16(b)); #endif @@ -25481,6 +26053,15 @@ simde_vaddl_high_u32(simde_uint32x4_t a, simde_uint32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddl_high_u32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + + a_.sv128 = __riscv_vslidedown_vx_u32m1(a_.sv128 , 2, 4); + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2, 4); + r_.sv128 = __riscv_vwaddu_vv_u64m1(__riscv_vlmul_trunc_v_u32m1_u32mf2 (a_.sv128) , __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv128) , 2); + return simde_uint64x2_from_private(r_); #else return simde_vaddq_u64(simde_vmovl_high_u32(a), simde_vmovl_high_u32(b)); #endif @@ -25496,9 +26077,9 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDL_HIGH_H) */ /* :: End simde/arm/neon/addl_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addw.h :: */ /* SPDX-License-Identifier: MIT * @@ -25525,17 +26106,18 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ADDW_H) #define SIMDE_ARM_NEON_ADDW_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -25546,14 +26128,17 @@ simde_vaddw_s8(simde_int16x8_t a, simde_int8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddw_s8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s16(a, simde_vmovl_s8(b)); #else simde_int16x8_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); simde_int8x8_private b_ = simde_int8x8_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t vb = __riscv_vlmul_trunc_v_i8m1_i8mf2 (b_.sv64); + r_.sv128 = __riscv_vwadd_wv_i16m1(a_.sv128, vb, 8); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values += a_.values; #else @@ -25576,14 +26161,17 @@ simde_vaddw_s16(simde_int32x4_t a, simde_int16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddw_s16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s32(a, simde_vmovl_s16(b)); #else simde_int32x4_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); simde_int16x4_private b_ = simde_int16x4_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv64); + r_.sv128 = __riscv_vwadd_wv_i32m1(a_.sv128, vb, 4); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values += a_.values; #else @@ -25606,14 +26194,17 @@ simde_vaddw_s32(simde_int64x2_t a, simde_int32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddw_s32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s64(a, simde_vmovl_s32(b)); #else simde_int64x2_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); simde_int32x2_private b_ = simde_int32x2_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv64); + r_.sv128 = __riscv_vwadd_wv_i64m1(a_.sv128, vb, 2); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values += a_.values; #else @@ -25636,14 +26227,17 @@ simde_vaddw_u8(simde_uint16x8_t a, simde_uint8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddw_u8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u16(a, simde_vmovl_u8(b)); #else simde_uint16x8_private r_; simde_uint16x8_private a_ = simde_uint16x8_to_private(a); simde_uint8x8_private b_ = simde_uint8x8_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8mf2_t vb = __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv64); + r_.sv128 = __riscv_vwaddu_wv_u16m1(a_.sv128, vb, 8); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values += a_.values; #else @@ -25666,14 +26260,17 @@ simde_vaddw_u16(simde_uint32x4_t a, simde_uint16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddw_u16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u32(a, simde_vmovl_u16(b)); #else simde_uint32x4_private r_; simde_uint32x4_private a_ = simde_uint32x4_to_private(a); simde_uint16x4_private b_ = simde_uint16x4_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64); + r_.sv128 = __riscv_vwaddu_wv_u32m1(a_.sv128, vb, 4); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values += a_.values; #else @@ -25696,14 +26293,17 @@ simde_vaddw_u32(simde_uint64x2_t a, simde_uint32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vaddw_u32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u64(a, simde_vmovl_u32(b)); #else simde_uint64x2_private r_; simde_uint64x2_private a_ = simde_uint64x2_to_private(a); simde_uint32x2_private b_ = simde_uint32x2_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64); + r_.sv128 = __riscv_vwaddu_wv_u64m1(a_.sv128, vb, 2); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values += a_.values; #else @@ -25727,7 +26327,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDW_H) */ /* :: End simde/arm/neon/addw.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/addw_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -25753,17 +26353,20 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_ADDW_HIGH_H) #define SIMDE_ARM_NEON_ADDW_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -25774,17 +26377,22 @@ simde_vaddw_high_s8(simde_int16x8_t a, simde_int8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddw_high_s8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s16(a, simde_vmovl_high_s8(b)); #else simde_int16x8_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); simde_int8x16_private b_ = simde_int8x16_to_private(b); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t b_high = __riscv_vlmul_trunc_v_i8m1_i8mf2(__riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16)); + r_.sv128 = __riscv_vwadd_wv_i16m1(a_.sv128, b_high, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; + } + #endif return simde_int16x8_from_private(r_); #endif @@ -25799,17 +26407,22 @@ simde_vaddw_high_s16(simde_int32x4_t a, simde_int16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddw_high_s16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s32(a, simde_vmovl_high_s16(b)); #else simde_int32x4_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); simde_int16x8_private b_ = simde_int16x8_to_private(b); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint16mf2_t b_high = __riscv_vlmul_trunc_v_i16m1_i16mf2(__riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8)); + r_.sv128 = __riscv_vwadd_wv_i32m1(a_.sv128, b_high, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; + } + #endif return simde_int32x4_from_private(r_); #endif @@ -25824,18 +26437,21 @@ simde_vaddw_high_s32(simde_int64x2_t a, simde_int32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddw_high_s32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s64(a, simde_vmovl_high_s32(b)); #else simde_int64x2_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); simde_int32x4_private b_ = simde_int32x4_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint32mf2_t b_high = __riscv_vlmul_trunc_v_i32m1_i32mf2(__riscv_vslidedown_vx_i32m1(b_.sv128 , 2 , 4)); + r_.sv128 = __riscv_vwadd_wv_i64m1(a_.sv128, b_high, 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; + } + #endif return simde_int64x2_from_private(r_); #endif } @@ -25849,18 +26465,21 @@ simde_vaddw_high_u8(simde_uint16x8_t a, simde_uint8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddw_high_u8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u16(a, simde_vmovl_high_u8(b)); #else simde_uint16x8_private r_; simde_uint16x8_private a_ = simde_uint16x8_to_private(a); simde_uint8x16_private b_ = simde_uint8x16_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8mf2_t b_high = __riscv_vlmul_trunc_v_u8m1_u8mf2(__riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16)); + r_.sv128 = __riscv_vwaddu_wv_u16m1(a_.sv128, b_high, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; + } + #endif return simde_uint16x8_from_private(r_); #endif } @@ -25874,18 +26493,21 @@ simde_vaddw_high_u16(simde_uint32x4_t a, simde_uint16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddw_high_u16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u32(a, simde_vmovl_high_u16(b)); #else simde_uint32x4_private r_; simde_uint32x4_private a_ = simde_uint32x4_to_private(a); simde_uint16x8_private b_ = simde_uint16x8_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16mf2_t b_high = __riscv_vlmul_trunc_v_u16m1_u16mf2(__riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8)); + r_.sv128 = __riscv_vwaddu_wv_u32m1(a_.sv128, b_high, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; + } + #endif return simde_uint32x4_from_private(r_); #endif } @@ -25899,18 +26521,21 @@ simde_vaddw_high_u32(simde_uint64x2_t a, simde_uint32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vaddw_high_u32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u64(a, simde_vmovl_high_u32(b)); #else simde_uint64x2_private r_; simde_uint64x2_private a_ = simde_uint64x2_to_private(a); simde_uint32x4_private b_ = simde_uint32x4_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32mf2_t b_high = __riscv_vlmul_trunc_v_u32m1_u32mf2(__riscv_vslidedown_vx_u32m1(b_.sv128 , 2 , 4)); + r_.sv128 = __riscv_vwaddu_wv_u64m1(a_.sv128, b_high, 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] + b_.values[i + ((sizeof(b_.values) / sizeof(b_.values[0])) / 2)]; + } + #endif return simde_uint64x2_from_private(r_); #endif } @@ -25925,7 +26550,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ADDW_HIGH_H) */ /* :: End simde/arm/neon/addw_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/aes.h :: */ /* SPDX-License-Identifier: MIT * @@ -25957,9 +26582,9 @@ #define SIMDE_ARM_NEON_AES_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-aes.h :: */ /* SPDX-License-Identifier: MIT * @@ -25991,7 +26616,7 @@ #define SIMDE_AES_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -26418,7 +27043,7 @@ #endif /* !defined(SIMDE_ARM_NEON_AES_H) */ /* :: End simde/arm/neon/aes.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/and.h :: */ /* SPDX-License-Identifier: MIT * @@ -26451,7 +27076,7 @@ #define SIMDE_ARM_NEON_AND_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -27007,7 +27632,7 @@ #endif /* !defined(SIMDE_ARM_NEON_AND_H) */ /* :: End simde/arm/neon/and.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/bcax.h :: */ /* SPDX-License-Identifier: MIT * @@ -27033,16 +27658,17 @@ * * Copyright: * 2021 Atharva Nimbalkar + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_BCAX_H) #define SIMDE_ARM_NEON_BCAX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/eor.h :: */ /* SPDX-License-Identifier: MIT * @@ -27070,13 +27696,15 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Yung-Cheng Su (Copyright owned by NTHU pllab) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_EOR_H) #define SIMDE_ARM_NEON_EOR_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -27095,6 +27723,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_i8m1(a_.sv64, b_.sv64, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27125,6 +27755,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_i16m1(a_.sv64, b_.sv64, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27155,6 +27787,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_i32m1(a_.sv64, b_.sv64, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27185,6 +27819,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_i64m1(a_.sv64, b_.sv64, 1); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27215,6 +27851,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_u8m1(a_.sv64, b_.sv64, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27245,6 +27883,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_u16m1(a_.sv64, b_.sv64, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27275,6 +27915,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_u32m1(a_.sv64, b_.sv64, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27305,6 +27947,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_xor_si64(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vxor_vv_u64m1(a_.sv64, b_.sv64, 1); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27339,6 +27983,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i8m1(a_.sv128, b_.sv128, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27373,6 +28019,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i16m1(a_.sv128, b_.sv128, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27407,6 +28055,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i32m1(a_.sv128, b_.sv128, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27441,6 +28091,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i64m1(a_.sv128, b_.sv128, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27475,6 +28127,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u8m1(a_.sv128, b_.sv128, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27509,6 +28163,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u16m1(a_.sv128, b_.sv128, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27543,6 +28199,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u32m1(a_.sv128, b_.sv128, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27577,6 +28235,8 @@ r_.m128i = _mm_xor_si128(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_xor(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u64m1(a_.sv128, b_.sv128, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = a_.values ^ b_.values; #else @@ -27607,10 +28267,16 @@ b_ = simde_int8x16_to_private(b), c_ = simde_int8x16_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i8m1(__riscv_vxor_vv_i8m1(a_.sv128, b_.sv128, 16), c_.sv128, 16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_int8x16_from_private(r_); #endif @@ -27632,10 +28298,16 @@ b_ = simde_int16x8_to_private(b), c_ = simde_int16x8_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i16m1(__riscv_vxor_vv_i16m1(a_.sv128, b_.sv128, 8), c_.sv128, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_int16x8_from_private(r_); #endif @@ -27657,10 +28329,16 @@ b_ = simde_int32x4_to_private(b), c_ = simde_int32x4_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i32m1(__riscv_vxor_vv_i32m1(a_.sv128, b_.sv128, 4), c_.sv128, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_int32x4_from_private(r_); #endif @@ -27682,10 +28360,16 @@ b_ = simde_int64x2_to_private(b), c_ = simde_int64x2_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_i64m1(__riscv_vxor_vv_i64m1(a_.sv128, b_.sv128, 2), c_.sv128, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_int64x2_from_private(r_); #endif @@ -27707,10 +28391,16 @@ b_ = simde_uint8x16_to_private(b), c_ = simde_uint8x16_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u8m1(__riscv_vxor_vv_u8m1(a_.sv128, b_.sv128, 16), c_.sv128, 16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_uint8x16_from_private(r_); #endif @@ -27732,10 +28422,16 @@ b_ = simde_uint16x8_to_private(b), c_ = simde_uint16x8_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u16m1(__riscv_vxor_vv_u16m1(a_.sv128, b_.sv128, 8), c_.sv128, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_uint16x8_from_private(r_); #endif @@ -27757,10 +28453,16 @@ b_ = simde_uint32x4_to_private(b), c_ = simde_uint32x4_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u32m1(__riscv_vxor_vv_u32m1(a_.sv128, b_.sv128, 4), c_.sv128, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_uint32x4_from_private(r_); #endif @@ -27782,10 +28484,16 @@ b_ = simde_uint64x2_to_private(b), c_ = simde_uint64x2_to_private(c); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vxor_vv_u64m1(__riscv_vxor_vv_u64m1(a_.sv128, b_.sv128, 2), c_.sv128, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.values = a_.values ^ b_.values ^ c_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] ^ b_.values[i] ^ c_.values[i]; + } + #endif return simde_uint64x2_from_private(r_); #endif @@ -27801,7 +28509,7 @@ #endif /* !defined(SIMDE_ARM_NEON_EOR_H) */ /* :: End simde/arm/neon/eor.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/bic.h :: */ /* SPDX-License-Identifier: MIT * @@ -27827,13 +28535,14 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_BIC_H) #define SIMDE_ARM_NEON_BIC_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/dup_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -27861,13 +28570,14 @@ * 2020 Sean Maher (Copyright owned by Google, LLC) * 2020 Evan Nemerson * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_DUP_N_H) #define SIMDE_ARM_NEON_DUP_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -27880,12 +28590,14 @@ return vdup_n_f16(value); #else simde_float16x4_private r_; - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } - + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vfmv_v_f_f16m1 (value, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } + #endif return simde_float16x4_from_private(r_); #endif } @@ -27904,12 +28616,14 @@ return vdup_n_f32(value); #else simde_float32x2_private r_; - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfmv_v_f_f32m1(value, 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } + #endif return simde_float32x2_from_private(r_); #endif } @@ -27928,12 +28642,14 @@ return vdup_n_f64(value); #else simde_float64x1_private r_; - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfmv_v_f_f64m1(value, 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } + #endif return simde_float64x1_from_private(r_); #endif } @@ -27955,11 +28671,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_set1_pi8(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_i8m1(value, 8); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } #endif return simde_int8x8_from_private(r_); @@ -27983,6 +28701,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_set1_pi16(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_i16m1(value, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28011,6 +28731,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_set1_pi32(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_i32m1(value, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28037,11 +28759,14 @@ #else simde_int64x1_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_i64m1(value, 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } + #endif return simde_int64x1_from_private(r_); #endif } @@ -28063,6 +28788,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_set1_pi8(HEDLEY_STATIC_CAST(int8_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_u8m1(value, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28091,6 +28818,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_set1_pi16(HEDLEY_STATIC_CAST(int16_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_u16m1(value, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28119,6 +28848,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_set1_pi32(HEDLEY_STATIC_CAST(int32_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_u32m1(value, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28144,12 +28875,14 @@ return vdup_n_u64(value); #else simde_uint64x1_private r_; - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmv_v_x_u64m1(value, 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } + #endif return simde_uint64x1_from_private(r_); #endif } @@ -28168,12 +28901,14 @@ return vdupq_n_f16(value); #else simde_float16x8_private r_; - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = value; - } - + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vfmv_v_f_f16m1(value, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = value; + } + #endif return simde_float16x8_from_private(r_); #endif } @@ -28200,6 +28935,8 @@ r_.m128 = _mm_set1_ps(value); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f32x4_splat(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmv_v_f_f32m1(value, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28233,6 +28970,8 @@ r_.m128d = _mm_set1_pd(value); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f64x2_splat(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmv_v_f_f64m1(value, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28265,6 +29004,8 @@ r_.m128i = _mm_set1_epi8(value); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_splat(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_i8m1(value, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28297,6 +29038,8 @@ r_.m128i = _mm_set1_epi16(value); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_splat(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_i16m1(value, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28329,6 +29072,8 @@ r_.m128i = _mm_set1_epi32(value); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_splat(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_i32m1(value, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28361,6 +29106,8 @@ r_.m128i = _mm_set1_epi64x(value); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i64x2_splat(value); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_i64m1(value, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28393,6 +29140,8 @@ r_.m128i = _mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, value)); #elif defined (SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_splat(HEDLEY_STATIC_CAST(int8_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_u8m1(value, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28425,6 +29174,8 @@ r_.m128i = _mm_set1_epi16(HEDLEY_STATIC_CAST(int16_t, value)); #elif defined (SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_splat(HEDLEY_STATIC_CAST(int16_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_u16m1(value, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28457,6 +29208,8 @@ r_.m128i = _mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, value)); #elif defined (SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_splat(HEDLEY_STATIC_CAST(int32_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_u32m1(value, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28489,6 +29242,8 @@ r_.m128i = _mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, value)); #elif defined (SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i64x2_splat(HEDLEY_STATIC_CAST(int64_t, value)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmv_v_x_u64m1(value, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -28693,7 +29448,7 @@ #endif /* !defined(SIMDE_ARM_NEON_DUP_N_H) */ /* :: End simde/arm/neon/dup_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -28713,9 +29468,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_i8m1(a_.sv64 , __riscv_vnot_v_i8m1(b_.sv64 , 8) , 8); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_int8x8_from_private(r_); @@ -28740,9 +29499,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_i16m1(a_.sv64 , __riscv_vnot_v_i16m1(b_.sv64 , 4) , 4); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_int16x4_from_private(r_); @@ -28767,9 +29530,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_i32m1(a_.sv64 , __riscv_vnot_v_i32m1(b_.sv64 , 2) , 2); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_int32x2_from_private(r_); @@ -28794,9 +29561,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_i64m1(a_.sv64 , __riscv_vnot_v_i64m1(b_.sv64 , 1) , 1); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_int64x1_from_private(r_); @@ -28821,9 +29592,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_u8m1(a_.sv64 , __riscv_vnot_v_u8m1(b_.sv64 , 8) , 8); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_uint8x8_from_private(r_); @@ -28848,9 +29623,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_u16m1(a_.sv64 , __riscv_vnot_v_u16m1(b_.sv64 , 4) , 4); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_uint16x4_from_private(r_); @@ -28875,9 +29654,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_u32m1(a_.sv64 , __riscv_vnot_v_u32m1(b_.sv64 , 2) , 2); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_uint32x2_from_private(r_); @@ -28902,9 +29685,13 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_andnot_si64(b_.m64, a_.m64); #else - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] & ~b_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vand_vv_u64m1(a_.sv64 , __riscv_vnot_v_u64m1(b_.sv64 , 1) , 1); + #else + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] & ~b_.values[i]; + } + #endif #endif return simde_uint64x1_from_private(r_); @@ -28928,7 +29715,9 @@ b_ = simde_int8x16_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_i8m1(a_.sv128 , __riscv_vnot_v_i8m1(b_.sv128 , 16) , 16); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -28959,7 +29748,9 @@ b_ = simde_int16x8_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_i16m1(a_.sv128 , __riscv_vnot_v_i16m1(b_.sv128 , 8) , 8); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -28990,7 +29781,9 @@ b_ = simde_int32x4_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_i32m1(a_.sv128 , __riscv_vnot_v_i32m1(b_.sv128 , 4) , 4); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -29021,7 +29814,9 @@ b_ = simde_int64x2_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_i64m1(a_.sv128 , __riscv_vnot_v_i64m1(b_.sv128 , 2) , 2); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -29052,7 +29847,9 @@ b_ = simde_uint8x16_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_u8m1(a_.sv128 , __riscv_vnot_v_u8m1(b_.sv128 , 16) , 16); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -29083,7 +29880,9 @@ b_ = simde_uint16x8_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_u16m1(a_.sv128 , __riscv_vnot_v_u16m1(b_.sv128 , 8) , 8); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -29114,7 +29913,9 @@ b_ = simde_uint32x4_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_u32m1(a_.sv128 , __riscv_vnot_v_u32m1(b_.sv128 , 4) , 4); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -29145,7 +29946,9 @@ b_ = simde_uint64x2_to_private(b), r_; - #if defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vand_vv_u64m1(a_.sv128 , __riscv_vnot_v_u64m1(b_.sv128 , 2) , 2); + #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_andnot_si128(b_.m128i, a_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_andnot(a_.v128, b_.v128); @@ -29178,6 +29981,15 @@ simde_vbcaxq_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint8x16_private + r_, + a_ = simde_uint8x16_to_private(a), + b_ = simde_uint8x16_to_private(b), + c_ = simde_uint8x16_to_private(c); + r_.sv128 = __riscv_vxor_vv_u8m1(a_.sv128, __riscv_vand_vv_u8m1(b_.sv128 , \ + __riscv_vnot_v_u8m1(c_.sv128 , 16), 16), 16); + return simde_uint8x16_from_private(r_); #else return simde_veorq_u8(a, simde_vbicq_u8(b, c)); #endif @@ -29192,6 +30004,15 @@ simde_vbcaxq_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private + r_, + a_ = simde_uint16x8_to_private(a), + b_ = simde_uint16x8_to_private(b), + c_ = simde_uint16x8_to_private(c); + r_.sv128 = __riscv_vxor_vv_u16m1(a_.sv128, __riscv_vand_vv_u16m1(b_.sv128 , \ + __riscv_vnot_v_u16m1(c_.sv128 , 8), 8), 8); + return simde_uint16x8_from_private(r_); #else return simde_veorq_u16(a, simde_vbicq_u16(b, c)); #endif @@ -29206,6 +30027,15 @@ simde_vbcaxq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private + r_, + a_ = simde_uint32x4_to_private(a), + b_ = simde_uint32x4_to_private(b), + c_ = simde_uint32x4_to_private(c); + r_.sv128 = __riscv_vxor_vv_u32m1(a_.sv128, __riscv_vand_vv_u32m1(b_.sv128 , \ + __riscv_vnot_v_u32m1(c_.sv128 , 4), 4), 4); + return simde_uint32x4_from_private(r_); #else return simde_veorq_u32(a, simde_vbicq_u32(b, c)); #endif @@ -29220,6 +30050,15 @@ simde_vbcaxq_u64(simde_uint64x2_t a, simde_uint64x2_t b, simde_uint64x2_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_u64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private + r_, + a_ = simde_uint64x2_to_private(a), + b_ = simde_uint64x2_to_private(b), + c_ = simde_uint64x2_to_private(c); + r_.sv128 = __riscv_vxor_vv_u64m1(a_.sv128, __riscv_vand_vv_u64m1(b_.sv128 , \ + __riscv_vnot_v_u64m1(c_.sv128 , 2), 2), 2); + return simde_uint64x2_from_private(r_); #else return simde_veorq_u64(a, simde_vbicq_u64(b, c)); #endif @@ -29234,6 +30073,15 @@ simde_vbcaxq_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int8x16_private + r_, + a_ = simde_int8x16_to_private(a), + b_ = simde_int8x16_to_private(b), + c_ = simde_int8x16_to_private(c); + r_.sv128 = __riscv_vxor_vv_i8m1(a_.sv128, __riscv_vand_vv_i8m1(b_.sv128 , \ + __riscv_vnot_v_i8m1(c_.sv128 , 16), 16), 16); + return simde_int8x16_from_private(r_); #else return simde_veorq_s8(a, simde_vbicq_s8(b, c)); #endif @@ -29248,6 +30096,15 @@ simde_vbcaxq_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private + r_, + a_ = simde_int16x8_to_private(a), + b_ = simde_int16x8_to_private(b), + c_ = simde_int16x8_to_private(c); + r_.sv128 = __riscv_vxor_vv_i16m1(a_.sv128, __riscv_vand_vv_i16m1(b_.sv128 , \ + __riscv_vnot_v_i16m1(c_.sv128 , 8), 8), 8); + return simde_int16x8_from_private(r_); #else return simde_veorq_s16(a,simde_vbicq_s16(b, c)); #endif @@ -29262,6 +30119,15 @@ simde_vbcaxq_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private + r_, + a_ = simde_int32x4_to_private(a), + b_ = simde_int32x4_to_private(b), + c_ = simde_int32x4_to_private(c); + r_.sv128 = __riscv_vxor_vv_i32m1(a_.sv128, __riscv_vand_vv_i32m1(b_.sv128 , \ + __riscv_vnot_v_i32m1(c_.sv128 , 4), 4), 4); + return simde_int32x4_from_private(r_); #else return simde_veorq_s32(a, simde_vbicq_s32(b, c)); #endif @@ -29276,6 +30142,15 @@ simde_vbcaxq_s64(simde_int64x2_t a, simde_int64x2_t b, simde_int64x2_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_SHA3) return vbcaxq_s64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private + r_, + a_ = simde_int64x2_to_private(a), + b_ = simde_int64x2_to_private(b), + c_ = simde_int64x2_to_private(c); + r_.sv128 = __riscv_vxor_vv_i64m1(a_.sv128, __riscv_vand_vv_i64m1(b_.sv128 , \ + __riscv_vnot_v_i64m1(c_.sv128 , 2), 2), 2); + return simde_int64x2_from_private(r_); #else return simde_veorq_s64(a, simde_vbicq_s64(b, c)); #endif @@ -29291,9 +30166,9 @@ #endif /* !defined(SIMDE_ARM_NEON_BCAX_H) */ /* :: End simde/arm/neon/bcax.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/bsl.h :: */ /* SPDX-License-Identifier: MIT * @@ -29327,13 +30202,13 @@ #define SIMDE_ARM_NEON_BSL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -30213,7 +31088,7 @@ #endif /* !defined(SIMDE_ARM_NEON_BSL_H) */ /* :: End simde/arm/neon/bsl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cadd_rot270.h :: */ /* SPDX-License-Identifier: MIT * @@ -30238,16 +31113,16 @@ * SOFTWARE. * * Copyright: - * 2023 Chi-Wei Chu + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CADD_ROT270_H) #define SIMDE_ARM_NEON_CADD_ROT270_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -30266,9 +31141,14 @@ return vcadd_rot270_f16(a, b); #else simde_float16x4_private r_, a_ = simde_float16x4_to_private(a), b_ = simde_float16x4_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + uint16_t idx1[4] = {5, 0, 7, 2}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + r_.sv64 = __riscv_vfadd_vv_f16m1(op1, a_.sv64, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 5, 0, 7, 2); + b_.values = SIMDE_SHUFFLE_VECTOR_(16, 8, -b_.values, b_.values, 5, 0, 7, 2); r_.values = b_.values + a_.values; #else SIMDE_VECTORIZE @@ -30296,9 +31176,15 @@ return vcaddq_rot270_f16(a, b); #else simde_float16x8_private r_, a_ = simde_float16x8_to_private(a), b_ = simde_float16x8_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + uint16_t idx1[8] = {9, 0, 11, 2, 13, 4, 15, 6}; + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + r_.sv128 = __riscv_vfadd_vv_f16m1(op1, a_.sv128, 8); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && \ ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 8, -b_.values, b_.values, 9, 0, 11, 2, 13, 4, 15, 6); + b_.values = SIMDE_SHUFFLE_VECTOR_(16, 16, -b_.values, b_.values, 9, 0, 11, 2, 13, 4, 15, 6); r_.values = b_.values + a_.values; #else SIMDE_VECTORIZE @@ -30326,7 +31212,12 @@ return vcadd_rot270_f32(a, b); #else simde_float32x2_private r_, a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {3, 0}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + r_.sv64 = __riscv_vfadd_vv_f32m1(op1, a_.sv64, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, b_.values, 3, 0); r_.values = b_.values + a_.values; #else @@ -30354,7 +31245,13 @@ return vcaddq_rot270_f32(a, b); #else simde_float32x4_private r_, a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {5, 0, 7, 2}; + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + r_.sv128 = __riscv_vfadd_vv_f32m1(op1, a_.sv128, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); r_.values = b_.values + a_.values; #else @@ -30382,7 +31279,13 @@ return vcaddq_rot270_f64(a, b); #else simde_float64x2_private r_, a_ = simde_float64x2_to_private(a), b_ = simde_float64x2_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + uint64_t idx1[2] = {3, 0}; + vfloat64m2_t b_tmp = __riscv_vlmul_ext_v_f64m1_f64m2 (b_.sv128); + vfloat64m1_t op1 = __riscv_vlmul_trunc_v_f64m2_f64m1(__riscv_vrgather_vv_f64m2(__riscv_vslideup_vx_f64m2( \ + __riscv_vfneg_v_f64m2(b_tmp, 2), b_tmp, 2, 4), __riscv_vle64_v_u64m2(idx1, 2), 2)); + r_.sv128 = __riscv_vfadd_vv_f64m1(op1, a_.sv128, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) b_.values = SIMDE_SHUFFLE_VECTOR_(64, 16, -b_.values, b_.values, 3, 0); r_.values = b_.values + a_.values; #else @@ -30407,7 +31310,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CADD_ROT270_H) */ /* :: End simde/arm/neon/cadd_rot270.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cadd_rot90.h :: */ /* SPDX-License-Identifier: MIT * @@ -30432,16 +31335,16 @@ * SOFTWARE. * * Copyright: - * 2023 Chi-Wei Chu + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CADD_ROT90_H) #define SIMDE_ARM_NEON_CADD_ROT90_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -30460,9 +31363,14 @@ return vcadd_rot90_f16(a, b); #else simde_float16x4_private r_, a_ = simde_float16x4_to_private(a), b_ = simde_float16x4_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + uint16_t idx1[4] = {1, 4, 3, 6}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + r_.sv64 = __riscv_vfadd_vv_f16m1(op1, a_.sv64, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && \ ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 1, 4, 3, 6); + b_.values = SIMDE_SHUFFLE_VECTOR_(16, 8, -b_.values, b_.values, 1, 4, 3, 6); r_.values = b_.values + a_.values; #else SIMDE_VECTORIZE @@ -30490,9 +31398,15 @@ return vcaddq_rot90_f16(a, b); #else simde_float16x8_private r_, a_ = simde_float16x8_to_private(a), b_ = simde_float16x8_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + uint16_t idx1[8] = {1, 8, 3, 10, 5, 12, 7, 14}; + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + r_.sv128 = __riscv_vfadd_vv_f16m1(op1, a_.sv128, 8); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && \ ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 8, -b_.values, b_.values, 1, 8, 3, 10, 5, 12, 7, 14); + b_.values = SIMDE_SHUFFLE_VECTOR_(16, 16, -b_.values, b_.values, 1, 8, 3, 10, 5, 12, 7, 14); r_.values = b_.values + a_.values; #else SIMDE_VECTORIZE @@ -30520,7 +31434,12 @@ return vcadd_rot90_f32(a, b); #else simde_float32x2_private r_, a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {1, 2}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + r_.sv64 = __riscv_vfadd_vv_f32m1(op1, a_.sv64, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, b_.values, 1, 2); r_.values = b_.values + a_.values; #else @@ -30548,7 +31467,13 @@ return vcaddq_rot90_f32(a, b); #else simde_float32x4_private r_, a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {1, 4, 3, 6}; + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + r_.sv128 = __riscv_vfadd_vv_f32m1(op1, a_.sv128, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); r_.values = b_.values + a_.values; #else @@ -30576,7 +31501,13 @@ return vcaddq_rot90_f64(a, b); #else simde_float64x2_private r_, a_ = simde_float64x2_to_private(a), b_ = simde_float64x2_to_private(b); - #if defined(SIMDE_SHUFFLE_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + uint64_t idx1[2] = {1, 2}; + vfloat64m2_t b_tmp = __riscv_vlmul_ext_v_f64m1_f64m2 (b_.sv128); + vfloat64m1_t op1 = __riscv_vlmul_trunc_v_f64m2_f64m1(__riscv_vrgather_vv_f64m2(__riscv_vslideup_vx_f64m2( \ + __riscv_vfneg_v_f64m2(b_tmp, 2), b_tmp, 2, 4), __riscv_vle64_v_u64m2(idx1, 2), 2)); + r_.sv128 = __riscv_vfadd_vv_f64m1(op1, a_.sv128, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) b_.values = SIMDE_SHUFFLE_VECTOR_(64, 16, -b_.values, b_.values, 1, 2); r_.values = b_.values + a_.values; #else @@ -30601,7 +31532,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CADD_ROT90_H) */ /* :: End simde/arm/neon/cadd_rot90.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cage.h :: */ /* SPDX-License-Identifier: MIT * @@ -30634,11 +31565,11 @@ #define SIMDE_ARM_NEON_CAGE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cge.h :: */ /* SPDX-License-Identifier: MIT * @@ -30665,13 +31596,14 @@ * Copyright: * 2020 Evan Nemerson * 2020 Christopher Moore + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CGE_H) #define SIMDE_ARM_NEON_CGE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -30702,10 +31634,16 @@ b_ = simde_float16x8_to_private(b); simde_uint16x8_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcgeh_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfge_vv_f16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vcgeh_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x8_from_private(r_); #endif @@ -30728,10 +31666,15 @@ b_ = simde_float32x4_to_private(b); simde_uint32x4_private r_; + #if defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_castps_si128(_mm_cmpge_ps(a_.m128, b_.m128)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f32x4_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfge_vv_f32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30766,6 +31709,10 @@ r_.m128i = _mm_castpd_si128(_mm_cmpge_pd(a_.m128d, b_.m128d)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f64x2_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfge_vv_f64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30800,6 +31747,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi8(a_.m128i, b_.m128i), _mm_cmpeq_epi8(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsge_vv_i8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30834,6 +31785,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi16(a_.m128i, b_.m128i), _mm_cmpeq_epi16(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsge_vv_i16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30868,6 +31823,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi32(a_.m128i, b_.m128i), _mm_cmpeq_epi32(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsge_vv_i32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30902,6 +31861,10 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) r_.m128i = _mm_or_si128(_mm_cmpgt_epi64(a_.m128i, b_.m128i), _mm_cmpeq_epi64(a_.m128i, b_.m128i)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsge_vv_i64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30940,6 +31903,10 @@ ); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u8x16_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsgeu_vv_u8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -30981,6 +31948,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi16(_mm_xor_si128(a_.m128i, sign_bits), _mm_xor_si128(b_.m128i, sign_bits)), _mm_cmpeq_epi16(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u16x8_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsgeu_vv_u16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31022,6 +31993,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi32(_mm_xor_si128(a_.m128i, sign_bits), _mm_xor_si128(b_.m128i, sign_bits)), _mm_cmpeq_epi32(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u32x4_ge(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsgeu_vv_u32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31061,6 +32036,10 @@ #elif defined(SIMDE_X86_SSE4_2_NATIVE) __m128i sign_bits = _mm_set1_epi64x(INT64_MIN); r_.m128i = _mm_or_si128(_mm_cmpgt_epi64(_mm_xor_si128(a_.m128i, sign_bits), _mm_xor_si128(b_.m128i, sign_bits)), _mm_cmpeq_epi64(a_.m128i, b_.m128i)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsgeu_vv_u64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31089,10 +32068,16 @@ b_ = simde_float16x4_to_private(b); simde_uint16x4_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcgeh_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfge_vv_f16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, 0xffff, result, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vcgeh_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x4_from_private(r_); #endif @@ -31113,7 +32098,11 @@ b_ = simde_float32x2_to_private(b); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfge_vv_f32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else SIMDE_VECTORIZE @@ -31141,7 +32130,11 @@ b_ = simde_float64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfge_vv_f64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else SIMDE_VECTORIZE @@ -31171,6 +32164,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_or_si64(_mm_cmpgt_pi8(a_.m64, b_.m64), _mm_cmpeq_pi8(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsge_vv_i8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31203,6 +32200,10 @@ r_.m64 = _mm_or_si64(_mm_cmpgt_pi16(a_.m64, b_.m64), _mm_cmpeq_pi16(a_.m64, b_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsge_vv_i16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_i16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_i16m1(r_.sv64, -1, result, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -31233,6 +32234,10 @@ r_.m64 = _mm_or_si64(_mm_cmpgt_pi32(a_.m64, b_.m64), _mm_cmpeq_pi32(a_.m64, b_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsge_vv_i32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_i32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_i32m1(r_.sv64, -1, result, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -31259,7 +32264,11 @@ b_ = simde_int64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsge_vv_i64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else SIMDE_VECTORIZE @@ -31290,6 +32299,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi8(INT8_MIN); r_.m64 = _mm_or_si64(_mm_cmpgt_pi8(_mm_xor_si64(a_.m64, sign_bits), _mm_xor_si64(b_.m64, sign_bits)), _mm_cmpeq_pi8(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsgeu_vv_u8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31321,6 +32334,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi16(INT16_MIN); r_.m64 = _mm_or_si64(_mm_cmpgt_pi16(_mm_xor_si64(a_.m64, sign_bits), _mm_xor_si64(b_.m64, sign_bits)), _mm_cmpeq_pi16(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsgeu_vv_u16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31352,6 +32369,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi32(INT32_MIN); r_.m64 = _mm_or_si64(_mm_cmpgt_pi32(_mm_xor_si64(a_.m64, sign_bits), _mm_xor_si64(b_.m64, sign_bits)), _mm_cmpeq_pi32(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsgeu_vv_u32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else @@ -31380,7 +32401,11 @@ a_ = simde_uint64x1_to_private(a), b_ = simde_uint64x1_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsgeu_vv_u64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values >= b_.values); #else SIMDE_VECTORIZE @@ -31616,7 +32641,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CAGE_H) */ /* :: End simde/arm/neon/cage.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cagt.h :: */ /* SPDX-License-Identifier: MIT * @@ -31649,11 +32674,11 @@ #define SIMDE_ARM_NEON_CAGT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cgt.h :: */ /* SPDX-License-Identifier: MIT * @@ -31681,15 +32706,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CGT_H) #define SIMDE_ARM_NEON_CGT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/get_low.h :: */ /* SPDX-License-Identifier: MIT * @@ -31717,13 +32743,14 @@ * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_GET_LOW_H) #define SIMDE_ARM_NEON_GET_LOW_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -31738,10 +32765,14 @@ simde_float16x4_private r_; simde_float16x8_private a_ = simde_float16x8_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv64 = a_.sv128; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i]; + } + #endif return simde_float16x4_from_private(r_); #endif @@ -31760,7 +32791,9 @@ simde_float32x2_private r_; simde_float32x4_private a_ = simde_float32x4_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1); #else SIMDE_VECTORIZE @@ -31786,7 +32819,9 @@ simde_float64x1_private r_; simde_float64x2_private a_ = simde_float64x2_to_private(a); - #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0); #else SIMDE_VECTORIZE @@ -31814,6 +32849,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1, 2, 3, 4, 5, 6, 7); @@ -31844,6 +32881,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1, 2, 3); @@ -31874,6 +32913,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1); @@ -31904,6 +32945,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0); @@ -31934,6 +32977,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1, 2, 3, 4, 5, 6, 7); @@ -31964,6 +33009,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1, 2, 3); @@ -31994,6 +33041,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0, 1); @@ -32024,6 +33073,8 @@ #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_movepi64_pi64(a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = a_.sv128; #else #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) r_.values = __builtin_shufflevector(a_.values, a_.values, 0); @@ -32137,7 +33188,7 @@ #endif /* !defined(SIMDE_ARM_NEON_GET_LOW_H) */ /* :: End simde/arm/neon/get_low.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -32227,10 +33278,16 @@ b_ = simde_float16x8_to_private(b); simde_uint16x8_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcgth_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfgt_vv_f16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vcgth_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x8_from_private(r_); #endif @@ -32257,6 +33314,10 @@ r_.m128i = _mm_castps_si128(_mm_cmpgt_ps(a_.m128, b_.m128)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f32x4_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfgt_vv_f32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32291,6 +33352,10 @@ r_.m128i = _mm_castpd_si128(_mm_cmpgt_pd(a_.m128d, b_.m128d)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f64x2_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfgt_vv_f64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32325,6 +33390,10 @@ r_.m128i = _mm_cmpgt_epi8(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsgt_vv_i8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32359,6 +33428,10 @@ r_.m128i = _mm_cmpgt_epi16(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsgt_vv_i16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32393,6 +33466,10 @@ r_.m128i = _mm_cmpgt_epi32(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsgt_vv_i32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32432,6 +33509,10 @@ __m128i r = _mm_and_si128(_mm_cmpeq_epi32(a_.m128i, b_.m128i), _mm_sub_epi64(b_.m128i, a_.m128i)); r = _mm_or_si128(r, _mm_cmpgt_epi32(a_.m128i, b_.m128i)); r_.m128i = _mm_shuffle_epi32(r, _MM_SHUFFLE(3,3,1,1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsgt_vv_i64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32467,6 +33548,10 @@ r_.m128i = _mm_adds_epu8(tmp, _mm_sub_epi8(_mm_setzero_si128(), tmp)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u8x16_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsgtu_vv_u8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32502,6 +33587,10 @@ r_.m128i = _mm_adds_epu16(tmp, _mm_sub_epi16(_mm_setzero_si128(), tmp)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u16x8_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsgtu_vv_u16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32540,6 +33629,10 @@ ); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u32x4_gt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsgtu_vv_u32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32573,6 +33666,10 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) __m128i sign_bit = _mm_set1_epi64x(INT64_MIN); r_.m128i = _mm_cmpgt_epi64(_mm_xor_si128(a_.m128i, sign_bit), _mm_xor_si128(b_.m128i, sign_bit)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsgtu_vv_u64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32601,10 +33698,16 @@ b_ = simde_float16x4_to_private(b); simde_uint16x4_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcgth_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfgt_vv_f16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vcgth_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x4_from_private(r_); #endif @@ -32625,7 +33728,11 @@ b_ = simde_float32x2_to_private(b); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfgt_vv_f32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else SIMDE_VECTORIZE @@ -32653,7 +33760,11 @@ b_ = simde_float64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfgt_vv_f64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else SIMDE_VECTORIZE @@ -32683,6 +33794,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_cmpgt_pi8(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsgt_vv_i8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32713,6 +33828,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_cmpgt_pi16(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsgt_vv_i16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32743,6 +33862,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_cmpgt_pi32(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsgt_vv_i32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32771,7 +33894,11 @@ b_ = simde_int64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsgt_vv_i64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else SIMDE_VECTORIZE @@ -32802,6 +33929,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bit = _mm_set1_pi8(INT8_MIN); r_.m64 = _mm_cmpgt_pi8(_mm_xor_si64(a_.m64, sign_bit), _mm_xor_si64(b_.m64, sign_bit)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsgtu_vv_u8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32833,6 +33964,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bit = _mm_set1_pi16(INT16_MIN); r_.m64 = _mm_cmpgt_pi16(_mm_xor_si64(a_.m64, sign_bit), _mm_xor_si64(b_.m64, sign_bit)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsgtu_vv_u16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32864,6 +33999,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bit = _mm_set1_pi32(INT32_MIN); r_.m64 = _mm_cmpgt_pi32(_mm_xor_si64(a_.m64, sign_bit), _mm_xor_si64(b_.m64, sign_bit)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsgtu_vv_u32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else @@ -32892,7 +34031,11 @@ a_ = simde_uint64x1_to_private(a), b_ = simde_uint64x1_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsgtu_vv_u64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values > b_.values); #else SIMDE_VECTORIZE @@ -33072,7 +34215,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CAGT_H) */ /* :: End simde/arm/neon/cagt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cale.h :: */ /* SPDX-License-Identifier: MIT * @@ -33104,7 +34247,7 @@ #define SIMDE_ARM_NEON_CALE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -33242,7 +34385,7 @@ #endif /* !defined(SIMDE_ARM_NEON_cale_H) */ /* :: End simde/arm/neon/cale.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/calt.h :: */ /* SPDX-License-Identifier: MIT * @@ -33274,7 +34417,7 @@ #define SIMDE_ARM_NEON_CALT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -33412,7 +34555,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CAGT_H) */ /* :: End simde/arm/neon/calt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ceq.h :: */ /* SPDX-License-Identifier: MIT * @@ -33445,7 +34588,7 @@ #define SIMDE_ARM_NEON_CEQ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -34286,7 +35429,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CEQ_H) */ /* :: End simde/arm/neon/ceq.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ceqz.h :: */ /* SPDX-License-Identifier: MIT * @@ -34320,13 +35463,13 @@ #define SIMDE_ARM_NEON_CEQZ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -34772,9 +35915,9 @@ #endif /* !defined(SIMDE_ARM_NEON_CEQZ_H) */ /* :: End simde/arm/neon/ceqz.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cgez.h :: */ /* SPDX-License-Identifier: MIT * @@ -34808,11 +35951,11 @@ #define SIMDE_ARM_NEON_CGEZ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -35260,9 +36403,9 @@ #endif /* !defined(SIMDE_ARM_NEON_CGEZ_H) */ /* :: End simde/arm/neon/cgez.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cgtz.h :: */ /* SPDX-License-Identifier: MIT * @@ -35296,15 +36439,15 @@ #define SIMDE_ARM_NEON_CGTZ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -35752,7 +36895,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CGTZ_H) */ /* :: End simde/arm/neon/cgtz.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cle.h :: */ /* SPDX-License-Identifier: MIT * @@ -35780,13 +36923,14 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CLE_H) #define SIMDE_ARM_NEON_CLE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -35873,10 +37017,16 @@ b_ = simde_float16x8_to_private(b); simde_uint16x8_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcleh_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfle_vv_f16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vcleh_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x8_from_private(r_); #endif @@ -35903,6 +37053,10 @@ r_.m128i = _mm_castps_si128(_mm_cmple_ps(a_.m128, b_.m128)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f32x4_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfle_vv_f32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -35937,6 +37091,10 @@ r_.m128i = _mm_castpd_si128(_mm_cmple_pd(a_.m128d, b_.m128d)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f64x2_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfle_vv_f64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -35971,6 +37129,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi8(b_.m128i, a_.m128i), _mm_cmpeq_epi8(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsle_vv_i8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36005,6 +37167,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi16(b_.m128i, a_.m128i), _mm_cmpeq_epi16(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsle_vv_i16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36039,6 +37205,10 @@ r_.m128i = _mm_or_si128(_mm_cmpgt_epi32(b_.m128i, a_.m128i), _mm_cmpeq_epi32(a_.m128i, b_.m128i)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsle_vv_i32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36073,6 +37243,10 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) r_.m128i = _mm_or_si128(_mm_cmpgt_epi64(b_.m128i, a_.m128i), _mm_cmpeq_epi64(a_.m128i, b_.m128i)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsle_vv_i64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36112,6 +37286,10 @@ ); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u8x16_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsleu_vv_u8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36160,6 +37338,10 @@ ); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u16x8_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsleu_vv_u16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36208,6 +37390,10 @@ ); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u32x4_le(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsleu_vv_u32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36254,6 +37440,10 @@ ), _mm_cmpeq_epi64(a_.m128i, b_.m128i) ); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsleu_vv_u64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36282,10 +37472,16 @@ b_ = simde_float16x4_to_private(b); simde_uint16x4_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcleh_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfle_vv_f16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vcleh_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x4_from_private(r_); #endif @@ -36306,7 +37502,11 @@ b_ = simde_float32x2_to_private(b); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfle_vv_f32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else SIMDE_VECTORIZE @@ -36334,7 +37534,11 @@ b_ = simde_float64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfle_vv_f64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else SIMDE_VECTORIZE @@ -36364,6 +37568,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_or_si64(_mm_cmpgt_pi8(b_.m64, a_.m64), _mm_cmpeq_pi8(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsle_vv_i8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36394,6 +37602,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_or_si64(_mm_cmpgt_pi16(b_.m64, a_.m64), _mm_cmpeq_pi16(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsle_vv_i16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36424,6 +37636,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_or_si64(_mm_cmpgt_pi32(b_.m64, a_.m64), _mm_cmpeq_pi32(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsle_vv_i32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36452,7 +37668,11 @@ b_ = simde_int64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsle_vv_i64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else SIMDE_VECTORIZE @@ -36483,6 +37703,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi8(INT8_MIN); r_.m64 = _mm_or_si64(_mm_cmpgt_pi8(_mm_xor_si64(b_.m64, sign_bits), _mm_xor_si64(a_.m64, sign_bits)), _mm_cmpeq_pi8(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsleu_vv_u8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36514,6 +37738,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi16(INT16_MIN); r_.m64 = _mm_or_si64(_mm_cmpgt_pi16(_mm_xor_si64(b_.m64, sign_bits), _mm_xor_si64(a_.m64, sign_bits)), _mm_cmpeq_pi16(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsleu_vv_u16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36545,6 +37773,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi32(INT32_MIN); r_.m64 = _mm_or_si64(_mm_cmpgt_pi32(_mm_xor_si64(b_.m64, sign_bits), _mm_xor_si64(a_.m64, sign_bits)), _mm_cmpeq_pi32(a_.m64, b_.m64)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsleu_vv_u32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else @@ -36573,7 +37805,11 @@ a_ = simde_uint64x1_to_private(a), b_ = simde_uint64x1_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsleu_vv_u64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= b_.values); #else SIMDE_VECTORIZE @@ -36596,7 +37832,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CLE_H) */ /* :: End simde/arm/neon/cle.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/clez.h :: */ /* SPDX-License-Identifier: MIT * @@ -36624,17 +37860,18 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CLEZ_H) #define SIMDE_ARM_NEON_CLEZ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -36707,10 +37944,16 @@ simde_float16x8_private a_ = simde_float16x8_to_private(a); simde_uint16x8_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vclezh_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfle_vf_f16m1_b16(a_.sv128, 0, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vclezh_f16(a_.values[i]); + } + #endif return simde_uint16x8_from_private(r_); #endif @@ -36725,13 +37968,17 @@ simde_vclezq_f32(simde_float32x4_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclezq_f32(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcleq_f32(a, simde_vdupq_n_f32(SIMDE_FLOAT32_C(0.0))); #else simde_float32x4_private a_ = simde_float32x4_to_private(a); simde_uint32x4_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfle_vf_f32m1_b32(a_.sv128, 0, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= SIMDE_FLOAT32_C(0.0)); #else SIMDE_VECTORIZE @@ -36753,13 +38000,17 @@ simde_vclezq_f64(simde_float64x2_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclezq_f64(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcleq_f64(a, simde_vdupq_n_f64(SIMDE_FLOAT64_C(0.0))); #else simde_float64x2_private a_ = simde_float64x2_to_private(a); simde_uint64x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfle_vf_f64m1_b64(a_.sv128, 0, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= SIMDE_FLOAT64_C(0.0)); #else SIMDE_VECTORIZE @@ -36781,13 +38032,17 @@ simde_vclezq_s8(simde_int8x16_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclezq_s8(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcleq_s8(a, simde_vdupq_n_s8(0)); #else simde_int8x16_private a_ = simde_int8x16_to_private(a); simde_uint8x16_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsle_vx_i8m1_b8(a_.sv128, 0, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -36809,13 +38064,17 @@ simde_vclezq_s16(simde_int16x8_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclezq_s16(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcleq_s16(a, simde_vdupq_n_s16(0)); #else simde_int16x8_private a_ = simde_int16x8_to_private(a); simde_uint16x8_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsle_vx_i16m1_b16(a_.sv128, 0, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -36837,13 +38096,17 @@ simde_vclezq_s32(simde_int32x4_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclezq_s32(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcleq_s32(a, simde_vdupq_n_s32(0)); #else simde_int32x4_private a_ = simde_int32x4_to_private(a); simde_uint32x4_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsle_vx_i32m1_b32(a_.sv128, 0, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -36865,13 +38128,17 @@ simde_vclezq_s64(simde_int64x2_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclezq_s64(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcleq_s64(a, simde_vdupq_n_s64(0)); #else simde_int64x2_private a_ = simde_int64x2_to_private(a); simde_uint64x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsle_vx_i64m1_b64(a_.sv128, 0, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -36897,10 +38164,16 @@ simde_float16x4_private a_ = simde_float16x4_to_private(a); simde_uint16x4_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vclezh_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmfle_vf_f16m1_b16(a_.sv64, 0, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vclezh_f16(a_.values[i]); + } + #endif return simde_uint16x4_from_private(r_); #endif @@ -36915,13 +38188,17 @@ simde_vclez_f32(simde_float32x2_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclez_f32(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcle_f32(a, simde_vdup_n_f32(SIMDE_FLOAT32_C(0.0))); #else simde_float32x2_private a_ = simde_float32x2_to_private(a); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmfle_vf_f32m1_b32(a_.sv64, 0, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= SIMDE_FLOAT32_C(0.0)); #else SIMDE_VECTORIZE @@ -36943,13 +38220,17 @@ simde_vclez_f64(simde_float64x1_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclez_f64(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcle_f64(a, simde_vdup_n_f64(SIMDE_FLOAT64_C(0.0))); #else simde_float64x1_private a_ = simde_float64x1_to_private(a); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmfle_vf_f64m1_b64(a_.sv64, 0, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= SIMDE_FLOAT64_C(0.0)); #else SIMDE_VECTORIZE @@ -36971,13 +38252,17 @@ simde_vclez_s8(simde_int8x8_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclez_s8(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcle_s8(a, simde_vdup_n_s8(0)); #else simde_int8x8_private a_ = simde_int8x8_to_private(a); simde_uint8x8_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsle_vx_i8m1_b8(a_.sv64, 0, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -36999,13 +38284,17 @@ simde_vclez_s16(simde_int16x4_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclez_s16(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcle_s16(a, simde_vdup_n_s16(0)); #else simde_int16x4_private a_ = simde_int16x4_to_private(a); simde_uint16x4_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsle_vx_i16m1_b16(a_.sv64, 0, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -37027,13 +38316,17 @@ simde_vclez_s32(simde_int32x2_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclez_s32(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcle_s32(a, simde_vdup_n_s32(0)); #else simde_int32x2_private a_ = simde_int32x2_to_private(a); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsle_vx_i32m1_b32(a_.sv64, 0, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -37055,13 +38348,17 @@ simde_vclez_s64(simde_int64x1_t a) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vclez_s64(a); - #elif SIMDE_NATURAL_VECTOR_SIZE > 0 + #elif SIMDE_NATURAL_VECTOR_SIZE > 0 && !defined(SIMDE_RISCV_V_NATIVE) return simde_vcle_s64(a, simde_vdup_n_s64(0)); #else simde_int64x1_private a_ = simde_int64x1_to_private(a); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsle_vx_i64m1_b64(a_.sv64, 0, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values <= 0); #else SIMDE_VECTORIZE @@ -37084,7 +38381,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CLEZ_H) */ /* :: End simde/arm/neon/clez.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cls.h :: */ /* SPDX-License-Identifier: MIT * @@ -37116,11 +38413,11 @@ #define SIMDE_ARM_NEON_CLS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/clz.h :: */ /* SPDX-License-Identifier: MIT * @@ -37152,7 +38449,7 @@ #define SIMDE_ARM_NEON_CLZ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -37552,7 +38849,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CLZ_H) */ /* :: End simde/arm/neon/clz.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cltz.h :: */ /* SPDX-License-Identifier: MIT * @@ -37587,13 +38884,13 @@ #define SIMDE_ARM_NEON_CLTZ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/clt.h :: */ /* SPDX-License-Identifier: MIT * @@ -37621,15 +38918,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CLT_H) #define SIMDE_ARM_NEON_CLT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -37719,10 +39017,16 @@ b_ = simde_float16x8_to_private(b); simde_uint16x8_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vclth_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmflt_vv_f16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vclth_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x8_from_private(r_); #endif @@ -37749,6 +39053,10 @@ r_.m128i = _mm_castps_si128(_mm_cmplt_ps(a_.m128, b_.m128)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f32x4_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmflt_vv_f32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37783,6 +39091,10 @@ r_.m128i = _mm_castpd_si128(_mm_cmplt_pd(a_.m128d, b_.m128d)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_f64x2_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmflt_vv_f64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37817,6 +39129,10 @@ r_.m128i = _mm_cmplt_epi8(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmslt_vv_i8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37851,6 +39167,10 @@ r_.m128i = _mm_cmplt_epi16(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmslt_vv_i16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37885,6 +39205,10 @@ r_.m128i = _mm_cmplt_epi32(a_.m128i, b_.m128i); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmslt_vv_i32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37919,6 +39243,10 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) r_.m128i = _mm_cmpgt_epi64(b_.m128i, a_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmslt_vv_i64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37956,6 +39284,10 @@ ); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u8x16_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsltu_vv_u8m1_b8(a_.sv128, b_.sv128, 16); + r_.sv128 = __riscv_vmv_v_x_u8m1(0, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, -1, result, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -37996,6 +39328,10 @@ r_.m128i = _mm_cmplt_epi16(_mm_xor_si128(a_.m128i, sign_bits), _mm_xor_si128(b_.m128i, sign_bits)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u16x8_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsltu_vv_u16m1_b16(a_.sv128, b_.sv128, 8); + r_.sv128 = __riscv_vmv_v_x_u16m1(0, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38036,6 +39372,10 @@ r_.m128i = _mm_cmplt_epi32(_mm_xor_si128(a_.m128i, sign_bits), _mm_xor_si128(b_.m128i, sign_bits)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_u32x4_lt(a_.v128, b_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsltu_vv_u32m1_b32(a_.sv128, b_.sv128, 4); + r_.sv128 = __riscv_vmv_v_x_u32m1(0, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38074,6 +39414,10 @@ #elif defined(SIMDE_X86_SSE4_2_NATIVE) __m128i sign_bits = _mm_set1_epi64x(INT64_MIN); r_.m128i = _mm_cmpgt_epi64(_mm_xor_si128(b_.m128i, sign_bits), _mm_xor_si128(a_.m128i, sign_bits)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsltu_vv_u64m1_b64(a_.sv128, b_.sv128, 2); + r_.sv128 = __riscv_vmv_v_x_u64m1(0, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38102,10 +39446,16 @@ b_ = simde_float16x4_to_private(b); simde_uint16x4_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vclth_f16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + vbool16_t result = __riscv_vmflt_vv_f16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vclth_f16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x4_from_private(r_); #endif @@ -38126,7 +39476,11 @@ b_ = simde_float32x2_to_private(b); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmflt_vv_f32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else SIMDE_VECTORIZE @@ -38154,7 +39508,11 @@ b_ = simde_float64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmflt_vv_f64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else SIMDE_VECTORIZE @@ -38184,6 +39542,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_cmpgt_pi8(b_.m64, a_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmslt_vv_i8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38214,6 +39576,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_cmpgt_pi16(b_.m64, a_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmslt_vv_i16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38244,6 +39610,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_cmpgt_pi32(b_.m64, a_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmslt_vv_i32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38272,7 +39642,11 @@ b_ = simde_int64x1_to_private(b); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmslt_vv_i64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else SIMDE_VECTORIZE @@ -38303,6 +39677,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi8(INT8_MIN); r_.m64 = _mm_cmpgt_pi8(_mm_xor_si64(b_.m64, sign_bits), _mm_xor_si64(a_.m64, sign_bits)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t result = __riscv_vmsltu_vv_u8m1_b8(a_.sv64, b_.sv64, 8); + r_.sv64 = __riscv_vmv_v_x_u8m1(0, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, -1, result, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38334,6 +39712,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi16(INT16_MIN); r_.m64 = _mm_cmpgt_pi16(_mm_xor_si64(b_.m64, sign_bits), _mm_xor_si64(a_.m64, sign_bits)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool16_t result = __riscv_vmsltu_vv_u16m1_b16(a_.sv64, b_.sv64, 4); + r_.sv64 = __riscv_vmv_v_x_u16m1(0, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, -1, result, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38365,6 +39747,10 @@ #if defined(SIMDE_X86_MMX_NATIVE) __m64 sign_bits = _mm_set1_pi32(INT32_MIN); r_.m64 = _mm_cmpgt_pi32(_mm_xor_si64(b_.m64, sign_bits), _mm_xor_si64(a_.m64, sign_bits)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool32_t result = __riscv_vmsltu_vv_u32m1_b32(a_.sv64, b_.sv64, 2); + r_.sv64 = __riscv_vmv_v_x_u32m1(0, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, -1, result, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && !defined(SIMDE_BUG_GCC_100762) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else @@ -38393,7 +39779,11 @@ a_ = simde_uint64x1_to_private(a), b_ = simde_uint64x1_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + #if defined(SIMDE_RISCV_V_NATIVE) + vbool64_t result = __riscv_vmsltu_vv_u64m1_b64(a_.sv64, b_.sv64, 1); + r_.sv64 = __riscv_vmv_v_x_u64m1(0, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, -1, result, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values < b_.values); #else SIMDE_VECTORIZE @@ -38416,7 +39806,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CLT_H) */ /* :: End simde/arm/neon/clt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -38768,9 +40158,9 @@ #endif /* !defined(SIMDE_ARM_NEON_CLTZ_H) */ /* :: End simde/arm/neon/cltz.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mvn.h :: */ /* SPDX-License-Identifier: MIT * @@ -38804,11 +40194,11 @@ #define SIMDE_ARM_NEON_MVN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -38834,6 +40224,8 @@ r_.v128 = wasm_v128_not(a_.v128); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vnot_v_i8m1(a_.sv128, b_.sv128, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -38869,6 +40261,8 @@ r_.v128 = wasm_v128_not(a_.v128); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vnot_v_i16m1(a_.sv128, b_.sv128, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -38904,6 +40298,8 @@ r_.v128 = wasm_v128_not(a_.v128); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vnot_v_i32m1(a_.sv128, b_.sv128, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -38939,6 +40335,8 @@ r_.v128 = wasm_v128_not(a_.v128); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vnot_v_u8m1(a_.sv128, b_.sv128, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -38974,6 +40372,8 @@ r_.v128 = wasm_v128_not(a_.v128); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vnot_v_u16m1(a_.sv128, b_.sv128, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39009,6 +40409,8 @@ r_.v128 = wasm_v128_not(a_.v128); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vnot_v_u32m1(a_.sv128, b_.sv128, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39038,6 +40440,8 @@ r_.m64 = _mm_andnot_si64(a_.m64, _mm_cmpeq_pi8(a_.m64, a_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vnot_v_i8m1(a_.sv64, b_.sv64, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39067,6 +40471,8 @@ r_.m64 = _mm_andnot_si64(a_.m64, _mm_cmpeq_pi16(a_.m64, a_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vnot_v_i16m1(a_.sv64, b_.sv64, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39096,6 +40502,8 @@ r_.m64 = _mm_andnot_si64(a_.m64, _mm_cmpeq_pi32(a_.m64, a_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vnot_v_i32m1(a_.sv64, b_.sv64, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39125,6 +40533,8 @@ r_.m64 = _mm_andnot_si64(a_.m64, _mm_cmpeq_pi8(a_.m64, a_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vnot_v_u8m1(a_.sv64, b_.sv64, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39154,6 +40564,8 @@ r_.m64 = _mm_andnot_si64(a_.m64, _mm_cmpeq_pi16(a_.m64, a_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vnot_v_u16m1(a_.sv64, b_.sv64, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39183,6 +40595,8 @@ r_.m64 = _mm_andnot_si64(a_.m64, _mm_cmpeq_pi32(a_.m64, a_.m64)); #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = ~a_.values; + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vnot_v_u32m1(a_.sv64, b_.sv64, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39250,9 +40664,9 @@ #endif /* !defined(SIMDE_ARM_NEON_MVN_H) */ /* :: End simde/arm/neon/mvn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -39366,13 +40780,13 @@ #endif /* !defined(SIMDE_ARM_NEON_CLS_H) */ /* :: End simde/arm/neon/cls.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla.h :: */ /* SPDX-License-Identifier: MIT * @@ -39405,7 +40819,7 @@ #define SIMDE_ARM_NEON_CMLA_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -39585,7 +40999,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_H) */ /* :: End simde/arm/neon/cmla.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -39610,18 +41024,18 @@ * SOFTWARE. * * Copyright: - * 2023 Chi-Wei Chu + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CMLA_LANE_H) #define SIMDE_ARM_NEON_CMLA_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cvt.h :: */ /* SPDX-License-Identifier: MIT * @@ -39655,7 +41069,7 @@ #define SIMDE_ARM_NEON_CVT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -39670,7 +41084,9 @@ simde_float32x4_private a_ = simde_float32x4_to_private(a); simde_float16x4_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vfncvt_f_f_w_f16m1(__riscv_vlmul_ext_v_f32m1_f32m2(a_.sv128), 4); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -39696,7 +41112,9 @@ simde_float16x4_private a_ = simde_float16x4_to_private(a); simde_float32x4_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vfwcvt_f_f_v_f32m2(a_.sv64, 4)); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -39722,8 +41140,10 @@ simde_float64x2_private a_ = simde_float64x2_to_private(a); simde_float32x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfncvt_f_f_w_f32m1(__riscv_vlmul_ext_v_f64m1_f64m2(a_.sv128), 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -39748,8 +41168,10 @@ simde_float32x2_private a_ = simde_float32x2_to_private(a); simde_float64x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vlmul_trunc_v_f64m2_f64m1(__riscv_vfwcvt_f_f_v_f64m2(a_.sv64, 2)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40153,7 +41575,17 @@ simde_float32x2_private a_ = simde_float32x2_to_private(a); simde_int32x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv64 = __riscv_vfcvt_rtz_x_f_v_i32m1(a_.sv64, 2); + #else + r_.sv64 = __riscv_vmerge_vxm_i32m1( + __riscv_vfcvt_rtz_x_f_v_i32m1(a_.sv64, 2), + 0, + __riscv_vmseq_vx_u32m1_b32(__riscv_vfclass_v_u32m1(a_.sv64 , 2) , 512 , 2), + 2); + #endif + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40179,7 +41611,9 @@ simde_float16x4_private a_ = simde_float16x4_to_private(a); simde_uint16x4_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vfcvt_rtz_xu_f_v_u16m1(a_.sv64, 4); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40205,7 +41639,17 @@ simde_float32x2_private a_ = simde_float32x2_to_private(a); simde_uint32x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv64 = __riscv_vfcvt_rtz_xu_f_v_u32m1(a_.sv64, 2); + #else + r_.sv64 = __riscv_vmerge_vxm_u32m1( + __riscv_vfcvt_rtz_xu_f_v_u32m1(a_.sv64, 2), + 0, + __riscv_vmseq_vx_u32m1_b32(__riscv_vfclass_v_u32m1(a_.sv64 , 2) , 512 , 2), + 2); + #endif + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40231,7 +41675,17 @@ simde_float64x1_private a_ = simde_float64x1_to_private(a); simde_int64x1_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv64 = __riscv_vfcvt_rtz_x_f_v_i64m1(a_.sv64, 1); + #else + r_.sv64 = __riscv_vmerge_vxm_i64m1( + __riscv_vfcvt_rtz_x_f_v_i64m1(a_.sv64, 1), + 0, + __riscv_vmseq_vx_u64m1_b64(__riscv_vfclass_v_u64m1(a_.sv64 , 1) , 512 , 1), + 1); + #endif + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40257,7 +41711,17 @@ simde_float64x1_private a_ = simde_float64x1_to_private(a); simde_uint64x1_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv64 = __riscv_vfcvt_rtz_xu_f_v_u64m1(a_.sv64, 1); + #else + r_.sv64 = __riscv_vmerge_vxm_u64m1( + __riscv_vfcvt_rtz_xu_f_v_u64m1(a_.sv64, 1), + 0, + __riscv_vmseq_vx_u64m1_b64(__riscv_vfclass_v_u64m1(a_.sv64 , 1) , 512 , 1), + 1); + #endif + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (a_.values >= SIMDE_FLOAT64_C(0.0))); #else @@ -40322,6 +41786,16 @@ #if !defined(SIMDE_FAST_NANS) r_.m128i = _mm_and_si128(r_.m128i, _mm_castps_si128(_mm_cmpord_ps(a_.m128, a_.m128))); #endif + #elif defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv128 = __riscv_vfcvt_rtz_x_f_v_i32m1(a_.sv128, 4); + #else + r_.sv128 = __riscv_vmerge_vxm_i32m1( + __riscv_vfcvt_rtz_x_f_v_i32m1(a_.sv128, 4), + 0, + __riscv_vmseq_vx_u32m1_b32(__riscv_vfclass_v_u32m1(a_.sv128 , 4) , 512 , 4), + 4); + #endif #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) && !defined(SIMDE_FAST_NANS) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) @@ -40362,7 +41836,9 @@ simde_float16x8_private a_ = simde_float16x8_to_private(a); simde_uint16x8_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vfcvt_rtz_xu_f_v_u16m1(a_.sv128, 8); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40419,6 +41895,16 @@ #if !defined(SIMDE_FAST_NANS) r_.m128i = _mm_and_si128(r_.m128i, _mm_castps_si128(_mm_cmpord_ps(a_.m128, a_.m128))); #endif + #elif defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv128 = __riscv_vfcvt_rtz_xu_f_v_u32m1(a_.sv128, 4); + #else + r_.sv128 = __riscv_vmerge_vxm_u32m1( + __riscv_vfcvt_rtz_xu_f_v_u32m1(a_.sv128, 4), + 0, + __riscv_vmseq_vx_u32m1_b32(__riscv_vfclass_v_u32m1(a_.sv128 , 4) , 512 , 4), + 4); + #endif #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) @@ -40499,6 +41985,16 @@ #if !defined(SIMDE_FAST_NANS) r_.m128i = _mm_and_si128(r_.m128i, _mm_castpd_si128(_mm_cmpord_pd(a_.m128d, a_.m128d))); #endif + #elif defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv128 = __riscv_vfcvt_rtz_x_f_v_i64m1(a_.sv128, 2); + #else + r_.sv128 = __riscv_vmerge_vxm_i64m1( + __riscv_vfcvt_rtz_x_f_v_i64m1(a_.sv128, 2), + 0, + __riscv_vmseq_vx_u64m1_b64(__riscv_vfclass_v_u64m1(a_.sv128 , 2) , 512 , 2), + 2); + #endif #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) @@ -40578,6 +42074,16 @@ #if !defined(SIMDE_FAST_NANS) r_.m128i = _mm_and_si128(r_.m128i, _mm_castpd_si128(_mm_cmpord_pd(a_.m128d, a_.m128d))); #endif + #elif defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sv128 = __riscv_vfcvt_rtz_xu_f_v_u64m1(a_.sv128, 2); + #else + r_.sv128 = __riscv_vmerge_vxm_u64m1( + __riscv_vfcvt_rtz_xu_f_v_u64m1(a_.sv128, 2), + 0, + __riscv_vmseq_vx_u64m1_b64(__riscv_vfclass_v_u64m1(a_.sv128 , 2) , 512 , 2), + 2); + #endif #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); @@ -40612,7 +42118,9 @@ simde_int16x4_private a_ = simde_int16x4_to_private(a); simde_float16x4_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vfcvt_f_x_v_f16m1(a_.sv64, 4); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40642,8 +42150,10 @@ simde_int32x2_private a_ = simde_int32x2_to_private(a); simde_float32x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfcvt_f_x_v_f32m1(a_.sv64, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40668,14 +42178,18 @@ simde_uint16x4_private a_ = simde_uint16x4_to_private(a); simde_float16x4_private r_; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI - r_.values[i] = HEDLEY_STATIC_CAST(simde_float16_t, a_.values[i]); - #else - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, a_.values[i])); - #endif - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vfcvt_f_xu_v_f16m1(a_.sv64, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + #if SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_PORTABLE && SIMDE_FLOAT16_API != SIMDE_FLOAT16_API_FP16_NO_ABI + r_.values[i] = HEDLEY_STATIC_CAST(simde_float16_t, a_.values[i]); + #else + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, a_.values[i])); + #endif + } + #endif return simde_float16x4_from_private(r_); #endif @@ -40694,8 +42208,10 @@ simde_uint32x2_private a_ = simde_uint32x2_to_private(a); simde_float32x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfcvt_f_xu_v_f32m1(a_.sv64, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40720,8 +42236,10 @@ simde_int64x1_private a_ = simde_int64x1_to_private(a); simde_float64x1_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfcvt_f_x_v_f64m1(a_.sv64, 1); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40746,8 +42264,10 @@ simde_uint64x1_private a_ = simde_uint64x1_to_private(a); simde_float64x1_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfcvt_f_xu_v_f64m1(a_.sv64, 1); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40772,7 +42292,9 @@ simde_int16x8_private a_ = simde_int16x8_to_private(a); simde_float16x8_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vfcvt_f_x_v_f16m1(a_.sv128, 8); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40802,8 +42324,10 @@ simde_int32x4_private a_ = simde_int32x4_to_private(a); simde_float32x4_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfcvt_f_x_v_f32m1(a_.sv128, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40828,7 +42352,9 @@ simde_uint16x8_private a_ = simde_uint16x8_to_private(a); simde_float16x8_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vfcvt_f_xu_v_f16m1(a_.sv128, 8); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FLOAT16_VECTOR) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); #else SIMDE_VECTORIZE @@ -40858,8 +42384,10 @@ simde_uint32x4_private a_ = simde_uint32x4_to_private(a); simde_float32x4_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfcvt_f_xu_v_f32m1(a_.sv128, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40881,15 +42409,17 @@ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vcvtq_f64_s64(a); #elif defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) - return vec_ctd(a, 0); + return vec_double(a); #else simde_int64x2_private a_ = simde_int64x2_to_private(a); simde_float64x2_private r_; #if defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512DQ_NATIVE) r_.m128d = _mm_cvtepi64_pd(a_.m128i); - #elif defined(SIMDE_CONVERT_VECTOR_) + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfcvt_f_x_v_f64m1(a_.sv128, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -40914,8 +42444,10 @@ simde_uint64x2_private a_ = simde_uint64x2_to_private(a); simde_float64x2_private r_; - #if defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_RISCV_V_NATIVE) SIMDE_CONVERT_VECTOR_(r_.values, a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfcvt_f_xu_v_f64m1(a_.sv128, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -41716,7 +43248,7 @@ #endif /* SIMDE_ARM_NEON_CVT_H */ /* :: End simde/arm/neon/cvt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/dup_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -41749,9 +43281,9 @@ #define SIMDE_ARM_NEON_DUP_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -43421,11 +44953,11 @@ #endif /* !defined(SIMDE_ARM_NEON_DUP_LANE_H) */ /* :: End simde/arm/neon/dup_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mul.h :: */ /* SPDX-License-Identifier: MIT * @@ -43460,10 +44992,10 @@ #define SIMDE_ARM_NEON_MUL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -44205,7 +45737,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MUL_H) */ /* :: End simde/arm/neon/mul.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -44214,23 +45746,34 @@ simde_float16x4_t simde_vcmla_lane_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_float16x4_to_private(b); + uint16_t idx1[4] = {0, 0, 2, 2}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + r_.sv64 = __riscv_vfmacc_vf_f16m1(r_.sv64, b_.values[lane], op1, 4); + return simde_float16x4_from_private(r_); + #else + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), b_ = simde_float32x4_to_private( simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 0, 0, 2, 2); - r_.values += b_.values * a_.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; - r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; - } + #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; + r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_lane_f16 @@ -44246,20 +45789,31 @@ simde_float32x2_t simde_vcmla_lane_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x2_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 0) { - simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), - b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) - a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 0, 0); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private r_ = simde_float32x2_to_private(r), + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b); + uint32_t idx1[2] = {0, 0}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + r_.sv64 = __riscv_vfmacc_vf_f32m1(r_.sv64, b_.values[lane], op1, 2); + return simde_float32x2_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; - r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; - } + simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x2_to_private(b).values[lane])); + #if defined(SIMDE_SHUFFLE_VECTOR_) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 0, 0); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; + r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; + } + #endif + return simde_float32x2_from_private(r_); #endif - return simde_float32x2_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_lane_f32 @@ -44275,23 +45829,34 @@ simde_float16x4_t simde_vcmla_laneq_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a); + simde_float16x8_private b_ = simde_float16x8_to_private(b); + uint16_t idx1[4] = {0, 0, 2, 2}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + r_.sv64 = __riscv_vfmacc_vf_f16m1(r_.sv64, b_.values[lane], op1, 4); + return simde_float16x4_from_private(r_); + #else + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), b_ = simde_float32x4_to_private( simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 0, 0, 2, 2); - r_.values += b_.values * a_.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; - r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; - } + #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; + r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_laneq_f16 @@ -44307,20 +45872,31 @@ simde_float32x2_t simde_vcmla_laneq_f32(simde_float32x2_t r, simde_float32x2_t a, simde_float32x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), - b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) - a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 0, 0); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private r_ = simde_float32x2_to_private(r), + a_ = simde_float32x2_to_private(a); + simde_float32x4_private b_ = simde_float32x4_to_private(b); + uint32_t idx1[2] = {0, 0}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + r_.sv64 = __riscv_vfmacc_vf_f32m1(r_.sv64, b_.values[lane], op1, 2); + return simde_float32x2_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; - r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; - } + simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x4_to_private(b).values[lane])); + #if defined(SIMDE_SHUFFLE_VECTOR_) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 0, 0); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; + r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; + } + #endif + return simde_float32x2_from_private(r_); #endif - return simde_float32x2_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_laneq_f32 @@ -44336,30 +45912,42 @@ simde_float16x8_t simde_vcmlaq_lane_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 0, 0, 2, 2); - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 0, 0, 2, 2); - r_low.values += b_.values * a_low.values; - r_high.values += b_.values * a_high.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += b_.values[lane] * a_low.values[2 * i]; - r_low.values[2 * i + 1] += b_.values[lane] * a_low.values[2 * i]; - r_high.values[2 * i] += b_.values[lane] * a_high.values[2 * i]; - r_high.values[2 * i + 1] += b_.values[lane] * a_high.values[2 * i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a); + simde_float16x4_private b_ = simde_float16x4_to_private(b); + uint16_t idx1[8] = {0, 0, 2, 2, 4, 4, 6, 6}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2( \ + __riscv_vslideup_vx_f16m2(a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + r_.sv128 = __riscv_vfmacc_vf_f16m1(r_.sv128, b_.values[lane], op1, 8); + return simde_float16x8_from_private(r_); + #else + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 0, 0, 2, 2); + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 0, 0, 2, 2); + r_low.values += b_.values * a_low.values; + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += b_.values[lane] * a_low.values[2 * i]; + r_low.values[2 * i + 1] += b_.values[lane] * a_low.values[2 * i]; + r_high.values[2 * i] += b_.values[lane] * a_high.values[2 * i]; + r_high.values[2 * i + 1] += b_.values[lane] * a_high.values[2 * i]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_lane_f16 @@ -44375,20 +45963,32 @@ simde_float32x4_t simde_vcmlaq_lane_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x2_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 0) { - simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), - b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) - a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) + simde_float32x4_private r_ = simde_float32x4_to_private(r), + a_ = simde_float32x4_to_private(a); + simde_float32x2_private b_ = simde_float32x2_to_private(b); + uint32_t idx1[4] = {0, 0, 2, 2}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2( \ + __riscv_vslideup_vx_f32m2(a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + r_.sv128 = __riscv_vfmacc_vf_f32m1(r_.sv128, b_.values[lane], op1, 4); + return simde_float32x4_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; - r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; - } + simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), + b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x2_to_private(b).values[lane])); + #if defined(SIMDE_SHUFFLE_VECTOR_) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; + r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; + } + #endif + return simde_float32x4_from_private(r_); #endif - return simde_float32x4_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_lane_f32 @@ -44404,30 +46004,42 @@ simde_float16x8_t simde_vcmlaq_laneq_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 0, 0, 2, 2); - r_low.values += b_.values * a_low.values; - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 0, 0, 2, 2); - r_high.values += b_.values * a_high.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += b_.values[lane] * a_low.values[2 * i]; - r_low.values[2 * i + 1] += b_.values[lane] * a_low.values[2 * i]; - r_high.values[2 * i] += b_.values[lane] * a_high.values[2 * i]; - r_high.values[2 * i + 1] += b_.values[lane] * a_high.values[2 * i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a); + simde_float16x8_private b_ = simde_float16x8_to_private(b); + uint16_t idx1[8] = {0, 0, 2, 2, 4, 4, 6, 6}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2( \ + __riscv_vslideup_vx_f16m2(a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + r_.sv128 = __riscv_vfmacc_vf_f16m1(r_.sv128, b_.values[lane], op1, 8); + return simde_float16x8_from_private(r_); + #else + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 0, 0, 2, 2); + r_low.values += b_.values * a_low.values; + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 0, 0, 2, 2); + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += b_.values[lane] * a_low.values[2 * i]; + r_low.values[2 * i + 1] += b_.values[lane] * a_low.values[2 * i]; + r_high.values[2 * i] += b_.values[lane] * a_high.values[2 * i]; + r_high.values[2 * i + 1] += b_.values[lane] * a_high.values[2 * i]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_laneq_f16 @@ -44443,21 +46055,33 @@ simde_float32x4_t simde_vcmlaq_laneq_f32(simde_float32x4_t r, simde_float32x4_t a, simde_float32x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), - b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x4_to_private(b).values[lane])); - - #if defined(SIMDE_SHUFFLE_VECTOR_) - a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) + simde_float32x4_private r_ = simde_float32x4_to_private(r), + a_ = simde_float32x4_to_private(a); + simde_float32x4_private b_ = simde_float32x4_to_private(b); + uint32_t idx1[4] = {0, 0, 2, 2}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2( \ + __riscv_vslideup_vx_f32m2(a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + r_.sv128 = __riscv_vfmacc_vf_f32m1(r_.sv128, b_.values[lane], op1, 4); + return simde_float32x4_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; - r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; - } + simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), + b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x4_to_private(b).values[lane])); + + #if defined(SIMDE_SHUFFLE_VECTOR_) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[lane] * a_.values[2 * i]; + r_.values[2 * i + 1] += b_.values[lane] * a_.values[2 * i]; + } + #endif + return simde_float32x4_from_private(r_); #endif - return simde_float32x4_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_laneq_f32 @@ -44475,7 +46099,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_LANE_H) */ /* :: End simde/arm/neon/cmla_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_rot180.h :: */ /* SPDX-License-Identifier: MIT * @@ -44508,7 +46132,7 @@ #define SIMDE_ARM_NEON_CMLA_ROT180_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -44699,7 +46323,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_ROT180_H) */ /* :: End simde/arm/neon/cmla_rot180.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_rot180_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -44724,28 +46348,28 @@ * SOFTWARE. * * Copyright: - * 2023 Chi-Wei Chu + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CMLA_ROT180_LANE_H) #define SIMDE_ARM_NEON_CMLA_ROT180_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -44754,24 +46378,38 @@ simde_float16x4_t simde_vcmla_rot180_lane_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), - a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 0, 0, 2, 2); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 0, 1, 2, 3); - r_.values += b_.values * a_.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += -(b_.values[2 * i]) * a_.values[2 * i]; - r_.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_.values[2 * i]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]); + uint16_t idx1[4] = {0, 0, 2, 2}; + uint16_t idx2[4] = {0, 1, 2, 3}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + vfloat16m1_t op2 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx2, 4), 4); + r_.sv64 = __riscv_vfmacc_vv_f16m1(r_.sv64, op1, op2, 4); + return simde_float16x4_from_private(r_); + #else + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 0, 1, 2, 3); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += -(b_.values[2 * i]) * a_.values[2 * i]; + r_.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_.values[2 * i]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_rot180_lane_f16 @@ -44789,7 +46427,15 @@ { simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {0, 0}; + uint32_t idx2[2] = {0, 1}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + vfloat32m1_t op2 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx2, 2), 2); + r_.sv64 = __riscv_vfmacc_vv_f32m1(r_.sv64, op1, op2, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 0, 0); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, -b_.values, 0, 1); r_.values += b_.values * a_.values; @@ -44817,31 +46463,47 @@ simde_float16x8_t simde_vcmlaq_rot180_lane_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 0, 0, 2, 2); - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 0, 0, 2, 2); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 0, 1, 2, 3); - r_low.values += b_.values * a_low.values; - r_high.values += b_.values * a_high.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a), + b_ = simde_vdupq_n_f16(simde_float16x4_to_private(b).values[lane]); + uint16_t idx1[8] = {0, 0, 2, 2, 4, 4, 6, 6}; + uint16_t idx2[8] = {0, 1, 2, 3, 4, 5, 6, 7}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + vfloat16m1_t op2 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx2, 8), 8)); + r_.sv128 = __riscv_vfmacc_vv_f16m1(r_.sv128, op1, op2, 8); + return simde_float16x8_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += -(b_.values[2 * i]) * a_low.values[2 * i]; - r_low.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_low.values[2 * i]; - r_high.values[2 * i] += -(b_.values[2 * i]) * a_high.values[2 * i]; - r_high.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_high.values[2 * i]; - } + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 0, 0, 2, 2); + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 0, 0, 2, 2); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 0, 1, 2, 3); + r_low.values += b_.values * a_low.values; + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += -(b_.values[2 * i]) * a_low.values[2 * i]; + r_low.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_low.values[2 * i]; + r_high.values[2 * i] += -(b_.values[2 * i]) * a_high.values[2 * i]; + r_high.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_high.values[2 * i]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_rot180_lane_f16 @@ -44859,7 +46521,17 @@ { simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {0, 0, 2, 2}; + uint32_t idx2[4] = {0, 1, 2, 3}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + vfloat32m1_t op2 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx2, 4), 4)); + r_.sv128 = __riscv_vfmacc_vv_f32m1(r_.sv128, op1, op2, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 0, 1, 2, 3); r_.values += b_.values * a_.values; @@ -44887,24 +46559,38 @@ simde_float16x4_t simde_vcmla_rot180_laneq_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), - a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 0, 0, 2, 2); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 0, 1, 2, 3); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]); + uint16_t idx1[4] = {0, 0, 2, 2}; + uint16_t idx2[4] = {0, 1, 2, 3}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + vfloat16m1_t op2 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx2, 4), 4); + r_.sv64 = __riscv_vfmacc_vv_f16m1(r_.sv64, op1, op2, 4); + return simde_float16x4_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += -(b_.values[2 * i]) * a_.values[2 * i]; - r_.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_.values[2 * i]; - } + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 0, 1, 2, 3); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += -(b_.values[2 * i]) * a_.values[2 * i]; + r_.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_.values[2 * i]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_rot180_laneq_f16 @@ -44922,7 +46608,15 @@ { simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {0, 0}; + uint32_t idx2[2] = {0, 1}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + vfloat32m1_t op2 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx2, 2), 2); + r_.sv64 = __riscv_vfmacc_vv_f32m1(r_.sv64, op1, op2, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 0, 0); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, -b_.values, 0, 1); r_.values += b_.values * a_.values; @@ -44950,31 +46644,47 @@ simde_float16x8_t simde_vcmlaq_rot180_laneq_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 0, 0, 2, 2); - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 0, 0, 2, 2); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 0, 1, 2, 3); - r_low.values += b_.values * a_low.values; - r_high.values += b_.values * a_high.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a), + b_ = simde_vdupq_n_f16(simde_float16x8_to_private(b).values[lane]); + uint16_t idx1[8] = {0, 0, 2, 2, 4, 4, 6, 6}; + uint16_t idx2[8] = {0, 1, 2, 3, 4, 5, 6, 7}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + vfloat16m1_t op2 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx2, 8), 8)); + r_.sv128 = __riscv_vfmacc_vv_f16m1(r_.sv128, op1, op2, 8); + return simde_float16x8_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += -(b_.values[2 * i]) * a_low.values[2 * i]; - r_low.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_low.values[2 * i]; - r_high.values[2 * i] += -(b_.values[2 * i]) * a_high.values[2 * i]; - r_high.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_high.values[2 * i]; - } + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 0, 0, 2, 2); + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 0, 0, 2, 2); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 0, 1, 2, 3); + r_low.values += b_.values * a_low.values; + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += -(b_.values[2 * i]) * a_low.values[2 * i]; + r_low.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_low.values[2 * i]; + r_high.values[2 * i] += -(b_.values[2 * i]) * a_high.values[2 * i]; + r_high.values[2 * i + 1] += -(b_.values[2 * i + 1]) * a_high.values[2 * i]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_rot180_laneq_f16 @@ -44992,7 +46702,17 @@ { simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {0, 0, 2, 2}; + uint32_t idx2[4] = {0, 1, 2, 3}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + vfloat32m1_t op2 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx2, 4), 4)); + r_.sv128 = __riscv_vfmacc_vv_f32m1(r_.sv128, op1, op2, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 0, 0, 2, 2); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 0, 1, 2, 3); r_.values += b_.values * a_.values; @@ -45021,7 +46741,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_ROT180_LANE_H) */ /* :: End simde/arm/neon/cmla_rot180_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_rot270.h :: */ /* SPDX-License-Identifier: MIT * @@ -45054,7 +46774,7 @@ #define SIMDE_ARM_NEON_CMLA_ROT270_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -45244,7 +46964,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_ROT270_H) */ /* :: End simde/arm/neon/cmla_rot270.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_rot270_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -45269,28 +46989,28 @@ * SOFTWARE. * * Copyright: - * 2023 Chi-Wei Chu + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CMLA_ROT270_LANE_H) #define SIMDE_ARM_NEON_CMLA_ROT270_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -45299,24 +47019,38 @@ simde_float16x4_t simde_vcmla_rot270_lane_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), - a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 5, 0, 7, 2); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]); + uint16_t idx1[4] = {1, 1, 3, 3}; + uint16_t idx2[4] = {5, 0, 7, 2}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + vfloat16m1_t op2 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx2, 4), 4); + r_.sv64 = __riscv_vfmacc_vv_f16m1(r_.sv64, op1, op2, 4); + return simde_float16x4_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[2 * i + 1] * a_.values[2 * i + 1]; - r_.values[2 * i + 1] += -(b_.values[2 * i]) * a_.values[2 * i + 1]; - } + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[2 * i + 1] * a_.values[2 * i + 1]; + r_.values[2 * i + 1] += -(b_.values[2 * i]) * a_.values[2 * i + 1]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_rot270_lane_f16 @@ -45334,7 +47068,15 @@ { simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {1, 1}; + uint32_t idx2[2] = {3, 0}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + vfloat32m1_t op2 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx2, 2), 2); + r_.sv64 = __riscv_vfmacc_vv_f32m1(r_.sv64, op1, op2, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 1, 1); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, b_.values, 3, 0); r_.values += b_.values * a_.values; @@ -45362,31 +47104,47 @@ simde_float16x8_t simde_vcmlaq_rot270_lane_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 1, 1, 3, 3); - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 5, 0, 7, 2); - r_low.values += b_.values * a_low.values; - r_high.values += b_.values * a_high.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a), + b_ = simde_vdupq_n_f16(simde_float16x4_to_private(b).values[lane]); + uint16_t idx1[8] = {1, 1, 3, 3, 5, 5, 7, 7}; + uint16_t idx2[8] = {9, 0, 11, 2, 13, 4, 15, 6}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + vfloat16m1_t op2 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx2, 8), 8)); + r_.sv128 = __riscv_vfmacc_vv_f16m1(r_.sv128, op1, op2, 8); + return simde_float16x8_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += b_.values[2 * i + 1] * a_low.values[2 * i + 1]; - r_low.values[2 * i + 1] += -(b_.values[2 * i]) * a_low.values[2 * i + 1]; - r_high.values[2 * i] += b_.values[2 * i + 1] * a_high.values[2 * i + 1]; - r_high.values[2 * i + 1] += -(b_.values[2 * i]) * a_high.values[2 * i + 1]; - } + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 1, 1, 3, 3); + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); + r_low.values += b_.values * a_low.values; + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += b_.values[2 * i + 1] * a_low.values[2 * i + 1]; + r_low.values[2 * i + 1] += -(b_.values[2 * i]) * a_low.values[2 * i + 1]; + r_high.values[2 * i] += b_.values[2 * i + 1] * a_high.values[2 * i + 1]; + r_high.values[2 * i + 1] += -(b_.values[2 * i]) * a_high.values[2 * i + 1]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_rot270_lane_f16 @@ -45404,7 +47162,17 @@ { simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {1, 1, 3, 3}; + uint32_t idx2[4] = {5, 0, 7, 2}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + vfloat32m1_t op2 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx2, 4), 4)); + r_.sv128 = __riscv_vfmacc_vv_f32m1(r_.sv128, op1, op2, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); r_.values += b_.values * a_.values; @@ -45432,24 +47200,38 @@ simde_float16x4_t simde_vcmla_rot270_laneq_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), - a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 5, 0, 7, 2); - r_.values += b_.values * a_.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]); + uint16_t idx1[4] = {1, 1, 3, 3}; + uint16_t idx2[4] = {5, 0, 7, 2}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + vfloat16m1_t op2 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx2, 4), 4); + r_.sv64 = __riscv_vfmacc_vv_f16m1(r_.sv64, op1, op2, 4); + return simde_float16x4_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += b_.values[2 * i + 1] * a_.values[2 * i + 1]; - r_.values[2 * i + 1] += -(b_.values[2 * i]) * a_.values[2 * i + 1]; - } + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += b_.values[2 * i + 1] * a_.values[2 * i + 1]; + r_.values[2 * i + 1] += -(b_.values[2 * i]) * a_.values[2 * i + 1]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_rot270_laneq_f16 @@ -45467,7 +47249,15 @@ { simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {1, 1}; + uint32_t idx2[2] = {3, 0}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + vfloat32m1_t op2 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx2, 2), 2); + r_.sv64 = __riscv_vfmacc_vv_f32m1(r_.sv64, op1, op2, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 1, 1); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, b_.values, 3, 0); r_.values += b_.values * a_.values; @@ -45495,31 +47285,47 @@ simde_float16x8_t simde_vcmlaq_rot270_laneq_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 1, 1, 3, 3); - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 5, 0, 7, 2); - r_high.values += b_.values * a_high.values; - r_low.values += b_.values * a_low.values; + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a), + b_ = simde_vdupq_n_f16(simde_float16x8_to_private(b).values[lane]); + uint16_t idx1[8] = {1, 1, 3, 3, 5, 5, 7, 7}; + uint16_t idx2[8] = {9, 0, 11, 2, 13, 4, 15, 6}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + vfloat16m1_t op2 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx2, 8), 8)); + r_.sv128 = __riscv_vfmacc_vv_f16m1(r_.sv128, op1, op2, 8); + return simde_float16x8_from_private(r_); #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += b_.values[2 * i + 1] * a_low.values[2 * i + 1]; - r_low.values[2 * i + 1] += -(b_.values[2 * i]) * a_low.values[2 * i + 1]; - r_high.values[2 * i] += b_.values[2 * i + 1] * a_high.values[2 * i + 1]; - r_high.values[2 * i + 1] += -(b_.values[2 * i]) * a_high.values[2 * i + 1]; - } + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 1, 1, 3, 3); + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); + r_high.values += b_.values * a_high.values; + r_low.values += b_.values * a_low.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += b_.values[2 * i + 1] * a_low.values[2 * i + 1]; + r_low.values[2 * i + 1] += -(b_.values[2 * i]) * a_low.values[2 * i + 1]; + r_high.values[2 * i] += b_.values[2 * i + 1] * a_high.values[2 * i + 1]; + r_high.values[2 * i + 1] += -(b_.values[2 * i]) * a_high.values[2 * i + 1]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_rot270_laneq_f16 @@ -45537,7 +47343,17 @@ { simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {1, 1, 3, 3}; + uint32_t idx2[4] = {5, 0, 7, 2}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + vfloat32m1_t op2 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx2, 4), 4)); + r_.sv128 = __riscv_vfmacc_vv_f32m1(r_.sv128, op1, op2, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 5, 0, 7, 2); r_.values += b_.values * a_.values; @@ -45567,7 +47383,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_ROT270_LANE_H) */ /* :: End simde/arm/neon/cmla_rot270_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_rot90.h :: */ /* SPDX-License-Identifier: MIT * @@ -45600,7 +47416,7 @@ #define SIMDE_ARM_NEON_CMLA_ROT90_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -45790,7 +47606,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_ROT90_H) */ /* :: End simde/arm/neon/cmla_rot90.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cmla_rot90_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -45815,28 +47631,28 @@ * SOFTWARE. * * Copyright: - * 2023 Chi-Wei Chu + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CMLA_ROT90_LANE_H) #define SIMDE_ARM_NEON_CMLA_ROT90_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -45845,24 +47661,38 @@ simde_float16x4_t simde_vcmla_rot90_lane_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), - a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 1, 4, 3, 6); - r_.values += b_.values * a_.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += -(b_.values[2 * i + 1]) * a_.values[2 * i + 1]; - r_.values[2 * i + 1] += b_.values[2 * i] * a_.values[2 * i + 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]); + uint16_t idx1[4] = {1, 1, 3, 3}; + uint16_t idx2[4] = {1, 4, 3, 6}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + vfloat16m1_t op2 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx2, 4), 4); + r_.sv64 = __riscv_vfmacc_vv_f16m1(r_.sv64, op1, op2, 4); + return simde_float16x4_from_private(r_); + #else + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += -(b_.values[2 * i + 1]) * a_.values[2 * i + 1]; + r_.values[2 * i + 1] += b_.values[2 * i] * a_.values[2 * i + 1]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_rot90_lane_f16 @@ -45880,7 +47710,15 @@ { simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {1, 1}; + uint32_t idx2[2] = {1, 2}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + vfloat32m1_t op2 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx2, 2), 2); + r_.sv64 = __riscv_vfmacc_vv_f32m1(r_.sv64, op1, op2, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 1, 1); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, b_.values, 1, 2); r_.values += b_.values * a_.values; @@ -45908,24 +47746,38 @@ simde_float16x4_t simde_vcmla_rot90_laneq_f16(simde_float16x4_t r, simde_float16x4_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), - a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_.values, a_.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 1, 4, 3, 6); - r_.values += b_.values * a_.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) - { - r_.values[2 * i] += -(b_.values[2 * i + 1]) * a_.values[2 * i + 1]; - r_.values[2 * i + 1] += b_.values[2 * i] * a_.values[2 * i + 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x4_private r_ = simde_float16x4_to_private(r), + a_ = simde_float16x4_to_private(a), + b_ = simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]); + uint16_t idx1[4] = {1, 1, 3, 3}; + uint16_t idx2[4] = {1, 4, 3, 6}; + vfloat16m1_t op1 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + a_.sv64, a_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx1, 4), 4); + vfloat16m1_t op2 = __riscv_vrgather_vv_f16m1(__riscv_vslideup_vx_f16m1( \ + __riscv_vfneg_v_f16m1(b_.sv64, 4), b_.sv64, 4, 8), __riscv_vle16_v_u16m1(idx2, 4), 4); + r_.sv64 = __riscv_vfmacc_vv_f16m1(r_.sv64, op1, op2, 4); + return simde_float16x4_from_private(r_); + #else + simde_float32x4_private r_ = simde_float32x4_to_private(simde_vcvt_f32_f16(r)), + a_ = simde_float32x4_to_private(simde_vcvt_f32_f16(a)), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); + r_.values += b_.values * a_.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_.values) / (2 * sizeof(r_.values[0]))); i++) + { + r_.values[2 * i] += -(b_.values[2 * i + 1]) * a_.values[2 * i + 1]; + r_.values[2 * i + 1] += b_.values[2 * i] * a_.values[2 * i + 1]; + } + #endif + return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); #endif - return simde_vcvt_f16_f32(simde_float32x4_from_private(r_)); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmla_rot90_laneq_f16 @@ -45944,7 +47796,15 @@ simde_float32x2_private r_ = simde_float32x2_to_private(r), a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(simde_vdup_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[2] = {1, 1}; + uint32_t idx2[2] = {1, 2}; + vfloat32m1_t op1 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + a_.sv64, a_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx1, 2), 2); + vfloat32m1_t op2 = __riscv_vrgather_vv_f32m1(__riscv_vslideup_vx_f32m1( \ + __riscv_vfneg_v_f32m1(b_.sv64, 2), b_.sv64, 2, 4), __riscv_vle32_v_u32m1(idx2, 2), 2); + r_.sv64 = __riscv_vfmacc_vv_f32m1(r_.sv64, op1, op2, 2); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 1, 1); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, -b_.values, b_.values, 1, 2); r_.values += b_.values * a_.values; @@ -45972,31 +47832,47 @@ simde_float16x8_t simde_vcmlaq_rot90_lane_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x4_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 1, 1, 3, 3); - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 1, 4, 3, 6); - r_low.values += b_.values * a_low.values; - r_high.values += b_.values * a_high.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += -(b_.values[2 * i + 1]) * a_low.values[2 * i + 1]; - r_low.values[2 * i + 1] += b_.values[2 * i] * a_low.values[2 * i + 1]; - r_high.values[2 * i] += -(b_.values[2 * i + 1]) * a_high.values[2 * i + 1]; - r_high.values[2 * i + 1] += b_.values[2 * i] * a_high.values[2 * i + 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a), + b_ = simde_vdupq_n_f16(simde_float16x4_to_private(b).values[lane]); + uint16_t idx1[8] = {1, 1, 3, 3, 5, 5, 7, 7}; + uint16_t idx2[8] = {1, 8, 3, 10, 5, 12, 7, 14}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + vfloat16m1_t op2 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx2, 8), 8)); + r_.sv128 = __riscv_vfmacc_vv_f16m1(r_.sv128, op1, op2, 8); + return simde_float16x8_from_private(r_); + #else + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x4_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 1, 1, 3, 3); + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); + r_low.values += b_.values * a_low.values; + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += -(b_.values[2 * i + 1]) * a_low.values[2 * i + 1]; + r_low.values[2 * i + 1] += b_.values[2 * i] * a_low.values[2 * i + 1]; + r_high.values[2 * i] += -(b_.values[2 * i + 1]) * a_high.values[2 * i + 1]; + r_high.values[2 * i + 1] += b_.values[2 * i] * a_high.values[2 * i + 1]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_rot90_lane_f16 @@ -46014,7 +47890,17 @@ { simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x2_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {1, 1, 3, 3}; + uint32_t idx2[4] = {1, 4, 3, 6}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + vfloat32m1_t op2 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx2, 4), 4)); + r_.sv128 = __riscv_vfmacc_vv_f32m1(r_.sv128, op1, op2, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); r_.values += b_.values * a_.values; @@ -46042,31 +47928,47 @@ simde_float16x8_t simde_vcmlaq_rot90_laneq_f16(simde_float16x8_t r, simde_float16x8_t a, simde_float16x8_t b, const int lane) SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { - simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), - a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), - r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), - a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), - b_ = simde_float32x4_to_private( - simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); - #if defined(SIMDE_SHUFFLE_VECTOR_) && \ - ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) - a_low.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_low.values, a_low.values, 1, 1, 3, 3); - a_high.values = SIMDE_SHUFFLE_VECTOR_(16, 4, a_high.values, a_high.values, 1, 1, 3, 3); - b_.values = SIMDE_SHUFFLE_VECTOR_(16, 4, -b_.values, b_.values, 1, 4, 3, 6); - r_low.values += b_.values * a_low.values; - r_high.values += b_.values * a_high.values; - #else - SIMDE_VECTORIZE - for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) - { - r_low.values[2 * i] += -(b_.values[2 * i + 1]) * a_low.values[2 * i + 1]; - r_low.values[2 * i + 1] += b_.values[2 * i] * a_low.values[2 * i + 1]; - r_high.values[2 * i] += -(b_.values[2 * i + 1]) * a_high.values[2 * i + 1]; - r_high.values[2 * i + 1] += b_.values[2 * i] * a_high.values[2 * i + 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH && (SIMDE_NATURAL_VECTOR_SIZE > 128) + simde_float16x8_private r_ = simde_float16x8_to_private(r), + a_ = simde_float16x8_to_private(a), + b_ = simde_vdupq_n_f16(simde_float16x8_to_private(b).values[lane]); + uint16_t idx1[8] = {1, 1, 3, 3, 5, 5, 7, 7}; + uint16_t idx2[8] = {1, 8, 3, 10, 5, 12, 7, 14}; + vfloat16m2_t a_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (a_.sv128); + vfloat16m2_t b_tmp = __riscv_vlmul_ext_v_f16m1_f16m2 (b_.sv128); + vfloat16m1_t op1 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + a_tmp, a_tmp, 8, 16), __riscv_vle16_v_u16m2(idx1, 8), 8)); + vfloat16m1_t op2 = __riscv_vlmul_trunc_v_f16m2_f16m1(__riscv_vrgather_vv_f16m2(__riscv_vslideup_vx_f16m2( \ + __riscv_vfneg_v_f16m2(b_tmp, 8), b_tmp, 8, 16), __riscv_vle16_v_u16m2(idx2, 8), 8)); + r_.sv128 = __riscv_vfmacc_vv_f16m1(r_.sv128, op1, op2, 8); + return simde_float16x8_from_private(r_); + #else + simde_float32x4_private r_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(r))), + a_low = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_low_f16(a))), + r_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(r))), + a_high = simde_float32x4_to_private(simde_vcvt_f32_f16(simde_vget_high_f16(a))), + b_ = simde_float32x4_to_private( + simde_vcvt_f32_f16(simde_vdup_n_f16(simde_float16x8_to_private(b).values[lane]))); + #if defined(SIMDE_SHUFFLE_VECTOR_) && \ + ((SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FP16) || (SIMDE_FLOAT16_API == SIMDE_FLOAT16_API_FLOAT16)) + a_low.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_low.values, a_low.values, 1, 1, 3, 3); + a_high.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_high.values, a_high.values, 1, 1, 3, 3); + b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); + r_low.values += b_.values * a_low.values; + r_high.values += b_.values * a_high.values; + #else + SIMDE_VECTORIZE + for (size_t i = 0; i < (sizeof(r_low.values) / (2 * sizeof(r_low.values[0]))); i++) + { + r_low.values[2 * i] += -(b_.values[2 * i + 1]) * a_low.values[2 * i + 1]; + r_low.values[2 * i + 1] += b_.values[2 * i] * a_low.values[2 * i + 1]; + r_high.values[2 * i] += -(b_.values[2 * i + 1]) * a_high.values[2 * i + 1]; + r_high.values[2 * i + 1] += b_.values[2 * i] * a_high.values[2 * i + 1]; + } + #endif + return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), + simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); #endif - return simde_vcombine_f16(simde_vcvt_f16_f32(simde_float32x4_from_private(r_low)), - simde_vcvt_f16_f32(simde_float32x4_from_private(r_high))); } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) #undef vcmlaq_rot90_laneq_f16 @@ -46084,7 +47986,17 @@ { simde_float32x4_private r_ = simde_float32x4_to_private(r), a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(simde_vdupq_n_f32(simde_float32x4_to_private(b).values[lane])); - #if defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) + #if defined(SIMDE_RISCV_V_NATIVE) + uint32_t idx1[4] = {1, 1, 3, 3}; + uint32_t idx2[4] = {1, 4, 3, 6}; + vfloat32m2_t a_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (a_.sv128); + vfloat32m2_t b_tmp = __riscv_vlmul_ext_v_f32m1_f32m2 (b_.sv128); + vfloat32m1_t op1 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + a_tmp, a_tmp, 4, 8), __riscv_vle32_v_u32m2(idx1, 4), 4)); + vfloat32m1_t op2 = __riscv_vlmul_trunc_v_f32m2_f32m1(__riscv_vrgather_vv_f32m2(__riscv_vslideup_vx_f32m2( \ + __riscv_vfneg_v_f32m2(b_tmp, 4), b_tmp, 4, 8), __riscv_vle32_v_u32m2(idx2, 4), 4)); + r_.sv128 = __riscv_vfmacc_vv_f32m1(r_.sv128, op1, op2, 4); + #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100760) a_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 1, 3, 3); b_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, -b_.values, b_.values, 1, 4, 3, 6); r_.values += b_.values * a_.values; @@ -46113,7 +48025,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_ROT90_LANE_H) */ /* :: End simde/arm/neon/cmla_rot90_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cnt.h :: */ /* SPDX-License-Identifier: MIT * @@ -46140,15 +48052,16 @@ * Copyright: * 2020 Evan Nemerson * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_CNT_H) #define SIMDE_ARM_NEON_CNT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include HEDLEY_DIAGNOSTIC_PUSH @@ -46174,10 +48087,24 @@ r_, a_ = simde_int8x8_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int8_t, simde_x_arm_neon_cntb(HEDLEY_STATIC_CAST(uint8_t, a_.values[i]))); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t p = __riscv_vreinterpret_v_i8m1_u8m1(a_.sv64); + vuint8m1_t tmp = __riscv_vand_vv_u8m1(__riscv_vsrl_vx_u8m1(p , 1 , 8) , __riscv_vmv_v_x_u8m1(0x55 , 8) , 8); + p = __riscv_vsub_vv_u8m1(p , tmp , 8); + tmp = p; + p = __riscv_vand_vv_u8m1(p , __riscv_vmv_v_x_u8m1(0x33 , 8) , 8); + tmp = __riscv_vand_vv_u8m1(__riscv_vsrl_vx_u8m1(tmp , 2 , 8) , __riscv_vmv_v_x_u8m1(0x33 , 8) , 8); + p = __riscv_vadd_vv_u8m1(p , tmp , 8); + tmp = __riscv_vsrl_vx_u8m1(p, 4 , 8); + p = __riscv_vadd_vv_u8m1(p , tmp , 8); + p = __riscv_vand_vv_u8m1(p , __riscv_vmv_v_x_u8m1(0xf , 8) , 8); + r_.sv64 = __riscv_vreinterpret_v_u8m1_i8m1(p); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int8_t, simde_x_arm_neon_cntb(HEDLEY_STATIC_CAST(uint8_t, a_.values[i]))); + } + #endif return simde_int8x8_from_private(r_); #endif @@ -46259,6 +48186,16 @@ tmp = _mm_srli_epi16(a_.m128i, 4); a_.m128i = _mm_add_epi8(a_.m128i, tmp); r_.m128i = _mm_and_si128(a_.m128i, _mm_set1_epi8(0x0f)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vint8m1_t tmp = __riscv_vand_vv_i8m1(__riscv_vsra_vx_i8m1(a_.sv128 , 1 , 16) , __riscv_vmv_v_x_i8m1(0x55 , 16) , 16); + a_.sv128 = __riscv_vsub_vv_i8m1(a_.sv128 , tmp , 16); + tmp = a_.sv128; + a_.sv128 = __riscv_vand_vv_i8m1(a_.sv128 , __riscv_vmv_v_x_i8m1(0x33 , 16) , 16); + tmp = __riscv_vand_vv_i8m1(__riscv_vsra_vx_i8m1(tmp , 2 , 16) , __riscv_vmv_v_x_i8m1(0x33 , 16) , 16); + a_.sv128 = __riscv_vadd_vv_i8m1(a_.sv128 , tmp , 16); + tmp = __riscv_vsra_vx_i8m1(a_.sv128, 4 , 16); + a_.sv128 = __riscv_vadd_vv_i8m1(a_.sv128 , tmp , 16); + r_.sv128 = __riscv_vand_vv_i8m1(a_.sv128 , __riscv_vmv_v_x_i8m1(0xf , 16) , 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -46318,9 +48255,9 @@ #endif /* !defined(SIMDE_ARM_NEON_CNT_H) */ /* :: End simde/arm/neon/cnt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cvt_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -46352,9 +48289,9 @@ #define SIMDE_ARM_NEON_CVT_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -46366,7 +48303,7 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { return simde_vcvth_u16_f16( simde_float16_from_float32( - simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); + simde_float16_to_float32(a) * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n)))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_u16_f16(a, n) vcvth_n_u16_f16(a, n) @@ -46382,7 +48319,7 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { return simde_float16_from_float32( HEDLEY_STATIC_CAST(simde_float32_t, - HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); + HEDLEY_STATIC_CAST(simde_float64_t, a) / simde_math_pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_s16(a, n) vcvth_n_f16_s16(a, n) @@ -46398,7 +48335,7 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { return simde_float16_from_float32( HEDLEY_STATIC_CAST(simde_float32_t, - HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n))); + HEDLEY_STATIC_CAST(simde_float64_t, a) / simde_math_pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) #define simde_vcvth_n_f16_u16(a, n) vcvth_n_f16_u16(a, n) @@ -46412,7 +48349,7 @@ int32_t simde_vcvts_n_s32_f32(simde_float32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { - return simde_vcvts_s32_f32(a * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); + return simde_vcvts_s32_f32(a * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_s32_f32(a, n) vcvts_n_s32_f32(a, n) @@ -46426,7 +48363,7 @@ uint32_t simde_vcvts_n_u32_f32(simde_float32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { - return simde_vcvts_u32_f32(a * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); + return simde_vcvts_u32_f32(a * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n))); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_u32_f32(a, n) vcvts_n_u32_f32(a, n) @@ -46441,7 +48378,7 @@ simde_vcvts_n_f32_s32(int32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { return HEDLEY_STATIC_CAST(simde_float32_t, - HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n)); + HEDLEY_STATIC_CAST(simde_float64_t, a) / simde_math_pow(2, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_f32_s32(a, n) vcvts_n_f32_s32(a, n) @@ -46456,7 +48393,7 @@ simde_vcvts_n_f32_u32(uint32_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 32) { return HEDLEY_STATIC_CAST(simde_float32_t, - HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n)); + HEDLEY_STATIC_CAST(simde_float64_t, a) / simde_math_pow(2, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvts_n_f32_u32(a, n) vcvts_n_f32_u32(a, n) @@ -46470,7 +48407,7 @@ int64_t simde_vcvtd_n_s64_f64(simde_float64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 64) { - return simde_vcvtd_s64_f64(a * pow(2, n)); + return simde_vcvtd_s64_f64(a * simde_math_pow(2, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvtd_n_s64_f64(a, n) vcvtd_n_s64_f64(a, n) @@ -46484,7 +48421,7 @@ uint64_t simde_vcvtd_n_u64_f64(simde_float64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 64) { - return simde_vcvtd_u64_f64(a * pow(2, n)); + return simde_vcvtd_u64_f64(a * simde_math_pow(2, n)); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvtd_n_u64_f64(a, n) vcvtd_n_u64_f64(a, n) @@ -46498,7 +48435,7 @@ simde_float64_t simde_vcvtd_n_f64_s64(int64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 64) { - return HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n); + return HEDLEY_STATIC_CAST(simde_float64_t, a) / simde_math_pow(2, n); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvtd_n_f64_s64(a, n) vcvtd_n_f64_s64(a, n) @@ -46512,7 +48449,7 @@ simde_float64_t simde_vcvtd_n_f64_u64(uint64_t a, const int n) SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 64) { - return HEDLEY_STATIC_CAST(simde_float64_t, a) / pow(2, n); + return HEDLEY_STATIC_CAST(simde_float64_t, a) / simde_math_pow(2, n); } #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) #define simde_vcvtd_n_f64_u64(a, n) vcvtd_n_f64_u64(a, n) @@ -46531,7 +48468,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); + r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n))); } return simde_int32x2_from_private(r_); @@ -46553,7 +48490,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvtd_s64_f64(a_.values[i] * pow(2, n)); + r_.values[i] = simde_vcvtd_s64_f64(a_.values[i] * simde_math_pow(2, n)); } return simde_int64x1_from_private(r_); @@ -46577,7 +48514,7 @@ for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = simde_vcvth_u16_f16(simde_float16_from_float32( simde_float16_to_float32(a_.values[i]) * - HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); + HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n)))); } return simde_uint16x4_from_private(r_); @@ -46599,7 +48536,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); + r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n))); } return simde_uint32x2_from_private(r_); @@ -46621,7 +48558,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvtd_u64_f64(a_.values[i] * pow(2, n)); + r_.values[i] = simde_vcvtd_u64_f64(a_.values[i] * simde_math_pow(2, n)); } return simde_uint64x1_from_private(r_); @@ -46643,7 +48580,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); + r_.values[i] = simde_vcvts_s32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n))); } return simde_int32x4_from_private(r_); @@ -46665,7 +48602,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvtd_s64_f64(a_.values[i] * pow(2, n)); + r_.values[i] = simde_vcvtd_s64_f64(a_.values[i] * simde_math_pow(2, n)); } return simde_int64x2_from_private(r_); @@ -46689,7 +48626,7 @@ for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { r_.values[i] = simde_vcvth_u16_f16(simde_float16_from_float32( simde_float16_to_float32(a_.values[i]) * - HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n)))); + HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n)))); } return simde_uint16x8_from_private(r_); @@ -46711,7 +48648,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, pow(2, n))); + r_.values[i] = simde_vcvts_u32_f32(a_.values[i] * HEDLEY_STATIC_CAST(simde_float32_t, simde_math_pow(2, n))); } return simde_uint32x4_from_private(r_); @@ -46733,7 +48670,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vcvtd_u64_f64(a_.values[i] * pow(2, n)); + r_.values[i] = simde_vcvtd_u64_f64(a_.values[i] * simde_math_pow(2, n)); } return simde_uint64x2_from_private(r_); @@ -46755,7 +48692,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n))); } return simde_float16x4_from_private(r_); @@ -46777,7 +48714,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n))); } return simde_float16x4_from_private(r_); @@ -46799,7 +48736,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n))); } return simde_float16x8_from_private(r_); @@ -46821,7 +48758,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a_.values[i] / pow(2, n)))); + r_.values[i] = simde_float16_from_float32(HEDLEY_STATIC_CAST(simde_float32_t, (a_.values[i] / simde_math_pow(2, n)))); } return simde_float16x8_from_private(r_); @@ -46843,7 +48780,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float32x2_from_private(r_); @@ -46865,7 +48802,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float32x2_from_private(r_); @@ -46887,7 +48824,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float64x1_from_private(r_); @@ -46909,7 +48846,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float64x2_from_private(r_); @@ -46931,7 +48868,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float64x1_from_private(r_); @@ -46953,7 +48890,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float64_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float64x2_from_private(r_); @@ -46975,7 +48912,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float32x4_from_private(r_); @@ -46997,7 +48934,7 @@ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / pow(2, n)); + r_.values[i] = HEDLEY_STATIC_CAST(simde_float32_t, HEDLEY_STATIC_CAST(simde_float64_t, a_.values[i]) / simde_math_pow(2, n)); } return simde_float32x4_from_private(r_); @@ -47017,7 +48954,7 @@ #endif /* SIMDE_ARM_NEON_CVT_N_H */ /* :: End simde/arm/neon/cvt_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cvtm.h :: */ /* SPDX-License-Identifier: MIT * @@ -47049,9 +48986,9 @@ #define SIMDE_ARM_NEON_CVTM_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -47404,7 +49341,7 @@ #endif /* SIMDE_ARM_NEON_CVTM_H */ /* :: End simde/arm/neon/cvtm.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cvtn.h :: */ /* SPDX-License-Identifier: MIT * @@ -47437,13 +49374,13 @@ #define SIMDE_ARM_NEON_CVTN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -47942,7 +49879,7 @@ #endif /* SIMDE_ARM_NEON_CVTN_H */ /* :: End simde/arm/neon/cvtn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/cvtp.h :: */ /* SPDX-License-Identifier: MIT * @@ -47974,9 +49911,9 @@ #define SIMDE_ARM_NEON_CVTP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -48327,9 +50264,9 @@ #endif /* SIMDE_ARM_NEON_CVTP_H */ /* :: End simde/arm/neon/cvtp.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/copy_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -48361,9 +50298,9 @@ #define SIMDE_ARM_NEON_COPY_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -49519,7 +51456,7 @@ #endif /* SIMDE_ARM_NEON_COPY_LANE_H */ /* :: End simde/arm/neon/copy_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/crc32.h :: */ /* SPDX-License-Identifier: MIT * @@ -49551,7 +51488,12 @@ #define SIMDE_ARM_NEON_CRC32_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ + +#if defined(__ARM_ACLE) || (defined(__GNUC__) && defined(SIMDE_ARCH_ARM_CRC32)) + #include +#endif +// ^^ Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70974 HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -49579,7 +51521,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32b(uint32_t a, uint8_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32b(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49605,7 +51547,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32h(uint32_t a, uint16_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32h(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49631,7 +51573,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32w(uint32_t a, uint32_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32w(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49656,7 +51598,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32d(uint32_t a, uint64_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32d(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49691,7 +51633,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32cb(uint32_t a, uint8_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32cb(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49717,7 +51659,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32ch(uint32_t a, uint16_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32ch(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49743,7 +51685,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32cw(uint32_t a, uint32_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32cw(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49768,7 +51710,7 @@ SIMDE_FUNCTION_ATTRIBUTES uint32_t simde___crc32cd(uint32_t a, uint64_t b) { - #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(__ARM_ACLE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32cd(a, b); #else uint32_t r_acc = HEDLEY_STATIC_CAST(uint32_t, simde_crc32_reverseBits(a, 32)); @@ -49806,7 +51748,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CRC32_H) */ /* :: End simde/arm/neon/crc32.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/create.h :: */ /* SPDX-License-Identifier: MIT * @@ -49840,11 +51782,11 @@ #define SIMDE_ARM_NEON_CREATE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -50066,7 +52008,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CREATE_H) */ /* :: End simde/arm/neon/create.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/div.h :: */ /* SPDX-License-Identifier: MIT * @@ -50098,10 +52040,10 @@ #define SIMDE_ARM_NEON_DIV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -50271,7 +52213,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MUL_H) */ /* :: End simde/arm/neon/div.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/dot.h :: */ /* SPDX-License-Identifier: MIT * @@ -50298,26 +52240,27 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_DOT_H) #define SIMDE_ARM_NEON_DOT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/paddl.h :: */ /* SPDX-License-Identifier: MIT * @@ -50350,17 +52293,17 @@ #define SIMDE_ARM_NEON_PADDL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/padd.h :: */ /* SPDX-License-Identifier: MIT * @@ -50394,9 +52337,9 @@ #define SIMDE_ARM_NEON_PADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/uzp1.h :: */ /* SPDX-License-Identifier: MIT * @@ -50430,7 +52373,7 @@ #define SIMDE_ARM_NEON_UZP1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -51249,7 +53192,7 @@ #endif /* !defined(SIMDE_ARM_NEON_UZP1_H) */ /* :: End simde/arm/neon/uzp1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/uzp2.h :: */ /* SPDX-License-Identifier: MIT * @@ -51283,7 +53226,7 @@ #define SIMDE_ARM_NEON_UZP2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -52106,9 +54049,9 @@ #endif /* !defined(SIMDE_ARM_NEON_UZP2_H) */ /* :: End simde/arm/neon/uzp2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/get_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -52142,7 +54085,7 @@ #define SIMDE_ARM_NEON_GET_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -53212,9 +55155,9 @@ #endif /* !defined(SIMDE_ARM_NEON_PADD_H) */ /* :: End simde/arm/neon/padd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shl_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -53241,13 +55184,14 @@ * Copyright: * 2020 Evan Nemerson * 2020 Christopher Moore + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SHL_N_H) #define SIMDE_ARM_NEON_SHL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -53288,8 +55232,9 @@ simde_int8x8_private r_, a_ = simde_int8x8_to_private(a); - - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_i8m1 (a_.sv64, n, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values << HEDLEY_STATIC_CAST(int8_t, n); #else SIMDE_VECTORIZE @@ -53319,7 +55264,9 @@ r_, a_ = simde_int16x4_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_i16m1 (a_.sv64, n, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << HEDLEY_STATIC_CAST(int16_t, n); #else SIMDE_VECTORIZE @@ -53348,7 +55295,9 @@ r_, a_ = simde_int32x2_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_i32m1 (a_.sv64, n, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else SIMDE_VECTORIZE @@ -53377,7 +55326,9 @@ r_, a_ = simde_int64x1_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_i64m1 (a_.sv64, n, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else SIMDE_VECTORIZE @@ -53406,7 +55357,9 @@ r_, a_ = simde_uint8x8_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_u8m1 (a_.sv64, n, 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values << HEDLEY_STATIC_CAST(uint8_t, n); #else SIMDE_VECTORIZE @@ -53436,7 +55389,9 @@ r_, a_ = simde_uint16x4_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_u16m1 (a_.sv64, n, 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << HEDLEY_STATIC_CAST(uint16_t, n); #else SIMDE_VECTORIZE @@ -53465,7 +55420,9 @@ r_, a_ = simde_uint32x2_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_u32m1 (a_.sv64, n, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else SIMDE_VECTORIZE @@ -53494,7 +55451,9 @@ r_, a_ = simde_uint64x1_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsll_vx_u64m1 (a_.sv64, n, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else SIMDE_VECTORIZE @@ -53530,6 +55489,8 @@ r_.m128i = _mm_andnot_si128(_mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, (1 << n) - 1)), _mm_slli_epi64(a_.m128i, n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_i8m1 (a_.sv128, n, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << HEDLEY_STATIC_CAST(int8_t, n); #else @@ -53563,6 +55524,8 @@ r_.m128i = _mm_slli_epi16(a_.m128i, (n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_i16m1 (a_.sv128, n, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << HEDLEY_STATIC_CAST(int16_t, n); #else @@ -53596,6 +55559,8 @@ r_.m128i = _mm_slli_epi32(a_.m128i, (n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_i32m1 (a_.sv128, n, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else @@ -53629,6 +55594,8 @@ r_.m128i = _mm_slli_epi64(a_.m128i, (n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i64x2_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_i64m1 (a_.sv128, n, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else @@ -53665,6 +55632,8 @@ r_.m128i = _mm_andnot_si128(_mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, (1 << n) - 1)), _mm_slli_epi64(a_.m128i, (n))); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_u8m1 (a_.sv128, n, 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << HEDLEY_STATIC_CAST(uint8_t, n); #else @@ -53698,6 +55667,8 @@ r_.m128i = _mm_slli_epi16(a_.m128i, (n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i16x8_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_u16m1 (a_.sv128, n, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << HEDLEY_STATIC_CAST(uint16_t, n); #else @@ -53731,6 +55702,8 @@ r_.m128i = _mm_slli_epi32(a_.m128i, (n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i32x4_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_u32m1 (a_.sv128, n, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else @@ -53764,6 +55737,8 @@ r_.m128i = _mm_slli_epi64(a_.m128i, (n)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i64x2_shl(a_.v128, HEDLEY_STATIC_CAST(uint32_t, n)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsll_vx_u64m1 (a_.sv128, n, 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values << n; #else @@ -53791,9 +55766,9 @@ #endif /* !defined(SIMDE_ARM_NEON_SHL_N_H) */ /* :: End simde/arm/neon/shl_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -54103,9 +56078,9 @@ #endif /* SIMDE_ARM_NEON_PADDL_H */ /* :: End simde/arm/neon/paddl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mull.h :: */ /* SPDX-License-Identifier: MIT * @@ -54139,11 +56114,11 @@ #define SIMDE_ARM_NEON_MULL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -54421,16 +56396,32 @@ simde_int8x8_private a_ = simde_int8x8_to_private(a), b_ = simde_int8x8_to_private(b); - for (int i = 0 ; i < 2 ; i++) { - int32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx = j + (i << 2); - acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx]); - } - r_.values[i] = acc; - } - return simde_vadd_s32(r, simde_int32x2_from_private(r_)); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private r_tmp = simde_int32x2_to_private(r); + vint16m2_t vd_low = __riscv_vwmul_vv_i16m2 (a_.sv64, b_.sv64, 8); + vint16m2_t vd_high = __riscv_vslidedown_vx_i16m2(vd_low, 4, 8); + vint32m1_t vd = __riscv_vmv_v_x_i32m1(0, 4); + vint32m1_t vd_low_wide = __riscv_vwcvt_x_x_v_i32m1 (__riscv_vlmul_trunc_v_i16m2_i16mf2(vd_low), 4); + vint32m1_t rst0 = __riscv_vredsum_vs_i32m1_i32m1(vd_low_wide, vd, 4); + vint32m1_t vd_high_wide = __riscv_vwcvt_x_x_v_i32m1 (__riscv_vlmul_trunc_v_i16m2_i16mf2(vd_high), 4); + vint32m1_t rst1 = __riscv_vredsum_vs_i32m1_i32m1(vd_high_wide, vd, 4); + r_.sv64 = __riscv_vslideup_vx_i32m1( + __riscv_vadd_vx_i32m1(rst0, r_tmp.values[0], 2), + __riscv_vadd_vx_i32m1(rst1, r_tmp.values[1], 2), + 1, 2); + return simde_int32x2_from_private(r_); + #else + for (int i = 0 ; i < 2 ; i++) { + int32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx = j + (i << 2); + acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx]); + } + r_.values[i] = acc; + } + #endif + return simde_vadd_s32(r, simde_int32x2_from_private(r_)); #endif } #if defined(SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES) @@ -54451,15 +56442,31 @@ a_ = simde_uint8x8_to_private(a), b_ = simde_uint8x8_to_private(b); - for (int i = 0 ; i < 2 ; i++) { - uint32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx = j + (i << 2); - acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx]); - } - r_.values[i] = acc; - } + #if defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x2_private r_tmp = simde_uint32x2_to_private(r); + vuint16m2_t vd_low = __riscv_vwmulu_vv_u16m2 (a_.sv64, b_.sv64, 8); + vuint16m2_t vd_high = __riscv_vslidedown_vx_u16m2(vd_low, 4, 8); + vuint32m1_t vd = __riscv_vmv_v_x_u32m1(0, 4); + vuint32m1_t vd_low_wide = __riscv_vwcvtu_x_x_v_u32m1 (__riscv_vlmul_trunc_v_u16m2_u16mf2(vd_low), 4); + vuint32m1_t rst0 = __riscv_vredsum_vs_u32m1_u32m1(vd_low_wide, vd, 4); + vuint32m1_t vd_high_wide = __riscv_vwcvtu_x_x_v_u32m1 (__riscv_vlmul_trunc_v_u16m2_u16mf2(vd_high), 4); + vuint32m1_t rst1 = __riscv_vredsum_vs_u32m1_u32m1(vd_high_wide, vd, 4); + r_.sv64 = __riscv_vslideup_vx_u32m1( + __riscv_vadd_vx_u32m1(rst0, r_tmp.values[0], 2), + __riscv_vadd_vx_u32m1(rst1, r_tmp.values[1], 2), + 1, 2); + return simde_uint32x2_from_private(r_); + #else + for (int i = 0 ; i < 2 ; i++) { + uint32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx = j + (i << 2); + acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx]); + } + r_.values[i] = acc; + } + #endif return simde_vadd_u32(r, simde_uint32x2_from_private(r_)); #endif } @@ -54482,15 +56489,33 @@ simde_int8x16_private a_ = simde_int8x16_to_private(a), b_ = simde_int8x16_to_private(b); - for (int i = 0 ; i < 4 ; i++) { - int32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx = j + (i << 2); - acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx]); - } - r_.values[i] = acc; - } + #if defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_tmp = simde_int32x4_to_private(r); + vint16m2_t vd_low = __riscv_vwmul_vv_i16m2 (a_.sv128, b_.sv128, 16); + vint32m1_t vd = __riscv_vmv_v_x_i32m1(0, 4); + vint32m1_t rst0 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vlmul_trunc_v_i16m2_i16mf2( \ + vd_low), 4), vd, 4); + vint32m1_t rst1 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vlmul_trunc_v_i16m2_i16mf2( \ + __riscv_vslidedown_vx_i16m2(vd_low, 4, 4)), 4), vd, 4); + vint32m1_t rst2 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vlmul_trunc_v_i16m2_i16mf2( \ + __riscv_vslidedown_vx_i16m2(vd_low, 8, 4)), 4), vd, 4); + vint32m1_t rst3 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vlmul_trunc_v_i16m2_i16mf2( \ + __riscv_vslidedown_vx_i16m2(vd_low, 12, 4)), 4), vd, 4); + vint32m1_t r0 = __riscv_vslideup_vx_i32m1(__riscv_vadd_vx_i32m1(rst0, r_tmp.values[0], 2), __riscv_vadd_vx_i32m1(rst1, r_tmp.values[1], 2), 1, 2); + vint32m1_t r1 = __riscv_vslideup_vx_i32m1(r0, __riscv_vadd_vx_i32m1(rst2, r_tmp.values[2], 2), 2, 3); + r_.sv128 = __riscv_vslideup_vx_i32m1(r1, __riscv_vadd_vx_i32m1(rst3, r_tmp.values[3], 2), 3, 4); + return simde_int32x4_from_private(r_); + #else + for (int i = 0 ; i < 4 ; i++) { + int32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx = j + (i << 2); + acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx]); + } + r_.values[i] = acc; + } + #endif return simde_vaddq_s32(r, simde_int32x4_from_private(r_)); #endif } @@ -54513,15 +56538,33 @@ simde_uint8x16_private a_ = simde_uint8x16_to_private(a), b_ = simde_uint8x16_to_private(b); - for (int i = 0 ; i < 4 ; i++) { - uint32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx = j + (i << 2); - acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_tmp = simde_uint32x4_to_private(r); + vuint16m2_t vd_low = __riscv_vwmulu_vv_u16m2 (a_.sv128, b_.sv128, 16); + vuint32m1_t vd = __riscv_vmv_v_x_u32m1(0, 4); + vuint32m1_t rst0 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vlmul_trunc_v_u16m2_u16mf2( \ + vd_low), 4), vd, 4); + vuint32m1_t rst1 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vlmul_trunc_v_u16m2_u16mf2( \ + __riscv_vslidedown_vx_u16m2(vd_low, 4, 4)), 4), vd, 4); + vuint32m1_t rst2 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vlmul_trunc_v_u16m2_u16mf2( \ + __riscv_vslidedown_vx_u16m2(vd_low, 8, 4)), 4), vd, 4); + vuint32m1_t rst3 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vlmul_trunc_v_u16m2_u16mf2( \ + __riscv_vslidedown_vx_u16m2(vd_low, 12, 4)), 4), vd, 4); + vuint32m1_t r0 = __riscv_vslideup_vx_u32m1(__riscv_vadd_vx_u32m1(rst0, r_tmp.values[0], 2), __riscv_vadd_vx_u32m1(rst1, r_tmp.values[1], 2), 1, 2); + vuint32m1_t r1 = __riscv_vslideup_vx_u32m1(r0, __riscv_vadd_vx_u32m1(rst2, r_tmp.values[2], 2), 2, 3); + r_.sv128 = __riscv_vslideup_vx_u32m1(r1, __riscv_vadd_vx_u32m1(rst3, r_tmp.values[3], 2), 3, 4); + return simde_uint32x4_from_private(r_); + #else + for (int i = 0 ; i < 4 ; i++) { + uint32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx = j + (i << 2); + acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx]); + } + r_.values[i] = acc; } - r_.values[i] = acc; - } + #endif return simde_vaddq_u32(r, simde_uint32x4_from_private(r_)); #endif } @@ -54590,7 +56633,7 @@ #endif /* !defined(SIMDE_ARM_NEON_DOT_H) */ /* :: End simde/arm/neon/dot.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/dot_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -54617,24 +56660,25 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_DOT_LANE_H) #define SIMDE_ARM_NEON_DOT_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -54669,18 +56713,31 @@ simde_int8x8_private a_ = simde_int8x8_to_private(a), b_ = simde_int8x8_to_private(b); - - for (int i = 0 ; i < 2 ; i++) { - int32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private r_tmp = simde_int32x2_to_private(r); + vint8mf4_t vb_low = __riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(b_.sv64, lane*4, 4)); + vint16mf2_t vd_high = __riscv_vwmul_vv_i16mf2(__riscv_vlmul_trunc_v_i8m1_i8mf4 \ + (__riscv_vslidedown_vx_i8m1(a_.sv64, 4, 4)), vb_low, 4); + vint32m1_t vd = __riscv_vmv_v_x_i32m1(0, 4); + vint32m1_t rst0 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vwmul_vv_i16mf2( \ + __riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv64, 0, 4)), vb_low, 4), 4), vd, 4); + vint32m1_t rst1 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 (vd_high, 4), vd, 4); + r_.sv64 = __riscv_vslideup_vx_i32m1( + __riscv_vadd_vx_i32m1(rst0, r_tmp.values[0], 2), + __riscv_vadd_vx_i32m1(rst1, r_tmp.values[1], 2), + 1, 2); + #else + for (int i = 0 ; i < 2 ; i++) { + int32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_int32x2_from_private(r_); #endif @@ -54720,18 +56777,31 @@ simde_uint8x8_private a_ = simde_uint8x8_to_private(a), b_ = simde_uint8x8_to_private(b); - - for (int i = 0 ; i < 2 ; i++) { - uint32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x2_private r_tmp = simde_uint32x2_to_private(r); + vuint8mf4_t vb_low = __riscv_vlmul_trunc_v_u8m1_u8mf4 ( + __riscv_vslidedown_vx_u8m1(b_.sv64, lane*4, 4)); + vuint32m1_t vd = __riscv_vmv_v_x_u32m1(0, 4); + vuint32m1_t rst0 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv64, 0, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst1 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv64, 4, 4)), vb_low, 4), 4), vd, 4); + r_.sv64 = __riscv_vslideup_vx_u32m1( + __riscv_vadd_vx_u32m1(rst0, r_tmp.values[0], 2), + __riscv_vadd_vx_u32m1(rst1, r_tmp.values[1], 2), + 1, 2); + #else + for (int i = 0 ; i < 2 ; i++) { + uint32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_uint32x2_from_private(r_); #endif @@ -54769,18 +56839,31 @@ simde_int32x2_private r_ = simde_int32x2_to_private(r); simde_int8x8_private a_ = simde_int8x8_to_private(a); simde_int8x16_private b_ = simde_int8x16_to_private(b); - - for (int i = 0 ; i < 2 ; i++) { - int32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private r_tmp = simde_int32x2_to_private(r); + vint8mf4_t vb_low = __riscv_vlmul_trunc_v_i8m1_i8mf4( + __riscv_vslidedown_vx_i8m1(b_.sv128, lane*4, 4)); + vint32m1_t vd = __riscv_vmv_v_x_i32m1(0, 4); + vint32m1_t rst0 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 (__riscv_vwmul_vv_i16mf2 ( \ + __riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv64, 0, 4)), vb_low, 4), 4), vd, 4); + vint32m1_t rst1 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 (__riscv_vwmul_vv_i16mf2 ( \ + __riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv64, 4, 4)), vb_low, 4), 4), vd, 4); + r_.sv64 = __riscv_vslideup_vx_i32m1( + __riscv_vadd_vx_i32m1(rst0, r_tmp.values[0], 2), + __riscv_vadd_vx_i32m1(rst1, r_tmp.values[1], 2), + 1, 2); + #else + for (int i = 0 ; i < 2 ; i++) { + int32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_int32x2_from_private(r_); #endif @@ -54818,18 +56901,31 @@ simde_uint32x2_private r_ = simde_uint32x2_to_private(r); simde_uint8x8_private a_ = simde_uint8x8_to_private(a); simde_uint8x16_private b_ = simde_uint8x16_to_private(b); - - for (int i = 0 ; i < 2 ; i++) { - uint32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for (int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x2_private r_tmp = simde_uint32x2_to_private(r); + vuint8mf4_t vb_low = __riscv_vlmul_trunc_v_u8m1_u8mf4 ( + __riscv_vslidedown_vx_u8m1(b_.sv128, lane*4, 4)); + vuint32m1_t vd = __riscv_vmv_v_x_u32m1(0, 4); + vuint32m1_t rst0 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4 (__riscv_vslidedown_vx_u8m1(a_.sv64, 0, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst1 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4 (__riscv_vslidedown_vx_u8m1(a_.sv64, 4, 4)), vb_low, 4), 4), vd, 4); + r_.sv64 = __riscv_vslideup_vx_u32m1( + __riscv_vadd_vx_u32m1(rst0, r_tmp.values[0], 2), + __riscv_vadd_vx_u32m1(rst1, r_tmp.values[1], 2), + 1, 2); + #else + for (int i = 0 ; i < 2 ; i++) { + uint32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for (int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_uint32x2_from_private(r_); #endif return result; @@ -54880,18 +56976,34 @@ simde_uint8x16_private a_ = simde_uint8x16_to_private(a), b_ = simde_uint8x16_to_private(b); - - for(int i = 0 ; i < 4 ; i++) { - uint32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for(int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_tmp = simde_uint32x4_to_private(r); + vuint8mf4_t vb_low = __riscv_vlmul_trunc_v_u8m1_u8mf4( + __riscv_vslidedown_vx_u8m1(b_.sv128, lane*4, 4)); + vuint32m1_t vd = __riscv_vmv_v_x_u32m1(0, 4); + vuint32m1_t rst0 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 0, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst1 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 4, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst2 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 8, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst3 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 12, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t r0 = __riscv_vslideup_vx_u32m1(__riscv_vadd_vx_u32m1(rst0, r_tmp.values[0], 2), __riscv_vadd_vx_u32m1(rst1, r_tmp.values[1], 2), 1, 2); + vuint32m1_t r1 = __riscv_vslideup_vx_u32m1(r0, __riscv_vadd_vx_u32m1(rst2, r_tmp.values[2], 2), 2, 3); + r_.sv128 = __riscv_vslideup_vx_u32m1(r1, __riscv_vadd_vx_u32m1(rst3, r_tmp.values[3], 2), 3, 4); + #else + for(int i = 0 ; i < 4 ; i++) { + uint32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for(int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_uint32x4_from_private(r_); #endif return result; @@ -54942,18 +57054,38 @@ simde_int8x16_private a_ = simde_int8x16_to_private(a), b_ = simde_int8x16_to_private(b); - - for(int i = 0 ; i < 4 ; i++) { - int32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for(int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_tmp = simde_int32x4_to_private(r); + vint8mf4_t vb_low = __riscv_vlmul_trunc_v_i8m1_i8mf4( + __riscv_vslidedown_vx_i8m1(b_.sv128, lane*4, 4)); + vint32m1_t vd = __riscv_vmv_v_x_i32m1(0, 4); + vint32m1_t rst0 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 \ + (__riscv_vwmul_vv_i16mf2 (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 0, 4)), \ + vb_low, 4), 4), vd, 4); + vint32m1_t rst1 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 \ + (__riscv_vwmul_vv_i16mf2 (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 4, 4)), \ + vb_low, 4), 4), vd, 4); + vint32m1_t rst2 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 \ + (__riscv_vwmul_vv_i16mf2 (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 8, 4)), \ + vb_low, 4), 4), vd, 4); + vint32m1_t rst3 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1 \ + (__riscv_vwmul_vv_i16mf2 (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 12, 4)), \ + vb_low, 4), 4), vd, 4); + vint32m1_t r0 = __riscv_vslideup_vx_i32m1(__riscv_vadd_vx_i32m1(rst0, r_tmp.values[0], 2), __riscv_vadd_vx_i32m1(rst1, r_tmp.values[1], 2), 1, 2); + vint32m1_t r1 = __riscv_vslideup_vx_i32m1(r0, __riscv_vadd_vx_i32m1(rst2, r_tmp.values[2], 2), 2, 3); + r_.sv128 = __riscv_vslideup_vx_i32m1(r1, __riscv_vadd_vx_i32m1(rst3, r_tmp.values[3], 2), 3, 4); + #else + for(int i = 0 ; i < 4 ; i++) { + int32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for(int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_int32x4_from_private(r_); #endif return result; @@ -55003,18 +57135,33 @@ simde_uint32x4_private r_ = simde_uint32x4_to_private(r); simde_uint8x16_private a_ = simde_uint8x16_to_private(a); simde_uint8x8_private b_ = simde_uint8x8_to_private(b); - - for(int i = 0 ; i < 4 ; i++) { - uint32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for(int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_tmp = simde_uint32x4_to_private(r); + vuint8mf4_t vb_low = __riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(b_.sv64, lane*4, 4)); + vuint32m1_t vd = __riscv_vmv_v_x_u32m1(0, 4); + vuint32m1_t rst0 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 0, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst1 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 4, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst2 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 8, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t rst3 = __riscv_vredsum_vs_u32m1_u32m1(__riscv_vwcvtu_x_x_v_u32m1(__riscv_vwmulu_vv_u16mf2 \ + (__riscv_vlmul_trunc_v_u8m1_u8mf4(__riscv_vslidedown_vx_u8m1(a_.sv128, 12, 4)), vb_low, 4), 4), vd, 4); + vuint32m1_t r0 = __riscv_vslideup_vx_u32m1(__riscv_vadd_vx_u32m1(rst0, r_tmp.values[0], 2), __riscv_vadd_vx_u32m1(rst1, r_tmp.values[1], 2), 1, 2); + vuint32m1_t r1 = __riscv_vslideup_vx_u32m1(r0, __riscv_vadd_vx_u32m1(rst2, r_tmp.values[2], 2), 2, 3); + r_.sv128 = __riscv_vslideup_vx_u32m1(r1, __riscv_vadd_vx_u32m1(rst3, r_tmp.values[3], 2), 3, 4); + #else + for(int i = 0 ; i < 4 ; i++) { + uint32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for(int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(uint32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(uint32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_uint32x4_from_private(r_); #endif return result; @@ -55064,18 +57211,34 @@ simde_int32x4_private r_ = simde_int32x4_to_private(r); simde_int8x16_private a_ = simde_int8x16_to_private(a); simde_int8x8_private b_ = simde_int8x8_to_private(b); - - for(int i = 0 ; i < 4 ; i++) { - int32_t acc = 0; - SIMDE_VECTORIZE_REDUCTION(+:acc) - for(int j = 0 ; j < 4 ; j++) { - const int idx_b = j + (lane << 2); - const int idx_a = j + (i << 2); - acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + #if defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_tmp = simde_int32x4_to_private(r); + vint8mf4_t vb_low = __riscv_vlmul_trunc_v_i8m1_i8mf4( + __riscv_vslidedown_vx_i8m1(b_.sv64, lane*4, 4)); + vint32m1_t vd = __riscv_vmv_v_x_i32m1(0, 4); + vint32m1_t rst0 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vwmul_vv_i16mf2 \ + (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 0, 4)), vb_low, 4), 4), vd, 4); + vint32m1_t rst1 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vwmul_vv_i16mf2 \ + (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 4, 4)), vb_low, 4), 4), vd, 4); + vint32m1_t rst2 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vwmul_vv_i16mf2 \ + (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 8, 4)), vb_low, 4), 4), vd, 4); + vint32m1_t rst3 = __riscv_vredsum_vs_i32m1_i32m1(__riscv_vwcvt_x_x_v_i32m1(__riscv_vwmul_vv_i16mf2 \ + (__riscv_vlmul_trunc_v_i8m1_i8mf4(__riscv_vslidedown_vx_i8m1(a_.sv128, 12, 4)), vb_low, 4), 4), vd, 4); + vint32m1_t r0 = __riscv_vslideup_vx_i32m1(__riscv_vadd_vx_i32m1(rst0, r_tmp.values[0], 2), __riscv_vadd_vx_i32m1(rst1, r_tmp.values[1], 2), 1, 2); + vint32m1_t r1 = __riscv_vslideup_vx_i32m1(r0, __riscv_vadd_vx_i32m1(rst2, r_tmp.values[2], 2), 2, 3); + r_.sv128 = __riscv_vslideup_vx_i32m1(r1, __riscv_vadd_vx_i32m1(rst3, r_tmp.values[3], 2), 3, 4); + #else + for(int i = 0 ; i < 4 ; i++) { + int32_t acc = 0; + SIMDE_VECTORIZE_REDUCTION(+:acc) + for(int j = 0 ; j < 4 ; j++) { + const int idx_b = j + (lane << 2); + const int idx_a = j + (i << 2); + acc += HEDLEY_STATIC_CAST(int32_t, a_.values[idx_a]) * HEDLEY_STATIC_CAST(int32_t, b_.values[idx_b]); + } + r_.values[i] += acc; } - r_.values[i] += acc; - } - + #endif result = simde_int32x4_from_private(r_); #endif return result; @@ -55217,13 +57380,13 @@ #endif /* !defined(SIMDE_ARM_NEON_DOT_LANE_H) */ /* :: End simde/arm/neon/dot_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ext.h :: */ /* SPDX-License-Identifier: MIT * @@ -55251,12 +57414,13 @@ * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_EXT_H) #define SIMDE_ARM_NEON_EXT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -55275,11 +57439,16 @@ a_ = simde_float16x4_to_private(a), b_ = simde_float16x4_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + a_.sv64 = __riscv_vslidedown_vx_f16m1(a_.sv64, n, 4); + r_.sv64 = __riscv_vslideup_vx_f16m1(a_.sv64, b_.sv64, 4-n, 4); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; + } + #endif return simde_float16x4_from_private(r_); #endif } @@ -55301,11 +57470,16 @@ a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_f32m1(a_.sv64, n, 2); + r_.sv64 = __riscv_vslideup_vx_f32m1(a_.sv64, b_.sv64, 2-n, 2); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; + } + #endif return simde_float32x2_from_private(r_); #endif } @@ -55336,11 +57510,16 @@ a_ = simde_float64x1_to_private(a), b_ = simde_float64x1_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 0]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_f64m1(a_.sv64, n, 1); + r_.sv64 = __riscv_vslideup_vx_f64m1(a_.sv64, b_.sv64, 1-n, 1); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 0]; + } + #endif return simde_float64x1_from_private(r_); #endif } @@ -55372,11 +57551,16 @@ a_ = simde_int8x8_to_private(a), b_ = simde_int8x8_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_i8m1(a_.sv64, n, 8); + r_.sv64 = __riscv_vslideup_vx_i8m1(a_.sv64, b_.sv64, 8-n, 8); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; + } + #endif return simde_int8x8_from_private(r_); #endif } @@ -55411,11 +57595,16 @@ a_ = simde_int16x4_to_private(a), b_ = simde_int16x4_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_i16m1(a_.sv64, n, 4); + r_.sv64 = __riscv_vslideup_vx_i16m1(a_.sv64, b_.sv64, 4-n, 4); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; + } + #endif return simde_int16x4_from_private(r_); #endif } @@ -55448,11 +57637,16 @@ a_ = simde_int32x2_to_private(a), b_ = simde_int32x2_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_i32m1(a_.sv64, n, 2); + r_.sv64 = __riscv_vslideup_vx_i32m1(a_.sv64, b_.sv64, 2-n, 2); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; + } + #endif return simde_int32x2_from_private(r_); #endif } @@ -55483,11 +57677,16 @@ a_ = simde_int64x1_to_private(a), b_ = simde_int64x1_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 0]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_i64m1(a_.sv64, n, 1); + r_.sv64 = __riscv_vslideup_vx_i64m1(a_.sv64, b_.sv64, 1-n, 1); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 0]; + } + #endif return simde_int64x1_from_private(r_); #endif } @@ -55519,11 +57718,16 @@ a_ = simde_uint8x8_to_private(a), b_ = simde_uint8x8_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_u8m1(a_.sv64, n, 8); + r_.sv64 = __riscv_vslideup_vx_u8m1(a_.sv64, b_.sv64, 8-n, 8); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; + } + #endif return simde_uint8x8_from_private(r_); #endif } @@ -55558,11 +57762,16 @@ a_ = simde_uint16x4_to_private(a), b_ = simde_uint16x4_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_u16m1(a_.sv64, n, 4); + r_.sv64 = __riscv_vslideup_vx_u16m1(a_.sv64, b_.sv64, 4-n, 4); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; + } + #endif return simde_uint16x4_from_private(r_); #endif } @@ -55595,11 +57804,16 @@ a_ = simde_uint32x2_to_private(a), b_ = simde_uint32x2_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_u32m1(a_.sv64, n, 2); + r_.sv64 = __riscv_vslideup_vx_u32m1(a_.sv64, b_.sv64, 2-n, 2); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; + } + #endif return simde_uint32x2_from_private(r_); #endif } @@ -55630,11 +57844,16 @@ a_ = simde_uint64x1_to_private(a), b_ = simde_uint64x1_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 0]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv64 = __riscv_vslidedown_vx_u64m1(a_.sv64, n, 1); + r_.sv64 = __riscv_vslideup_vx_u64m1(a_.sv64, b_.sv64, 1-n, 1); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 0]; + } + #endif return simde_uint64x1_from_private(r_); #endif } @@ -55666,11 +57885,16 @@ a_ = simde_float16x8_to_private(a), b_ = simde_float16x8_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + a_.sv128 = __riscv_vslidedown_vx_f16m1(a_.sv128, n, 8); + r_.sv128 = __riscv_vslideup_vx_f16m1(a_.sv128, b_.sv128, 8-n, 8); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; + } + #endif return simde_float16x8_from_private(r_); #endif } @@ -55692,11 +57916,16 @@ a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_f32m1(a_.sv128, n, 4); + r_.sv128 = __riscv_vslideup_vx_f32m1(a_.sv128, b_.sv128, 4-n, 4); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; + } + #endif return simde_float32x4_from_private(r_); #endif } @@ -55737,11 +57966,16 @@ a_ = simde_float64x2_to_private(a), b_ = simde_float64x2_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_f64m1(a_.sv128, n, 2); + r_.sv128 = __riscv_vslideup_vx_f64m1(a_.sv128, b_.sv128, 2-n, 2); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; + } + #endif return simde_float64x2_from_private(r_); #endif } @@ -55780,11 +58014,16 @@ a_ = simde_int8x16_to_private(a), b_ = simde_int8x16_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 15]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_i8m1(a_.sv128, n, 16); + r_.sv128 = __riscv_vslideup_vx_i8m1(a_.sv128, b_.sv128, 16-n, 16); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 15]; + } + #endif return simde_int8x16_from_private(r_); #endif } @@ -55837,11 +58076,16 @@ a_ = simde_int16x8_to_private(a), b_ = simde_int16x8_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_i16m1(a_.sv128, n, 8); + r_.sv128 = __riscv_vslideup_vx_i16m1(a_.sv128, b_.sv128, 8-n, 8); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; + } + #endif return simde_int16x8_from_private(r_); #endif } @@ -55886,11 +58130,16 @@ a_ = simde_int32x4_to_private(a), b_ = simde_int32x4_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_i32m1(a_.sv128, n, 4); + r_.sv128 = __riscv_vslideup_vx_i32m1(a_.sv128, b_.sv128, 4-n, 4); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; + } + #endif return simde_int32x4_from_private(r_); #endif } @@ -55931,11 +58180,16 @@ a_ = simde_int64x2_to_private(a), b_ = simde_int64x2_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_i64m1(a_.sv128, n, 2); + r_.sv128 = __riscv_vslideup_vx_i64m1(a_.sv128, b_.sv128, 2-n, 2); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; + } + #endif return simde_int64x2_from_private(r_); #endif } @@ -55974,11 +58228,16 @@ a_ = simde_uint8x16_to_private(a), b_ = simde_uint8x16_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 15]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_u8m1(a_.sv128, n, 16); + r_.sv128 = __riscv_vslideup_vx_u8m1(a_.sv128, b_.sv128, 16-n, 16); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 15]; + } + #endif return simde_uint8x16_from_private(r_); #endif } @@ -56017,11 +58276,16 @@ a_ = simde_uint16x8_to_private(a), b_ = simde_uint16x8_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_u16m1(a_.sv128, n, 8); + r_.sv128 = __riscv_vslideup_vx_u16m1(a_.sv128, b_.sv128, 8-n, 8); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 7]; + } + #endif return simde_uint16x8_from_private(r_); #endif } @@ -56065,11 +58329,16 @@ a_ = simde_uint32x4_to_private(a), b_ = simde_uint32x4_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_u32m1(a_.sv128, n, 4); + r_.sv128 = __riscv_vslideup_vx_u32m1(a_.sv128, b_.sv128, 4-n, 4); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 3]; + } + #endif return simde_uint32x4_from_private(r_); #endif } @@ -56102,11 +58371,16 @@ a_ = simde_uint64x2_to_private(a), b_ = simde_uint64x2_to_private(b), r_ = a_; - const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - size_t src = i + n_; - r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; - } + #if defined(SIMDE_RISCV_V_NATIVE) + a_.sv128 = __riscv_vslidedown_vx_u64m1(a_.sv128, n, 2); + r_.sv128 = __riscv_vslideup_vx_u64m1(a_.sv128, b_.sv128, 2-n, 2); + #else + const size_t n_ = HEDLEY_STATIC_CAST(size_t, n); + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + size_t src = i + n_; + r_.values[i] = (src < (sizeof(r_.values) / sizeof(r_.values[0]))) ? a_.values[src] : b_.values[src & 1]; + } + #endif return simde_uint64x2_from_private(r_); #endif } @@ -56286,7 +58560,7 @@ #endif /* !defined(SIMDE_ARM_NEON_EXT_H) */ /* :: End simde/arm/neon/ext.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fma.h :: */ /* SPDX-License-Identifier: MIT * @@ -56313,15 +58587,16 @@ * Copyright: * 2021 Atharva Nimbalkar * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) +* 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_FMA_H) #define SIMDE_ARM_NEON_FMA_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -56346,6 +58621,15 @@ simde_vfma_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) return vfma_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private + r_, + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b), + c_ = simde_float32x2_to_private(c); + + r_.sv64 = __riscv_vfmacc_vv_f32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_float32x2_from_private(r_); #else return simde_vadd_f32(a, simde_vmul_f32(b, c)); #endif @@ -56360,6 +58644,15 @@ simde_vfma_f64(simde_float64x1_t a, simde_float64x1_t b, simde_float64x1_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) return vfma_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x1_private + r_, + a_ = simde_float64x1_to_private(a), + b_ = simde_float64x1_to_private(b), + c_ = simde_float64x1_to_private(c); + + r_.sv64 = __riscv_vfmacc_vv_f64m1(a_.sv64 , b_.sv64 , c_.sv64 , 1); + return simde_float64x1_from_private(r_); #else return simde_vadd_f64(a, simde_vmul_f64(b, c)); #endif @@ -56374,6 +58667,15 @@ simde_vfma_f16(simde_float16x4_t a, simde_float16x4_t b, simde_float16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && defined(SIMDE_ARM_NEON_FP16) return vfma_f16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + simde_float16x4_private + r_, + a_ = simde_float16x4_to_private(a), + b_ = simde_float16x4_to_private(b), + c_ = simde_float16x4_to_private(c); + + r_.sv64 = __riscv_vfmacc_vv_f16m1(a_.sv64 , b_.sv64 , c_.sv64 , 4); + return simde_float16x4_from_private(r_); #else return simde_vadd_f16(a, simde_vmul_f16(b, c)); #endif @@ -56388,6 +58690,15 @@ simde_vfmaq_f16(simde_float16x8_t a, simde_float16x8_t b, simde_float16x8_t c) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && defined(SIMDE_ARM_NEON_FP16) return vfmaq_f16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + simde_float16x8_private + r_, + a_ = simde_float16x8_to_private(a), + b_ = simde_float16x8_to_private(b), + c_ = simde_float16x8_to_private(c); + + r_.sv128 = __riscv_vfmacc_vv_f16m1(a_.sv128 , b_.sv128 , c_.sv128 , 8); + return simde_float16x8_from_private(r_); #else return simde_vaddq_f16(a, simde_vmulq_f16(b, c)); #endif @@ -56405,7 +58716,7 @@ #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) return vec_madd(b, c, a); #elif \ - defined(SIMDE_X86_FMA_NATIVE) + defined(SIMDE_X86_FMA_NATIVE) || defined(SIMDE_RISCV_V_NATIVE) simde_float32x4_private r_, a_ = simde_float32x4_to_private(a), @@ -56414,6 +58725,8 @@ #if defined(SIMDE_X86_FMA_NATIVE) r_.m128 = _mm_fmadd_ps(b_.m128, c_.m128, a_.m128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmacc_vv_f32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); #endif return simde_float32x4_from_private(r_); @@ -56434,7 +58747,7 @@ #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) return vec_madd(b, c, a); #elif \ - defined(SIMDE_X86_FMA_NATIVE) + defined(SIMDE_X86_FMA_NATIVE) || defined(SIMDE_RISCV_V_NATIVE) simde_float64x2_private r_, a_ = simde_float64x2_to_private(a), @@ -56443,6 +58756,8 @@ #if defined(SIMDE_X86_FMA_NATIVE) r_.m128d = _mm_fmadd_pd(b_.m128d, c_.m128d, a_.m128d); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmacc_vv_f64m1(a_.sv128 , b_.sv128 , c_.sv128 , 2); #endif return simde_float64x2_from_private(r_); @@ -56461,7 +58776,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_H) */ /* :: End simde/arm/neon/fma.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fma_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -56494,15 +58809,15 @@ #define SIMDE_ARM_NEON_FMA_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mul_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -56536,9 +58851,9 @@ #define SIMDE_ARM_NEON_MUL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -57719,7 +60034,7 @@ #endif /* !defined(SIMDE_ARM_NEON_FMA_LANE_H) */ /* :: End simde/arm/neon/fma_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fma_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -57752,11 +60067,11 @@ #define SIMDE_ARM_NEON_FMA_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -57852,7 +60167,7 @@ #endif /* !defined(SIMDE_ARM_NEON_CMLA_H) */ /* :: End simde/arm/neon/fma_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fmlal.h :: */ /* SPDX-License-Identifier: MIT * @@ -57884,7 +60199,7 @@ #define SIMDE_ARM_NEON_FMLAL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -58384,7 +60699,7 @@ #endif /* !defined(SIMDE_ARM_NEON_FMLAL_H) */ /* :: End simde/arm/neon/fmlal.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fmlsl.h :: */ /* SPDX-License-Identifier: MIT * @@ -58416,7 +60731,7 @@ #define SIMDE_ARM_NEON_FMLSL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -58762,7 +61077,7 @@ #endif /* !defined(SIMDE_ARM_NEON_FMLSL_H) */ /* :: End simde/arm/neon/fmlsl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fms.h :: */ /* SPDX-License-Identifier: MIT * @@ -58788,17 +61103,18 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) +* 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_FMS_H) #define SIMDE_ARM_NEON_FMS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/neg.h :: */ /* SPDX-License-Identifier: MIT * @@ -58831,7 +61147,7 @@ #define SIMDE_ARM_NEON_NEG_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -59300,6 +61616,14 @@ simde_vfms_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) return vfms_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private + r_, + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b), + c_ = simde_float32x2_to_private(c); + r_.sv64 = __riscv_vfnmsac_vv_f32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_float32x2_from_private(r_); #else return simde_vadd_f32(a, simde_vneg_f32(simde_vmul_f32(b, c))); #endif @@ -59314,6 +61638,14 @@ simde_vfms_f64(simde_float64x1_t a, simde_float64x1_t b, simde_float64x1_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) return vfms_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x1_private + r_, + a_ = simde_float64x1_to_private(a), + b_ = simde_float64x1_to_private(b), + c_ = simde_float64x1_to_private(c); + r_.sv64 = __riscv_vfnmsac_vv_f64m1(a_.sv64 , b_.sv64 , c_.sv64 , 1); + return simde_float64x1_from_private(r_); #else return simde_vadd_f64(a, simde_vneg_f64(simde_vmul_f64(b, c))); #endif @@ -59328,6 +61660,14 @@ simde_vfms_f16(simde_float16x4_t a, simde_float16x4_t b, simde_float16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && defined(SIMDE_ARM_NEON_FP16) return vfms_f16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + simde_float16x4_private + r_, + a_ = simde_float16x4_to_private(a), + b_ = simde_float16x4_to_private(b), + c_ = simde_float16x4_to_private(c); + r_.sv64 = __riscv_vfnmsac_vv_f16m1(a_.sv64 , b_.sv64 , c_.sv64 , 4); + return simde_float16x4_from_private(r_); #else return simde_vadd_f16(a, simde_vneg_f16(simde_vmul_f16(b, c))); #endif @@ -59342,6 +61682,14 @@ simde_vfmsq_f16(simde_float16x8_t a, simde_float16x8_t b, simde_float16x8_t c) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && defined(SIMDE_ARM_NEON_FP16) return vfmsq_f16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + simde_float16x8_private + r_, + a_ = simde_float16x8_to_private(a), + b_ = simde_float16x8_to_private(b), + c_ = simde_float16x8_to_private(c); + r_.sv128 = __riscv_vfnmsac_vv_f16m1(a_.sv128 , b_.sv128 , c_.sv128 , 8); + return simde_float16x8_from_private(r_); #else return simde_vaddq_f16(a, simde_vnegq_f16(simde_vmulq_f16(b, c))); #endif @@ -59356,6 +61704,14 @@ simde_vfmsq_f32(simde_float32x4_t a, simde_float32x4_t b, simde_float32x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) return vfmsq_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x4_private + r_, + a_ = simde_float32x4_to_private(a), + b_ = simde_float32x4_to_private(b), + c_ = simde_float32x4_to_private(c); + r_.sv128 = __riscv_vfnmsac_vv_f32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); + return simde_float32x4_from_private(r_); #else return simde_vaddq_f32(a, simde_vnegq_f32(simde_vmulq_f32(b, c))); #endif @@ -59370,6 +61726,14 @@ simde_vfmsq_f64(simde_float64x2_t a, simde_float64x2_t b, simde_float64x2_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) return vfmsq_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x2_private + r_, + a_ = simde_float64x2_to_private(a), + b_ = simde_float64x2_to_private(b), + c_ = simde_float64x2_to_private(c); + r_.sv128 = __riscv_vfnmsac_vv_f64m1(a_.sv128 , b_.sv128 , c_.sv128 , 2); + return simde_float64x2_from_private(r_); #else return simde_vaddq_f64(a, simde_vnegq_f64(simde_vmulq_f64(b, c))); #endif @@ -59385,7 +61749,7 @@ #endif /* !defined(SIMDE_ARM_NEON_FMS_H) */ /* :: End simde/arm/neon/fms.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fms_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -59417,15 +61781,15 @@ #define SIMDE_ARM_NEON_FMS_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -59710,7 +62074,7 @@ #endif /* !defined(SIMDE_ARM_NEON_FMS_LANE_H) */ /* :: End simde/arm/neon/fms_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/fms_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -59736,17 +62100,18 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) +* 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_FMS_N_H) #define SIMDE_ARM_NEON_FMS_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -59757,6 +62122,13 @@ simde_vfms_n_f16(simde_float16x4_t a, simde_float16x4_t b, simde_float16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) && defined(SIMDE_ARM_NEON_FP16) return vfms_n_f16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + simde_float16x4_private + r_, + a_ = simde_float16x4_to_private(a), + b_ = simde_float16x4_to_private(b); + r_.sv64 = __riscv_vfnmsac_vf_f16m1(a_.sv64 , c , b_.sv64 , 4); + return simde_float16x4_from_private(r_); #else return simde_vfms_f16(a, b, simde_vdup_n_f16(c)); #endif @@ -59771,6 +62143,13 @@ simde_vfmsq_n_f16(simde_float16x8_t a, simde_float16x8_t b, simde_float16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) && defined(SIMDE_ARM_NEON_FP16) return vfmsq_n_f16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + simde_float16x8_private + r_, + a_ = simde_float16x8_to_private(a), + b_ = simde_float16x8_to_private(b); + r_.sv128 = __riscv_vfnmsac_vf_f16m1(a_.sv128 , c , b_.sv128 , 8); + return simde_float16x8_from_private(r_); #else return simde_vfmsq_f16(a, b, simde_vdupq_n_f16(c)); #endif @@ -59785,6 +62164,13 @@ simde_vfms_n_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) return vfms_n_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private + r_, + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b); + r_.sv64 = __riscv_vfnmsac_vf_f32m1(a_.sv64 , c , b_.sv64 , 2); + return simde_float32x2_from_private(r_); #else return simde_vfms_f32(a, b, simde_vdup_n_f32(c)); #endif @@ -59799,6 +62185,13 @@ simde_vfms_n_f64(simde_float64x1_t a, simde_float64x1_t b, simde_float64_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) return vfms_n_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x1_private + r_, + a_ = simde_float64x1_to_private(a), + b_ = simde_float64x1_to_private(b); + r_.sv64 = __riscv_vfnmsac_vf_f64m1(a_.sv64 , c , b_.sv64 , 1); + return simde_float64x1_from_private(r_); #else return simde_vfms_f64(a, b, simde_vdup_n_f64(c)); #endif @@ -59813,6 +62206,13 @@ simde_vfmsq_n_f32(simde_float32x4_t a, simde_float32x4_t b, simde_float32_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) && !defined(SIMDE_BUG_GCC_95399) return vfmsq_n_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x4_private + r_, + a_ = simde_float32x4_to_private(a), + b_ = simde_float32x4_to_private(b); + r_.sv128 = __riscv_vfnmsac_vf_f32m1(a_.sv128 , c , b_.sv128 , 4); + return simde_float32x4_from_private(r_); #else return simde_vfmsq_f32(a, b, simde_vdupq_n_f32(c)); #endif @@ -59827,6 +62227,13 @@ simde_vfmsq_n_f64(simde_float64x2_t a, simde_float64x2_t b, simde_float64_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_FMA) && (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) return vfmsq_n_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x2_private + r_, + a_ = simde_float64x2_to_private(a), + b_ = simde_float64x2_to_private(b); + r_.sv128 = __riscv_vfnmsac_vf_f64m1(a_.sv128 , c , b_.sv128 , 2); + return simde_float64x2_from_private(r_); #else return simde_vfmsq_f64(a, b, simde_vdupq_n_f64(c)); #endif @@ -59842,13 +62249,13 @@ #endif /* !defined(SIMDE_ARM_NEON_FMS_N_H) */ /* :: End simde/arm/neon/fms_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/hadd.h :: */ /* SPDX-License-Identifier: MIT * @@ -59886,11 +62293,11 @@ #define SIMDE_ARM_NEON_HADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -60225,7 +62632,7 @@ #endif /* !defined(SIMDE_ARM_NEON_HADD_H) */ /* :: End simde/arm/neon/hadd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/hsub.h :: */ /* SPDX-License-Identifier: MIT * @@ -60251,6 +62658,7 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ /* TODO: the 128-bit versions only require AVX-512 because of the final @@ -60263,11 +62671,11 @@ #define SIMDE_ARM_NEON_HSUB_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -60278,6 +62686,14 @@ simde_vhsub_s8(simde_int8x8_t a, simde_int8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vhsub_s8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int8x8_private + r_, + a_ = simde_int8x8_to_private(a), + b_ = simde_int8x8_to_private(b); + + r_.sv64 = __riscv_vasub_vv_i8m1(a_.sv64, b_.sv64, 2, 8); + return simde_int8x8_from_private(r_); #else return simde_vmovn_s16(simde_vshrq_n_s16(simde_vsubl_s8(a, b), 1)); #endif @@ -60292,6 +62708,14 @@ simde_vhsub_s16(simde_int16x4_t a, simde_int16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vhsub_s16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x4_private + r_, + a_ = simde_int16x4_to_private(a), + b_ = simde_int16x4_to_private(b); + + r_.sv64 = __riscv_vasub_vv_i16m1(a_.sv64, b_.sv64, 2, 4); + return simde_int16x4_from_private(r_); #else return simde_vmovn_s32(simde_vshrq_n_s32(simde_vsubl_s16(a, b), 1)); #endif @@ -60306,6 +62730,14 @@ simde_vhsub_s32(simde_int32x2_t a, simde_int32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vhsub_s32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private + r_, + a_ = simde_int32x2_to_private(a), + b_ = simde_int32x2_to_private(b); + + r_.sv64 = __riscv_vasub_vv_i32m1(a_.sv64, b_.sv64, 2, 2); + return simde_int32x2_from_private(r_); #else return simde_vmovn_s64(simde_vshrq_n_s64(simde_vsubl_s32(a, b), 1)); #endif @@ -60320,6 +62752,14 @@ simde_vhsub_u8(simde_uint8x8_t a, simde_uint8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vhsub_u8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint8x8_private + r_, + a_ = simde_uint8x8_to_private(a), + b_ = simde_uint8x8_to_private(b); + + r_.sv64 = __riscv_vasubu_vv_u8m1(a_.sv64, b_.sv64, 2, 8); + return simde_uint8x8_from_private(r_); #else return simde_vmovn_u16(simde_vshrq_n_u16(simde_vsubl_u8(a, b), 1)); #endif @@ -60334,6 +62774,14 @@ simde_vhsub_u16(simde_uint16x4_t a, simde_uint16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vhsub_u16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x4_private + r_, + a_ = simde_uint16x4_to_private(a), + b_ = simde_uint16x4_to_private(b); + + r_.sv64 = __riscv_vasubu_vv_u16m1(a_.sv64, b_.sv64, 2, 4); + return simde_uint16x4_from_private(r_); #else return simde_vmovn_u32(simde_vshrq_n_u32(simde_vsubl_u16(a, b), 1)); #endif @@ -60348,6 +62796,14 @@ simde_vhsub_u32(simde_uint32x2_t a, simde_uint32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vhsub_u32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x2_private + r_, + a_ = simde_uint32x2_to_private(a), + b_ = simde_uint32x2_to_private(b); + + r_.sv64 = __riscv_vasubu_vv_u32m1(a_.sv64, b_.sv64, 2, 2); + return simde_uint32x2_from_private(r_); #else return simde_vmovn_u64(simde_vshrq_n_u64(simde_vsubl_u32(a, b), 1)); #endif @@ -60370,6 +62826,8 @@ #if defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512BW_NATIVE) r_.m128i = _mm256_cvtepi16_epi8(_mm256_srai_epi16(_mm256_sub_epi16(_mm256_cvtepi8_epi16(a_.m128i), _mm256_cvtepi8_epi16(b_.m128i)), 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vasub_vv_i8m1(a_.sv128, b_.sv128, 2, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -60398,6 +62856,8 @@ #if defined(SIMDE_X86_AVX512VL_NATIVE) r_.m128i = _mm256_cvtepi32_epi16(_mm256_srai_epi32(_mm256_sub_epi32(_mm256_cvtepi16_epi32(a_.m128i), _mm256_cvtepi16_epi32(b_.m128i)), 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vasub_vv_i16m1(a_.sv128, b_.sv128, 2, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -60426,6 +62886,8 @@ #if defined(SIMDE_X86_AVX512VL_NATIVE) r_.m128i = _mm256_cvtepi64_epi32(_mm256_srai_epi64(_mm256_sub_epi64(_mm256_cvtepi32_epi64(a_.m128i), _mm256_cvtepi32_epi64(b_.m128i)), 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vasub_vv_i32m1(a_.sv128, b_.sv128, 2, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -60454,6 +62916,8 @@ #if defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512BW_NATIVE) r_.m128i = _mm256_cvtepi16_epi8(_mm256_srli_epi16(_mm256_sub_epi16(_mm256_cvtepu8_epi16(a_.m128i), _mm256_cvtepu8_epi16(b_.m128i)), 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vasubu_vv_u8m1(a_.sv128, b_.sv128, 2, 16); #elif defined(SIMDE_WASM_SIMD128_NATIVE) v128_t lo = wasm_u16x8_shr(wasm_i16x8_sub(wasm_u16x8_extend_low_u8x16(a_.v128), @@ -60493,6 +62957,8 @@ #if defined(SIMDE_X86_AVX512VL_NATIVE) r_.m128i = _mm256_cvtepi32_epi16(_mm256_srli_epi32(_mm256_sub_epi32(_mm256_cvtepu16_epi32(a_.m128i), _mm256_cvtepu16_epi32(b_.m128i)), 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vasubu_vv_u16m1(a_.sv128, b_.sv128, 2, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -60521,6 +62987,8 @@ #if defined(SIMDE_X86_AVX512VL_NATIVE) r_.m128i = _mm256_cvtepi64_epi32(_mm256_srli_epi64(_mm256_sub_epi64(_mm256_cvtepu32_epi64(a_.m128i), _mm256_cvtepu32_epi64(b_.m128i)), 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vasubu_vv_u32m1(a_.sv128, b_.sv128, 2, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -60542,7 +63010,7 @@ #endif /* !defined(SIMDE_ARM_NEON_HSUB_H) */ /* :: End simde/arm/neon/hsub.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1.h :: */ /* SPDX-License-Identifier: MIT * @@ -60577,7 +63045,7 @@ #define SIMDE_ARM_NEON_LD1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -61222,7 +63690,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1_H) */ /* :: End simde/arm/neon/ld1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1_dup.h :: */ /* SPDX-License-Identifier: MIT * @@ -61256,9 +63724,9 @@ #define SIMDE_ARM_NEON_LD1_DUP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -61776,7 +64244,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1_DUP_H) */ /* :: End simde/arm/neon/ld1_dup.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -61809,7 +64277,7 @@ #define SIMDE_ARM_NEON_LD1_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -62306,7 +64774,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1_LANE_H) */ /* :: End simde/arm/neon/ld1_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1_x2.h :: */ /* SPDX-License-Identifier: MIT * @@ -62342,7 +64810,7 @@ #define SIMDE_ARM_NEON_LD1_X2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -62767,7 +65235,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1_X2_H) */ /* :: End simde/arm/neon/ld1_x2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1_x3.h :: */ /* SPDX-License-Identifier: MIT * @@ -62802,7 +65270,7 @@ #define SIMDE_ARM_NEON_LD1_X3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -63258,7 +65726,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1_X3_H) */ /* :: End simde/arm/neon/ld1_x3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1_x4.h :: */ /* SPDX-License-Identifier: MIT * @@ -63294,7 +65762,7 @@ #define SIMDE_ARM_NEON_LD1_X4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -63779,7 +66247,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1_X4_H) */ /* :: End simde/arm/neon/ld1_x4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1q_x2.h :: */ /* SPDX-License-Identifier: MIT * @@ -63815,7 +66283,7 @@ #define SIMDE_ARM_NEON_LD1Q_X2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -64245,7 +66713,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1Q_X2_H) */ /* :: End simde/arm/neon/ld1q_x2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1q_x3.h :: */ /* SPDX-License-Identifier: MIT * @@ -64280,7 +66748,7 @@ #define SIMDE_ARM_NEON_LD1Q_X3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -64737,7 +67205,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1Q_X3_H) */ /* :: End simde/arm/neon/ld1q_x3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld1q_x4.h :: */ /* SPDX-License-Identifier: MIT * @@ -64773,7 +67241,7 @@ #define SIMDE_ARM_NEON_LD1Q_X4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -65259,7 +67727,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD1Q_X4_H) */ /* :: End simde/arm/neon/ld1q_x4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld2.h :: */ /* SPDX-License-Identifier: MIT * @@ -65293,13 +67761,13 @@ #define SIMDE_ARM_NEON_LD2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/uzp.h :: */ /* SPDX-License-Identifier: MIT * @@ -65333,11 +67801,11 @@ #define SIMDE_ARM_NEON_UZP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -66944,7 +69412,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD2_H) */ /* :: End simde/arm/neon/ld2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld2_dup.h :: */ /* SPDX-License-Identifier: MIT * @@ -66976,9 +69444,9 @@ #define SIMDE_ARM_NEON_LD2_DUP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -67562,7 +70030,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD2_DUP_H) */ /* :: End simde/arm/neon/ld2_dup.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld2_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -67594,7 +70062,7 @@ #define SIMDE_ARM_NEON_LD2_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -68205,7 +70673,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD2_LANE_H) */ /* :: End simde/arm/neon/ld2_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld3.h :: */ /* SPDX-License-Identifier: MIT * @@ -68240,9 +70708,9 @@ #define SIMDE_ARM_NEON_LD3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -69324,7 +71792,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD3_H) */ /* :: End simde/arm/neon/ld3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld3_dup.h :: */ /* SPDX-License-Identifier: MIT * @@ -69356,9 +71824,9 @@ #define SIMDE_ARM_NEON_LD3_DUP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -69940,7 +72408,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD3_DUP_H) */ /* :: End simde/arm/neon/ld3_dup.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld3_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -69972,7 +72440,7 @@ #define SIMDE_ARM_NEON_LD3_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -70583,7 +73051,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD3_LANE_H) */ /* :: End simde/arm/neon/ld3_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld4.h :: */ /* SPDX-License-Identifier: MIT * @@ -70618,7 +73086,7 @@ #define SIMDE_ARM_NEON_LD4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -71505,7 +73973,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD4_H) */ /* :: End simde/arm/neon/ld4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld4_dup.h :: */ /* SPDX-License-Identifier: MIT * @@ -71537,9 +74005,9 @@ #define SIMDE_ARM_NEON_LD4_DUP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -72121,7 +74589,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD3_DUP_H) */ /* :: End simde/arm/neon/ld4_dup.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/ld4_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -72164,7 +74632,7 @@ #define SIMDE_ARM_NEON_LD4_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -72951,7 +75419,7 @@ #endif /* !defined(SIMDE_ARM_NEON_LD4_LANE_H) */ /* :: End simde/arm/neon/ld4_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/max.h :: */ /* SPDX-License-Identifier: MIT * @@ -72985,11 +75453,11 @@ #define SIMDE_ARM_NEON_MAX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -73653,7 +76121,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MAX_H) */ /* :: End simde/arm/neon/max.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/maxnm.h :: */ /* SPDX-License-Identifier: MIT * @@ -73686,11 +76154,11 @@ #define SIMDE_ARM_NEON_MAXNM_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -73956,7 +76424,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MAXNM_H) */ /* :: End simde/arm/neon/maxnm.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/maxnmv.h :: */ /* SPDX-License-Identifier: MIT * @@ -73982,13 +76450,14 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MAXNMV_H) #define SIMDE_ARM_NEON_MAXNMV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include HEDLEY_DIAGNOSTIC_PUSH @@ -74006,10 +76475,15 @@ simde_float32x2_private a_ = simde_float32x2_to_private(a); r = -SIMDE_MATH_INFINITYF; - SIMDE_VECTORIZE_REDUCTION(max:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r = a_.values[i] > r ? a_.values[i] : r; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r = __riscv_vfmv_f_s_f32m1_f32(__riscv_vfredmax_vs_f32m1_f32m1(a_.sv64, \ + __riscv_vfmv_v_f_f32m1(r, 2), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(max:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r = a_.values[i] > r ? a_.values[i] : r; + } + #endif #endif return r; @@ -74030,10 +76504,18 @@ simde_float32x4_private a_ = simde_float32x4_to_private(a); r = -SIMDE_MATH_INFINITYF; - SIMDE_VECTORIZE_REDUCTION(max:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r = a_.values[i] > r ? a_.values[i] : r; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r = __riscv_vfmv_f_s_f32m1_f32(__riscv_vfredmax_vs_f32m1_f32m1(a_.sv128, \ + __riscv_vfmv_v_f_f32m1(r, 4), 4)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_reduce_max) + simde_float32_t rst = __builtin_reduce_max(a_.values); + r = (rst > r) ? rst : r; + #else + SIMDE_VECTORIZE_REDUCTION(max:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r = a_.values[i] > r ? a_.values[i] : r; + } + #endif #endif return r; @@ -74054,10 +76536,15 @@ simde_float64x2_private a_ = simde_float64x2_to_private(a); r = -SIMDE_MATH_INFINITY; - SIMDE_VECTORIZE_REDUCTION(max:r) - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - r = a_.values[i] > r ? a_.values[i] : r; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r = __riscv_vfmv_f_s_f64m1_f64(__riscv_vfredmax_vs_f64m1_f64m1(a_.sv128, \ + __riscv_vfmv_v_f_f64m1(r, 2), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(max:r) + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + r = a_.values[i] > r ? a_.values[i] : r; + } + #endif #endif return r; @@ -74073,23 +76560,28 @@ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vmaxnmv_f16(a); #else - simde_float32_t r_ = simde_float16_to_float32(SIMDE_NINFINITYHF); simde_float16x4_private a_ = simde_float16x4_to_private(a); - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(max:r_) + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + return __riscv_vfmv_f_s_f16m1_f16(__riscv_vfredmax_vs_f16m1_f16m1(a_.sv64, \ + __riscv_vfmv_v_f_f16m1(SIMDE_NINFINITYHF, 4), 4)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + simde_float32_t r_ = simde_float16_to_float32(SIMDE_NINFINITYHF); #if defined(SIMDE_FAST_NANS) - r_ = tmp_a > r_ ? tmp_a : r_; + SIMDE_VECTORIZE_REDUCTION(max:r_) #else - r_ = (tmp_a > r_) ? tmp_a : ((tmp_a <= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + SIMDE_VECTORIZE #endif - } - return simde_float16_from_float32(r_); + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + #if defined(SIMDE_FAST_NANS) + r_ = tmp_a > r_ ? tmp_a : r_; + #else + r_ = (tmp_a > r_) ? tmp_a : ((tmp_a <= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + #endif + } + return simde_float16_from_float32(r_); + #endif #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -74103,23 +76595,28 @@ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vmaxnmvq_f16(a); #else - simde_float32_t r_ = simde_float16_to_float32(SIMDE_NINFINITYHF); simde_float16x8_private a_ = simde_float16x8_to_private(a); - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(max:r_) + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + return __riscv_vfmv_f_s_f16m1_f16(__riscv_vfredmax_vs_f16m1_f16m1(a_.sv128, \ + __riscv_vfmv_v_f_f16m1(SIMDE_NINFINITYHF, 8), 8)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + simde_float32_t r_ = simde_float16_to_float32(SIMDE_NINFINITYHF); #if defined(SIMDE_FAST_NANS) - r_ = tmp_a > r_ ? tmp_a : r_; + SIMDE_VECTORIZE_REDUCTION(max:r_) #else - r_ = (tmp_a > r_) ? tmp_a : ((tmp_a <= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + SIMDE_VECTORIZE #endif - } - return simde_float16_from_float32(r_); + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + #if defined(SIMDE_FAST_NANS) + r_ = tmp_a > r_ ? tmp_a : r_; + #else + r_ = (tmp_a > r_) ? tmp_a : ((tmp_a <= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + #endif + } + return simde_float16_from_float32(r_); + #endif #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -74133,7 +76630,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MAXNMV_H) */ /* :: End simde/arm/neon/maxnmv.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/maxv.h :: */ /* SPDX-License-Identifier: MIT * @@ -74166,7 +76663,7 @@ #define SIMDE_ARM_NEON_MAXV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include HEDLEY_DIAGNOSTIC_PUSH @@ -74603,7 +77100,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MAXV_H) */ /* :: End simde/arm/neon/maxv.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/min.h :: */ /* SPDX-License-Identifier: MIT * @@ -74636,13 +77133,13 @@ #define SIMDE_ARM_NEON_MIN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -75359,7 +77856,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MIN_H) */ /* :: End simde/arm/neon/min.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/minnm.h :: */ /* SPDX-License-Identifier: MIT * @@ -75392,11 +77889,11 @@ #define SIMDE_ARM_NEON_MINNM_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -75664,7 +78161,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MINNM_H) */ /* :: End simde/arm/neon/minnm.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/minnmv.h :: */ /* SPDX-License-Identifier: MIT * @@ -75690,13 +78187,14 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MINNMV_H) #define SIMDE_ARM_NEON_MINNMV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include HEDLEY_DIAGNOSTIC_PUSH @@ -75709,23 +78207,28 @@ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vminnmv_f16(a); #else - simde_float32_t r_ = simde_float16_to_float32(SIMDE_INFINITYHF); simde_float16x4_private a_ = simde_float16x4_to_private(a); - - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(min:r_) + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + return __riscv_vfmv_f_s_f16m1_f16(__riscv_vfredmin_vs_f16m1_f16m1(a_.sv64, \ + __riscv_vfmv_v_f_f16m1(SIMDE_INFINITYHF, 4), 4)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + simde_float32_t r_ = simde_float16_to_float32(SIMDE_INFINITYHF); + #if defined(SIMDE_FAST_NANS) - r_ = tmp_a < r_ ? tmp_a : r_; + SIMDE_VECTORIZE_REDUCTION(min:r_) #else - r_ = (tmp_a < r_) ? tmp_a : ((tmp_a >= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + SIMDE_VECTORIZE #endif - } - return simde_float16_from_float32(r_); + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + #if defined(SIMDE_FAST_NANS) + r_ = tmp_a < r_ ? tmp_a : r_; + #else + r_ = (tmp_a < r_) ? tmp_a : ((tmp_a >= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + #endif + } + return simde_float16_from_float32(r_); + #endif #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -75744,18 +78247,23 @@ simde_float32x2_private a_ = simde_float32x2_to_private(a); r = SIMDE_MATH_INFINITYF; - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(min:r) + #if defined(SIMDE_RISCV_V_NATIVE) + r = __riscv_vfmv_f_s_f32m1_f32(__riscv_vfredmin_vs_f32m1_f32m1(a_.sv64, \ + __riscv_vfmv_v_f_f32m1(r, 2), 2)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { #if defined(SIMDE_FAST_NANS) - r = a_.values[i] < r ? a_.values[i] : r; + SIMDE_VECTORIZE_REDUCTION(min:r) #else - r = (a_.values[i] < r) ? a_.values[i] : ((a_.values[i] >= r) ? r : ((a_.values[i] == a_.values[i]) ? r : a_.values[i])); + SIMDE_VECTORIZE #endif - } + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + #if defined(SIMDE_FAST_NANS) + r = a_.values[i] < r ? a_.values[i] : r; + #else + r = (a_.values[i] < r) ? a_.values[i] : ((a_.values[i] >= r) ? r : ((a_.values[i] == a_.values[i]) ? r : a_.values[i])); + #endif + } + #endif #endif return r; @@ -75771,23 +78279,28 @@ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARM_NEON_FP16) return vminnmvq_f16(a); #else - simde_float32_t r_ = simde_float16_to_float32(SIMDE_INFINITYHF); simde_float16x8_private a_ = simde_float16x8_to_private(a); - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(min:r_) + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + return __riscv_vfmv_f_s_f16m1_f16(__riscv_vfredmin_vs_f16m1_f16m1(a_.sv128, \ + __riscv_vfmv_v_f_f16m1(SIMDE_INFINITYHF, 8), 8)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { - simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + simde_float32_t r_ = simde_float16_to_float32(SIMDE_INFINITYHF); #if defined(SIMDE_FAST_NANS) - r_ = tmp_a < r_ ? tmp_a : r_; + SIMDE_VECTORIZE_REDUCTION(min:r_) #else - r_ = (tmp_a < r_) ? tmp_a : ((tmp_a >= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + SIMDE_VECTORIZE #endif - } - return simde_float16_from_float32(r_); + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + simde_float32_t tmp_a = simde_float16_to_float32(a_.values[i]); + #if defined(SIMDE_FAST_NANS) + r_ = tmp_a < r_ ? tmp_a : r_; + #else + r_ = (tmp_a < r_) ? tmp_a : ((tmp_a >= r_) ? r_ : ((tmp_a == tmp_a) ? r_ : tmp_a)); + #endif + } + return simde_float16_from_float32(r_); + #endif #endif } #if defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES) @@ -75806,18 +78319,23 @@ simde_float32x4_private a_ = simde_float32x4_to_private(a); r = SIMDE_MATH_INFINITYF; - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(min:r) + #if defined(SIMDE_RISCV_V_NATIVE) + r = __riscv_vfmv_f_s_f32m1_f32(__riscv_vfredmin_vs_f32m1_f32m1(a_.sv128, \ + __riscv_vfmv_v_f_f32m1(r, 4), 4)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { #if defined(SIMDE_FAST_NANS) - r = a_.values[i] < r ? a_.values[i] : r; + SIMDE_VECTORIZE_REDUCTION(min:r) #else - r = (a_.values[i] < r) ? a_.values[i] : ((a_.values[i] >= r) ? r : ((a_.values[i] == a_.values[i]) ? r : a_.values[i])); + SIMDE_VECTORIZE #endif - } + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + #if defined(SIMDE_FAST_NANS) + r = a_.values[i] < r ? a_.values[i] : r; + #else + r = (a_.values[i] < r) ? a_.values[i] : ((a_.values[i] >= r) ? r : ((a_.values[i] == a_.values[i]) ? r : a_.values[i])); + #endif + } + #endif #endif return r; @@ -75838,18 +78356,23 @@ simde_float64x2_private a_ = simde_float64x2_to_private(a); r = SIMDE_MATH_INFINITY; - #if defined(SIMDE_FAST_NANS) - SIMDE_VECTORIZE_REDUCTION(min:r) + #if defined(SIMDE_RISCV_V_NATIVE) + r = __riscv_vfmv_f_s_f64m1_f64(__riscv_vfredmin_vs_f64m1_f64m1(a_.sv128, \ + __riscv_vfmv_v_f_f64m1(r, 2), 2)); #else - SIMDE_VECTORIZE - #endif - for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { #if defined(SIMDE_FAST_NANS) - r = a_.values[i] < r ? a_.values[i] : r; + SIMDE_VECTORIZE_REDUCTION(min:r) #else - r = (a_.values[i] < r) ? a_.values[i] : ((a_.values[i] >= r) ? r : ((a_.values[i] == a_.values[i]) ? r : a_.values[i])); + SIMDE_VECTORIZE #endif - } + for (size_t i = 0 ; i < (sizeof(a_.values) / sizeof(a_.values[0])) ; i++) { + #if defined(SIMDE_FAST_NANS) + r = a_.values[i] < r ? a_.values[i] : r; + #else + r = (a_.values[i] < r) ? a_.values[i] : ((a_.values[i] >= r) ? r : ((a_.values[i] == a_.values[i]) ? r : a_.values[i])); + #endif + } + #endif #endif return r; @@ -75865,7 +78388,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MINNMV_H) */ /* :: End simde/arm/neon/minnmv.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/minv.h :: */ /* SPDX-License-Identifier: MIT * @@ -75898,7 +78421,7 @@ #define SIMDE_ARM_NEON_MINV_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include HEDLEY_DIAGNOSTIC_PUSH @@ -76359,7 +78882,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MINV_H) */ /* :: End simde/arm/neon/minv.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mla.h :: */ /* SPDX-License-Identifier: MIT * @@ -76386,17 +78909,18 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLA_H) #define SIMDE_ARM_NEON_MLA_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -76407,6 +78931,15 @@ simde_vmla_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private + r_, + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b), + c_ = simde_float32x2_to_private(c); + + r_.sv64 = __riscv_vfmacc_vv_f32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_float32x2_from_private(r_); #else return simde_vadd_f32(simde_vmul_f32(b, c), a); #endif @@ -76421,6 +78954,15 @@ simde_vmla_f64(simde_float64x1_t a, simde_float64x1_t b, simde_float64x1_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmla_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x1_private + r_, + a_ = simde_float64x1_to_private(a), + b_ = simde_float64x1_to_private(b), + c_ = simde_float64x1_to_private(c); + + r_.sv64 = __riscv_vfmacc_vv_f64m1(a_.sv64 , b_.sv64 , c_.sv64 , 1); + return simde_float64x1_from_private(r_); #else return simde_vadd_f64(simde_vmul_f64(b, c), a); #endif @@ -76435,6 +78977,15 @@ simde_vmla_s8(simde_int8x8_t a, simde_int8x8_t b, simde_int8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int8x8_private + r_, + a_ = simde_int8x8_to_private(a), + b_ = simde_int8x8_to_private(b), + c_ = simde_int8x8_to_private(c); + + r_.sv64 = __riscv_vmacc_vv_i8m1(a_.sv64 , b_.sv64 , c_.sv64 , 8); + return simde_int8x8_from_private(r_); #else return simde_vadd_s8(simde_vmul_s8(b, c), a); #endif @@ -76449,6 +79000,15 @@ simde_vmla_s16(simde_int16x4_t a, simde_int16x4_t b, simde_int16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x4_private + r_, + a_ = simde_int16x4_to_private(a), + b_ = simde_int16x4_to_private(b), + c_ = simde_int16x4_to_private(c); + + r_.sv64 = __riscv_vmacc_vv_i16m1(a_.sv64 , b_.sv64 , c_.sv64 , 4); + return simde_int16x4_from_private(r_); #else return simde_vadd_s16(simde_vmul_s16(b, c), a); #endif @@ -76463,6 +79023,15 @@ simde_vmla_s32(simde_int32x2_t a, simde_int32x2_t b, simde_int32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private + r_, + a_ = simde_int32x2_to_private(a), + b_ = simde_int32x2_to_private(b), + c_ = simde_int32x2_to_private(c); + + r_.sv64 = __riscv_vmacc_vv_i32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_int32x2_from_private(r_); #else return simde_vadd_s32(simde_vmul_s32(b, c), a); #endif @@ -76477,6 +79046,15 @@ simde_vmla_u8(simde_uint8x8_t a, simde_uint8x8_t b, simde_uint8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint8x8_private + r_, + a_ = simde_uint8x8_to_private(a), + b_ = simde_uint8x8_to_private(b), + c_ = simde_uint8x8_to_private(c); + + r_.sv64 = __riscv_vmacc_vv_u8m1(a_.sv64 , b_.sv64 , c_.sv64 , 8); + return simde_uint8x8_from_private(r_); #else return simde_vadd_u8(simde_vmul_u8(b, c), a); #endif @@ -76491,6 +79069,15 @@ simde_vmla_u16(simde_uint16x4_t a, simde_uint16x4_t b, simde_uint16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x4_private + r_, + a_ = simde_uint16x4_to_private(a), + b_ = simde_uint16x4_to_private(b), + c_ = simde_uint16x4_to_private(c); + + r_.sv64 = __riscv_vmacc_vv_u16m1(a_.sv64 , b_.sv64 , c_.sv64 , 4); + return simde_uint16x4_from_private(r_); #else return simde_vadd_u16(simde_vmul_u16(b, c), a); #endif @@ -76505,6 +79092,15 @@ simde_vmla_u32(simde_uint32x2_t a, simde_uint32x2_t b, simde_uint32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmla_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x2_private + r_, + a_ = simde_uint32x2_to_private(a), + b_ = simde_uint32x2_to_private(b), + c_ = simde_uint32x2_to_private(c); + + r_.sv64 = __riscv_vmacc_vv_u32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_uint32x2_from_private(r_); #else return simde_vadd_u32(simde_vmul_u32(b, c), a); #endif @@ -76522,7 +79118,7 @@ #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) return vec_madd(b, c, a); #elif \ - defined(SIMDE_X86_FMA_NATIVE) + defined(SIMDE_X86_FMA_NATIVE) || defined(SIMDE_RISCV_V_NATIVE) simde_float32x4_private r_, a_ = simde_float32x4_to_private(a), @@ -76531,6 +79127,8 @@ #if defined(SIMDE_X86_FMA_NATIVE) r_.m128 = _mm_fmadd_ps(b_.m128, c_.m128, a_.m128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmacc_vv_f32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); #endif return simde_float32x4_from_private(r_); @@ -76551,7 +79149,7 @@ #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) return vec_madd(b, c, a); #elif \ - defined(SIMDE_X86_FMA_NATIVE) + defined(SIMDE_X86_FMA_NATIVE) || defined(SIMDE_RISCV_V_NATIVE) simde_float64x2_private r_, a_ = simde_float64x2_to_private(a), @@ -76560,6 +79158,8 @@ #if defined(SIMDE_X86_FMA_NATIVE) r_.m128d = _mm_fmadd_pd(b_.m128d, c_.m128d, a_.m128d); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmacc_vv_f64m1(a_.sv128 , b_.sv128 , c_.sv128 , 2); #endif return simde_float64x2_from_private(r_); @@ -76577,6 +79177,15 @@ simde_vmlaq_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int8x16_private + r_, + a_ = simde_int8x16_to_private(a), + b_ = simde_int8x16_to_private(b), + c_ = simde_int8x16_to_private(c); + + r_.sv128 = __riscv_vmacc_vv_i8m1(a_.sv128 , b_.sv128 , c_.sv128 , 16); + return simde_int8x16_from_private(r_); #else return simde_vaddq_s8(simde_vmulq_s8(b, c), a); #endif @@ -76591,6 +79200,15 @@ simde_vmlaq_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private + r_, + a_ = simde_int16x8_to_private(a), + b_ = simde_int16x8_to_private(b), + c_ = simde_int16x8_to_private(c); + + r_.sv128 = __riscv_vmacc_vv_i16m1(a_.sv128 , b_.sv128 , c_.sv128 , 8); + return simde_int16x8_from_private(r_); #else return simde_vaddq_s16(simde_vmulq_s16(b, c), a); #endif @@ -76605,6 +79223,15 @@ simde_vmlaq_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private + r_, + a_ = simde_int32x4_to_private(a), + b_ = simde_int32x4_to_private(b), + c_ = simde_int32x4_to_private(c); + + r_.sv128 = __riscv_vmacc_vv_i32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); + return simde_int32x4_from_private(r_); #else return simde_vaddq_s32(simde_vmulq_s32(b, c), a); #endif @@ -76619,6 +79246,15 @@ simde_vmlaq_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint8x16_private + r_, + a_ = simde_uint8x16_to_private(a), + b_ = simde_uint8x16_to_private(b), + c_ = simde_uint8x16_to_private(c); + + r_.sv128 = __riscv_vmacc_vv_u8m1(a_.sv128 , b_.sv128 , c_.sv128 , 16); + return simde_uint8x16_from_private(r_); #else return simde_vaddq_u8(simde_vmulq_u8(b, c), a); #endif @@ -76633,6 +79269,15 @@ simde_vmlaq_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private + r_, + a_ = simde_uint16x8_to_private(a), + b_ = simde_uint16x8_to_private(b), + c_ = simde_uint16x8_to_private(c); + + r_.sv128 = __riscv_vmacc_vv_u16m1(a_.sv128 , b_.sv128 , c_.sv128 , 8); + return simde_uint16x8_from_private(r_); #else return simde_vaddq_u16(simde_vmulq_u16(b, c), a); #endif @@ -76647,6 +79292,15 @@ simde_vmlaq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private + r_, + a_ = simde_uint32x4_to_private(a), + b_ = simde_uint32x4_to_private(b), + c_ = simde_uint32x4_to_private(c); + + r_.sv128 = __riscv_vmacc_vv_u32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); + return simde_uint32x4_from_private(r_); #else return simde_vaddq_u32(simde_vmulq_u32(b, c), a); #endif @@ -76662,7 +79316,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLA_H) */ /* :: End simde/arm/neon/mla.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mla_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -76695,9 +79349,9 @@ #define SIMDE_ARM_NEON_MLA_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -76909,7 +79563,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLA_LANE_H) */ /* :: End simde/arm/neon/mla_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mla_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -76936,19 +79590,20 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLA_N_H) #define SIMDE_ARM_NEON_MLA_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mul_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -76982,11 +79637,11 @@ #define SIMDE_ARM_NEON_MUL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -77209,7 +79864,9 @@ a_ = simde_float32x2_to_private(a), b_ = simde_float32x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfmacc_vf_f32m1(a_.sv64 , c , b_.sv64 , 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77237,7 +79894,9 @@ a_ = simde_int16x4_to_private(a), b_ = simde_int16x4_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmacc_vx_i16m1(a_.sv64 , c , b_.sv64 , 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) && !defined(SIMDE_BUG_GCC_100762) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77265,7 +79924,9 @@ a_ = simde_int32x2_to_private(a), b_ = simde_int32x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmacc_vx_i32m1(a_.sv64 , c , b_.sv64 , 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77293,7 +79954,9 @@ a_ = simde_uint16x4_to_private(a), b_ = simde_uint16x4_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmacc_vx_u16m1(a_.sv64 , c , b_.sv64 , 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77321,7 +79984,9 @@ a_ = simde_uint32x2_to_private(a), b_ = simde_uint32x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vmacc_vx_u32m1(a_.sv64 , c , b_.sv64 , 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77343,7 +80008,7 @@ simde_vmlaq_n_f32(simde_float32x4_t a, simde_float32x4_t b, simde_float32 c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_n_f32(a, b, c); - #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_f32(simde_vmulq_n_f32(b, c), a); #else simde_float32x4_private @@ -77351,7 +80016,9 @@ a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfmacc_vf_f32m1(a_.sv128 , c , b_.sv128 , 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77373,7 +80040,7 @@ simde_vmlaq_n_s16(simde_int16x8_t a, simde_int16x8_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_n_s16(a, b, c); - #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s16(simde_vmulq_n_s16(b, c), a); #else simde_int16x8_private @@ -77381,7 +80048,9 @@ a_ = simde_int16x8_to_private(a), b_ = simde_int16x8_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmacc_vx_i16m1(a_.sv128 , c , b_.sv128 , 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_53784) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77403,7 +80072,7 @@ simde_vmlaq_n_s32(simde_int32x4_t a, simde_int32x4_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_n_s32(a, b, c); - #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_s32(simde_vmulq_n_s32(b, c), a); #else simde_int32x4_private @@ -77411,7 +80080,9 @@ a_ = simde_int32x4_to_private(a), b_ = simde_int32x4_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmacc_vx_i32m1(a_.sv128 , c , b_.sv128 , 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77433,7 +80104,7 @@ simde_vmlaq_n_u16(simde_uint16x8_t a, simde_uint16x8_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlaq_n_u16(a, b, c); - #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vaddq_u16(simde_vmulq_n_u16(b, c), a); #else simde_uint16x8_private @@ -77441,7 +80112,9 @@ a_ = simde_uint16x8_to_private(a), b_ = simde_uint16x8_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmacc_vx_u16m1(a_.sv128 , c , b_.sv128 , 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77471,7 +80144,9 @@ a_ = simde_uint32x4_to_private(a), b_ = simde_uint32x4_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vmacc_vx_u32m1(a_.sv128 , c , b_.sv128 , 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = (b_.values * c) + a_.values; #else SIMDE_VECTORIZE @@ -77494,7 +80169,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLA_N_H) */ /* :: End simde/arm/neon/mla_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlal.h :: */ /* SPDX-License-Identifier: MIT * @@ -77521,17 +80196,18 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLAL_H) #define SIMDE_ARM_NEON_MLAL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -77542,6 +80218,15 @@ simde_vmlal_s8(simde_int16x8_t a, simde_int8x8_t b, simde_int8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int8x8_private b_ = simde_int8x8_to_private(b); + simde_int8x8_private c_ = simde_int8x8_to_private(c); + vint8mf2_t vb = __riscv_vlmul_trunc_v_i8m1_i8mf2 (b_.sv64); + vint8mf2_t vc = __riscv_vlmul_trunc_v_i8m1_i8mf2 (c_.sv64); + r_.sv128 = __riscv_vwmacc_vv_i16m1(a_.sv128 , vb , vc , 8); + return simde_int16x8_from_private(r_); #else return simde_vmlaq_s16(a, simde_vmovl_s8(b), simde_vmovl_s8(c)); #endif @@ -77556,6 +80241,15 @@ simde_vmlal_s16(simde_int32x4_t a, simde_int16x4_t b, simde_int16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + simde_int16x4_private c_ = simde_int16x4_to_private(c); + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv64); + vint16mf2_t vc = __riscv_vlmul_trunc_v_i16m1_i16mf2 (c_.sv64); + r_.sv128 = __riscv_vwmacc_vv_i32m1(a_.sv128 , vb , vc , 4); + return simde_int32x4_from_private(r_); #else return simde_vmlaq_s32(a, simde_vmovl_s16(b), simde_vmovl_s16(c)); #endif @@ -77570,6 +80264,15 @@ simde_vmlal_s32(simde_int64x2_t a, simde_int32x2_t b, simde_int32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + simde_int32x2_private c_ = simde_int32x2_to_private(c); + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv64); + vint32mf2_t vc = __riscv_vlmul_trunc_v_i32m1_i32mf2 (c_.sv64); + r_.sv128 = __riscv_vwmacc_vv_i64m1(a_.sv128 , vb , vc , 2); + return simde_int64x2_from_private(r_); #else simde_int64x2_private r_, @@ -77599,6 +80302,15 @@ simde_vmlal_u8(simde_uint16x8_t a, simde_uint8x8_t b, simde_uint8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint8x8_private b_ = simde_uint8x8_to_private(b); + simde_uint8x8_private c_ = simde_uint8x8_to_private(c); + vuint8mf2_t vb = __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv64); + vuint8mf2_t vc = __riscv_vlmul_trunc_v_u8m1_u8mf2 (c_.sv64); + r_.sv128 = __riscv_vwmaccu_vv_u16m1(a_.sv128 , vb , vc , 8); + return simde_uint16x8_from_private(r_); #else return simde_vmlaq_u16(a, simde_vmovl_u8(b), simde_vmovl_u8(c)); #endif @@ -77613,6 +80325,15 @@ simde_vmlal_u16(simde_uint32x4_t a, simde_uint16x4_t b, simde_uint16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + simde_uint16x4_private c_ = simde_uint16x4_to_private(c); + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64); + vuint16mf2_t vc = __riscv_vlmul_trunc_v_u16m1_u16mf2 (c_.sv64); + r_.sv128 = __riscv_vwmaccu_vv_u32m1(a_.sv128 , vb , vc , 4); + return simde_uint32x4_from_private(r_); #else return simde_vmlaq_u32(a, simde_vmovl_u16(b), simde_vmovl_u16(c)); #endif @@ -77627,6 +80348,15 @@ simde_vmlal_u32(simde_uint64x2_t a, simde_uint32x2_t b, simde_uint32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + simde_uint32x2_private c_ = simde_uint32x2_to_private(c); + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64); + vuint32mf2_t vc = __riscv_vlmul_trunc_v_u32m1_u32mf2 (c_.sv64); + r_.sv128 = __riscv_vwmaccu_vv_u64m1(a_.sv128 , vb , vc , 2); + return simde_uint64x2_from_private(r_); #else simde_uint64x2_private r_, @@ -77657,7 +80387,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLAL_H) */ /* :: End simde/arm/neon/mlal.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlal_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -77684,17 +80414,18 @@ * Copyright: * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLAL_HIGH_H) #define SIMDE_ARM_NEON_MLAL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -77705,6 +80436,15 @@ simde_vmlal_high_s8(simde_int16x8_t a, simde_int8x16_t b, simde_int8x16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int8x16_private b_ = simde_int8x16_to_private(b); + simde_int8x16_private c_ = simde_int8x16_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16); + c_.sv128 = __riscv_vslidedown_vx_i8m1(c_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwmacc_vv_i16m1(a_.sv128 , __riscv_vlmul_trunc_v_i8m1_i8mf2 (b_.sv128) , __riscv_vlmul_trunc_v_i8m1_i8mf2 (c_.sv128) , 8); + return simde_int16x8_from_private(r_); #else return simde_vmlaq_s16(a, simde_vmovl_high_s8(b), simde_vmovl_high_s8(c)); #endif @@ -77719,6 +80459,15 @@ simde_vmlal_high_s16(simde_int32x4_t a, simde_int16x8_t b, simde_int16x8_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + simde_int16x8_private c_ = simde_int16x8_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + c_.sv128 = __riscv_vslidedown_vx_i16m1(c_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwmacc_vv_i32m1(a_.sv128 , __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv128) , __riscv_vlmul_trunc_v_i16m1_i16mf2 (c_.sv128) , 4); + return simde_int32x4_from_private(r_); #else return simde_vmlaq_s32(a, simde_vmovl_high_s16(b), simde_vmovl_high_s16(c)); #endif @@ -77733,6 +80482,15 @@ simde_vmlal_high_s32(simde_int64x2_t a, simde_int32x4_t b, simde_int32x4_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + simde_int32x4_private c_ = simde_int32x4_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2, 4); + c_.sv128 = __riscv_vslidedown_vx_i32m1(c_.sv128 , 2, 4); + r_.sv128 = __riscv_vwmacc_vv_i64m1(a_.sv128 , __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv128) , __riscv_vlmul_trunc_v_i32m1_i32mf2 (c_.sv128) , 2); + return simde_int64x2_from_private(r_); #else simde_int64x2_private r_, @@ -77762,6 +80520,15 @@ simde_vmlal_high_u8(simde_uint16x8_t a, simde_uint8x16_t b, simde_uint8x16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint8x16_private b_ = simde_uint8x16_to_private(b); + simde_uint8x16_private c_ = simde_uint8x16_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16); + c_.sv128 = __riscv_vslidedown_vx_u8m1(c_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwmaccu_vv_u16m1(a_.sv128 , __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv128) , __riscv_vlmul_trunc_v_u8m1_u8mf2 (c_.sv128) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vmlaq_u16(a, simde_vmovl_high_u8(b), simde_vmovl_high_u8(c)); #endif @@ -77776,6 +80543,15 @@ simde_vmlal_high_u16(simde_uint32x4_t a, simde_uint16x8_t b, simde_uint16x8_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + simde_uint16x8_private c_ = simde_uint16x8_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + c_.sv128 = __riscv_vslidedown_vx_u16m1(c_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwmaccu_vv_u32m1(a_.sv128 , __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv128) , __riscv_vlmul_trunc_v_u16m1_u16mf2 (c_.sv128) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vmlaq_u32(a, simde_vmovl_high_u16(b), simde_vmovl_high_u16(c)); #endif @@ -77790,6 +80566,15 @@ simde_vmlal_high_u32(simde_uint64x2_t a, simde_uint32x4_t b, simde_uint32x4_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + simde_uint32x4_private c_ = simde_uint32x4_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2, 4); + c_.sv128 = __riscv_vslidedown_vx_u32m1(c_.sv128 , 2, 4); + r_.sv128 = __riscv_vwmaccu_vv_u64m1(a_.sv128 , __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv128) , __riscv_vlmul_trunc_v_u32m1_u32mf2 (c_.sv128) , 2); + return simde_uint64x2_from_private(r_); #else simde_uint64x2_private r_, @@ -77820,7 +80605,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLAL_HIGH_H) */ /* :: End simde/arm/neon/mlal_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlal_high_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -77852,15 +80637,15 @@ #define SIMDE_ARM_NEON_MLAL_HIGH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -77976,7 +80761,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLAL_HIGH_LANE_H) */ /* :: End simde/arm/neon/mlal_high_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlal_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -78002,19 +80787,20 @@ * * Copyright: * 2021 Décio Luiz Gazzoni Filho + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLAL_HIGH_N_H) #define SIMDE_ARM_NEON_MLAL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -78025,6 +80811,13 @@ simde_vmlal_high_n_s16(simde_int32x4_t a, simde_int16x8_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_n_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwmacc_vx_i32m1(a_.sv128 , c , __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv128) , 4); + return simde_int32x4_from_private(r_); #else return simde_vmlaq_s32(a, simde_vmovl_high_s16(b), simde_vdupq_n_s32(c)); #endif @@ -78039,6 +80832,13 @@ simde_vmlal_high_n_s32(simde_int64x2_t a, simde_int32x4_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_n_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2, 4); + r_.sv128 = __riscv_vwmacc_vx_i64m1(a_.sv128 , c , __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv128) , 2); + return simde_int64x2_from_private(r_); #else simde_int64x2_private r_, @@ -78068,6 +80868,13 @@ simde_vmlal_high_n_u16(simde_uint32x4_t a, simde_uint16x8_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_n_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwmaccu_vx_u32m1(a_.sv128 , c , __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv128) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vmlaq_u32(a, simde_vmovl_high_u16(b), simde_vdupq_n_u32(c)); #endif @@ -78082,6 +80889,13 @@ simde_vmlal_high_n_u32(simde_uint64x2_t a, simde_uint32x4_t b, uint32_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlal_high_n_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2, 4); + r_.sv128 = __riscv_vwmaccu_vx_u64m1(a_.sv128 , c , __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv128) , 2); + return simde_uint64x2_from_private(r_); #else simde_uint64x2_private r_, @@ -78112,7 +80926,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLAL_HIGH_N_H) */ /* :: End simde/arm/neon/mlal_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlal_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -78144,9 +80958,9 @@ #define SIMDE_ARM_NEON_MLAL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -78238,7 +81052,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLAL_LANE_H) */ /* :: End simde/arm/neon/mlal_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlal_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -78264,19 +81078,20 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLAL_N_H) #define SIMDE_ARM_NEON_MLAL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -78287,6 +81102,13 @@ simde_vmlal_n_s16(simde_int32x4_t a, simde_int16x4_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_n_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv64); + r_.sv128 = __riscv_vwmacc_vx_i32m1(a_.sv128 , c , vb , 4); + return simde_int32x4_from_private(r_); #else return simde_vmlaq_s32(a, simde_vmovl_s16(b), simde_vdupq_n_s32(c)); #endif @@ -78301,13 +81123,19 @@ simde_vmlal_n_s32(simde_int64x2_t a, simde_int32x2_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_n_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv64); + r_.sv128 = __riscv_vwmacc_vx_i64m1(a_.sv128 , c , vb , 2); + return simde_int64x2_from_private(r_); #else simde_int64x2_private r_, a_ = simde_int64x2_to_private(a), b_ = simde_int64x2_to_private(simde_vmovl_s32(b)), c_ = simde_int64x2_to_private(simde_vdupq_n_s64(c)); - #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS) r_.values = (b_.values * c_.values) + a_.values; #else @@ -78330,6 +81158,13 @@ simde_vmlal_n_u16(simde_uint32x4_t a, simde_uint16x4_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_n_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64); + r_.sv128 = __riscv_vwmaccu_vx_u32m1(a_.sv128 , c , vb , 4); + return simde_uint32x4_from_private(r_); #else return simde_vmlaq_u32(a, simde_vmovl_u16(b), simde_vdupq_n_u32(c)); #endif @@ -78344,6 +81179,13 @@ simde_vmlal_n_u32(simde_uint64x2_t a, simde_uint32x2_t b, uint32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlal_n_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64); + r_.sv128 = __riscv_vwmaccu_vx_u64m1(a_.sv128 , c , vb , 2); + return simde_uint64x2_from_private(r_); #else simde_uint64x2_private r_, @@ -78374,7 +81216,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLAL_N_H) */ /* :: End simde/arm/neon/mlal_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mls.h :: */ /* SPDX-License-Identifier: MIT * @@ -78400,15 +81242,16 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLS_H) #define SIMDE_ARM_NEON_MLS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -78419,6 +81262,14 @@ simde_vmls_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private + r_, + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b), + c_ = simde_float32x2_to_private(c); + r_.sv64 = __riscv_vfnmsac_vv_f32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_float32x2_from_private(r_); #else return simde_vsub_f32(a, simde_vmul_f32(b, c)); #endif @@ -78433,6 +81284,14 @@ simde_vmls_f64(simde_float64x1_t a, simde_float64x1_t b, simde_float64x1_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmls_f64(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float64x1_private + r_, + a_ = simde_float64x1_to_private(a), + b_ = simde_float64x1_to_private(b), + c_ = simde_float64x1_to_private(c); + r_.sv64 = __riscv_vfnmsac_vv_f64m1(a_.sv64 , b_.sv64 , c_.sv64 , 1); + return simde_float64x1_from_private(r_); #else return simde_vsub_f64(a, simde_vmul_f64(b, c)); #endif @@ -78447,6 +81306,14 @@ simde_vmls_s8(simde_int8x8_t a, simde_int8x8_t b, simde_int8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int8x8_private + r_, + a_ = simde_int8x8_to_private(a), + b_ = simde_int8x8_to_private(b), + c_ = simde_int8x8_to_private(c); + r_.sv64 = __riscv_vnmsac_vv_i8m1(a_.sv64 , b_.sv64 , c_.sv64 , 8); + return simde_int8x8_from_private(r_); #else return simde_vsub_s8(a, simde_vmul_s8(b, c)); #endif @@ -78461,6 +81328,14 @@ simde_vmls_s16(simde_int16x4_t a, simde_int16x4_t b, simde_int16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x4_private + r_, + a_ = simde_int16x4_to_private(a), + b_ = simde_int16x4_to_private(b), + c_ = simde_int16x4_to_private(c); + r_.sv64 = __riscv_vnmsac_vv_i16m1(a_.sv64 , b_.sv64 , c_.sv64 , 4); + return simde_int16x4_from_private(r_); #else return simde_vsub_s16(a, simde_vmul_s16(b, c)); #endif @@ -78475,6 +81350,14 @@ simde_vmls_s32(simde_int32x2_t a, simde_int32x2_t b, simde_int32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private + r_, + a_ = simde_int32x2_to_private(a), + b_ = simde_int32x2_to_private(b), + c_ = simde_int32x2_to_private(c); + r_.sv64 = __riscv_vnmsac_vv_i32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_int32x2_from_private(r_); #else return simde_vsub_s32(a, simde_vmul_s32(b, c)); #endif @@ -78489,6 +81372,14 @@ simde_vmls_u8(simde_uint8x8_t a, simde_uint8x8_t b, simde_uint8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint8x8_private + r_, + a_ = simde_uint8x8_to_private(a), + b_ = simde_uint8x8_to_private(b), + c_ = simde_uint8x8_to_private(c); + r_.sv64 = __riscv_vnmsac_vv_u8m1(a_.sv64 , b_.sv64 , c_.sv64 , 8); + return simde_uint8x8_from_private(r_); #else return simde_vsub_u8(a, simde_vmul_u8(b, c)); #endif @@ -78503,6 +81394,14 @@ simde_vmls_u16(simde_uint16x4_t a, simde_uint16x4_t b, simde_uint16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x4_private + r_, + a_ = simde_uint16x4_to_private(a), + b_ = simde_uint16x4_to_private(b), + c_ = simde_uint16x4_to_private(c); + r_.sv64 = __riscv_vnmsac_vv_u16m1(a_.sv64 , b_.sv64 , c_.sv64 , 4); + return simde_uint16x4_from_private(r_); #else return simde_vsub_u16(a, simde_vmul_u16(b, c)); #endif @@ -78517,6 +81416,14 @@ simde_vmls_u32(simde_uint32x2_t a, simde_uint32x2_t b, simde_uint32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x2_private + r_, + a_ = simde_uint32x2_to_private(a), + b_ = simde_uint32x2_to_private(b), + c_ = simde_uint32x2_to_private(c); + r_.sv64 = __riscv_vnmsac_vv_u32m1(a_.sv64 , b_.sv64 , c_.sv64 , 2); + return simde_uint32x2_from_private(r_); #else return simde_vsub_u32(a, simde_vmul_u32(b, c)); #endif @@ -78531,13 +81438,19 @@ simde_vmlsq_f32(simde_float32x4_t a, simde_float32x4_t b, simde_float32x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_f32(a, b, c); - #elif defined(SIMDE_X86_FMA_NATIVE) + #elif defined(SIMDE_X86_FMA_NATIVE) || defined(SIMDE_RISCV_V_NATIVE) simde_float32x4_private r_, a_ = simde_float32x4_to_private(a), b_ = simde_float32x4_to_private(b), c_ = simde_float32x4_to_private(c); - r_.m128 = _mm_fnmadd_ps(b_.m128, c_.m128, a_.m128); + + #if defined(SIMDE_X86_FMA_NATIVE) + r_.m128 = _mm_fnmadd_ps(b_.m128, c_.m128, a_.m128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfnmsac_vv_f32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); + #endif + return simde_float32x4_from_private(r_); #else return simde_vsubq_f32(a, simde_vmulq_f32(b, c)); @@ -78553,13 +81466,19 @@ simde_vmlsq_f64(simde_float64x2_t a, simde_float64x2_t b, simde_float64x2_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsq_f64(a, b, c); - #elif defined(SIMDE_X86_FMA_NATIVE) + #elif defined(SIMDE_X86_FMA_NATIVE) || defined(SIMDE_X86_FMA_NATIVE) simde_float64x2_private r_, a_ = simde_float64x2_to_private(a), b_ = simde_float64x2_to_private(b), c_ = simde_float64x2_to_private(c); - r_.m128d = _mm_fnmadd_pd(b_.m128d, c_.m128d, a_.m128d); + + #if defined(SIMDE_X86_FMA_NATIVE) + r_.m128d = _mm_fnmadd_pd(b_.m128d, c_.m128d, a_.m128d); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfnmsac_vv_f64m1(a_.sv128 , b_.sv128 , c_.sv128 , 2); + #endif + return simde_float64x2_from_private(r_); #else return simde_vsubq_f64(a, simde_vmulq_f64(b, c)); @@ -78575,6 +81494,14 @@ simde_vmlsq_s8(simde_int8x16_t a, simde_int8x16_t b, simde_int8x16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int8x16_private + r_, + a_ = simde_int8x16_to_private(a), + b_ = simde_int8x16_to_private(b), + c_ = simde_int8x16_to_private(c); + r_.sv128 = __riscv_vnmsac_vv_i8m1(a_.sv128 , b_.sv128 , c_.sv128 , 16); + return simde_int8x16_from_private(r_); #else return simde_vsubq_s8(a, simde_vmulq_s8(b, c)); #endif @@ -78589,6 +81516,14 @@ simde_vmlsq_s16(simde_int16x8_t a, simde_int16x8_t b, simde_int16x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private + r_, + a_ = simde_int16x8_to_private(a), + b_ = simde_int16x8_to_private(b), + c_ = simde_int16x8_to_private(c); + r_.sv128 = __riscv_vnmsac_vv_i16m1(a_.sv128 , b_.sv128 , c_.sv128 , 8); + return simde_int16x8_from_private(r_); #else return simde_vsubq_s16(a, simde_vmulq_s16(b, c)); #endif @@ -78603,6 +81538,14 @@ simde_vmlsq_s32(simde_int32x4_t a, simde_int32x4_t b, simde_int32x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private + r_, + a_ = simde_int32x4_to_private(a), + b_ = simde_int32x4_to_private(b), + c_ = simde_int32x4_to_private(c); + r_.sv128 = __riscv_vnmsac_vv_i32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); + return simde_int32x4_from_private(r_); #else return simde_vsubq_s32(a, simde_vmulq_s32(b, c)); #endif @@ -78617,6 +81560,14 @@ simde_vmlsq_u8(simde_uint8x16_t a, simde_uint8x16_t b, simde_uint8x16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint8x16_private + r_, + a_ = simde_uint8x16_to_private(a), + b_ = simde_uint8x16_to_private(b), + c_ = simde_uint8x16_to_private(c); + r_.sv128 = __riscv_vnmsac_vv_u8m1(a_.sv128 , b_.sv128 , c_.sv128 , 16); + return simde_uint8x16_from_private(r_); #else return simde_vsubq_u8(a, simde_vmulq_u8(b, c)); #endif @@ -78631,6 +81582,14 @@ simde_vmlsq_u16(simde_uint16x8_t a, simde_uint16x8_t b, simde_uint16x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private + r_, + a_ = simde_uint16x8_to_private(a), + b_ = simde_uint16x8_to_private(b), + c_ = simde_uint16x8_to_private(c); + r_.sv128 = __riscv_vnmsac_vv_u16m1(a_.sv128 , b_.sv128 , c_.sv128 , 8); + return simde_uint16x8_from_private(r_); #else return simde_vsubq_u16(a, simde_vmulq_u16(b, c)); #endif @@ -78645,6 +81604,14 @@ simde_vmlsq_u32(simde_uint32x4_t a, simde_uint32x4_t b, simde_uint32x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private + r_, + a_ = simde_uint32x4_to_private(a), + b_ = simde_uint32x4_to_private(b), + c_ = simde_uint32x4_to_private(c); + r_.sv128 = __riscv_vnmsac_vv_u32m1(a_.sv128 , b_.sv128 , c_.sv128 , 4); + return simde_uint32x4_from_private(r_); #else return simde_vsubq_u32(a, simde_vmulq_u32(b, c)); #endif @@ -78660,7 +81627,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLS_H) */ /* :: End simde/arm/neon/mls.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mls_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -78692,9 +81659,9 @@ #define SIMDE_ARM_NEON_MLS_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -78906,7 +81873,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLS_LANE_H) */ /* :: End simde/arm/neon/mls_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mls_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -78932,17 +81899,18 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLS_N_H) #define SIMDE_ARM_NEON_MLS_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -78953,6 +81921,13 @@ simde_vmls_n_f32(simde_float32x2_t a, simde_float32x2_t b, simde_float32 c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_n_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_float32x2_private + r_, + a_ = simde_float32x2_to_private(a), + b_ = simde_float32x2_to_private(b); + r_.sv64 = __riscv_vfnmsac_vf_f32m1(a_.sv64 , c , b_.sv64 , 2); + return simde_float32x2_from_private(r_); #else return simde_vmls_f32(a, b, simde_vdup_n_f32(c)); #endif @@ -78967,6 +81942,13 @@ simde_vmls_n_s16(simde_int16x4_t a, simde_int16x4_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_n_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x4_private + r_, + a_ = simde_int16x4_to_private(a), + b_ = simde_int16x4_to_private(b); + r_.sv64 = __riscv_vnmsac_vx_i16m1(a_.sv64 , c , b_.sv64 , 4); + return simde_int16x4_from_private(r_); #else return simde_vmls_s16(a, b, simde_vdup_n_s16(c)); #endif @@ -78981,6 +81963,13 @@ simde_vmls_n_s32(simde_int32x2_t a, simde_int32x2_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_n_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x2_private + r_, + a_ = simde_int32x2_to_private(a), + b_ = simde_int32x2_to_private(b); + r_.sv64 = __riscv_vnmsac_vx_i32m1(a_.sv64 , c , b_.sv64 , 2); + return simde_int32x2_from_private(r_); #else return simde_vmls_s32(a, b, simde_vdup_n_s32(c)); #endif @@ -78995,6 +81984,13 @@ simde_vmls_n_u16(simde_uint16x4_t a, simde_uint16x4_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_n_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint16x4_private + r_, + a_ = simde_uint16x4_to_private(a), + b_ = simde_uint16x4_to_private(b); + r_.sv64 = __riscv_vnmsac_vx_u16m1(a_.sv64 , c , b_.sv64 , 4); + return simde_uint16x4_from_private(r_); #else return simde_vmls_u16(a, b, simde_vdup_n_u16(c)); #endif @@ -79009,6 +82005,13 @@ simde_vmls_n_u32(simde_uint32x2_t a, simde_uint32x2_t b, uint32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmls_n_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint32x2_private + r_, + a_ = simde_uint32x2_to_private(a), + b_ = simde_uint32x2_to_private(b); + r_.sv64 = __riscv_vnmsac_vx_u32m1(a_.sv64 , c , b_.sv64 , 2); + return simde_uint32x2_from_private(r_); #else return simde_vmls_u32(a, b, simde_vdup_n_u32(c)); #endif @@ -79023,6 +82026,13 @@ simde_vmlsq_n_f32(simde_float32x4_t a, simde_float32x4_t b, simde_float32 c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_n_f32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_float32x4_private + r_, + a_ = simde_float32x4_to_private(a), + b_ = simde_float32x4_to_private(b); + r_.sv128 = __riscv_vfnmsac_vf_f32m1(a_.sv128 , c , b_.sv128 , 4); + return simde_float32x4_from_private(r_); #else return simde_vmlsq_f32(a, b, simde_vdupq_n_f32(c)); #endif @@ -79037,6 +82047,13 @@ simde_vmlsq_n_s16(simde_int16x8_t a, simde_int16x8_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_n_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private + r_, + a_ = simde_int16x8_to_private(a), + b_ = simde_int16x8_to_private(b); + r_.sv128 = __riscv_vnmsac_vx_i16m1(a_.sv128 , c , b_.sv128 , 8); + return simde_int16x8_from_private(r_); #else return simde_vmlsq_s16(a, b, simde_vdupq_n_s16(c)); #endif @@ -79051,6 +82068,13 @@ simde_vmlsq_n_s32(simde_int32x4_t a, simde_int32x4_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_n_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private + r_, + a_ = simde_int32x4_to_private(a), + b_ = simde_int32x4_to_private(b); + r_.sv128 = __riscv_vnmsac_vx_i32m1(a_.sv128 , c , b_.sv128 , 4); + return simde_int32x4_from_private(r_); #else return simde_vmlsq_s32(a, b, simde_vdupq_n_s32(c)); #endif @@ -79065,6 +82089,13 @@ simde_vmlsq_n_u16(simde_uint16x8_t a, simde_uint16x8_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_n_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private + r_, + a_ = simde_uint16x8_to_private(a), + b_ = simde_uint16x8_to_private(b); + r_.sv128 = __riscv_vnmsac_vx_u16m1(a_.sv128 , c , b_.sv128 , 8); + return simde_uint16x8_from_private(r_); #else return simde_vmlsq_u16(a, b, simde_vdupq_n_u16(c)); #endif @@ -79079,6 +82110,13 @@ simde_vmlsq_n_u32(simde_uint32x4_t a, simde_uint32x4_t b, uint32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsq_n_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private + r_, + a_ = simde_uint32x4_to_private(a), + b_ = simde_uint32x4_to_private(b); + r_.sv128 = __riscv_vnmsac_vx_u32m1(a_.sv128 , c , b_.sv128 , 4); + return simde_uint32x4_from_private(r_); #else return simde_vmlsq_u32(a, b, simde_vdupq_n_u32(c)); #endif @@ -79094,7 +82132,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLS_N_H) */ /* :: End simde/arm/neon/mls_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlsl.h :: */ /* SPDX-License-Identifier: MIT * @@ -79120,15 +82158,16 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLSL_H) #define SIMDE_ARM_NEON_MLSL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -79139,6 +82178,15 @@ simde_vmlsl_s8(simde_int16x8_t a, simde_int8x8_t b, simde_int8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_int16x8_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int8x8_private b_ = simde_int8x8_to_private(b); + simde_int8x8_private c_ = simde_int8x8_to_private(c); + vint8mf2_t vb = __riscv_vlmul_trunc_v_i8m1_i8mf2 (b_.sv64); + vint8mf2_t vc = __riscv_vlmul_trunc_v_i8m1_i8mf2 (c_.sv64); + r_.sv128 = __riscv_vsub_vv_i16m1(a_.sv128 , __riscv_vwmul_vv_i16m1(vb , vc , 8) , 8); + return simde_int16x8_from_private(r_); #else return simde_vsubq_s16(a, simde_vmull_s8(b, c)); #endif @@ -79153,6 +82201,15 @@ simde_vmlsl_s16(simde_int32x4_t a, simde_int16x4_t b, simde_int16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + simde_int16x4_private c_ = simde_int16x4_to_private(c); + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv64); + vint16mf2_t vc = __riscv_vlmul_trunc_v_i16m1_i16mf2 (c_.sv64); + r_.sv128 = __riscv_vsub_vv_i32m1(a_.sv128 , __riscv_vwmul_vv_i32m1(vb , vc , 4) , 4); + return simde_int32x4_from_private(r_); #else return simde_vsubq_s32(a, simde_vmull_s16(b, c)); #endif @@ -79167,6 +82224,15 @@ simde_vmlsl_s32(simde_int64x2_t a, simde_int32x2_t b, simde_int32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + simde_int32x2_private c_ = simde_int32x2_to_private(c); + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv64); + vint32mf2_t vc = __riscv_vlmul_trunc_v_i32m1_i32mf2 (c_.sv64); + r_.sv128 = __riscv_vsub_vv_i64m1(a_.sv128 , __riscv_vwmul_vv_i64m1(vb , vc , 2) , 2); + return simde_int64x2_from_private(r_); #else return simde_vsubq_s64(a, simde_vmull_s32(b, c)); #endif @@ -79181,6 +82247,15 @@ simde_vmlsl_u8(simde_uint16x8_t a, simde_uint8x8_t b, simde_uint8x8_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint16x8_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint8x8_private b_ = simde_uint8x8_to_private(b); + simde_uint8x8_private c_ = simde_uint8x8_to_private(c); + vuint8mf2_t vb = __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv64); + vuint8mf2_t vc = __riscv_vlmul_trunc_v_u8m1_u8mf2 (c_.sv64); + r_.sv128 = __riscv_vsub_vv_u16m1(a_.sv128 , __riscv_vwmulu_vv_u16m1(vb , vc , 8) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vsubq_u16(a, simde_vmull_u8(b, c)); #endif @@ -79195,6 +82270,15 @@ simde_vmlsl_u16(simde_uint32x4_t a, simde_uint16x4_t b, simde_uint16x4_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + simde_uint16x4_private c_ = simde_uint16x4_to_private(c); + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64); + vuint16mf2_t vc = __riscv_vlmul_trunc_v_u16m1_u16mf2 (c_.sv64); + r_.sv128 = __riscv_vsub_vv_u32m1(a_.sv128 , __riscv_vwmulu_vv_u32m1(vb , vc , 4) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vsubq_u32(a, simde_vmull_u16(b, c)); #endif @@ -79209,6 +82293,15 @@ simde_vmlsl_u32(simde_uint64x2_t a, simde_uint32x2_t b, simde_uint32x2_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + simde_uint32x2_private c_ = simde_uint32x2_to_private(c); + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64); + vuint32mf2_t vc = __riscv_vlmul_trunc_v_u32m1_u32mf2 (c_.sv64); + r_.sv128 = __riscv_vsub_vv_u64m1(a_.sv128 , __riscv_vwmulu_vv_u64m1(vb , vc , 2) , 2); + return simde_uint64x2_from_private(r_); #else return simde_vsubq_u64(a, simde_vmull_u32(b, c)); #endif @@ -79224,7 +82317,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLSL_H) */ /* :: End simde/arm/neon/mlsl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlsl_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -79250,13 +82343,14 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLSL_HIGH_H) #define SIMDE_ARM_NEON_MLSL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mull_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -79289,13 +82383,13 @@ #define SIMDE_ARM_NEON_MULL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -79442,7 +82536,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MULL_HIGH_H) */ /* :: End simde/arm/neon/mull_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -79453,6 +82547,17 @@ simde_vmlsl_high_s8(simde_int16x8_t a, simde_int8x16_t b, simde_int8x16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_s8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int16x8_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int8x16_private b_ = simde_int8x16_to_private(b); + simde_int8x16_private c_ = simde_int8x16_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16); + c_.sv128 = __riscv_vslidedown_vx_i8m1(c_.sv128 , 8 , 16); + vint8mf2_t vb = __riscv_vlmul_trunc_v_i8m1_i8mf2 (b_.sv128); + vint8mf2_t vc = __riscv_vlmul_trunc_v_i8m1_i8mf2 (c_.sv128); + r_.sv128 = __riscv_vsub_vv_i16m1(a_.sv128 , __riscv_vwmul_vv_i16m1(vb , vc , 8) , 8); + return simde_int16x8_from_private(r_); #else return simde_vsubq_s16(a, simde_vmull_high_s8(b, c)); #endif @@ -79467,6 +82572,17 @@ simde_vmlsl_high_s16(simde_int32x4_t a, simde_int16x8_t b, simde_int16x8_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + simde_int16x8_private c_ = simde_int16x8_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + c_.sv128 = __riscv_vslidedown_vx_i16m1(c_.sv128 , 4 , 8); + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv128); + vint16mf2_t vc = __riscv_vlmul_trunc_v_i16m1_i16mf2 (c_.sv128); + r_.sv128 = __riscv_vsub_vv_i32m1(a_.sv128 , __riscv_vwmul_vv_i32m1(vb , vc , 4) , 4); + return simde_int32x4_from_private(r_); #else return simde_vsubq_s32(a, simde_vmull_high_s16(b, c)); #endif @@ -79481,6 +82597,17 @@ simde_vmlsl_high_s32(simde_int64x2_t a, simde_int32x4_t b, simde_int32x4_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + simde_int32x4_private c_ = simde_int32x4_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2, 4); + c_.sv128 = __riscv_vslidedown_vx_i32m1(c_.sv128 , 2, 4); + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv128); + vint32mf2_t vc = __riscv_vlmul_trunc_v_i32m1_i32mf2 (c_.sv128); + r_.sv128 = __riscv_vsub_vv_i64m1(a_.sv128 , __riscv_vwmul_vv_i64m1(vb , vc , 2) , 2); + return simde_int64x2_from_private(r_); #else return simde_vsubq_s64(a, simde_vmull_high_s32(b, c)); #endif @@ -79495,6 +82622,17 @@ simde_vmlsl_high_u8(simde_uint16x8_t a, simde_uint8x16_t b, simde_uint8x16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_u8(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint16x8_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint8x16_private b_ = simde_uint8x16_to_private(b); + simde_uint8x16_private c_ = simde_uint8x16_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16); + c_.sv128 = __riscv_vslidedown_vx_u8m1(c_.sv128 , 8 , 16); + vuint8mf2_t vb = __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv128); + vuint8mf2_t vc = __riscv_vlmul_trunc_v_u8m1_u8mf2 (c_.sv128); + r_.sv128 = __riscv_vsub_vv_u16m1(a_.sv128 , __riscv_vwmulu_vv_u16m1(vb , vc , 8) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vsubq_u16(a, simde_vmull_high_u8(b, c)); #endif @@ -79509,6 +82647,17 @@ simde_vmlsl_high_u16(simde_uint32x4_t a, simde_uint16x8_t b, simde_uint16x8_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + simde_uint16x8_private c_ = simde_uint16x8_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + c_.sv128 = __riscv_vslidedown_vx_u16m1(c_.sv128 , 4 , 8); + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv128); + vuint16mf2_t vc = __riscv_vlmul_trunc_v_u16m1_u16mf2 (c_.sv128); + r_.sv128 = __riscv_vsub_vv_u32m1(a_.sv128 , __riscv_vwmulu_vv_u32m1(vb , vc , 4) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vsubq_u32(a, simde_vmull_high_u16(b, c)); #endif @@ -79523,6 +82672,17 @@ simde_vmlsl_high_u32(simde_uint64x2_t a, simde_uint32x4_t b, simde_uint32x4_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + simde_uint32x4_private c_ = simde_uint32x4_to_private(c); + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2, 4); + c_.sv128 = __riscv_vslidedown_vx_u32m1(c_.sv128 , 2, 4); + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv128); + vuint32mf2_t vc = __riscv_vlmul_trunc_v_u32m1_u32mf2 (c_.sv128); + r_.sv128 = __riscv_vsub_vv_u64m1(a_.sv128 , __riscv_vwmulu_vv_u64m1(vb , vc , 2) , 2); + return simde_uint64x2_from_private(r_); #else return simde_vsubq_u64(a, simde_vmull_high_u32(b, c)); #endif @@ -79538,7 +82698,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLSL_HIGH_H) */ /* :: End simde/arm/neon/mlsl_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlsl_high_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -79570,15 +82730,15 @@ #define SIMDE_ARM_NEON_MLSL_HIGH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -79694,7 +82854,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLSL_HIGH_LANE_H) */ /* :: End simde/arm/neon/mlsl_high_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlsl_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -79720,19 +82880,20 @@ * * Copyright: * 2021 Décio Luiz Gazzoni Filho + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLSL_HIGH_N_H) #define SIMDE_ARM_NEON_MLSL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -79743,6 +82904,14 @@ simde_vmlsl_high_n_s16(simde_int32x4_t a, simde_int16x8_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_n_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv128); + r_.sv128 = __riscv_vsub_vv_i32m1(a_.sv128 , __riscv_vwmul_vx_i32m1(vb , c , 4) , 4); + return simde_int32x4_from_private(r_); #else return simde_vmlsq_s32(a, simde_vmovl_high_s16(b), simde_vdupq_n_s32(c)); #endif @@ -79757,6 +82926,14 @@ simde_vmlsl_high_n_s32(simde_int64x2_t a, simde_int32x4_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_n_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2, 4); + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv128); + r_.sv128 = __riscv_vsub_vv_i64m1(a_.sv128 , __riscv_vwmul_vx_i64m1(vb , c , 2) , 2); + return simde_int64x2_from_private(r_); #else simde_int64x2_private r_, @@ -79786,6 +82963,14 @@ simde_vmlsl_high_n_u16(simde_uint32x4_t a, simde_uint16x8_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_n_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv128); + r_.sv128 = __riscv_vsub_vv_u32m1(a_.sv128 , __riscv_vwmulu_vx_u32m1(vb , c , 4) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vmlsq_u32(a, simde_vmovl_high_u16(b), simde_vdupq_n_u32(c)); #endif @@ -79800,6 +82985,14 @@ simde_vmlsl_high_n_u32(simde_uint64x2_t a, simde_uint32x4_t b, uint32_t c) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vmlsl_high_n_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2, 4); + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv128); + r_.sv128 = __riscv_vsub_vv_u64m1(a_.sv128 , __riscv_vwmulu_vx_u64m1(vb , c , 2) , 2); + return simde_uint64x2_from_private(r_); #else simde_uint64x2_private r_, @@ -79830,7 +83023,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLSL_HIGH_N_H) */ /* :: End simde/arm/neon/mlsl_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlsl_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -79862,9 +83055,9 @@ #define SIMDE_ARM_NEON_MLSL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -79956,7 +83149,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLSL_LANE_H) */ /* :: End simde/arm/neon/mlsl_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mlsl_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -79982,13 +83175,14 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_MLSL_N_H) #define SIMDE_ARM_NEON_MLSL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mull_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -80021,11 +83215,11 @@ #define SIMDE_ARM_NEON_MULL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80153,7 +83347,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MULL_H) */ /* :: End simde/arm/neon/mull_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80164,6 +83358,13 @@ simde_vmlsl_n_s16(simde_int32x4_t a, simde_int16x4_t b, int16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_n_s16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int32x4_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int16x4_private b_ = simde_int16x4_to_private(b); + vint16mf2_t vb = __riscv_vlmul_trunc_v_i16m1_i16mf2 (b_.sv64); + r_.sv128 = __riscv_vsub_vv_i32m1(a_.sv128 , __riscv_vwmul_vx_i32m1(vb , c , 4) , 4); + return simde_int32x4_from_private(r_); #else return simde_vsubq_s32(a, simde_vmull_n_s16(b, c)); #endif @@ -80178,6 +83379,13 @@ simde_vmlsl_n_s32(simde_int64x2_t a, simde_int32x2_t b, int32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_n_s32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_int64x2_private r_; + simde_int64x2_private a_ = simde_int64x2_to_private(a); + simde_int32x2_private b_ = simde_int32x2_to_private(b); + vint32mf2_t vb = __riscv_vlmul_trunc_v_i32m1_i32mf2 (b_.sv64); + r_.sv128 = __riscv_vsub_vv_i64m1(a_.sv128 , __riscv_vwmul_vx_i64m1(vb , c , 2) , 2); + return simde_int64x2_from_private(r_); #else return simde_vsubq_s64(a, simde_vmull_n_s32(b, c)); #endif @@ -80192,6 +83400,13 @@ simde_vmlsl_n_u16(simde_uint32x4_t a, simde_uint16x4_t b, uint16_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_n_u16(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint32x4_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint16x4_private b_ = simde_uint16x4_to_private(b); + vuint16mf2_t vb = __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv64); + r_.sv128 = __riscv_vsub_vv_u32m1(a_.sv128 , __riscv_vwmulu_vx_u32m1(vb , c , 4) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vsubq_u32(a, simde_vmull_n_u16(b, c)); #endif @@ -80206,6 +83421,13 @@ simde_vmlsl_n_u32(simde_uint64x2_t a, simde_uint32x2_t b, uint32_t c) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vmlsl_n_u32(a, b, c); + #elif defined(SIMDE_RISCV_V_NATIVE) + simde_uint64x2_private r_; + simde_uint64x2_private a_ = simde_uint64x2_to_private(a); + simde_uint32x2_private b_ = simde_uint32x2_to_private(b); + vuint32mf2_t vb = __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv64); + r_.sv128 = __riscv_vsub_vv_u64m1(a_.sv128 , __riscv_vwmulu_vx_u64m1(vb , c , 2) , 2); + return simde_uint64x2_from_private(r_); #else return simde_vsubq_u64(a, simde_vmull_n_u32(b, c)); #endif @@ -80221,7 +83443,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MLSL_N_H) */ /* :: End simde/arm/neon/mlsl_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mmlaq.h :: */ /* SPDX-License-Identifier: MIT * @@ -80253,11 +83475,11 @@ #define SIMDE_ARM_NEON_MMLAQ_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80381,13 +83603,13 @@ #endif /* !defined(SIMDE_ARM_NEON_MMLAQ_H) */ /* :: End simde/arm/neon/mmlaq.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/movn_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -80419,11 +83641,11 @@ #define SIMDE_ARM_NEON_MOVN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80519,17 +83741,17 @@ #endif /* !defined(SIMDE_ARM_NEON_MOVN_HIGH_H) */ /* :: End simde/arm/neon/movn_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mull_high_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -80561,13 +83783,13 @@ #define SIMDE_ARM_NEON_MULL_HIGH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80707,7 +83929,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_HIGH_LANE_H) */ /* :: End simde/arm/neon/mull_high_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mull_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -80739,13 +83961,13 @@ #define SIMDE_ARM_NEON_MULL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80813,7 +84035,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MULL_HIGH_N_H) */ /* :: End simde/arm/neon/mull_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mull_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -80845,9 +84067,9 @@ #define SIMDE_ARM_NEON_MULL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -80939,9 +84161,9 @@ #endif /* !defined(SIMDE_ARM_NEON_MULL_LANE_H) */ /* :: End simde/arm/neon/mull_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mulx.h :: */ /* SPDX-License-Identifier: MIT * @@ -80973,10 +84195,10 @@ #define SIMDE_ARM_NEON_MULX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -81184,7 +84406,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MULX_H) */ /* :: End simde/arm/neon/mulx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mulx_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -81216,7 +84438,7 @@ #define SIMDE_ARM_NEON_MULX_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -81644,7 +84866,7 @@ #endif /* !defined(SIMDE_ARM_NEON_MULX_LANE_H) */ /* :: End simde/arm/neon/mulx_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/mulx_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -81676,11 +84898,11 @@ #define SIMDE_ARM_NEON_MULX_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -81720,11 +84942,11 @@ #endif /* !defined(SIMDE_ARM_NEON_MULX_N_H) */ /* :: End simde/arm/neon/mulx_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/orn.h :: */ /* SPDX-License-Identifier: MIT * @@ -81756,7 +84978,7 @@ #define SIMDE_ARM_NEON_ORN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/orr.h :: */ /* SPDX-License-Identifier: MIT * @@ -81789,7 +85011,7 @@ #define SIMDE_ARM_NEON_ORR_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -82313,9 +85535,9 @@ #endif /* !defined(SIMDE_ARM_NEON_ORR_H) */ /* :: End simde/arm/neon/orr.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -82791,9 +86013,9 @@ #endif /* !defined(SIMDE_ARM_NEON_ORN_H) */ /* :: End simde/arm/neon/orn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/padal.h :: */ /* SPDX-License-Identifier: MIT * @@ -82826,12 +86048,12 @@ #define SIMDE_ARM_NEON_PADAL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -83011,11 +86233,11 @@ #endif /* SIMDE_ARM_NEON_PADAL_H */ /* :: End simde/arm/neon/padal.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/pmax.h :: */ /* SPDX-License-Identifier: MIT * @@ -83049,13 +86271,13 @@ #define SIMDE_ARM_NEON_PMAX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -83335,7 +86557,7 @@ #endif /* !defined(SIMDE_ARM_NEON_PMAX_H) */ /* :: End simde/arm/neon/pmax.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/pmaxnm.h :: */ /* SPDX-License-Identifier: MIT * @@ -83367,13 +86589,13 @@ #define SIMDE_ARM_NEON_PMAXNM_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -83485,7 +86707,7 @@ #endif /* !defined(SIMDE_ARM_NEON_PMAXNM_H) */ /* :: End simde/arm/neon/pmaxnm.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/pmin.h :: */ /* SPDX-License-Identifier: MIT * @@ -83518,13 +86740,13 @@ #define SIMDE_ARM_NEON_PMIN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -83830,7 +87052,7 @@ #endif /* !defined(SIMDE_ARM_NEON_PMIN_H) */ /* :: End simde/arm/neon/pmin.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/pminnm.h :: */ /* SPDX-License-Identifier: MIT * @@ -83862,13 +87084,13 @@ #define SIMDE_ARM_NEON_PMINNM_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -83980,7 +87202,7 @@ #endif /* !defined(SIMDE_ARM_NEON_PMINNM_H) */ /* :: End simde/arm/neon/pminnm.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qabs.h :: */ /* SPDX-License-Identifier: MIT * @@ -84012,22 +87234,22 @@ #define SIMDE_ARM_NEON_QABS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -84306,7 +87528,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QABS_H) */ /* :: End simde/arm/neon/qabs.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qadd.h :: */ /* SPDX-License-Identifier: MIT * @@ -84339,18 +87561,18 @@ #define SIMDE_ARM_NEON_QADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include @@ -84460,6 +87682,8 @@ uint8_t m SIMDE_VECTOR(8) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsadd_vv_i8m1(a_.sv64, b_.sv64, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84497,6 +87721,8 @@ uint16_t m SIMDE_VECTOR(8) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsadd_vv_i16m1(a_.sv64, b_.sv64, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84532,6 +87758,8 @@ uint32_t m SIMDE_VECTOR(8) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsadd_vv_i32m1(a_.sv64, b_.sv64, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84567,6 +87795,8 @@ uint64_t m SIMDE_VECTOR(8) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsadd_vv_i64m1(a_.sv64, b_.sv64, 1); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84598,6 +87828,8 @@ #elif defined(SIMDE_VECTOR_SUBSCRIPT) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsaddu_vv_u8m1(a_.sv64, b_.sv64, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84629,6 +87861,8 @@ #elif defined(SIMDE_VECTOR_SUBSCRIPT) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsaddu_vv_u16m1(a_.sv64, b_.sv64, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84658,6 +87892,8 @@ #if defined(SIMDE_VECTOR_SUBSCRIPT) && !defined(SIMDE_BUG_GCC_100762) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsaddu_vv_u32m1(a_.sv64, b_.sv64, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84687,6 +87923,8 @@ #if defined(SIMDE_VECTOR_SUBSCRIPT) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vsaddu_vv_u64m1(a_.sv64, b_.sv64, 1); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84728,6 +87966,8 @@ uint8_t m SIMDE_VECTOR(16) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsadd_vv_i8m1(a_.sv128, b_.sv128, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84769,6 +88009,8 @@ uint16_t m SIMDE_VECTOR(16) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsadd_vv_i16m1(a_.sv128, b_.sv128, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84846,6 +88088,8 @@ uint32_t m SIMDE_VECTOR(16) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsadd_vv_i32m1(a_.sv128, b_.sv128, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84912,6 +88156,8 @@ uint64_t m SIMDE_VECTOR(16) = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au ^ bu) | ~(bu ^ ru)) < 0); r_.values = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (au & ~m) | (ru & m)); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsadd_vv_i64m1(a_.sv128, b_.sv128, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84947,6 +88193,8 @@ #elif defined(SIMDE_VECTOR_SUBSCRIPT) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsaddu_vv_u8m1(a_.sv128, b_.sv128, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -84982,6 +88230,8 @@ #elif defined(SIMDE_VECTOR_SUBSCRIPT) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsaddu_vv_u16m1(a_.sv128, b_.sv128, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -85032,6 +88282,8 @@ #elif defined(SIMDE_VECTOR_SUBSCRIPT) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsaddu_vv_u32m1(a_.sv128, b_.sv128, 4); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -85061,6 +88313,8 @@ #if defined(SIMDE_VECTOR_SUBSCRIPT) r_.values = a_.values + b_.values; r_.values |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values < a_.values); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vsaddu_vv_u64m1(a_.sv128, b_.sv128, 2); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -85082,7 +88336,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QADD_H) */ /* :: End simde/arm/neon/qadd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlal.h :: */ /* SPDX-License-Identifier: MIT * @@ -85114,17 +88368,17 @@ #define SIMDE_ARM_NEON_QDMLAL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -85197,7 +88451,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLAL_H) */ /* :: End simde/arm/neon/qdmlal.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlal_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -85229,13 +88483,13 @@ #define SIMDE_ARM_NEON_QDMLAL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -85288,7 +88542,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLAL_HIGH_H) */ /* :: End simde/arm/neon/qdmlal_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlal_high_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -85320,19 +88574,19 @@ #define SIMDE_ARM_NEON_QDMLAL_HIGH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -85424,7 +88678,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLAL_HIGH_LANE_H) */ /* :: End simde/arm/neon/qdmlal_high_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlal_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -85456,17 +88710,17 @@ #define SIMDE_ARM_NEON_QDMLAL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -85520,7 +88774,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLAL_HIGH_N_H) */ /* :: End simde/arm/neon/qdmlal_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlal_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -85552,13 +88806,13 @@ #define SIMDE_ARM_NEON_QDMLAL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -85650,7 +88904,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLAL_LANE_H) */ /* :: End simde/arm/neon/qdmlal_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlal_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -85682,11 +88936,11 @@ #define SIMDE_ARM_NEON_QDMLAL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -85726,7 +88980,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLAL_N_H) */ /* :: End simde/arm/neon/qdmlal_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlsl.h :: */ /* SPDX-License-Identifier: MIT * @@ -85758,17 +89012,17 @@ #define SIMDE_ARM_NEON_QDMLSL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qsub.h :: */ /* SPDX-License-Identifier: MIT * @@ -85794,24 +89048,25 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_QSUB_H) #define SIMDE_ARM_NEON_QSUB_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include @@ -85912,6 +89167,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_subs_pi8(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssub_vv_i8m1(a_.sv64, b_.sv64, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT8_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; @@ -85946,6 +89203,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_subs_pi16(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssub_vv_i16m1(a_.sv64, b_.sv64, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT16_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; @@ -85978,7 +89237,9 @@ a_ = simde_int32x2_to_private(a), b_ = simde_int32x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssub_vv_i32m1(a_.sv64, b_.sv64, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT32_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; const __typeof__(r_.values) saturate = diff_sat ^ diff; @@ -86010,7 +89271,9 @@ a_ = simde_int64x1_to_private(a), b_ = simde_int64x1_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssub_vv_i64m1(a_.sv64, b_.sv64, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT64_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; const __typeof__(r_.values) saturate = diff_sat ^ diff; @@ -86044,6 +89307,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_subs_pu8(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssubu_vv_u8m1(a_.sv64, b_.sv64, 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (r_.values <= a_.values)); @@ -86075,6 +89340,8 @@ #if defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_subs_pu16(a_.m64, b_.m64); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssubu_vv_u16m1(a_.sv64, b_.sv64, 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (r_.values <= a_.values)); @@ -86104,7 +89371,9 @@ a_ = simde_uint32x2_to_private(a), b_ = simde_uint32x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssubu_vv_u32m1(a_.sv64, b_.sv64, 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (r_.values <= a_.values)); #else @@ -86133,7 +89402,9 @@ a_ = simde_uint64x1_to_private(a), b_ = simde_uint64x1_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vssubu_vv_u64m1(a_.sv64, b_.sv64, 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (r_.values <= a_.values)); #else @@ -86168,6 +89439,8 @@ r_.v128 = wasm_i8x16_sub_sat(a_.v128, b_.v128); #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_subs_epi8(a_.m128i, b_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssub_vv_i8m1(a_.sv128 , b_.sv128 , 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT8_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; @@ -86206,6 +89479,8 @@ r_.v128 = wasm_i16x8_sub_sat(a_.v128, b_.v128); #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_subs_epi16(a_.m128i, b_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssub_vv_i16m1(a_.sv128 , b_.sv128 , 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT16_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; @@ -86257,6 +89532,8 @@ #else r_.m128i = _mm_xor_si128(diff, _mm_and_si128(t, _mm_srai_epi32(t, 31))); #endif + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssub_vv_i32m1(a_.sv128 , b_.sv128 , 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT32_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; @@ -86289,7 +89566,9 @@ a_ = simde_int64x2_to_private(a), b_ = simde_int64x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssub_vv_i64m1(a_.sv128 , b_.sv128 , 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) const __typeof__(r_.values) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (b_.values > a_.values) ^ INT64_MAX); const __typeof__(r_.values) diff = a_.values - b_.values; const __typeof__(r_.values) saturate = diff_sat ^ diff; @@ -86327,6 +89606,8 @@ r_.v128 = wasm_u8x16_sub_sat(a_.v128, b_.v128); #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_subs_epu8(a_.m128i, b_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssubu_vv_u8m1(a_.sv128 , b_.sv128 , 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values <= a_.values); @@ -86362,6 +89643,8 @@ r_.v128 = wasm_u16x8_sub_sat(a_.v128, b_.v128); #elif defined(SIMDE_X86_SSE2_NATIVE) r_.m128i = _mm_subs_epu16(a_.m128i, b_.m128i); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssubu_vv_u16m1(a_.sv128 , b_.sv128 , 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), r_.values <= a_.values); @@ -86407,6 +89690,8 @@ _mm_set1_epi32(~INT32_C(0)) ) ); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssubu_vv_u32m1(a_.sv128 , b_.sv128 , 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (r_.values <= a_.values)); @@ -86439,7 +89724,9 @@ a_ = simde_uint64x2_to_private(a), b_ = simde_uint64x2_to_private(b); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vssubu_vv_u64m1(a_.sv128 , b_.sv128 , 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = a_.values - b_.values; r_.values &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (r_.values <= a_.values)); #else @@ -86463,7 +89750,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSUB_H) */ /* :: End simde/arm/neon/qsub.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -86536,7 +89823,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLSL_H) */ /* :: End simde/arm/neon/qdmlsl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlsl_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -86568,15 +89855,15 @@ #define SIMDE_ARM_NEON_QDMLSL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -86626,7 +89913,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLSL_HIGH_H) */ /* :: End simde/arm/neon/qdmlsl_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlsl_high_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -86658,17 +89945,17 @@ #define SIMDE_ARM_NEON_QDMLSL_HIGH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -86760,7 +90047,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLSL_HIGH_LANE_H) */ /* :: End simde/arm/neon/qdmlsl_high_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlsl_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -86792,17 +90079,17 @@ #define SIMDE_ARM_NEON_QDMLSL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -86856,7 +90143,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLSL_HIGH_N_H) */ /* :: End simde/arm/neon/qdmlsl_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlsl_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -86888,13 +90175,13 @@ #define SIMDE_ARM_NEON_QDMLSL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -86986,7 +90273,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDmlsl_LANE_H) */ /* :: End simde/arm/neon/qdmlsl_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmlsl_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -87018,11 +90305,11 @@ #define SIMDE_ARM_NEON_QDMLSL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87062,7 +90349,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMLSL_N_H) */ /* :: End simde/arm/neon/qdmlsl_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmulh.h :: */ /* SPDX-License-Identifier: MIT * @@ -87096,16 +90383,16 @@ #define SIMDE_ARM_NEON_QDMULH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmull.h :: */ /* SPDX-License-Identifier: MIT * @@ -87133,6 +90420,7 @@ * 2020 Evan Nemerson * 2020 Sean Maher (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ /* Implementation notes (seanptmaher): @@ -87146,7 +90434,7 @@ #define SIMDE_ARM_NEON_QDMULL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87207,11 +90495,17 @@ simde_int16x4_private a_ = simde_int16x4_to_private(a), b_ = simde_int16x4_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqdmullh_s16(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m2_t mul = __riscv_vwmul_vv_i32m2(a_.sv64, b_.sv64, 4); + r_.sv128 = __riscv_vlmul_trunc_v_i32m2_i32m1(__riscv_vmerge_vxm_i32m2(__riscv_vmerge_vxm_i32m2( + __riscv_vsll_vx_i32m2(mul, 1, 4), INT32_MAX, __riscv_vmsgt_vx_i32m2_b16(mul, INT32_C(0x3FFFFFFF), 4), 4), + INT32_MIN, __riscv_vmslt_vx_i32m2_b16(mul, -INT32_C(0x40000000), 4), 4)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vqdmullh_s16(a_.values[i], b_.values[i]); + } + #endif return simde_int32x4_from_private(r_); #endif @@ -87247,10 +90541,17 @@ a_ = simde_int32x2_to_private(a), b_ = simde_int32x2_to_private(b); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vqdmulls_s32(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m2_t mul = __riscv_vwmul_vv_i64m2(a_.sv64, b_.sv64, 2); + r_.sv128 = __riscv_vlmul_trunc_v_i64m2_i64m1(__riscv_vmerge_vxm_i64m2(__riscv_vmerge_vxm_i64m2( + __riscv_vsll_vx_i64m2(mul, 1, 2), INT64_MAX, __riscv_vmsgt_vx_i64m2_b32(mul, INT64_C(0x3FFFFFFFFFFFFFFF), 2), 2), + INT64_MIN, __riscv_vmslt_vx_i64m2_b32(mul, -INT64_C(0x4000000000000000), 2), 2)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vqdmulls_s32(a_.values[i], b_.values[i]); + } + #endif return simde_int64x2_from_private(r_); #endif @@ -87266,7 +90567,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_H) */ /* :: End simde/arm/neon/qdmull.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87407,7 +90708,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULH_H) */ /* :: End simde/arm/neon/qdmulh.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmulh_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -87441,10 +90742,10 @@ #define SIMDE_ARM_NEON_QDMULH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmulh_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -87476,9 +90777,9 @@ #define SIMDE_ARM_NEON_QDMULH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87530,7 +90831,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULH_N_H) */ /* :: End simde/arm/neon/qdmulh_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87684,11 +90985,11 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULH_LANE_H) */ /* :: End simde/arm/neon/qdmulh_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmull_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -87720,11 +91021,11 @@ #define SIMDE_ARM_NEON_QDMULL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87764,7 +91065,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_HIGH_H) */ /* :: End simde/arm/neon/qdmull_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmull_high_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -87796,13 +91097,13 @@ #define SIMDE_ARM_NEON_QDMULL_HIGH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87879,7 +91180,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_HIGH_LANE_H) */ /* :: End simde/arm/neon/qdmull_high_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmull_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -87911,13 +91212,13 @@ #define SIMDE_ARM_NEON_QDMULL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -87957,7 +91258,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_HIGH_N_H) */ /* :: End simde/arm/neon/qdmull_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmull_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -87989,9 +91290,9 @@ #define SIMDE_ARM_NEON_QDMULL_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -88169,7 +91470,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_H) */ /* :: End simde/arm/neon/qdmull_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qdmull_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -88201,11 +91502,11 @@ #define SIMDE_ARM_NEON_QDMULL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -88245,7 +91546,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QDMULL_N_H) */ /* :: End simde/arm/neon/qdmull_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmlah.h :: */ /* SPDX-License-Identifier: MIT * @@ -88277,9 +91578,9 @@ #define SIMDE_ARM_NEON_QRDMLAH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qmovn.h :: */ /* SPDX-License-Identifier: MIT * @@ -88312,15 +91613,15 @@ #define SIMDE_ARM_NEON_QMOVN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -88717,7 +92018,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMLAH_H) */ /* :: End simde/arm/neon/qrdmlah.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmlah_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -88749,13 +92050,13 @@ #define SIMDE_ARM_NEON_QRDMLAH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -88887,7 +92188,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMLAH_LANE_H) */ /* :: End simde/arm/neon/qrdmlah_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmlsh.h :: */ /* SPDX-License-Identifier: MIT * @@ -88919,9 +92220,9 @@ #define SIMDE_ARM_NEON_QRDMLSH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -89079,7 +92380,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMLSH_H) */ /* :: End simde/arm/neon/qrdmlsh.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmlsh_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -89111,13 +92412,13 @@ #define SIMDE_ARM_NEON_QRDMLSH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -89249,7 +92550,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMLSH_LANE_H) */ /* :: End simde/arm/neon/qrdmlsh_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmulh.h :: */ /* SPDX-License-Identifier: MIT * @@ -89282,7 +92583,7 @@ #define SIMDE_ARM_NEON_QRDMULH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -89450,7 +92751,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMULH_H) */ /* :: End simde/arm/neon/qrdmulh.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmulh_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -89483,13 +92784,13 @@ #define SIMDE_ARM_NEON_QRDMULH_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -89631,7 +92932,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMULH_LANE_H) */ /* :: End simde/arm/neon/qrdmulh_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrdmulh_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -89664,12 +92965,12 @@ #define SIMDE_ARM_NEON_QRDMULH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -89774,7 +93075,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRDMULH_H) */ /* :: End simde/arm/neon/qrdmulh_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrshl.h :: */ /* SPDX-License-Identifier: MIT * @@ -89805,7 +93106,7 @@ #if !defined(SIMDE_ARM_NEON_QRSHL_H) #define SIMDE_ARM_NEON_QRSHL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/avx.h :: */ /* SPDX-License-Identifier: MIT * @@ -89835,7 +93136,7 @@ */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/sse.h :: */ /* SPDX-License-Identifier: MIT * @@ -89870,7 +93171,7 @@ #define SIMDE_X86_SSE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/mmx.h :: */ /* SPDX-License-Identifier: MIT * @@ -89902,7 +93203,7 @@ #define SIMDE_X86_MMX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -92273,17 +95574,62 @@ #endif /* !defined(SIMDE_X86_MMX_H) */ /* :: End simde/x86/mmx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ - -#if defined(_WIN32) && !defined(SIMDE_X86_SSE_NATIVE) && defined(_MSC_VER) - #define NOMINMAX - #include -#endif +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if defined(__ARM_ACLE) #include #endif +#ifdef _MSC_VER + #if defined(SIMDE_ARCH_AARCH64) + #include + + typedef enum simde_tag_ARM64INTR_BARRIER_TYPE + { + SIMDE_ARM64_BARRIER_SY = 0xF, + } + SIMDE_ARM64INTR_BARRIER_TYPE; + + HEDLEY_ALWAYS_INLINE + void simde_MemoryBarrier(void) { + __dmb(SIMDE_ARM64_BARRIER_SY); + } + #elif defined(SIMDE_ARCH_ARM) + #include + + typedef enum simde_tag_ARMINTR_BARRIER_TYPE + { + SIMDE_ARM_BARRIER_SY = 0xF, + } + SIMDE_ARMINTR_BARRIER_TYPE; + + HEDLEY_ALWAYS_INLINE + void simde_MemoryBarrier(void) { + __dmb(SIMDE_ARM_BARRIER_SY); + } + #elif defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) || defined(SIMDE_ARCH_E2K) + #if !defined(SIMDE_X86_SSE_NO_NATIVE) + #include + #endif + + HEDLEY_ALWAYS_INLINE + void simde_MemoryBarrier(void) { + #if defined(SIMDE_X86_SSE_NO_NATIVE) + ((void)0); // intentionally no-op + #elif defined(SIMDE_ARCH_AMD64) + __faststorefence(); + #elif defined(SIMDE_ARCH_IA64) + __mf(); + #else + long Barrier; + __asm { xchg Barrier, eax } + #endif + } + #else + #error "Missing implementation" + #endif +#endif + HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS SIMDE_BEGIN_DECLS_ @@ -92861,7 +96207,7 @@ r_.f32[i] = simde_math_nearbyintf(a_.f32[i]); } #else - HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_pd()); + HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_ps()); #endif break; @@ -92871,7 +96217,7 @@ #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndnq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrne_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrne_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_nearest(a_.wasm_v128); #elif defined(simde_math_roundevenf) @@ -92880,7 +96226,7 @@ r_.f32[i] = simde_math_roundevenf(a_.f32[i]); } #else - HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_pd()); + HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_ps()); #endif break; @@ -92890,7 +96236,7 @@ #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndmq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrm_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrm_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_floor(a_.wasm_v128); #elif defined(simde_math_floorf) @@ -92899,7 +96245,7 @@ r_.f32[i] = simde_math_floorf(a_.f32[i]); } #else - HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_pd()); + HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_ps()); #endif break; @@ -92909,7 +96255,7 @@ #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndpq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrp_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrp_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_ceil(a_.wasm_v128); #elif defined(simde_math_ceilf) @@ -92918,7 +96264,7 @@ r_.f32[i] = simde_math_ceilf(a_.f32[i]); } #else - HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_pd()); + HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_ps()); #endif break; @@ -92928,7 +96274,7 @@ #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) r_.neon_f32 = vrndq_f32(a_.neon_f32); #elif defined(SIMDE_LOONGARCH_LSX_NATIVE) - r_.lsx_i64 = __lsx_vfrintrz_s(a_.lsx_f32); + r_.lsx_f32 = __lsx_vfrintrz_s(a_.lsx_f32); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.wasm_v128 = wasm_f32x4_trunc(a_.wasm_v128); #elif defined(simde_math_truncf) @@ -92937,12 +96283,12 @@ r_.f32[i] = simde_math_truncf(a_.f32[i]); } #else - HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_pd()); + HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_ps()); #endif break; default: - HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_pd()); + HEDLEY_UNREACHABLE_RETURN(simde_mm_undefined_ps()); } return simde__m128_from_private(r_); @@ -96249,7 +99595,7 @@ atomic_thread_fence(memory_order_seq_cst); #endif #elif defined(_MSC_VER) - MemoryBarrier(); + simde_MemoryBarrier(); #elif HEDLEY_HAS_EXTENSION(c_atomic) __c11_atomic_thread_fence(__ATOMIC_SEQ_CST); #elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) @@ -97075,7 +100421,7 @@ #define SIMDE_X86_AVX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/sse4.2.h :: */ /* SPDX-License-Identifier: MIT * @@ -97108,7 +100454,7 @@ #define SIMDE_X86_SSE4_2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/sse4.1.h :: */ /* SPDX-License-Identifier: MIT * @@ -97137,12 +100483,12 @@ */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if !defined(SIMDE_X86_SSE4_1_H) #define SIMDE_X86_SSE4_1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/ssse3.h :: */ /* SPDX-License-Identifier: MIT * @@ -97174,7 +100520,7 @@ #define SIMDE_X86_SSSE3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/sse3.h :: */ /* SPDX-License-Identifier: MIT * @@ -97206,7 +100552,7 @@ #define SIMDE_X86_SSE3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/x86/sse2.h :: */ /* SPDX-License-Identifier: MIT * @@ -97243,9 +100589,9 @@ #define SIMDE_X86_SSE2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -97886,8 +101232,6 @@ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) r_.neon_f64 = vaddq_f64(a_.neon_f64, b_.neon_f64); - #elif defined(SIMDE_WASM_SIMD128_NATIVE) - r_.wasm_v128 = wasm_f64x2_add(a_.wasm_v128, b_.wasm_v128); #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) r_.altivec_f64 = vec_add(a_.altivec_f64, b_.altivec_f64); #elif defined(SIMDE_WASM_SIMD128_NATIVE) @@ -100762,12 +104106,11 @@ #else simde__m128i_private r_; - int64_t value; - simde_memcpy(&value, mem_addr, sizeof(value)); - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) r_.neon_i64 = vcombine_s64(vld1_s64(HEDLEY_REINTERPRET_CAST(int64_t const *, mem_addr)), vdup_n_s64(0)); #else + int64_t value; + simde_memcpy(&value, mem_addr, sizeof(value)); r_.i64[0] = value; r_.i64[1] = 0; #endif @@ -101990,7 +105333,7 @@ #endif #elif defined(SIMDE_ARCH_ARM_NEON) #if defined(_MSC_VER) - __isb(_ARM64_BARRIER_SY); + __isb(SIMDE_ARM64_BARRIER_SY); #else __asm__ __volatile__("isb\n"); #endif @@ -102026,6 +105369,14 @@ r_.neon_u64 = vcombine_u64( vpaddl_u32(vpaddl_u16(vget_low_u16(t))), vpaddl_u32(vpaddl_u16(vget_high_u16(t)))); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_v128_or(wasm_u8x16_sub_sat(a_.wasm_v128, b_.wasm_v128), + wasm_u8x16_sub_sat(b_.wasm_v128, a_.wasm_v128)); + tmp = wasm_i16x8_add(wasm_u16x8_shr(tmp, 8), + wasm_v128_and(tmp, wasm_i16x8_splat(0x00FF))); + tmp = wasm_i16x8_add(tmp, wasm_i32x4_shl(tmp, 16)); + tmp = wasm_i16x8_add(tmp, wasm_i64x2_shl(tmp, 32)); + r_.wasm_v128 = wasm_u64x2_shr(tmp, 48); #else for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { uint16_t tmp = 0; @@ -108804,9 +112155,10 @@ #endif /* !defined(SIMDE_X86_SSE4_1_H) */ /* :: End simde/x86/sse4.1.h :: */ -#if defined(__ARM_ACLE) || (defined(__GNUC__) && defined(__ARM_FEATURE_CRC32)) +#if defined(__ARM_ACLE) || (defined(__GNUC__) && defined(SIMDE_ARCH_ARM_CRC32)) #include #endif +// ^^ Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70974 HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -109069,17 +112421,25 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) return _mm_crc32_u8(prevcrc, v); #else - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32cb(prevcrc, v); #else uint32_t crc = prevcrc; crc ^= v; - for(int bit = 0 ; bit < 8 ; bit++) { - if (crc & 1) - crc = (crc >> 1) ^ UINT32_C(0x82f63b78); - else - crc = (crc >> 1); - } + // Adapted from: https://create.stephan-brumme.com/crc32/ + // Apply half-byte comparision algorithm for the best ratio between + // performance and lookup table. + + // The lookup table just needs to store every 16th entry + // of the standard look-up table. + static const uint32_t crc32_half_byte_tbl[] = { + 0x00000000, 0x105ec76f, 0x20bd8ede, 0x30e349b1, 0x417b1dbc, 0x5125dad3, + 0x61c69362, 0x7198540d, 0x82f63b78, 0x92a8fc17, 0xa24bb5a6, 0xb21572c9, + 0xc38d26c4, 0xd3d3e1ab, 0xe330a81a, 0xf36e6f75, + }; + + crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0f]; + crc = (crc >> 4) ^ crc32_half_byte_tbl[crc & 0x0f]; return crc; #endif #endif @@ -109094,7 +112454,7 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) return _mm_crc32_u16(prevcrc, v); #else - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32ch(prevcrc, v); #else uint32_t crc = prevcrc; @@ -109114,7 +112474,7 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) return _mm_crc32_u32(prevcrc, v); #else - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32cw(prevcrc, v); #else uint32_t crc = prevcrc; @@ -109134,7 +112494,7 @@ #if defined(SIMDE_X86_SSE4_2_NATIVE) && defined(SIMDE_ARCH_AMD64) return _mm_crc32_u64(prevcrc, v); #else - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(__ARM_FEATURE_CRC32) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRC32) return __crc32cd(HEDLEY_STATIC_CAST(uint32_t, prevcrc), v); #else uint64_t crc = prevcrc; @@ -109155,7 +112515,7 @@ #endif /* !defined(SIMDE_X86_SSE4_2_H) */ /* :: End simde/x86/sse4.2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -111208,7 +114568,11 @@ simde__m256_private r_, a_ = simde__m256_to_private(a); - + #if SIMDE_NATURAL_VECTOR_SIZE_LE(128) && !defined(SIMDE_STATEMENT_EXPR_) + for (size_t i = 0 ; i < (sizeof(r_.m128) / sizeof(r_.m128[0])) ; i++) { + SIMDE_CONSTIFY_16_(simde_mm_round_ps, r_.m128[i], (HEDLEY_UNREACHABLE(), simde_mm_undefined_ps()), rounding, a_.m128[i]); + } + #else switch (rounding & ~SIMDE_MM_FROUND_NO_EXC) { #if defined(simde_math_nearbyintf) case SIMDE_MM_FROUND_CUR_DIRECTION: @@ -111253,7 +114617,7 @@ default: HEDLEY_UNREACHABLE_RETURN(simde_mm256_undefined_ps()); } - + #endif return simde__m256_from_private(r_); } #if defined(SIMDE_X86_AVX_NATIVE) @@ -111282,6 +114646,11 @@ simde__m256d_private r_, a_ = simde__m256d_to_private(a); + #if SIMDE_NATURAL_VECTOR_SIZE_LE(128) && !defined(SIMDE_STATEMENT_EXPR_) + for (size_t i = 0 ; i < (sizeof(r_.m128d) / sizeof(r_.m128d[0])) ; i++) { + SIMDE_CONSTIFY_16_(simde_mm_round_pd, r_.m128d[i], (HEDLEY_UNREACHABLE(), simde_mm_undefined_pd()), rounding, a_.m128d[i]); + } + #else switch (rounding & ~SIMDE_MM_FROUND_NO_EXC) { #if defined(simde_math_nearbyint) @@ -111327,7 +114696,7 @@ default: HEDLEY_UNREACHABLE_RETURN(simde_mm256_undefined_pd()); } - + #endif return simde__m256d_from_private(r_); } #if defined(SIMDE_X86_AVX_NATIVE) @@ -112019,6 +115388,11 @@ a_ = simde__m256_to_private(a), b_ = simde__m256_to_private(b); + #if defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(128) + for (size_t i = 0 ; i < (sizeof(r_.m128) / sizeof(r_.m128[0])) ; i++) { + SIMDE_CONSTIFY_32_(simde_mm_cmp_ps, r_.m128[i], (HEDLEY_UNREACHABLE(), simde_mm_undefined_ps()), imm8, a_.m128[i], b_.m128[i]); + } + #else switch (imm8) { case SIMDE_CMP_EQ_OQ: case SIMDE_CMP_EQ_OS: @@ -112201,7 +115575,7 @@ default: HEDLEY_UNREACHABLE(); } - + #endif return simde__m256_from_private(r_); } #if defined(__clang__) && defined(__AVX512DQ__) @@ -112223,7 +115597,7 @@ simde_mm256_cmp_ps_r; \ })) #elif defined(SIMDE_X86_AVX_NATIVE) - #define simde_mm256_cmp_ps(a, b, imm8) _mm256_cmp_ps(a, b, imm8) + #define simde_mm256_cmp_ps(a, b, imm8) _mm256_cmp_ps((a), (b), (imm8)) #elif defined(SIMDE_STATEMENT_EXPR_) && SIMDE_NATURAL_VECTOR_SIZE_LE(128) #define simde_mm256_cmp_ps(a, b, imm8) SIMDE_STATEMENT_EXPR_(({ \ simde__m256_private \ @@ -112909,6 +116283,12 @@ simde_mm256_loadu_pd (const double a[HEDLEY_ARRAY_PARAM(4)]) { #if defined(SIMDE_X86_AVX_NATIVE) return _mm256_loadu_pd(a); + #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) + simde__m256d_private r_; + for (size_t i = 0 ; i < (sizeof(r_.m128d) / sizeof(r_.m128d[0])) ; i++) { + r_.m128d[i] = simde_mm_loadu_pd(a + 2*i); + } + return simde__m256d_from_private(r_); #else simde__m256d r; simde_memcpy(&r, a, sizeof(r)); @@ -114397,6 +117777,11 @@ simde_mm256_storeu_pd (simde_float64 mem_addr[4], simde__m256d a) { #if defined(SIMDE_X86_AVX_NATIVE) _mm256_storeu_pd(mem_addr, a); + #elif SIMDE_NATURAL_VECTOR_SIZE_LE(128) + simde__m256d_private a_ = simde__m256d_to_private(a); + for (size_t i = 0 ; i < (sizeof(a_.m128d) / sizeof(a_.m128d[0])) ; i++) { + simde_mm_storeu_pd(mem_addr + 2*i, a_.m128d[i]); + } #else simde_memcpy(mem_addr, &a, sizeof(a)); #endif @@ -115392,7 +118777,7 @@ #endif /* !defined(SIMDE_X86_AVX_H) */ /* :: End simde/x86/avx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -116109,7 +119494,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRSHL_H) */ /* :: End simde/arm/neon/qrshl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrshrn_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -116141,11 +119526,11 @@ #define SIMDE_ARM_NEON_QRSHRN_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -116305,7 +119690,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSHRN_HIGH_N_H) */ /* :: End simde/arm/neon/qrshrn_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrshrn_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -116338,9 +119723,9 @@ #define SIMDE_ARM_NEON_QRSHRN_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rshr_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -116374,19 +119759,19 @@ #define SIMDE_ARM_NEON_RSHR_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/tst.h :: */ /* SPDX-License-Identifier: MIT * @@ -116420,23 +119805,23 @@ #define SIMDE_ARM_NEON_TST_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -117064,7 +120449,7 @@ #endif /* !defined(SIMDE_ARM_NEON_TST_H) */ /* :: End simde/arm/neon/tst.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -117556,7 +120941,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSHR_N_H) */ /* :: End simde/arm/neon/rshr_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -117689,7 +121074,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRSHRN_N_H) */ /* :: End simde/arm/neon/qrshrn_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrshrun_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -117721,11 +121106,11 @@ #define SIMDE_ARM_NEON_QRSHRUN_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -117809,7 +121194,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QRSHRUN_HIGH_N_H) */ /* :: End simde/arm/neon/qrshrun_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qrshrun_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -117842,11 +121227,11 @@ #define SIMDE_ARM_NEON_QRSHRUN_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qmovun.h :: */ /* SPDX-License-Identifier: MIT * @@ -117879,15 +121264,15 @@ #define SIMDE_ARM_NEON_QMOVUN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -118096,9 +121481,9 @@ #endif /* !defined(SIMDE_ARM_NEON_QRSHRUN_N_H) */ /* :: End simde/arm/neon/qrshrun_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qmovn_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -118131,12 +121516,12 @@ #define SIMDE_ARM_NEON_QMOVN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -118232,9 +121617,9 @@ #endif /* !defined(SIMDE_ARM_NEON_QMOVN_HIGH_H) */ /* :: End simde/arm/neon/qmovn_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qmovun_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -118266,12 +121651,12 @@ #define SIMDE_ARM_NEON_QMOVUN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -118325,7 +121710,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QMOVUN_HIGH_H) */ /* :: End simde/arm/neon/qmovun_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qneg.h :: */ /* SPDX-License-Identifier: MIT * @@ -118357,15 +121742,15 @@ #define SIMDE_ARM_NEON_QNEG_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if !defined(SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE) || 1 /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #endif HEDLEY_DIAGNOSTIC_PUSH @@ -118634,9 +122019,9 @@ #endif /* !defined(SIMDE_ARM_NEON_QNEG_H) */ /* :: End simde/arm/neon/qneg.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshl.h :: */ /* SPDX-License-Identifier: MIT * @@ -118670,9 +122055,9 @@ #define SIMDE_ARM_NEON_QSHL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -119375,7 +122760,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHL_H) */ /* :: End simde/arm/neon/qshl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshl_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -119407,11 +122792,11 @@ #define SIMDE_ARM_NEON_QSHL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -119895,7 +123280,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHL_N_H) */ /* :: End simde/arm/neon/qshl_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshlu_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -119922,24 +123307,25 @@ * Copyright: * 2021 Atharva Nimbalkar * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_QSHLU_N_H) #define SIMDE_ARM_NEON_QSHLU_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if defined(SIMDE_WASM_SIMD128_NATIVE) /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #endif HEDLEY_DIAGNOSTIC_PUSH @@ -120027,8 +123413,11 @@ #else simde_int8x8_private a_ = simde_int8x8_to_private(a); simde_uint8x8_private r_; - - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t shift = __riscv_vsll_vx_u8m1(__riscv_vreinterpret_v_i8m1_u8m1(a_.sv64), n, 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(shift, UINT8_MAX, __riscv_vmsne_vv_u8m1_b8(__riscv_vsrl_vx_u8m1(shift, n, 8), __riscv_vreinterpret_v_i8m1_u8m1(a_.sv64), 8), 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, 0, __riscv_vmslt_vx_i8m1_b8(a_.sv64, 0, 8), 8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; __typeof__(r_.values) overflow = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (shifted >> n) != HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values)); @@ -120073,8 +123462,11 @@ #else simde_int16x4_private a_ = simde_int16x4_to_private(a); simde_uint16x4_private r_; - - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16m1_t shift = __riscv_vsll_vx_u16m1(__riscv_vreinterpret_v_i16m1_u16m1(a_.sv64), n, 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(shift, UINT16_MAX, __riscv_vmsne_vv_u16m1_b16(__riscv_vsrl_vx_u16m1(shift, n, 4), __riscv_vreinterpret_v_i16m1_u16m1(a_.sv64), 4), 4); + r_.sv64 = __riscv_vmerge_vxm_u16m1(r_.sv64, 0, __riscv_vmslt_vx_i16m1_b16(a_.sv64, 0, 4), 4); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; __typeof__(r_.values) overflow = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (shifted >> n) != HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values)); @@ -120122,7 +123514,11 @@ simde_int32x2_private a_ = simde_int32x2_to_private(a); simde_uint32x2_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32m1_t shift = __riscv_vsll_vx_u32m1(__riscv_vreinterpret_v_i32m1_u32m1(a_.sv64), n, 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(shift, UINT32_MAX, __riscv_vmsne_vv_u32m1_b32(__riscv_vsrl_vx_u32m1(shift, n, 2), __riscv_vreinterpret_v_i32m1_u32m1(a_.sv64), 2), 2); + r_.sv64 = __riscv_vmerge_vxm_u32m1(r_.sv64, 0, __riscv_vmslt_vx_i32m1_b32(a_.sv64, 0, 2), 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) && !defined(SIMDE_BUG_GCC_100762) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; __typeof__(r_.values) overflow = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (shifted >> n) != HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values)); @@ -120169,7 +123565,11 @@ simde_int64x1_private a_ = simde_int64x1_to_private(a); simde_uint64x1_private r_; - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t shift = __riscv_vsll_vx_u64m1(__riscv_vreinterpret_v_i64m1_u64m1(a_.sv64), n, 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(shift, UINT64_MAX, __riscv_vmsne_vv_u64m1_b64(__riscv_vsrl_vx_u64m1(shift, n, 1), __riscv_vreinterpret_v_i64m1_u64m1(a_.sv64), 1), 1); + r_.sv64 = __riscv_vmerge_vxm_u64m1(r_.sv64, 0, __riscv_vmslt_vx_i64m1_b64(a_.sv64, 0, 1), 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; __typeof__(r_.values) overflow = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), (shifted >> n) != HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values)); @@ -120209,6 +123609,10 @@ const v128_t overflow = wasm_i8x16_ne(a_.v128, wasm_u8x16_shr(r_.v128, HEDLEY_STATIC_CAST(uint32_t, n))); r_.v128 = wasm_v128_or(r_.v128, overflow); r_.v128 = wasm_v128_andnot(r_.v128, wasm_i8x16_shr(a_.v128, 7)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t shift = __riscv_vsll_vx_u8m1(__riscv_vreinterpret_v_i8m1_u8m1(a_.sv128), n, 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(shift, UINT8_MAX, __riscv_vmsne_vv_u8m1_b8(__riscv_vsrl_vx_u8m1(shift, n, 16), __riscv_vreinterpret_v_i8m1_u8m1(a_.sv128), 16), 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, 0, __riscv_vmslt_vx_i8m1_b8(a_.sv128, 0, 16), 16); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; @@ -120248,6 +123652,10 @@ const v128_t overflow = wasm_i16x8_ne(a_.v128, wasm_u16x8_shr(r_.v128, HEDLEY_STATIC_CAST(uint32_t, n))); r_.v128 = wasm_v128_or(r_.v128, overflow); r_.v128 = wasm_v128_andnot(r_.v128, wasm_i16x8_shr(a_.v128, 15)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint16m1_t shift = __riscv_vsll_vx_u16m1(__riscv_vreinterpret_v_i16m1_u16m1(a_.sv128), n, 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(shift, UINT16_MAX, __riscv_vmsne_vv_u16m1_b16(__riscv_vsrl_vx_u16m1(shift, n, 8), __riscv_vreinterpret_v_i16m1_u16m1(a_.sv128), 8), 8); + r_.sv128 = __riscv_vmerge_vxm_u16m1(r_.sv128, 0, __riscv_vmslt_vx_i16m1_b16(a_.sv128, 0, 8), 8); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; @@ -120287,6 +123695,10 @@ const v128_t overflow = wasm_i32x4_ne(a_.v128, wasm_u32x4_shr(r_.v128, HEDLEY_STATIC_CAST(uint32_t, n))); r_.v128 = wasm_v128_or(r_.v128, overflow); r_.v128 = wasm_v128_andnot(r_.v128, wasm_i32x4_shr(a_.v128, 31)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint32m1_t shift = __riscv_vsll_vx_u32m1(__riscv_vreinterpret_v_i32m1_u32m1(a_.sv128), n, 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(shift, UINT32_MAX, __riscv_vmsne_vv_u32m1_b32(__riscv_vsrl_vx_u32m1(shift, n, 4), __riscv_vreinterpret_v_i32m1_u32m1(a_.sv128), 4), 4); + r_.sv128 = __riscv_vmerge_vxm_u32m1(r_.sv128, 0, __riscv_vmslt_vx_i32m1_b32(a_.sv128, 0, 4), 4); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; @@ -120326,6 +123738,10 @@ const v128_t overflow = wasm_i64x2_ne(a_.v128, wasm_u64x2_shr(r_.v128, HEDLEY_STATIC_CAST(uint32_t, n))); r_.v128 = wasm_v128_or(r_.v128, overflow); r_.v128 = wasm_v128_andnot(r_.v128, wasm_i64x2_shr(a_.v128, 63)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t shift = __riscv_vsll_vx_u64m1(__riscv_vreinterpret_v_i64m1_u64m1(a_.sv128), n, 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(shift, UINT64_MAX, __riscv_vmsne_vv_u64m1_b64(__riscv_vsrl_vx_u64m1(shift, n, 2), __riscv_vreinterpret_v_i64m1_u64m1(a_.sv128), 2), 2); + r_.sv128 = __riscv_vmerge_vxm_u64m1(r_.sv128, 0, __riscv_vmslt_vx_i64m1_b64(a_.sv128, 0, 2), 2); #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) __typeof__(r_.values) shifted = HEDLEY_REINTERPRET_CAST(__typeof__(r_.values), a_.values) << n; @@ -120359,7 +123775,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHLU_N_H) */ /* :: End simde/arm/neon/qshlu_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshrn_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -120391,11 +123807,11 @@ #define SIMDE_ARM_NEON_QSHRN_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -120467,7 +123883,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHRN_HIGH_N_H) */ /* :: End simde/arm/neon/qshrn_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshrn_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -120501,11 +123917,11 @@ #define SIMDE_ARM_NEON_QSHRN_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -120638,7 +124054,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHRN_N_H) */ /* :: End simde/arm/neon/qshrn_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshrun_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -120670,11 +124086,11 @@ #define SIMDE_ARM_NEON_QSHRUN_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -120758,7 +124174,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHRUN_HIGH_N_H) */ /* :: End simde/arm/neon/qshrun_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qshrun_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -120791,11 +124207,11 @@ #define SIMDE_ARM_NEON_QSHRUN_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -120867,7 +124283,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QSHRUN_N_H) */ /* :: End simde/arm/neon/qshrun_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qtbl.h :: */ /* SPDX-License-Identifier: MIT * @@ -120895,15 +124311,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_QTBL_H) #define SIMDE_ARM_NEON_QTBL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -120928,6 +124345,10 @@ __m128i idx128 = _mm_set1_epi64(idx_.m64); __m128i r128 = _mm_shuffle_epi8(t_.m128i, _mm_or_si128(idx128, _mm_cmpgt_epi8(idx128, _mm_set1_epi8(15)))); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (idx_.sv64, 16, 8); + r_.sv64 = __riscv_vrgather_vv_u8m1(t_.sv128 , idx_.sv64 , 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, 0, mask, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -120981,6 +124402,14 @@ __m128i r128_1 = _mm_shuffle_epi8(t_[1].m128i, idx128); __m128i r128 = _mm_blendv_epi8(r128_0, r128_1, _mm_slli_epi32(idx128, 3)); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[0].sv128); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[1].sv128); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t1 , t2 , 16 , 32); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(idx_.sv64); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 32, 8); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vxm_u8m2(r_tmp, 0, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121042,6 +124471,16 @@ __m128i r128_2 = _mm_shuffle_epi8(t_[2].m128i, idx128); __m128i r128 = _mm_blendv_epi8(r128_01, r128_2, _mm_slli_epi32(idx128, 2)); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t2 , t3 , 16 , 48); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 48); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv64); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 48, 8); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vxm_u8m4(r_tmp, 0, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121106,6 +124545,18 @@ __m128i r128_23 = _mm_blendv_epi8(r128_2, r128_3, idx128_shl3); __m128i r128 = _mm_blendv_epi8(r128_01, r128_23, _mm_slli_epi32(idx128, 2)); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t t4 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[3].sv128); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t3 , t4 , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t2 , t_combine , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 64); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv64); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 64, 8); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vxm_u8m4(r_tmp, 0, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121162,6 +124613,10 @@ r_.m128i = _mm_shuffle_epi8(t_.m128i, _mm_or_si128(idx_.m128i, _mm_cmpgt_epi8(idx_.m128i, _mm_set1_epi8(15)))); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_swizzle(t_.v128, idx_.v128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (idx_.sv128, 16, 16); + r_.sv128 = __riscv_vrgather_vv_u8m1(t_.sv128 , idx_.sv128 , 16); + r_.sv128 = __riscv_vmerge_vxm_u8m1(r_.sv128, 0, mask, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121221,6 +124676,14 @@ #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_or(wasm_i8x16_swizzle(t_[0].v128, idx_.v128), wasm_i8x16_swizzle(t_[1].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(16)))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[0].sv128); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[1].sv128); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t1 , t2 , 16 , 32); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(idx_.sv128); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 32, 16); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 16); + r_.sv128 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vxm_u8m2(r_tmp, 0, mask, 16)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121291,6 +124754,16 @@ r_.v128 = wasm_v128_or(wasm_v128_or(wasm_i8x16_swizzle(t_[0].v128, idx_.v128), wasm_i8x16_swizzle(t_[1].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(16)))), wasm_i8x16_swizzle(t_[2].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(32)))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t2 , t3 , 16 , 48); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 48); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv128); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 48, 16); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 16); + r_.sv128 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vxm_u8m4(r_tmp, 0, mask, 16)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121365,6 +124838,18 @@ wasm_i8x16_swizzle(t_[1].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(16)))), wasm_v128_or(wasm_i8x16_swizzle(t_[2].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(32))), wasm_i8x16_swizzle(t_[3].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(48))))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t t4 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[3].sv128); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t3 , t4 , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t2 , t_combine , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 64); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv128); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 64, 16); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 16); + r_.sv128 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vxm_u8m4(r_tmp, 0, mask, 16)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121528,7 +125013,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QTBL_H) */ /* :: End simde/arm/neon/qtbl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/qtbx.h :: */ /* SPDX-License-Identifier: MIT * @@ -121556,15 +125041,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_QTBX_H) #define SIMDE_ARM_NEON_QTBX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -121592,6 +125078,10 @@ __m128i r128 = _mm_shuffle_epi8(t_.m128i, idx128); r128 = _mm_blendv_epi8(r128, _mm_set1_epi64(a_.m64), idx128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (idx_.sv64, 16, 8); + r_.sv64 = __riscv_vrgather_vv_u8m1(t_.sv128 , idx_.sv64 , 8); + r_.sv64 = __riscv_vmerge_vvm_u8m1(r_.sv64, a_.sv64, mask, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121647,6 +125137,15 @@ __m128i r128 = _mm_blendv_epi8(r128_0, r128_1, _mm_slli_epi32(idx128, 3)); r128 = _mm_blendv_epi8(r128, _mm_set1_epi64(a_.m64), idx128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[0].sv128); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[1].sv128); + vuint8m2_t am2 = __riscv_vlmul_ext_v_u8m1_u8m2(a_.sv64); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t1 , t2 , 16 , 32); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(idx_.sv64); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 32, 8); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vvm_u8m2(r_tmp, am2, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121708,6 +125207,17 @@ __m128i r128 = _mm_blendv_epi8(r128_01, r128_2, _mm_slli_epi32(idx128, 2)); r128 = _mm_blendv_epi8(r128, _mm_set1_epi64(a_.m64), idx128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t am4 = __riscv_vlmul_ext_v_u8m1_u8m4 (a_.sv64); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t2 , t3 , 16 , 48); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 48); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv64); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 48, 8); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vvm_u8m4(r_tmp, am4, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121772,6 +125282,19 @@ __m128i r128 = _mm_blendv_epi8(r128_01, r128_23, _mm_slli_epi32(idx128, 2)); r128 = _mm_blendv_epi8(r128, _mm_set1_epi64(a_.m64), idx128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t t4 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[3].sv128); + vuint8m4_t am4 = __riscv_vlmul_ext_v_u8m1_u8m4 (a_.sv64); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t3 , t4 , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t2 , t_combine , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 64); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv64); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 64, 8); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vvm_u8m4(r_tmp, am4, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121833,6 +125356,10 @@ #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_v128_or(wasm_i8x16_swizzle(t_.v128, idx_.v128), wasm_v128_and(a_.v128, wasm_u8x16_gt(idx_.v128, wasm_i8x16_splat(15)))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (idx_.sv128, 16, 16); + r_.sv128 = __riscv_vrgather_vv_u8m1(t_.sv128 , idx_.sv128 , 16); + r_.sv128 = __riscv_vmerge_vvm_u8m1(r_.sv128, a_.sv128, mask, 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121895,6 +125422,15 @@ r_.v128 = wasm_v128_or(wasm_v128_or(wasm_i8x16_swizzle(t_[0].v128, idx_.v128), wasm_i8x16_swizzle(t_[1].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(16)))), wasm_v128_and(a_.v128, wasm_u8x16_gt(idx_.v128, wasm_i8x16_splat(31)))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[0].sv128); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (t_[1].sv128); + vuint8m2_t am2 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_.sv128); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t1 , t2 , 16 , 32); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(idx_.sv128); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 32, 16); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 16); + r_.sv128 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vvm_u8m2(r_tmp, am2, mask, 16)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -121968,6 +125504,17 @@ wasm_i8x16_swizzle(t_[1].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(16)))), wasm_v128_or(wasm_i8x16_swizzle(t_[2].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(32))) , wasm_v128_and(a_.v128, wasm_u8x16_gt(idx_.v128, wasm_i8x16_splat(47))))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t am4 = __riscv_vlmul_ext_v_u8m1_u8m4 (a_.sv128); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t2 , t3 , 16 , 48); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 48); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv128); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 48, 16); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 16); + r_.sv128 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vvm_u8m4(r_tmp, am4, mask, 16)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -122045,6 +125592,19 @@ wasm_v128_or(wasm_i8x16_swizzle(t_[2].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(32))), wasm_i8x16_swizzle(t_[3].v128, wasm_i8x16_sub(idx_.v128, wasm_i8x16_splat(48))))), wasm_v128_and(a_.v128, wasm_u8x16_gt(idx_.v128, wasm_i8x16_splat(63)))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m4_t t1 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[0].sv128); + vuint8m4_t t2 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[1].sv128); + vuint8m4_t t3 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[2].sv128); + vuint8m4_t t4 = __riscv_vlmul_ext_v_u8m1_u8m4 (t_[3].sv128); + vuint8m4_t am4 = __riscv_vlmul_ext_v_u8m1_u8m4 (a_.sv128); + vuint8m4_t t_combine = __riscv_vslideup_vx_u8m4(t3 , t4 , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t2 , t_combine , 16 , 64); + t_combine = __riscv_vslideup_vx_u8m4(t1 , t_combine , 16 , 64); + vuint8m4_t idxm4 = __riscv_vlmul_ext_v_u8m1_u8m4(idx_.sv128); + vbool2_t mask = __riscv_vmsgeu_vx_u8m4_b2 (idxm4, 64, 16); + vuint8m4_t r_tmp = __riscv_vrgather_vv_u8m4(t_combine , idxm4 , 16); + r_.sv128 = __riscv_vlmul_trunc_v_u8m4_u8m1(__riscv_vmerge_vvm_u8m4(r_tmp, am4, mask, 16)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -122208,7 +125768,7 @@ #endif /* !defined(SIMDE_ARM_NEON_QTBX_H) */ /* :: End simde/arm/neon/qtbx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/raddhn.h :: */ /* SPDX-License-Identifier: MIT * @@ -122240,14 +125800,14 @@ #define SIMDE_ARM_NEON_RADDHN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -122398,7 +125958,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RADDHN_H) */ /* :: End simde/arm/neon/raddhn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/raddhn_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -122430,12 +125990,12 @@ #define SIMDE_ARM_NEON_RADDHN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -122507,7 +126067,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RADDHN_HIGH_H) */ /* :: End simde/arm/neon/raddhn_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rax.h :: */ /* SPDX-License-Identifier: MIT * @@ -122539,7 +126099,7 @@ #define SIMDE_ARM_NEON_RAX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -122576,7 +126136,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RAX_H) */ /* :: End simde/arm/neon/rax.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rbit.h :: */ /* SPDX-License-Identifier: MIT * @@ -122604,6 +126164,7 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ /* The GFNI implementation is based on Wojciech Muła's work at @@ -122614,9 +126175,9 @@ #define SIMDE_ARM_NEON_RBIT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -122644,6 +126205,13 @@ a_.m64 = _mm_or_si64(_mm_andnot_si64(mask, _mm_slli_pi16(a_.m64, 2)), _mm_and_si64(mask, _mm_srli_pi16(a_.m64, 2))); mask = _mm_set1_pi8(0x0F); r_.m64 = _mm_or_si64(_mm_andnot_si64(mask, _mm_slli_pi16(a_.m64, 4)), _mm_and_si64(mask, _mm_srli_pi16(a_.m64, 4))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t mask; + mask = __riscv_vmv_v_x_u8m1(0x55 , 8); + a_.sv64 = __riscv_vor_vv_u8m1(__riscv_vand_vv_u8m1(mask , __riscv_vsrl_vx_u8m1(a_.sv64 , 1 , 8) , 8) , __riscv_vsll_vx_u8m1(__riscv_vand_vv_u8m1(mask , a_.sv64 , 8) , 1 , 8) , 8); + mask = __riscv_vmv_v_x_u8m1(0x33 , 8); + a_.sv64 = __riscv_vor_vv_u8m1(__riscv_vand_vv_u8m1(mask , __riscv_vsrl_vx_u8m1(a_.sv64 , 2 , 8) , 8) , __riscv_vsll_vx_u8m1(__riscv_vand_vv_u8m1(mask , a_.sv64 , 8) , 2 , 8) , 8); + r_.sv64 = __riscv_vor_vv_u8m1(__riscv_vsrl_vx_u8m1(a_.sv64 , 4 , 8) , __riscv_vsll_vx_u8m1(a_.sv64 , 4 , 8) , 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -122709,6 +126277,13 @@ a_.v128 = wasm_v128_bitselect(wasm_u8x16_shr(a_.v128, 1), wasm_i8x16_shl(a_.v128, 1), wasm_i8x16_splat(0x55)); a_.v128 = wasm_v128_bitselect(wasm_u8x16_shr(a_.v128, 2), wasm_i8x16_shl(a_.v128, 2), wasm_i8x16_splat(0x33)); r_.v128 = wasm_v128_or(wasm_u8x16_shr(a_.v128, 4), wasm_i8x16_shl(a_.v128, 4)); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t mask; + mask = __riscv_vmv_v_x_u8m1(0x55 , 16); + a_.sv128 = __riscv_vor_vv_u8m1(__riscv_vand_vv_u8m1(mask , __riscv_vsrl_vx_u8m1(a_.sv128 , 1 , 16) , 16) , __riscv_vsll_vx_u8m1(__riscv_vand_vv_u8m1(mask , a_.sv128 , 16) , 1 , 16) , 16); + mask = __riscv_vmv_v_x_u8m1(0x33 , 16); + a_.sv128 = __riscv_vor_vv_u8m1(__riscv_vand_vv_u8m1(mask , __riscv_vsrl_vx_u8m1(a_.sv128 , 2 , 16) , 16) , __riscv_vsll_vx_u8m1(__riscv_vand_vv_u8m1(mask , a_.sv128 , 16) , 2 , 16) , 16); + r_.sv128 = __riscv_vor_vv_u8m1(__riscv_vsrl_vx_u8m1(a_.sv128 , 4 , 16) , __riscv_vsll_vx_u8m1(a_.sv128 , 4 , 16) , 16); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -122776,7 +126351,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RBIT_H) */ /* :: End simde/arm/neon/rbit.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/recpe.h :: */ /* SPDX-License-Identifier: MIT * @@ -122804,13 +126379,14 @@ * 2020 Evan Nemerson * 2021 Zhi An Ng (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_RECPE_H) #define SIMDE_ARM_NEON_RECPE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -122871,10 +126447,14 @@ r_, a_ = simde_float16x4_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vrecpeh_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv64 = __riscv_vfrec7_v_f16m1(a_.sv64 , 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vrecpeh_f16(a_.values[i]); + } + #endif return simde_float16x4_from_private(r_); #endif @@ -122894,7 +126474,9 @@ r_, a_ = simde_float32x2_to_private(a); - #if defined(SIMDE_IEEE754_STORAGE) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfrec7_v_f32m1(a_.sv64 , 2); + #elif defined(SIMDE_IEEE754_STORAGE) /* https://stackoverflow.com/questions/12227126/division-as-multiply-and-lut-fast-float-division-reciprocal/12228234#12228234 */ SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -122933,7 +126515,9 @@ r_, a_ = simde_float64x1_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfrec7_v_f64m1(a_.sv64 , 1); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = 1.0 / a_.values; #else SIMDE_VECTORIZE @@ -122960,7 +126544,9 @@ r_, a_ = simde_float64x2_to_private(a); - #if defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfrec7_v_f64m1(a_.sv128 , 2); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) r_.values = 1.0 / a_.values; #else SIMDE_VECTORIZE @@ -122989,8 +126575,11 @@ r_, a_ = simde_float32x4_to_private(a); + #if defined(SIMDE_X86_SSE_NATIVE) r_.m128 = _mm_rcp_ps(a_.m128); + #elif defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfrec7_v_f32m1(a_.sv128 , 4); #elif defined(SIMDE_IEEE754_STORAGE) /* https://stackoverflow.com/questions/12227126/division-as-multiply-and-lut-fast-float-division-reciprocal/12228234#12228234 */ SIMDE_VECTORIZE @@ -123030,10 +126619,14 @@ r_, a_ = simde_float16x8_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vrecpeh_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv128 = __riscv_vfrec7_v_f16m1(a_.sv128 , 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vrecpeh_f16(a_.values[i]); + } + #endif return simde_float16x8_from_private(r_); #endif @@ -123110,7 +126703,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RECPE_H) */ /* :: End simde/arm/neon/recpe.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/recps.h :: */ /* SPDX-License-Identifier: MIT * @@ -123143,11 +126736,11 @@ #define SIMDE_ARM_NEON_RECPS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -123305,7 +126898,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RECPS_H) */ /* :: End simde/arm/neon/recps.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/recpx.h :: */ /* SPDX-License-Identifier: MIT * @@ -123339,7 +126932,7 @@ #define SIMDE_ARM_NEON_RECPX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -123443,9 +127036,9 @@ #endif /* !defined(SIMDE_ARM_NEON_RECPX_H) */ /* :: End simde/arm/neon/recpx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rev16.h :: */ /* SPDX-License-Identifier: MIT * @@ -123473,15 +127066,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_REV16_H) #define SIMDE_ARM_NEON_REV16_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -123499,6 +127093,9 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi8(a_.m64, _mm_set_pi8(6, 7, 4, 5, 2, 3, 0, 1)); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint8_t shuffle_idx[] = {1, 0, 3, 2, 5, 4, 7, 6}; + r_.sv64 = __riscv_vrgather_vv_i8m1(a_.sv64, __riscv_vle8_v_u8m1(shuffle_idx, 8), 8); #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) r_.values = SIMDE_SHUFFLE_VECTOR_(8, 8, a_.values, a_.values, 1, 0, 3, 2, 5, 4, 7, 6); #else @@ -123550,6 +127147,9 @@ r_.m128i = _mm_shuffle_epi8(a_.m128i, _mm_set_epi8(14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 0, 1)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shuffle(a_.v128, a_.v128, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint8_t shuffle_idx[] = {1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14}; + r_.sv128 = __riscv_vrgather_vv_i8m1(a_.sv128, __riscv_vle8_v_u8m1(shuffle_idx, 16), 16); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(8, 16, a_.values, a_.values, 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); #else @@ -123615,7 +127215,7 @@ #endif /* !defined(SIMDE_ARM_NEON_REV16_H) */ /* :: End simde/arm/neon/rev16.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rev32.h :: */ /* SPDX-License-Identifier: MIT * @@ -123643,15 +127243,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_REV32_H) #define SIMDE_ARM_NEON_REV32_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -123669,6 +127270,9 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi8(a_.m64, _mm_set_pi8(4, 5, 6, 7, 0, 1, 2, 3)); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint8_t shuffle_idx[] = {3, 2, 1, 0, 7, 6, 5, 4}; + r_.sv64 = __riscv_vrgather_vv_i8m1(a_.sv64, __riscv_vle8_v_u8m1(shuffle_idx, 8), 8); #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) r_.values = SIMDE_SHUFFLE_VECTOR_(8, 8, a_.values, a_.values, 3, 2, 1, 0, 7, 6, 5, 4); #else @@ -123698,6 +127302,9 @@ #if defined(SIMDE_X86_SSE_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi16(a_.m64, (2 << 6) | (3 << 4) | (0 << 2) | (1 << 0)); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint16_t shuffle_idx[] = {1, 0, 3, 2}; + r_.sv64 = __riscv_vrgather_vv_i16m1(a_.sv64, __riscv_vle16_v_u16m1(shuffle_idx, 4), 4); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(16, 8, a_.values, a_.values, 1, 0, 3, 2); #else @@ -123764,6 +127371,9 @@ 4, 5, 6, 7, 0, 1, 2, 3)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shuffle(a_.v128, a_.v128, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint8_t shuffle_idx[] = {3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12}; + r_.sv128 = __riscv_vrgather_vv_i8m1(a_.sv128, __riscv_vle8_v_u8m1(shuffle_idx, 16), 16); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(8, 16, a_.values, a_.values, 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12); #else @@ -123794,7 +127404,10 @@ r_, a_ = simde_int16x8_to_private(a); - #if defined(SIMDE_X86_SSSE3_NATIVE) + #if defined(SIMDE_RISCV_V_NATIVE) + uint16_t shuffle_idx[] = {1, 0, 3, 2, 5, 4, 7, 6}; + r_.sv128 = __riscv_vrgather_vv_i16m1(a_.sv128, __riscv_vle16_v_u16m1(shuffle_idx, 8), 8); + #elif defined(SIMDE_X86_SSSE3_NATIVE) r_.m128i = _mm_shuffle_epi8(a_.m128i, _mm_set_epi8(13, 12, 15, 14, 9, 8, 11, 10, 5, 4, 7, 6, 1, 0, 3, 2)); #elif defined(SIMDE_X86_SSE2_NATIVE) @@ -123910,7 +127523,7 @@ #endif /* !defined(SIMDE_ARM_NEON_REV32_H) */ /* :: End simde/arm/neon/rev32.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rev64.h :: */ /* SPDX-License-Identifier: MIT * @@ -123938,15 +127551,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_REV64_H) #define SIMDE_ARM_NEON_REV64_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -123964,6 +127578,9 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi8(a_.m64, _mm_set_pi8(0, 1, 2, 3, 4, 5, 6, 7)); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint8_t shuffle_idx[] = {7, 6, 5, 4, 3, 2, 1, 0}; + r_.sv64 = __riscv_vrgather_vv_i8m1(a_.sv64, __riscv_vle8_v_u8m1(shuffle_idx, 8), 8); #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) r_.values = SIMDE_SHUFFLE_VECTOR_(8, 8, a_.values, a_.values, 7, 6, 5, 4, 3, 2, 1, 0); #else @@ -123993,6 +127610,9 @@ #if defined(SIMDE_X86_SSE_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi16(a_.m64, (0 << 6) | (1 << 4) | (2 << 2) | (3 << 0)); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint16_t shuffle_idx[] = {3, 2, 1, 0}; + r_.sv64 = __riscv_vrgather_vv_i16m1(a_.sv64, __riscv_vle16_v_u16m1(shuffle_idx, 4), 4); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(16, 8, a_.values, a_.values, 3, 2, 1, 0); #else @@ -124022,6 +127642,9 @@ #if defined(SIMDE_X86_SSE_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi16(a_.m64, (1 << 6) | (0 << 4) | (3 << 2) | (2 << 0)); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint32_t shuffle_idx[] = {1, 0}; + r_.sv64 = __riscv_vrgather_vv_i32m1(a_.sv64, __riscv_vle32_v_u32m1(shuffle_idx, 2), 2); #elif defined(SIMDE_SHUFFLE_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) r_.values = SIMDE_SHUFFLE_VECTOR_(32, 8, a_.values, a_.values, 1, 0); #else @@ -124130,6 +127753,9 @@ 0, 1, 2, 3, 4, 5, 6, 7)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shuffle(a_.v128, a_.v128, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint8_t shuffle_idx[] = {7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8}; + r_.sv128 = __riscv_vrgather_vv_i8m1(a_.sv128, __riscv_vle8_v_u8m1(shuffle_idx, 16), 16); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(8, 16, a_.values, a_.values, 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8); #else @@ -124169,6 +127795,9 @@ (0 << 6) | (1 << 4) | (2 << 2) | (3 << 0)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shuffle(a_.v128, a_.v128, 6, 7, 4, 5, 2, 3, 0, 1, 14, 15, 12, 13, 10, 11, 8, 9); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint16_t shuffle_idx[] = {3, 2, 1, 0, 7, 6, 5, 4}; + r_.sv128 = __riscv_vrgather_vv_i16m1(a_.sv128, __riscv_vle16_v_u16m1(shuffle_idx, 8), 8); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(16, 16, a_.values, a_.values, 3, 2, 1, 0, 7, 6, 5, 4); #else @@ -124203,6 +127832,9 @@ r_.m128i = _mm_shuffle_epi32(a_.m128i, (2 << 6) | (3 << 4) | (0 << 2) | (1 << 0)); #elif defined(SIMDE_WASM_SIMD128_NATIVE) r_.v128 = wasm_i8x16_shuffle(a_.v128, a_.v128, 4, 5, 6, 7, 0, 1, 2, 3, 12, 13, 14, 15, 8, 9, 10, 11); + #elif defined(SIMDE_RISCV_V_NATIVE) + uint32_t shuffle_idx[] = {1, 0, 3, 2}; + r_.sv128 = __riscv_vrgather_vv_i32m1(a_.sv128, __riscv_vle32_v_u32m1(shuffle_idx, 4), 4); #elif defined(SIMDE_SHUFFLE_VECTOR_) r_.values = SIMDE_SHUFFLE_VECTOR_(32, 16, a_.values, a_.values, 1, 0, 3, 2); #else @@ -124352,7 +127984,7 @@ #endif /* !defined(SIMDE_ARM_NEON_REV64_H) */ /* :: End simde/arm/neon/rev64.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rhadd.h :: */ /* SPDX-License-Identifier: MIT * @@ -124399,7 +128031,7 @@ #define SIMDE_ARM_NEON_RHADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -124789,7 +128421,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RHADD_H) */ /* :: End simde/arm/neon/rhadd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rnd.h :: */ /* SPDX-License-Identifier: MIT * @@ -124822,7 +128454,7 @@ #define SIMDE_ARM_NEON_RND_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -125002,7 +128634,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RND_H) */ /* :: End simde/arm/neon/rnd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rnd32x.h :: */ /* SPDX-License-Identifier: MIT * @@ -125034,7 +128666,7 @@ #define SIMDE_ARM_NEON_RND32X_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -125167,7 +128799,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RND32X_H) */ /* :: End simde/arm/neon/rnd32x.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rnd32z.h :: */ /* SPDX-License-Identifier: MIT * @@ -125199,7 +128831,7 @@ #define SIMDE_ARM_NEON_RND32Z_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -125332,7 +128964,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RND32Z_H) */ /* :: End simde/arm/neon/rnd32z.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rnd64x.h :: */ /* SPDX-License-Identifier: MIT * @@ -125364,7 +128996,7 @@ #define SIMDE_ARM_NEON_RND64X_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -125497,7 +129129,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RND64X_H) */ /* :: End simde/arm/neon/rnd64x.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rnd64z.h :: */ /* SPDX-License-Identifier: MIT * @@ -125529,7 +129161,7 @@ #define SIMDE_ARM_NEON_RND64Z_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -125662,7 +129294,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RND64Z_H) */ /* :: End simde/arm/neon/rnd64z.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rnda.h :: */ /* SPDX-License-Identifier: MIT * @@ -125688,13 +129320,14 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_RNDA_H) #define SIMDE_ARM_NEON_RNDA_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -125723,11 +129356,14 @@ simde_float16x4_private r_, a_ = simde_float16x4_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vrndah_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv64 = __riscv_vfcvt_f_x_v_f16m1(__riscv_vfcvt_x_f_v_i16m1_rm(a_.sv64, 0, 4), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vrndah_f16(a_.values[i]); + } + #endif return simde_float16x4_from_private(r_); #endif @@ -125747,10 +129383,21 @@ r_, a_ = simde_float32x2_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_roundf(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_NANS) + r_.sv64 = __riscv_vfcvt_f_x_v_f32m1(__riscv_vfcvt_x_f_v_i32m1_rm(a_.sv64, 0, 2), 2); + #else + simde_float32 nan = SIMDE_MATH_NAN; + vbool32_t mask = __riscv_vmseq_vx_u32m1_b32(__riscv_vfclass_v_u32m1(a_.sv64 , 2) , 512 , 2); + r_.sv64 = __riscv_vfmerge_vfm_f32m1(__riscv_vfcvt_f_x_v_f32m1(__riscv_vfcvt_x_f_v_i32m1_rm(a_.sv64, 0, 2), 2), \ + nan, mask, 2); + #endif + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_roundf(a_.values[i]); + } + #endif return simde_float32x2_from_private(r_); #endif @@ -125770,10 +129417,21 @@ r_, a_ = simde_float64x1_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_round(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_NANS) + r_.sv64 = __riscv_vfcvt_f_x_v_f64m1(__riscv_vfcvt_x_f_v_i64m1_rm(a_.sv64, 0, 1), 1); + #else + simde_float64 nan = SIMDE_MATH_NAN; + vbool64_t mask = __riscv_vmseq_vx_u64m1_b64(__riscv_vfclass_v_u64m1(a_.sv64 , 1) , 512 , 1); + r_.sv64 = __riscv_vfmerge_vfm_f64m1(__riscv_vfcvt_f_x_v_f64m1(__riscv_vfcvt_x_f_v_i64m1_rm(a_.sv64, 0, 1), 1), \ + nan, mask, 1); + #endif + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_round(a_.values[i]); + } + #endif return simde_float64x1_from_private(r_); #endif @@ -125792,11 +129450,14 @@ simde_float16x8_private r_, a_ = simde_float16x8_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vrndah_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && defined(SIMDE_ARCH_RISCV_ZVFH) + r_.sv128 = __riscv_vfcvt_f_x_v_f16m1(__riscv_vfcvt_x_f_v_i16m1_rm(a_.sv128, 0, 8), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vrndah_f16(a_.values[i]); + } + #endif return simde_float16x8_from_private(r_); #endif @@ -125816,10 +129477,21 @@ r_, a_ = simde_float32x4_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_roundf(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_NANS) + r_.sv128 = __riscv_vfcvt_f_x_v_f32m1(__riscv_vfcvt_x_f_v_i32m1_rm(a_.sv128, 0, 4), 4); + #else + simde_float32 nan = SIMDE_MATH_NAN; + vbool32_t mask = __riscv_vmseq_vx_u32m1_b32(__riscv_vfclass_v_u32m1(a_.sv128 , 4) , 512 , 4); + r_.sv128 = __riscv_vfmerge_vfm_f32m1(__riscv_vfcvt_f_x_v_f32m1(__riscv_vfcvt_x_f_v_i32m1_rm(a_.sv128, 0, 4), 4), \ + nan, mask, 4); + #endif + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_roundf(a_.values[i]); + } + #endif return simde_float32x4_from_private(r_); #endif @@ -125839,10 +129511,21 @@ r_, a_ = simde_float64x2_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_round(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + #if defined(SIMDE_FAST_NANS) + r_.sv128 = __riscv_vfcvt_f_x_v_f64m1(__riscv_vfcvt_x_f_v_i64m1_rm(a_.sv128, 0, 2), 2); + #else + simde_float64 nan = SIMDE_MATH_NAN; + vbool64_t mask = __riscv_vmseq_vx_u64m1_b64(__riscv_vfclass_v_u64m1(a_.sv128 , 2) , 512 , 2); + r_.sv128 = __riscv_vfmerge_vfm_f64m1(__riscv_vfcvt_f_x_v_f64m1(__riscv_vfcvt_x_f_v_i64m1_rm(a_.sv128, 0, 2), 2), \ + nan, mask, 2); + #endif + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_round(a_.values[i]); + } + #endif return simde_float64x2_from_private(r_); #endif @@ -125858,7 +129541,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RNDA_H) */ /* :: End simde/arm/neon/rnda.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rndm.h :: */ /* SPDX-License-Identifier: MIT * @@ -125891,7 +129574,7 @@ #define SIMDE_ARM_NEON_RNDM_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -126071,7 +129754,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RNDM_H) */ /* :: End simde/arm/neon/rndm.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rndi.h :: */ /* SPDX-License-Identifier: MIT * @@ -126104,7 +129787,7 @@ #define SIMDE_ARM_NEON_RNDI_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -126276,7 +129959,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RNDI_H) */ /* :: End simde/arm/neon/rndi.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rndn.h :: */ /* SPDX-License-Identifier: MIT * @@ -126309,7 +129992,7 @@ #define SIMDE_ARM_NEON_RNDN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -126504,7 +130187,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RNDN_H) */ /* :: End simde/arm/neon/rndn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rndp.h :: */ /* SPDX-License-Identifier: MIT * @@ -126537,7 +130220,7 @@ #define SIMDE_ARM_NEON_RNDP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -126717,7 +130400,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RNDP_H) */ /* :: End simde/arm/neon/rndp.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rndx.h :: */ /* SPDX-License-Identifier: MIT * @@ -126749,7 +130432,7 @@ #define SIMDE_ARM_NEON_RNDX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -126913,7 +130596,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RNDX_H) */ /* :: End simde/arm/neon/rndx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rshl.h :: */ /* SPDX-License-Identifier: MIT * @@ -126945,9 +130628,9 @@ #if !defined(SIMDE_ARM_NEON_RSHL_H) #define SIMDE_ARM_NEON_RSHL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* Notes from the implementer (Christopher Moore aka rosbif) * @@ -127888,9 +131571,9 @@ #endif /* !defined(SIMDE_ARM_NEON_RSHL_H) */ /* :: End simde/arm/neon/rshl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rshrn_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -127922,7 +131605,7 @@ #define SIMDE_ARM_NEON_RSHRN_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rshrn_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -127954,11 +131637,11 @@ #define SIMDE_ARM_NEON_RSHRN_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -128030,9 +131713,9 @@ #endif /* !defined(SIMDE_ARM_NEON_RSHRN_N_H) */ /* :: End simde/arm/neon/rshrn_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -128104,9 +131787,9 @@ #endif /* !defined(SIMDE_ARM_NEON_RSHRN_HIGH_N_H) */ /* :: End simde/arm/neon/rshrn_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rsqrte.h :: */ /* SPDX-License-Identifier: MIT * @@ -128140,7 +131823,7 @@ #define SIMDE_ARM_NEON_RSQRTE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -128574,7 +132257,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSQRTE_H) */ /* :: End simde/arm/neon/rsqrte.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rsqrts.h :: */ /* SPDX-License-Identifier: MIT * @@ -128608,13 +132291,13 @@ #define SIMDE_ARM_NEON_RSQRTS_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -128797,7 +132480,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSQRTS_H) */ /* :: End simde/arm/neon/rsqrts.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rsra_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -128830,15 +132513,15 @@ #define SIMDE_ARM_NEON_RSRA_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -129035,7 +132718,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSRA_N_H) */ /* :: End simde/arm/neon/rsra_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rsubhn.h :: */ /* SPDX-License-Identifier: MIT * @@ -129061,20 +132744,21 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_RSUBHN_H) #define SIMDE_ARM_NEON_RSUBHN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -129091,10 +132775,14 @@ a_ = simde_int16x8_to_private(a), b_ = simde_int16x8_to_private(b); int16_t round_cast = 1 << 7; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int16_t, a_.values[i] - b_.values[i] + round_cast); - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vadd_vx_i16m1(__riscv_vsub_vv_i16m1(a_.sv128, b_.sv128, 8), round_cast, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int16_t, a_.values[i] - b_.values[i] + round_cast); + } + #endif return simde_vmovn_s16(simde_vshrq_n_s16(simde_int16x8_from_private(r_), 8)); #endif } @@ -129114,10 +132802,14 @@ a_ = simde_int32x4_to_private(a), b_ = simde_int32x4_to_private(b); int round_cast = 1 << 15; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] - b_.values[i] + round_cast; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vadd_vx_i32m1(__riscv_vsub_vv_i32m1(a_.sv128, b_.sv128, 4), round_cast, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] - b_.values[i] + round_cast; + } + #endif return simde_vmovn_s32(simde_vshrq_n_s32(simde_int32x4_from_private(r_), 16)); #endif } @@ -129136,12 +132828,17 @@ r_, a_ = simde_int64x2_to_private(a), b_ = simde_int64x2_to_private(b); - int64_t round_cast = 1ll << 31; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32); - } - return simde_vmovn_s64(simde_int64x2_from_private(r_)); + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vadd_vx_i64m1(__riscv_vsub_vv_i64m1(a_.sv128, b_.sv128, 2), 0x80000000, 2); + return simde_vmovn_s64(simde_vshrq_n_s64(simde_int64x2_from_private(r_), 32)); + #else + int64_t round_cast = 1ll << 31; + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32); + } + return simde_vmovn_s64(simde_int64x2_from_private(r_)); + #endif #endif } #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -129160,10 +132857,14 @@ a_ = simde_uint16x8_to_private(a), b_ = simde_uint16x8_to_private(b); uint16_t round_cast = 1 << 7; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, a_.values[i] - b_.values[i] + round_cast); - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vadd_vx_u16m1(__riscv_vsub_vv_u16m1(a_.sv128, b_.sv128, 8), round_cast, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, a_.values[i] - b_.values[i] + round_cast); + } + #endif return simde_vmovn_u16(simde_vshrq_n_u16(simde_uint16x8_from_private(r_), 8)); #endif } @@ -129183,10 +132884,14 @@ a_ = simde_uint32x4_to_private(a), b_ = simde_uint32x4_to_private(b); uint32_t round_cast = 1 << 15; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = a_.values[i] - b_.values[i] + round_cast; - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vadd_vx_u32m1(__riscv_vsub_vv_u32m1(a_.sv128, b_.sv128, 4), round_cast, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = a_.values[i] - b_.values[i] + round_cast; + } + #endif return simde_vmovn_u32(simde_vshrq_n_u32(simde_uint32x4_from_private(r_), 16)); #endif } @@ -129205,12 +132910,17 @@ r_, a_ = simde_uint64x2_to_private(a), b_ = simde_uint64x2_to_private(b); - uint64_t round_cast = 1ull << 31; - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32); - } - return simde_vmovn_u64(simde_uint64x2_from_private(r_)); + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vadd_vx_u64m1(__riscv_vsub_vv_u64m1(a_.sv128, b_.sv128, 2), 0x80000000, 2); + return simde_vmovn_u64(simde_vshrq_n_u64(simde_uint64x2_from_private(r_), 32)); + #else + uint64_t round_cast = 1ull << 31; + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = ((a_.values[i] - b_.values[i] + round_cast) >> 32); + } + return simde_vmovn_u64(simde_uint64x2_from_private(r_)); + #endif #endif } #if defined(SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES) @@ -129225,7 +132935,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSUBHN_H) */ /* :: End simde/arm/neon/rsubhn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/rsubhn_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -129257,12 +132967,12 @@ #define SIMDE_ARM_NEON_RSUBHN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -129334,7 +133044,7 @@ #endif /* !defined(SIMDE_ARM_NEON_RSUBHN_HIGH_H) */ /* :: End simde/arm/neon/rsubhn_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/set_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -129367,7 +133077,7 @@ #if !defined(SIMDE_ARM_NEON_SET_LANE_H) #define SIMDE_ARM_NEON_SET_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -129946,7 +133656,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SET_LANE_H) */ /* :: End simde/arm/neon/set_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sha1.h :: */ /* SPDX-License-Identifier: MIT * @@ -129978,7 +133688,7 @@ #define SIMDE_ARM_NEON_SHA1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -130153,7 +133863,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SHA1_H) */ /* :: End simde/arm/neon/sha1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sha256.h :: */ /* SPDX-License-Identifier: MIT * @@ -130185,7 +133895,7 @@ #define SIMDE_ARM_NEON_SHA256_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -130351,7 +134061,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SHA256_H) */ /* :: End simde/arm/neon/sha256.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sha512.h :: */ /* SPDX-License-Identifier: MIT * @@ -130383,7 +134093,7 @@ #define SIMDE_ARM_NEON_SHA512_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -130509,7 +134219,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SHA512_H) */ /* :: End simde/arm/neon/sha512.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shl.h :: */ /* SPDX-License-Identifier: MIT * @@ -130536,15 +134246,16 @@ * Copyright: * 2020 Evan Nemerson * 2020 Christopher Moore + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SHL_H) #define SIMDE_ARM_NEON_SHL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* Notes from the implementer (Christopher Moore aka rosbif) * @@ -130658,13 +134369,23 @@ r256 = _mm256_shuffle_epi8(r256, _mm256_set1_epi32(0x0C080400)); r_.m64 = _mm_set_pi32(simde_mm256_extract_epi32(r256, 4), simde_mm256_extract_epi32(r256, 0)); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int8_t, - (b_.values[i] >= 0) ? - (b_.values[i] >= 8) ? 0 : (a_.values[i] << b_.values[i]) : - (b_.values[i] <= -8) ? (a_.values[i] >> 7) : (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8m1_t bit_shift_rst = __riscv_vmerge_vxm_i8m1( + __riscv_vsll_vv_i8m1 (a_.sv64, __riscv_vreinterpret_v_i8m1_u8m1(b_.sv64), 8), 0, __riscv_vmsge_vx_i8m1_b8(b_.sv64, 8, 8), 8); + vint8m1_t b_abs = __riscv_vmax_vv_i8m1 (b_.sv64, __riscv_vneg_v_i8m1 (b_.sv64, 8), 8); + vuint8m1_t u_b_abs = __riscv_vreinterpret_v_i8m1_u8m1 (b_abs); + vint8m1_t scal_shift_rst = __riscv_vmerge_vvm_i8m1(__riscv_vsra_vv_i8m1 (a_.sv64, u_b_abs, 8), \ + __riscv_vsra_vx_i8m1(a_.sv64, 7, 8), __riscv_vmsle_vx_i8m1_b8(b_.sv64, -8, 8), 8); + r_.sv64 = __riscv_vmerge_vvm_i8m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8m1_b8 (b_.sv64, 0, 8), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int8_t, + (b_.values[i] >= 0) ? + (b_.values[i] >= 8) ? 0 : (a_.values[i] << b_.values[i]) : + (b_.values[i] <= -8) ? (a_.values[i] >> 7) : (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_int8x8_from_private(r_); @@ -130695,14 +134416,25 @@ _mm_cmpgt_epi32(_mm_setzero_si128(), b128)); r_.m64 = _mm_movepi64_pi64(_mm_shuffle_epi8(r128, _mm_set1_epi64x(0x0D0C090805040100))); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = HEDLEY_STATIC_CAST(int16_t, - (b_.values[i] >= 0) ? - (b_.values[i] >= 16) ? 0 : (a_.values[i] << b_.values[i]) : - (b_.values[i] <= -16) ? (a_.values[i] >> 15) : (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t b_8mf2 = __riscv_vncvt_x_x_w_i8mf2 (b_.sv64, 4); + vint16m1_t bit_shift_rst = __riscv_vmerge_vxm_i16m1(__riscv_vsll_vv_i16m1 (a_.sv64, __riscv_vreinterpret_v_i16m1_u16m1(b_.sv64), 4), 0 \ + , __riscv_vmsge_vx_i8mf2_b16(b_8mf2, 16, 8), 4); + vint16m1_t b_abs = __riscv_vmax_vv_i16m1 (b_.sv64, __riscv_vneg_v_i16m1 (b_.sv64, 4), 4); + vuint16m1_t u_b_abs = __riscv_vreinterpret_v_i16m1_u16m1 (b_abs); + vint16m1_t scal_shift_rst = __riscv_vmerge_vvm_i16m1(__riscv_vsra_vv_i16m1 (a_.sv64, u_b_abs, 4) + , __riscv_vsra_vx_i16m1(a_.sv64, 15, 4), __riscv_vmsle_vx_i8mf2_b16(b_8mf2, -16, 8), 4); + r_.sv64 = __riscv_vmerge_vvm_i16m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8mf2_b16 (b_8mf2, 0, 8), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = HEDLEY_STATIC_CAST(int16_t, + (b_.values[i] >= 0) ? + (b_.values[i] >= 16) ? 0 : (a_.values[i] << b_.values[i]) : + (b_.values[i] <= -16) ? (a_.values[i] >> 15) : (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_int16x4_from_private(r_); @@ -130733,14 +134465,25 @@ _mm_cmpgt_epi32(_mm_setzero_si128(), b128)); r_.m64 = _mm_movepi64_pi64(r128); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = - (b_.values[i] >= 0) ? - (b_.values[i] >= 32) ? 0 : (a_.values[i] << b_.values[i]) : - (b_.values[i] <= -32) ? (a_.values[i] >> 31) : (a_.values[i] >> -b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf4_t b_8mf4 = __riscv_vncvt_x_x_w_i8mf4 (__riscv_vncvt_x_x_w_i16mf2 (b_.sv64, 2), 4); + vint32m1_t bit_shift_rst = __riscv_vmerge_vxm_i32m1(__riscv_vsll_vv_i32m1 (a_.sv64, __riscv_vreinterpret_v_i32m1_u32m1(b_.sv64), 2), 0 + , __riscv_vmsge_vx_i8mf4_b32(b_8mf4, 32, 2), 2); + vint32m1_t b_abs = __riscv_vmax_vv_i32m1 (b_.sv64, __riscv_vneg_v_i32m1 (b_.sv64, 2), 2); + vuint32m1_t u_b_abs = __riscv_vreinterpret_v_i32m1_u32m1 (b_abs); + vint32m1_t scal_shift_rst = __riscv_vmerge_vvm_i32m1(__riscv_vsra_vv_i32m1 (a_.sv64, u_b_abs, 2) + , __riscv_vsra_vx_i32m1(a_.sv64, 31, 2), __riscv_vmsle_vx_i8mf4_b32(b_8mf4, -32, 2), 2); + r_.sv64 = __riscv_vmerge_vvm_i32m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8mf4_b32 (b_8mf4, 0, 8), 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = + (b_.values[i] >= 0) ? + (b_.values[i] >= 32) ? 0 : (a_.values[i] << b_.values[i]) : + (b_.values[i] <= -32) ? (a_.values[i] >> 31) : (a_.values[i] >> -b_.values[i]); + } + #endif #endif return simde_int32x2_from_private(r_); @@ -130782,10 +134525,21 @@ _mm_cmpgt_epi64(zero, _mm_slli_epi64(b128, 56))); r_.m64 = _mm_movepi64_pi64(r128); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vshld_s64(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf8_t b_8mf8 = __riscv_vncvt_x_x_w_i8mf8 (__riscv_vncvt_x_x_w_i16mf4 (__riscv_vncvt_x_x_w_i32mf2 (b_.sv64, 1), 2), 4); + vint64m1_t bit_shift_rst = __riscv_vmerge_vxm_i64m1(__riscv_vsll_vv_i64m1 (a_.sv64, __riscv_vreinterpret_v_i64m1_u64m1(b_.sv64), 1), 0 + , __riscv_vmsge_vx_i8mf8_b64(b_8mf8, 64, 1), 1); + vint64m1_t b_abs = __riscv_vmax_vv_i64m1 (b_.sv64, __riscv_vneg_v_i64m1 (b_.sv64, 1), 1); + vuint64m1_t u_b_abs = __riscv_vreinterpret_v_i64m1_u64m1 (b_abs); + vint64m1_t scal_shift_rst = __riscv_vmerge_vvm_i64m1(__riscv_vsra_vv_i64m1 (a_.sv64, u_b_abs, 1) + , __riscv_vsra_vx_i64m1(a_.sv64, 63, 1), __riscv_vmsle_vx_i8mf8_b64(b_8mf8, -64, 1), 1); + r_.sv64 = __riscv_vmerge_vvm_i64m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8mf8_b64 (b_8mf8, 0, 8), 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vshld_s64(a_.values[i], b_.values[i]); + } + #endif #endif return simde_int64x1_from_private(r_); @@ -130823,13 +134577,22 @@ r256 = _mm256_shuffle_epi8(r256, _mm256_set1_epi32(0x0C080400)); r_.m64 = _mm_set_pi32(simde_mm256_extract_epi32(r256, 4), simde_mm256_extract_epi32(r256, 0)); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(uint8_t, - (simde_math_abs(b_.values[i]) >= 8) ? 0 : - (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : - (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t u_b = __riscv_vreinterpret_v_i8m1_u8m1 (b_.sv64); + vint8m1_t b_abs = __riscv_vmax_vv_i8m1 (b_.sv64, __riscv_vneg_v_i8m1 (b_.sv64, 8), 8); + vuint8m1_t u_b_abs = __riscv_vreinterpret_v_i8m1_u8m1 (b_abs); + r_.sv64 = __riscv_vmerge_vxm_u8m1(__riscv_vmerge_vvm_u8m1(__riscv_vsrl_vv_u8m1(a_.sv64, u_b_abs, 8) + , __riscv_vsll_vv_u8m1 (a_.sv64, u_b, 8), __riscv_vmsge_vx_i8m1_b8(b_.sv64, 0, 8), 8), 0 \ + ,__riscv_vmsgeu_vx_u8m1_b8(u_b_abs, 8, 8), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(uint8_t, + (simde_math_abs(b_.values[i]) >= 8) ? 0 : + (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : + (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_uint8x8_from_private(r_); @@ -130860,14 +134623,26 @@ _mm_cmpgt_epi32(_mm_setzero_si128(), b128)); r_.m64 = _mm_movepi64_pi64(_mm_shuffle_epi8(r128, _mm_set1_epi64x(0x0D0C090805040100))); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, - (simde_math_abs(b_.values[i]) >= 16) ? 0 : - (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : - (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t b_8mf2 = __riscv_vncvt_x_x_w_i8mf2 (b_.sv64, 4); + vint8mf2_t b_8mf2_abs = __riscv_vmax_vv_i8mf2 (b_8mf2, __riscv_vneg_v_i8mf2 (b_8mf2, 8), 8); + vuint8mf2_t u_b_8mf2_abs = __riscv_vreinterpret_v_i8mf2_u8mf2 (b_8mf2_abs); + vuint16m1_t u_b = __riscv_vreinterpret_v_i16m1_u16m1 (b_.sv64); + vint16m1_t b_abs = __riscv_vmax_vv_i16m1 (b_.sv64, __riscv_vneg_v_i16m1 (b_.sv64, 4), 4); + vuint16m1_t u_b_abs = __riscv_vreinterpret_v_i16m1_u16m1 (b_abs); + r_.sv64 = __riscv_vmerge_vxm_u16m1(__riscv_vmerge_vvm_u16m1(__riscv_vsrl_vv_u16m1(a_.sv64, u_b_abs, 4) + , __riscv_vsll_vv_u16m1 (a_.sv64, u_b, 4), __riscv_vmsge_vx_i16m1_b16(b_.sv64, 0, 4), 4) + , 0, __riscv_vmsgeu_vx_u8mf2_b16(u_b_8mf2_abs, 16, 8), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, + (simde_math_abs(b_.values[i]) >= 16) ? 0 : + (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : + (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_uint16x4_from_private(r_); @@ -130898,14 +134673,26 @@ _mm_cmpgt_epi32(_mm_setzero_si128(), b128)); r_.m64 = _mm_movepi64_pi64(r128); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = - (simde_math_abs(b_.values[i]) >= 32) ? 0 : - (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : - (a_.values[i] >> -b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf4_t b_8mf4 = __riscv_vncvt_x_x_w_i8mf4 (__riscv_vncvt_x_x_w_i16mf2 (b_.sv64, 2), 4); + vint8mf4_t b_8mf4_abs = __riscv_vmax_vv_i8mf4 (b_8mf4, __riscv_vneg_v_i8mf4 (b_8mf4, 8), 8); + vuint8mf4_t u_b_8mf4_abs = __riscv_vreinterpret_v_i8mf4_u8mf4 (b_8mf4_abs); + vuint32m1_t u_b = __riscv_vreinterpret_v_i32m1_u32m1 (b_.sv64); + vint32m1_t b_abs = __riscv_vmax_vv_i32m1 (b_.sv64, __riscv_vneg_v_i32m1 (b_.sv64, 2), 2); + vuint32m1_t u_b_abs = __riscv_vreinterpret_v_i32m1_u32m1 (b_abs); + r_.sv64 = __riscv_vmerge_vxm_u32m1(__riscv_vmerge_vvm_u32m1(__riscv_vsrl_vv_u32m1(a_.sv64, u_b_abs, 2) + , __riscv_vsll_vv_u32m1 (a_.sv64, u_b, 2), __riscv_vmsge_vx_i32m1_b32(b_.sv64, 0, 2), 2), 0 + , __riscv_vmsgeu_vx_u8mf4_b32(u_b_8mf4_abs, 32, 8), 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = + (simde_math_abs(b_.values[i]) >= 32) ? 0 : + (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : + (a_.values[i] >> -b_.values[i]); + } + #endif #endif return simde_uint32x2_from_private(r_); @@ -130945,10 +134732,24 @@ _mm_cmpgt_epi64(_mm_setzero_si128(), _mm_slli_epi64(b128, 56))); r_.m64 = _mm_movepi64_pi64(r128); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vshld_u64(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + // change b_ to int8_t + vint8mf8_t b_8mf8 = __riscv_vncvt_x_x_w_i8mf8(__riscv_vncvt_x_x_w_i16mf4 \ + (__riscv_vncvt_x_x_w_i32mf2 (b_.sv64, 1), 2), 4); + vint8mf8_t b_8mf8_abs = __riscv_vmax_vv_i8mf8(b_8mf8, __riscv_vneg_v_i8mf8 (b_8mf8, 8), 8); + vuint8mf8_t u_b_8mf8_abs = __riscv_vreinterpret_v_i8mf8_u8mf8 (b_8mf8_abs); + vuint64m1_t u_b = __riscv_vreinterpret_v_i64m1_u64m1 (b_.sv64); + vint64m1_t b_abs = __riscv_vmax_vv_i64m1 (b_.sv64, __riscv_vneg_v_i64m1 (b_.sv64, 1), 1); + vuint64m1_t u_b_abs = __riscv_vreinterpret_v_i64m1_u64m1 (b_abs); + r_.sv64 = __riscv_vmerge_vxm_u64m1(__riscv_vmerge_vvm_u64m1(__riscv_vsrl_vv_u64m1(a_.sv64, u_b_abs, 1) + , __riscv_vsll_vv_u64m1 (a_.sv64, u_b, 1), __riscv_vmsge_vx_i64m1_b64(b_.sv64, 0, 1), 1), 0 + , __riscv_vmsgeu_vx_u8mf8_b64(u_b_8mf8_abs, 64, 8), 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vshld_u64(a_.values[i], b_.values[i]); + } + #endif #endif return simde_uint64x1_from_private(r_); @@ -130992,13 +134793,23 @@ _mm256_cmpgt_epi16(_mm256_setzero_si256(), b256)); r_.m128i = _mm256_cvtepi16_epi8(r256); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int8_t, - (b_.values[i] >= 0) ? - (b_.values[i] >= 8) ? 0 : (a_.values[i] << b_.values[i]) : - (b_.values[i] <= -8) ? (a_.values[i] >> 7) : (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8m1_t bit_shift_rst = __riscv_vmerge_vxm_i8m1(__riscv_vsll_vv_i8m1 (a_.sv128, __riscv_vreinterpret_v_i8m1_u8m1(b_.sv128), 16), \ + 0, __riscv_vmsge_vx_i8m1_b8(b_.sv128, 8, 16), 16); + vint8m1_t b_abs = __riscv_vmax_vv_i8m1 (b_.sv128, __riscv_vneg_v_i8m1 (b_.sv128, 16), 16); + vuint8m1_t u_b_abs = __riscv_vreinterpret_v_i8m1_u8m1 (b_abs); + vint8m1_t scal_shift_rst = __riscv_vmerge_vvm_i8m1(__riscv_vsra_vv_i8m1 (a_.sv128, u_b_abs, 16) + , __riscv_vsra_vx_i8m1(a_.sv128, 7, 16), __riscv_vmsle_vx_i8m1_b8(b_.sv128, -8, 16), 16); + r_.sv128 = __riscv_vmerge_vvm_i8m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8m1_b8 (b_.sv128, 0, 16), 16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int8_t, + (b_.values[i] >= 0) ? + (b_.values[i] >= 8) ? 0 : (a_.values[i] << b_.values[i]) : + (b_.values[i] <= -8) ? (a_.values[i] >> 7) : (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_int8x16_from_private(r_); @@ -131051,14 +134862,26 @@ r256 = _mm256_shuffle_epi8(r256, _mm256_set1_epi64x(0x0D0C090805040100)); r_.m128i = _mm_set_epi64x(simde_mm256_extract_epi64(r256, 2), simde_mm256_extract_epi64(r256, 0)); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = HEDLEY_STATIC_CAST(int16_t, - (b_.values[i] >= 0) ? - (b_.values[i] >= 16) ? 0 : (a_.values[i] << b_.values[i]) : - (b_.values[i] <= -16) ? (a_.values[i] >> 15) : (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t b_8mf2 = __riscv_vncvt_x_x_w_i8mf2 (b_.sv128, 8); + vint8mf2_t b_8mf2_abs = __riscv_vmax_vv_i8mf2 (b_8mf2, __riscv_vneg_v_i8mf2 (b_8mf2, 16), 16); + vuint8mf2_t u_b_8mf2_abs = __riscv_vreinterpret_v_i8mf2_u8mf2(b_8mf2_abs); + vuint16m1_t u_b_abs = __riscv_vwcvtu_x_x_v_u16m1 (u_b_8mf2_abs, 16); + vint16m1_t bit_shift_rst = __riscv_vmerge_vxm_i16m1(__riscv_vsll_vv_i16m1 (a_.sv128, __riscv_vreinterpret_v_i16m1_u16m1(b_.sv128), 8), 0, \ + __riscv_vmsge_vx_i8mf2_b16(b_8mf2, 16, 16), 8); + vint16m1_t scal_shift_rst = __riscv_vmerge_vvm_i16m1(__riscv_vsra_vv_i16m1 (a_.sv128, u_b_abs, 8), + __riscv_vsra_vx_i16m1(a_.sv128, 15, 8), __riscv_vmsle_vx_i8mf2_b16(b_8mf2, -16, 16), 8); + r_.sv128 = __riscv_vmerge_vvm_i16m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8mf2_b16 (b_8mf2, 0, 16), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = HEDLEY_STATIC_CAST(int16_t, + (b_.values[i] >= 0) ? + (b_.values[i] >= 16) ? 0 : (a_.values[i] << b_.values[i]) : + (b_.values[i] <= -16) ? (a_.values[i] >> 15) : (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_int16x8_from_private(r_); @@ -131103,14 +134926,26 @@ _mm_srav_epi32(a_.m128i, _mm_abs_epi32(B)), _mm_cmpgt_epi32(_mm_setzero_si128(), B)); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = - (b_.values[i] >= 0) ? - (b_.values[i] >= 32) ? 0 : (a_.values[i] << b_.values[i]) : - (b_.values[i] <= -32) ? (a_.values[i] >> 31) : (a_.values[i] >> -b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf4_t b_8mf4 = __riscv_vncvt_x_x_w_i8mf4 (__riscv_vncvt_x_x_w_i16mf2 (b_.sv128, 4), 8); + vint8mf4_t b_8mf4_abs = __riscv_vmax_vv_i8mf4 (b_8mf4, __riscv_vneg_v_i8mf4 (b_8mf4, 16), 16); + vuint8mf4_t u_b_8mf4_abs = __riscv_vreinterpret_v_i8mf4_u8mf4 (b_8mf4_abs); + vuint32m1_t u_b_abs = __riscv_vwcvtu_x_x_v_u32m1 (__riscv_vwcvtu_x_x_v_u16mf2 (u_b_8mf4_abs, 16), 8); + vint32m1_t bit_shift_rst = __riscv_vmerge_vxm_i32m1(__riscv_vsll_vv_i32m1 (a_.sv128, __riscv_vreinterpret_v_i32m1_u32m1(b_.sv128), 4), 0, + __riscv_vmsge_vx_i8mf4_b32(b_8mf4, 32, 16), 4); + vint32m1_t scal_shift_rst = __riscv_vmerge_vvm_i32m1(__riscv_vsra_vv_i32m1 (a_.sv128, u_b_abs, 4), \ + __riscv_vsra_vx_i32m1(a_.sv128, 31, 4), __riscv_vmsle_vx_i8mf4_b32(b_8mf4, -32, 4), 4); + r_.sv128 = __riscv_vmerge_vvm_i32m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8mf4_b32 (b_8mf4, 0, 16), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = + (b_.values[i] >= 0) ? + (b_.values[i] >= 32) ? 0 : (a_.values[i] << b_.values[i]) : + (b_.values[i] <= -32) ? (a_.values[i] >> 31) : (a_.values[i] >> -b_.values[i]); + } + #endif #endif return simde_int32x4_from_private(r_); @@ -131164,10 +134999,21 @@ _mm_xor_si128(_mm_srlv_epi64(_mm_xor_si128(a_.m128i, maska), b_abs), maska), _mm_cmpgt_epi64(zero, _mm_slli_epi64(b_.m128i, 56))); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vshld_s64(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf8_t b_8mf8 = __riscv_vncvt_x_x_w_i8mf8 (__riscv_vncvt_x_x_w_i16mf4 (__riscv_vncvt_x_x_w_i32mf2 (b_.sv128, 2), 4), 8); + vint8mf8_t b_8mf8_abs = __riscv_vmax_vv_i8mf8 (b_8mf8, __riscv_vneg_v_i8mf8 (b_8mf8, 16), 16); + vuint8mf8_t u_b_8mf8_abs = __riscv_vreinterpret_v_i8mf8_u8mf8 (b_8mf8_abs); + vuint64m1_t u_b_abs = __riscv_vwcvtu_x_x_v_u64m1(__riscv_vwcvtu_x_x_v_u32mf2 (__riscv_vwcvtu_x_x_v_u16mf4(u_b_8mf8_abs, 16), 8), 4); + vint64m1_t bit_shift_rst = __riscv_vmerge_vxm_i64m1(__riscv_vsll_vv_i64m1 (a_.sv128, __riscv_vreinterpret_v_i64m1_u64m1(b_.sv128), 2), 0, __riscv_vmsge_vx_i8mf8_b64(b_8mf8, 64, 2), 2); + vint64m1_t scal_shift_rst = __riscv_vmerge_vvm_i64m1(__riscv_vsra_vv_i64m1 (a_.sv128, u_b_abs, 2) + , __riscv_vsra_vx_i64m1(a_.sv128, 63, 2), __riscv_vmsle_vx_i8mf8_b64(b_8mf8, -64, 2), 2); + r_.sv128 = __riscv_vmerge_vvm_i64m1 (bit_shift_rst, scal_shift_rst, __riscv_vmslt_vx_i8mf8_b64 (b_8mf8, 0, 16), 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vshld_s64(a_.values[i], b_.values[i]); + } + #endif #endif return simde_int64x2_from_private(r_); @@ -131204,13 +135050,22 @@ _mm256_cmpgt_epi16(_mm256_setzero_si256(), b256)); r_.m128i = _mm256_cvtepi16_epi8(r256); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(uint8_t, - (simde_math_abs(b_.values[i]) >= 8) ? 0 : - (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : - (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t u_b = __riscv_vreinterpret_v_i8m1_u8m1 (b_.sv128); + vint8m1_t b_abs = __riscv_vmax_vv_i8m1 (b_.sv128, __riscv_vneg_v_i8m1 (b_.sv128, 16), 16); + vuint8m1_t u_b_abs = __riscv_vreinterpret_v_i8m1_u8m1 (b_abs); + r_.sv128 = __riscv_vmerge_vxm_u8m1(__riscv_vmerge_vvm_u8m1(__riscv_vsrl_vv_u8m1(a_.sv128, u_b_abs, 16) + , __riscv_vsll_vv_u8m1 (a_.sv128, u_b, 16), __riscv_vmsge_vx_i8m1_b8(b_.sv128, 0, 16), 16), 0 + , __riscv_vmsgeu_vx_u8m1_b8(u_b_abs, 8, 16), 16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(uint8_t, + (simde_math_abs(b_.values[i]) >= 8) ? 0 : + (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : + (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_uint8x16_from_private(r_); @@ -131261,14 +135116,25 @@ r256 = _mm256_shuffle_epi8(r256, _mm256_set1_epi64x(0x0D0C090805040100)); r_.m128i = _mm_set_epi64x(simde_mm256_extract_epi64(r256, 2), simde_mm256_extract_epi64(r256, 0)); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, - (simde_math_abs(b_.values[i]) >= 16) ? 0 : - (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : - (a_.values[i] >> -b_.values[i])); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf2_t b_8mf2 = __riscv_vncvt_x_x_w_i8mf2 (b_.sv128, 8); + vint8mf2_t b_8mf2_abs = __riscv_vmax_vv_i8mf2 (b_8mf2, __riscv_vneg_v_i8mf2 (b_8mf2, 16), 16); + vuint8mf2_t u_b_8mf2_abs = __riscv_vreinterpret_v_i8mf2_u8mf2 (b_8mf2_abs); + vuint16m1_t u_b = __riscv_vreinterpret_v_i16m1_u16m1 (b_.sv128); + vuint16m1_t u_b_abs = __riscv_vwcvtu_x_x_v_u16m1 (u_b_8mf2_abs, 16); + r_.sv128 = __riscv_vmerge_vxm_u16m1(__riscv_vmerge_vvm_u16m1(__riscv_vsrl_vv_u16m1(a_.sv128, u_b_abs, 8), + __riscv_vsll_vv_u16m1 (a_.sv128, u_b, 8), __riscv_vmsge_vx_i8mf2_b16(b_8mf2, 0, 8), 8), + 0, __riscv_vmsgeu_vx_u8mf2_b16(u_b_8mf2_abs, 16, 16), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, + (simde_math_abs(b_.values[i]) >= 16) ? 0 : + (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : + (a_.values[i] >> -b_.values[i])); + } + #endif #endif return simde_uint16x8_from_private(r_); @@ -131305,13 +135171,26 @@ _mm_srlv_epi32(a_.m128i, _mm_abs_epi32(B)), _mm_cmpgt_epi32(_mm_setzero_si128(), B)); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); - r_.values[i] = (simde_math_abs(b_.values[i]) >= 32) ? 0 : - (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : - (a_.values[i] >> -b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf4_t b_8mf4 = __riscv_vncvt_x_x_w_i8mf4 ( + __riscv_vncvt_x_x_w_i16mf2 (b_.sv128, 4), 8); + vint8mf4_t b_8mf4_abs = __riscv_vmax_vv_i8mf4 (b_8mf4, __riscv_vneg_v_i8mf4 (b_8mf4, 16), 16); + vuint8mf4_t u_b_8mf4_abs = __riscv_vreinterpret_v_i8mf4_u8mf4 (b_8mf4_abs); + vuint32m1_t u_b = __riscv_vreinterpret_v_i32m1_u32m1 (b_.sv128); + vint32m1_t b_abs = __riscv_vmax_vv_i32m1 (b_.sv128, __riscv_vneg_v_i32m1 (b_.sv128, 4), 4); + vuint32m1_t u_b_abs = __riscv_vreinterpret_v_i32m1_u32m1 (b_abs); + r_.sv128 = __riscv_vmerge_vxm_u32m1(__riscv_vmerge_vvm_u32m1(__riscv_vsrl_vv_u32m1(a_.sv128, u_b_abs, 4) + , __riscv_vsll_vv_u32m1 (a_.sv128, u_b, 4), __riscv_vmsge_vx_i8mf4_b32(b_8mf4, 0, 4), 4), 0 + , __riscv_vmsgeu_vx_u8mf4_b32(u_b_8mf4_abs, 32, 16), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + b_.values[i] = HEDLEY_STATIC_CAST(int8_t, b_.values[i]); + r_.values[i] = (simde_math_abs(b_.values[i]) >= 32) ? 0 : + (b_.values[i] >= 0) ? (a_.values[i] << b_.values[i]) : + (a_.values[i] >> -b_.values[i]); + } + #endif #endif return simde_uint32x4_from_private(r_); @@ -131360,10 +135239,24 @@ _mm_srlv_epi64(a_.m128i, b_abs), _mm_cmpgt_epi64(_mm_setzero_si128(), _mm_slli_epi64(b_.m128i, 56))); #else - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vshld_u64(a_.values[i], b_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + vint8mf8_t b_8mf8 = __riscv_vncvt_x_x_w_i8mf8 ( + __riscv_vncvt_x_x_w_i16mf4 ( + __riscv_vncvt_x_x_w_i32mf2 (b_.sv128, 2), 4), 8); + vint8mf8_t b_8mf8_abs = __riscv_vmax_vv_i8mf8 (b_8mf8, __riscv_vneg_v_i8mf8 (b_8mf8, 16), 16); + vuint8mf8_t u_b_8mf8_abs = __riscv_vreinterpret_v_i8mf8_u8mf8 (b_8mf8_abs); + vuint64m1_t u_b = __riscv_vreinterpret_v_i64m1_u64m1 (b_.sv128); + vint64m1_t b_abs = __riscv_vmax_vv_i64m1 (b_.sv128, __riscv_vneg_v_i64m1 (b_.sv128, 2), 2); + vuint64m1_t u_b_abs = __riscv_vreinterpret_v_i64m1_u64m1 (b_abs); + r_.sv128 = __riscv_vmerge_vxm_u64m1(__riscv_vmerge_vvm_u64m1(__riscv_vsrl_vv_u64m1(a_.sv128, u_b_abs, 2) + , __riscv_vsll_vv_u64m1 (a_.sv128, u_b, 2), __riscv_vmsge_vx_i8mf8_b64(b_8mf8, 0, 2), 2), 0 + , __riscv_vmsgeu_vx_u8mf8_b64(u_b_8mf8_abs, 64, 16), 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vshld_u64(a_.values[i], b_.values[i]); + } + #endif #endif return simde_uint64x2_from_private(r_); @@ -131380,9 +135273,9 @@ #endif /* !defined(SIMDE_ARM_NEON_SHL_H) */ /* :: End simde/arm/neon/shl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shll_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -131414,7 +135307,7 @@ #define SIMDE_ARM_NEON_SHLL_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* * The constant range requirements for the shift amount *n* looks strange. @@ -131567,7 +135460,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SHLL_HIGH_N_H) */ /* :: End simde/arm/neon/shll_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shll_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -131594,13 +135487,14 @@ * Copyright: * 2020 Evan Nemerson * 2020 Christopher Moore + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SHLL_N_H) #define SIMDE_ARM_NEON_SHLL_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* * The constant range requirements for the shift amount *n* looks strange. @@ -131621,12 +135515,19 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 8) { simde_int16x8_private r_; simde_int8x8_private a_ = simde_int8x8_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int16_t, HEDLEY_STATIC_CAST(int16_t, a_.values[i]) << n); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m2_t va_wide = __riscv_vwcvt_x_x_v_i16m2 (a_.sv64, 8); + vint16m2_t rst = __riscv_vsll_vx_i16m2 (va_wide, n, 8); + r_.sv128 = __riscv_vlmul_trunc_v_i16m2_i16m1 (rst); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_i16x8_load8x8(&a_.values); + r_.v128 = wasm_i16x8_shl(tmp, HEDLEY_STATIC_CAST(uint32_t, n)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int16_t, HEDLEY_STATIC_CAST(int16_t, a_.values[i]) << n); + } + #endif return simde_int16x8_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131643,12 +135544,19 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 16) { simde_int32x4_private r_; simde_int16x4_private a_ = simde_int16x4_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int32_t, a_.values[i]) << n; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m2_t va_wide = __riscv_vwcvt_x_x_v_i32m2 (a_.sv64, 4); + vint32m2_t rst = __riscv_vsll_vx_i32m2 (va_wide, n, 4); + r_.sv128 = __riscv_vlmul_trunc_v_i32m2_i32m1 (rst); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_i32x4_load16x4(&a_.values); + r_.v128 = wasm_i32x4_shl(tmp, HEDLEY_STATIC_CAST(uint32_t, n)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int32_t, a_.values[i]) << n; + } + #endif return simde_int32x4_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131665,12 +135573,19 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 32) { simde_int64x2_private r_; simde_int32x2_private a_ = simde_int32x2_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int64_t, a_.values[i]) << n; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m2_t va_wide = __riscv_vwcvt_x_x_v_i64m2 (a_.sv64, 2); + vint64m2_t rst = __riscv_vsll_vx_i64m2 (va_wide, n, 2); + r_.sv128 = __riscv_vlmul_trunc_v_i64m2_i64m1 (rst); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_i64x2_load32x2(&a_.values); + r_.v128 = wasm_i64x2_shl(tmp, HEDLEY_STATIC_CAST(uint32_t, n)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int64_t, a_.values[i]) << n; + } + #endif return simde_int64x2_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131687,12 +135602,19 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 8) { simde_uint16x8_private r_; simde_uint8x8_private a_ = simde_uint8x8_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, HEDLEY_STATIC_CAST(uint16_t, a_.values[i]) << n); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint16m2_t va_wide = __riscv_vwcvtu_x_x_v_u16m2 (a_.sv64, 8); + vuint16m2_t rst = __riscv_vsll_vx_u16m2 (va_wide, n, 8); + r_.sv128 = __riscv_vlmul_trunc_v_u16m2_u16m1 (rst); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_u16x8_load8x8(&a_.values); + r_.v128 = wasm_i16x8_shl(tmp, HEDLEY_STATIC_CAST(uint32_t, n)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(uint16_t, HEDLEY_STATIC_CAST(uint16_t, a_.values[i]) << n); + } + #endif return simde_uint16x8_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131709,12 +135631,19 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 16) { simde_uint32x4_private r_; simde_uint16x4_private a_ = simde_uint16x4_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(uint32_t, a_.values[i]) << n; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint32m2_t va_wide = __riscv_vwcvtu_x_x_v_u32m2 (a_.sv64, 4); + vuint32m2_t rst = __riscv_vsll_vx_u32m2 (va_wide, n, 4); + r_.sv128 = __riscv_vlmul_trunc_v_u32m2_u32m1 (rst); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_u32x4_load16x4(&a_.values); + r_.v128 = wasm_i32x4_shl(tmp, HEDLEY_STATIC_CAST(uint32_t, n)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(uint32_t, a_.values[i]) << n; + } + #endif return simde_uint32x4_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131731,12 +135660,19 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 0, 32) { simde_uint64x2_private r_; simde_uint32x2_private a_ = simde_uint32x2_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(uint64_t, a_.values[i]) << n; - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m2_t va_wide = __riscv_vwcvtu_x_x_v_u64m2 (a_.sv64, 2); + vuint64m2_t rst = __riscv_vsll_vx_u64m2 (va_wide, n, 2); + r_.sv128 = __riscv_vlmul_trunc_v_u64m2_u64m1 (rst); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + v128_t tmp = wasm_u64x2_load32x2(&a_.values); + r_.v128 = wasm_i64x2_shl(tmp, HEDLEY_STATIC_CAST(uint32_t, n)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(uint64_t, a_.values[i]) << n; + } + #endif return simde_uint64x2_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131753,9 +135689,9 @@ #endif /* !defined(SIMDE_ARM_NEON_SHLL_N_H) */ /* :: End simde/arm/neon/shll_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shrn_high_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -131787,13 +135723,13 @@ #define SIMDE_ARM_NEON_SHRN_HIGH_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/shrn_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -131821,19 +135757,20 @@ * 2020 Evan Nemerson * 2021 Zhi An Ng (Copyright owned by Google, LLC) * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SHRN_N_H) #define SIMDE_ARM_NEON_SHRN_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -131845,10 +135782,16 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 8) { simde_int8x8_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int8_t, (a_.values[i] >> n) & UINT8_MAX); - } + + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m1_t shift = __riscv_vand_vx_i16m1(__riscv_vsll_vx_i16m1 (a_.sv128, n, 8), UINT8_MAX, 8); + r_.sv64 = __riscv_vlmul_ext_v_i8mf2_i8m1(__riscv_vncvt_x_x_w_i8mf2(shift, 8)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int8_t, (a_.values[i] >> n) & UINT8_MAX); + } + #endif return simde_int8x8_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131867,12 +135810,15 @@ SIMDE_REQUIRE_CONSTANT_RANGE(n, 1, 16) { simde_int16x4_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int16_t, (a_.values[i] >> n) & UINT16_MAX); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m1_t shift = __riscv_vand_vx_i32m1(__riscv_vsll_vx_i32m1 (a_.sv128, n, 4), UINT16_MAX, 4); + r_.sv64 = __riscv_vlmul_ext_v_i16mf2_i16m1(__riscv_vncvt_x_x_w_i16mf2(shift, 4)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int16_t, (a_.values[i] >> n) & UINT16_MAX); + } + #endif return simde_int16x4_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -131892,11 +135838,15 @@ simde_int32x2_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = HEDLEY_STATIC_CAST(int32_t, (a_.values[i] >> n) & UINT32_MAX); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m1_t shift = __riscv_vand_vx_i64m1(__riscv_vsll_vx_i64m1 (a_.sv128, n, 2), UINT32_MAX, 2); + r_.sv64 = __riscv_vlmul_ext_v_i32mf2_i32m1(__riscv_vncvt_x_x_w_i32mf2(shift, 2)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = HEDLEY_STATIC_CAST(int32_t, (a_.values[i] >> n) & UINT32_MAX); + } + #endif return simde_int32x2_from_private(r_); } #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) @@ -132033,9 +135983,9 @@ #endif /* !defined(SIMDE_ARM_NEON_SHRN_HIGH_N_H) */ /* :: End simde/arm/neon/shrn_high_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sli_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -132067,17 +136017,17 @@ #define SIMDE_ARM_NEON_SLI_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -132388,7 +136338,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SLI_N_H) */ /* :: End simde/arm/neon/sli_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sm3.h :: */ /* SPDX-License-Identifier: MIT * @@ -132420,10 +136370,14 @@ #define SIMDE_ARM_NEON_SM3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS +#if HEDLEY_GCC_VERSION_CHECK(14,0,0) + SIMDE_DIAGNOSTIC_DISABLE_MAYBE_UNINITIAZILED_ +#endif + SIMDE_BEGIN_DECLS_ #define ROR32(operand, shift) (((operand) >> (shift)) | ((operand) << (32-shift))) @@ -132644,7 +136598,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SM3_H) */ /* :: End simde/arm/neon/sm3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sm4.h :: */ /* SPDX-License-Identifier: MIT * @@ -132676,7 +136630,7 @@ #define SIMDE_ARM_NEON_SM4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -132804,7 +136758,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SM4_H) */ /* :: End simde/arm/neon/sm4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sqadd.h :: */ /* SPDX-License-Identifier: MIT * @@ -132830,13 +136784,14 @@ * * Copyright: * 2021 Atharva Nimbalkar + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SQADD_H) #define SIMDE_ARM_NEON_SQADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include // Workaround on ARM64 windows due to windows SDK bug @@ -132951,12 +136906,20 @@ r_, a_ = simde_uint8x8_to_private(a); simde_int8x8_private b_ = simde_int8x8_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqaddb_u8(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m2_t sum = __riscv_vreinterpret_v_u16m2_i16m2( + __riscv_vadd_vv_u16m2 ( + __riscv_vwcvtu_x_x_v_u16m2 (a_.sv64, 8), __riscv_vreinterpret_v_i16m2_u16m2( \ + __riscv_vwcvt_x_x_v_i16m2 (b_.sv64, 8)),8)); + r_.sv64 = __riscv_vmerge_vxm_u8m1(__riscv_vmerge_vxm_u8m1(__riscv_vncvt_x_x_w_u8m1 \ + (__riscv_vreinterpret_v_i16m2_u16m2(sum), 8),255, __riscv_vmsgt_vx_i16m2_b8(sum, 255, 8), + 8), 0, __riscv_vmslt_vx_i16m2_b8(sum, 0, 8), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqaddb_u8(a_.values[i], b_.values[i]); + } + #endif return simde_uint8x8_from_private(r_); #endif } @@ -132975,12 +136938,19 @@ r_, a_ = simde_uint16x4_to_private(a); simde_int16x4_private b_ = simde_int16x4_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqaddh_u16(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m2_t sum = __riscv_vreinterpret_v_u32m2_i32m2(__riscv_vadd_vv_u32m2 \ + (__riscv_vwcvtu_x_x_v_u32m2 (a_.sv64, 4), __riscv_vreinterpret_v_i32m2_u32m2( \ + __riscv_vwcvt_x_x_v_i32m2 (b_.sv64, 4)), 4)); + r_.sv64 = __riscv_vmerge_vxm_u16m1(__riscv_vmerge_vxm_u16m1(__riscv_vncvt_x_x_w_u16m1( \ + __riscv_vreinterpret_v_i32m2_u32m2(sum), 4),UINT16_MAX,__riscv_vmsgt_vx_i32m2_b16(sum, UINT16_MAX, 4), + 4), 0, __riscv_vmslt_vx_i32m2_b16(sum, 0, 4), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqaddh_u16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x4_from_private(r_); #endif } @@ -132999,12 +136969,19 @@ r_, a_ = simde_uint32x2_to_private(a); simde_int32x2_private b_ = simde_int32x2_to_private(b); + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m2_t sum = __riscv_vreinterpret_v_u64m2_i64m2(__riscv_vadd_vv_u64m2 (__riscv_vwcvtu_x_x_v_u64m2 (a_.sv64, 2), \ + __riscv_vreinterpret_v_i64m2_u64m2(__riscv_vwcvt_x_x_v_i64m2 (b_.sv64, 2)), 2)); + r_.sv64 = __riscv_vmerge_vxm_u32m1( + __riscv_vmerge_vxm_u32m1(__riscv_vncvt_x_x_w_u32m1(__riscv_vreinterpret_v_i64m2_u64m2(sum), 2), + UINT32_MAX,__riscv_vmsgt_vx_i64m2_b32(sum, UINT32_MAX, 2),2), 0, __riscv_vmslt_vx_i64m2_b32(sum, 0, 2), 2); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqadds_u32(a_.values[i], b_.values[i]); - } - + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqadds_u32(a_.values[i], b_.values[i]); + } + #endif return simde_uint32x2_from_private(r_); #endif } @@ -133023,12 +137000,18 @@ r_, a_ = simde_uint64x1_to_private(a); simde_int64x1_private b_ = simde_int64x1_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqaddd_u64(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t sum = __riscv_vreinterpret_v_i64m1_u64m1(__riscv_vadd_vx_i64m1(b_.sv64, (int64_t)a_.values[0], 1)); + r_.sv64 = __riscv_vmerge_vvm_u64m1(__riscv_vmerge_vxm_u64m1(sum,UINT64_MAX,__riscv_vmsgtu_vx_u64m1_b64( \ + __riscv_vreinterpret_v_i64m1_u64m1(b_.sv64), UINT64_MAX - a_.values[0], 1), 1), __riscv_vmerge_vxm_u64m1( \ + sum, 0, __riscv_vmsgtu_vx_u64m1_b64(__riscv_vreinterpret_v_i64m1_u64m1(__riscv_vneg_v_i64m1(b_.sv64, 1)), \ + a_.values[0], 1), 1), __riscv_vmsle_vx_i64m1_b64(b_.sv64, 0, 1), 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqaddd_u64(a_.values[i], b_.values[i]); + } + #endif return simde_uint64x1_from_private(r_); #endif } @@ -133047,12 +137030,18 @@ r_, a_ = simde_uint8x16_to_private(a); simde_int8x16_private b_ = simde_int8x16_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqaddb_u8(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint16m2_t sum = __riscv_vreinterpret_v_u16m2_i16m2(__riscv_vadd_vv_u16m2 (__riscv_vwcvtu_x_x_v_u16m2 \ + (a_.sv128, 16), __riscv_vreinterpret_v_i16m2_u16m2(__riscv_vwcvt_x_x_v_i16m2 (b_.sv128, 16)), 16)); + r_.sv128 = __riscv_vmerge_vxm_u8m1(__riscv_vmerge_vxm_u8m1(__riscv_vncvt_x_x_w_u8m1( \ + __riscv_vreinterpret_v_i16m2_u16m2(sum), 16), 255, __riscv_vmsgt_vx_i16m2_b8(sum, 255, 16), 16), 0, \ + __riscv_vmslt_vx_i16m2_b8(sum, 0, 16), 16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqaddb_u8(a_.values[i], b_.values[i]); + } + #endif return simde_uint8x16_from_private(r_); #endif } @@ -133071,12 +137060,18 @@ r_, a_ = simde_uint16x8_to_private(a); simde_int16x8_private b_ = simde_int16x8_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqaddh_u16(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint32m2_t sum = __riscv_vreinterpret_v_u32m2_i32m2(__riscv_vadd_vv_u32m2 (__riscv_vwcvtu_x_x_v_u32m2 \ + (a_.sv128, 8), __riscv_vreinterpret_v_i32m2_u32m2(__riscv_vwcvt_x_x_v_i32m2 (b_.sv128, 8)), 8)); + r_.sv128 = __riscv_vmerge_vxm_u16m1(__riscv_vmerge_vxm_u16m1(__riscv_vncvt_x_x_w_u16m1( \ + __riscv_vreinterpret_v_i32m2_u32m2(sum), 8), UINT16_MAX, __riscv_vmsgt_vx_i32m2_b16(sum, UINT16_MAX, 8), \ + 8), 0, __riscv_vmslt_vx_i32m2_b16(sum, 0, 8), 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqaddh_u16(a_.values[i], b_.values[i]); + } + #endif return simde_uint16x8_from_private(r_); #endif } @@ -133095,12 +137090,19 @@ r_, a_ = simde_uint32x4_to_private(a); simde_int32x4_private b_ = simde_int32x4_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqadds_u32(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vint64m2_t sum = __riscv_vreinterpret_v_u64m2_i64m2(__riscv_vadd_vv_u64m2 ( + __riscv_vwcvtu_x_x_v_u64m2 (a_.sv128, 4), __riscv_vreinterpret_v_i64m2_u64m2( \ + __riscv_vwcvt_x_x_v_i64m2 (b_.sv128, 4)), 4)); + r_.sv128 = __riscv_vmerge_vxm_u32m1(__riscv_vmerge_vxm_u32m1( + __riscv_vncvt_x_x_w_u32m1(__riscv_vreinterpret_v_i64m2_u64m2(sum), 4), UINT32_MAX, + __riscv_vmsgt_vx_i64m2_b32(sum, UINT32_MAX, 4), 4), 0, __riscv_vmslt_vx_i64m2_b32(sum, 0, 4), 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqadds_u32(a_.values[i], b_.values[i]); + } + #endif return simde_uint32x4_from_private(r_); #endif } @@ -133119,12 +137121,21 @@ r_, a_ = simde_uint64x2_to_private(a); simde_int64x2_private b_ = simde_int64x2_to_private(b); - - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqaddd_u64(a_.values[i], b_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + vuint64m1_t sum = __riscv_vreinterpret_v_i64m1_u64m1(__riscv_vadd_vv_i64m1(b_.sv128, \ + __riscv_vreinterpret_v_u64m1_i64m1(a_.sv128), 2)); + r_.sv128 = __riscv_vmerge_vvm_u64m1( + __riscv_vmerge_vxm_u64m1(sum, UINT64_MAX, __riscv_vmsgtu_vv_u64m1_b64( + __riscv_vreinterpret_v_i64m1_u64m1(b_.sv128), __riscv_vsub_vv_u64m1(__riscv_vmv_v_x_u64m1(UINT64_MAX, 2), \ + a_.sv128, 2), 2), 2), __riscv_vmerge_vxm_u64m1(sum, 0, __riscv_vmsgtu_vv_u64m1_b64 \ + (__riscv_vreinterpret_v_i64m1_u64m1(__riscv_vneg_v_i64m1(b_.sv128, 2)), a_.sv128, 2), 2), \ + __riscv_vmsle_vx_i64m1_b64(b_.sv128, 0, 2), 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqaddd_u64(a_.values[i], b_.values[i]); + } + #endif return simde_uint64x2_from_private(r_); #endif } @@ -133139,7 +137150,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SQADD_H) */ /* :: End simde/arm/neon/sqadd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sqrt.h :: */ /* SPDX-License-Identifier: MIT * @@ -133165,13 +137176,14 @@ * * Copyright: * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Chi-Wei Chu (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SQRT_H) #define SIMDE_ARM_NEON_SQRT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -133204,10 +137216,14 @@ r_, a_ = simde_float16x4_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqrth_f16(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv64 = __riscv_vfsqrt_v_f16m1(a_.sv64, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqrth_f16(a_.values[i]); + } + #endif return simde_float16x4_from_private(r_); #endif @@ -133227,11 +137243,14 @@ r_, a_ = simde_float32x2_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_sqrtf(a_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfsqrt_v_f32m1(a_.sv64, 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_sqrtf(a_.values[i]); + } + #endif return simde_float32x2_from_private(r_); #else HEDLEY_UNREACHABLE(); @@ -133252,10 +137271,14 @@ r_, a_ = simde_float64x1_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_sqrt(a_.values[i]); - } + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv64 = __riscv_vfsqrt_v_f64m1(a_.sv64, 1); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_sqrt(a_.values[i]); + } + #endif return simde_float64x1_from_private(r_); #else @@ -133276,11 +137299,14 @@ simde_float16x8_private r_, a_ = simde_float16x8_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_vsqrth_f16(a_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) && SIMDE_ARCH_RISCV_ZVFH + r_.sv128 = __riscv_vfsqrt_v_f16m1(a_.sv128, 8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_vsqrth_f16(a_.values[i]); + } + #endif return simde_float16x8_from_private(r_); #endif } @@ -133299,11 +137325,14 @@ r_, a_ = simde_float32x4_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_sqrtf(a_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfsqrt_v_f32m1(a_.sv128, 4); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_sqrtf(a_.values[i]); + } + #endif return simde_float32x4_from_private(r_); #else HEDLEY_UNREACHABLE(); @@ -133324,11 +137353,14 @@ r_, a_ = simde_float64x2_to_private(a); - SIMDE_VECTORIZE - for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { - r_.values[i] = simde_math_sqrt(a_.values[i]); - } - + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vfsqrt_v_f64m1(a_.sv128, 2); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { + r_.values[i] = simde_math_sqrt(a_.values[i]); + } + #endif return simde_float64x2_from_private(r_); #else HEDLEY_UNREACHABLE(); @@ -133345,7 +137377,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SQRT_H) */ /* :: End simde/arm/neon/sqrt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sra_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -133378,11 +137410,11 @@ #define SIMDE_ARM_NEON_SRA_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -133574,7 +137606,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SRA_N_H) */ /* :: End simde/arm/neon/sra_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sri_n.h :: */ /* SPDX-License-Identifier: MIT * @@ -133608,17 +137640,17 @@ #define SIMDE_ARM_NEON_SRI_N_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -133929,7 +137961,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SRI_N_H) */ /* :: End simde/arm/neon/sri_n.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1.h :: */ /* SPDX-License-Identifier: MIT * @@ -133963,7 +137995,7 @@ #define SIMDE_ARM_NEON_ST1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -134586,7 +138618,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1_H) */ /* :: End simde/arm/neon/st1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -134619,7 +138651,7 @@ #if !defined(SIMDE_ARM_NEON_ST1_LANE_H) #define SIMDE_ARM_NEON_ST1_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -135116,7 +139148,7 @@ /* :: End simde/arm/neon/st1_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1_x2.h :: */ /* SPDX-License-Identifier: MIT * @@ -135151,7 +139183,7 @@ #define SIMDE_ARM_NEON_ST1_X2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -135432,7 +139464,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1_X2_H) */ /* :: End simde/arm/neon/st1_x2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1_x3.h :: */ /* SPDX-License-Identifier: MIT * @@ -135467,7 +139499,7 @@ #define SIMDE_ARM_NEON_ST1_X3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -135763,7 +139795,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1_X3_H) */ /* :: End simde/arm/neon/st1_x3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1_x4.h :: */ /* SPDX-License-Identifier: MIT * @@ -135798,7 +139830,7 @@ #define SIMDE_ARM_NEON_ST1_X4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -135836,7 +139868,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_f32_x4(simde_float32 ptr[HEDLEY_ARRAY_PARAM(8)], simde_float32x2x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_f32_x4(ptr, val); #else simde_vst1_f32(ptr, val.val[0]); @@ -135853,7 +139886,7 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_f64_x4(simde_float64 ptr[HEDLEY_ARRAY_PARAM(4)], simde_float64x1x4_t val) { - #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_GCC_114521) vst1_f64_x4(ptr, val); #else simde_vst1_f64(ptr, val.val[0]); @@ -135870,7 +139903,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_s8_x4(int8_t ptr[HEDLEY_ARRAY_PARAM(32)], simde_int8x8x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_s8_x4(ptr, val); #else simde_vst1_s8(ptr, val.val[0]); @@ -135887,7 +139921,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_s16_x4(int16_t ptr[HEDLEY_ARRAY_PARAM(16)], simde_int16x4x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_s16_x4(ptr, val); #else simde_vst1_s16(ptr, val.val[0]); @@ -135904,7 +139939,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_s32_x4(int32_t ptr[HEDLEY_ARRAY_PARAM(8)], simde_int32x2x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_s32_x4(ptr, val); #else simde_vst1_s32(ptr, val.val[0]); @@ -135921,7 +139957,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_s64_x4(int64_t ptr[HEDLEY_ARRAY_PARAM(4)], simde_int64x1x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_s64_x4(ptr, val); #else simde_vst1_s64(ptr, val.val[0]); @@ -135938,7 +139975,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_u8_x4(uint8_t ptr[HEDLEY_ARRAY_PARAM(32)], simde_uint8x8x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_u8_x4(ptr, val); #else simde_vst1_u8(ptr, val.val[0]); @@ -135955,7 +139993,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_u16_x4(uint16_t ptr[HEDLEY_ARRAY_PARAM(16)], simde_uint16x4x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_u16_x4(ptr, val); #else simde_vst1_u16(ptr, val.val[0]); @@ -135972,7 +140011,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_u32_x4(uint32_t ptr[HEDLEY_ARRAY_PARAM(8)], simde_uint32x2x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_u32_x4(ptr, val); #else simde_vst1_u32(ptr, val.val[0]); @@ -135989,7 +140029,8 @@ SIMDE_FUNCTION_ATTRIBUTES void simde_vst1_u64_x4(uint64_t ptr[HEDLEY_ARRAY_PARAM(4)], simde_uint64x1x4_t val) { - #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_GCC_REV_260989) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_u64_x4(ptr, val); #else simde_vst1_u64(ptr, val.val[0]); @@ -136007,7 +140048,8 @@ void simde_vst1_p8_x4(simde_poly8_t ptr[HEDLEY_ARRAY_PARAM(32)], simde_poly8x8x4_t val) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && \ - (!defined(HEDLEY_GCC_VERSION) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(SIMDE_ARM_NEON_A64V8_NATIVE))) + (!defined(HEDLEY_GCC_VERSION) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(SIMDE_ARM_NEON_A64V8_NATIVE))) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_p8_x4(ptr, val); #else simde_poly8x8_private val_[4]; @@ -136033,7 +140075,8 @@ void simde_vst1_p16_x4(simde_poly16_t ptr[HEDLEY_ARRAY_PARAM(16)], simde_poly16x4x4_t val) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && \ - (!defined(HEDLEY_GCC_VERSION) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(SIMDE_ARM_NEON_A64V8_NATIVE))) + (!defined(HEDLEY_GCC_VERSION) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(SIMDE_ARM_NEON_A64V8_NATIVE))) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_p16_x4(ptr, val); #else simde_poly16x4_private val_[4]; @@ -136059,7 +140102,8 @@ void simde_vst1_p64_x4(simde_poly64_t ptr[HEDLEY_ARRAY_PARAM(4)], simde_poly64x1x4_t val) { #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && \ - (!defined(HEDLEY_GCC_VERSION) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(SIMDE_ARM_NEON_A64V8_NATIVE))) + (!defined(HEDLEY_GCC_VERSION) || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && defined(SIMDE_ARM_NEON_A64V8_NATIVE))) \ + && !defined(SIMDE_BUG_GCC_114521) vst1_p64_x4(ptr, val); #else simde_poly64x1_private val_[4]; @@ -136107,7 +140151,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1_X4_H) */ /* :: End simde/arm/neon/st1_x4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1q_x2.h :: */ /* SPDX-License-Identifier: MIT * @@ -136140,7 +140184,7 @@ #define SIMDE_ARM_NEON_ST1Q_X2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -136421,7 +140465,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1Q_X2_H) */ /* :: End simde/arm/neon/st1q_x2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1q_x3.h :: */ /* SPDX-License-Identifier: MIT * @@ -136454,7 +140498,7 @@ #define SIMDE_ARM_NEON_ST1Q_X3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -136750,7 +140794,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1Q_X3_H) */ /* :: End simde/arm/neon/st1q_x3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st1q_x4.h :: */ /* SPDX-License-Identifier: MIT * @@ -136785,7 +140829,7 @@ #define SIMDE_ARM_NEON_ST1Q_X4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -137094,7 +141138,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST1Q_X4_H) */ /* :: End simde/arm/neon/st1q_x4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st2.h :: */ /* SPDX-License-Identifier: MIT * @@ -137129,9 +141173,9 @@ #define SIMDE_ARM_NEON_ST2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/zip.h :: */ /* SPDX-License-Identifier: MIT * @@ -137165,9 +141209,9 @@ #define SIMDE_ARM_NEON_ZIP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/zip1.h :: */ /* SPDX-License-Identifier: MIT * @@ -137201,7 +141245,7 @@ #define SIMDE_ARM_NEON_ZIP1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -138034,7 +142078,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ZIP1_H) */ /* :: End simde/arm/neon/zip1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/zip2.h :: */ /* SPDX-License-Identifier: MIT * @@ -138068,7 +142112,7 @@ #define SIMDE_ARM_NEON_ZIP2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -139357,6 +143401,22 @@ simde_vst2_u8(uint8_t *ptr, simde_uint8x8x2_t val) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) vst2_u8(ptr, val); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + simde_uint8x16_private r0_; + simde_uint8x16_private ab_ = simde_uint8x16_to_private(simde_vcombine_u8(val.val[0], val.val[1])); + + r0_.v128 = wasm_i8x16_shuffle(ab_.v128, ab_.v128, + 0, 8, + 1, 9, + 2, 10, + 3, 11, + 4, 12, + 5, 13, + 6, 14, + 7, 15 + ); + + wasm_v128_store(ptr, r0_.v128); #else simde_uint8x8_private a_[2] = {simde_uint8x8_to_private(val.val[0]), simde_uint8x8_to_private(val.val[1])}; @@ -139935,7 +143995,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST2_H) */ /* :: End simde/arm/neon/st2.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st2_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -139968,7 +144028,7 @@ #define SIMDE_ARM_NEON_ST2_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -140558,7 +144618,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST2_LANE_H) */ /* :: End simde/arm/neon/st2_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st3.h :: */ /* SPDX-License-Identifier: MIT * @@ -140593,9 +144653,9 @@ #define SIMDE_ARM_NEON_ST3_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -141742,7 +145802,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST3_H) */ /* :: End simde/arm/neon/st3.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st3_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -141775,7 +145835,7 @@ #define SIMDE_ARM_NEON_ST3_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -142365,7 +146425,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST3_LANE_H) */ /* :: End simde/arm/neon/st3_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st4.h :: */ /* SPDX-License-Identifier: MIT * @@ -142400,7 +146460,7 @@ #define SIMDE_ARM_NEON_ST4_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -142616,6 +146676,27 @@ simde_vst4_u8(uint8_t *ptr, simde_uint8x8x4_t val) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) vst4_u8(ptr, val); + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + simde_uint16x8_private r0_, r1_; + simde_uint8x16_private ab_ = simde_uint8x16_to_private(simde_vcombine_u8(val.val[0], val.val[1])); + simde_uint8x16_private cd_ = simde_uint8x16_to_private(simde_vcombine_u8(val.val[2], val.val[3])); + + // Perform the interleaving + r0_.v128 = wasm_i8x16_shuffle(ab_.v128, cd_.v128, + 0, 8, 16, 24, + 1, 9, 17, 25, + 2, 10, 18, 26, + 3, 11, 19, 27 + ); + r1_.v128 = wasm_i8x16_shuffle(ab_.v128, cd_.v128, + 4, 12, 20, 28, + 5, 13, 21, 29, + 6, 14, 22, 30, + 7, 15, 23, 31 + ); + + wasm_v128_store(ptr, r0_.v128); + wasm_v128_store(ptr + sizeof(r0_), r1_.v128); #else simde_uint8x8_private a_[4] = { simde_uint8x8_to_private(val.val[0]), simde_uint8x8_to_private(val.val[1]), simde_uint8x8_to_private(val.val[2]), simde_uint8x8_to_private(val.val[3]) }; @@ -143269,7 +147350,7 @@ #endif /* !defined(SIMDE_ARM_NEON_ST4_H) */ /* :: End simde/arm/neon/st4.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/st4_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -143303,7 +147384,7 @@ #define SIMDE_ARM_NEON_ST4_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -143893,9 +147974,9 @@ #endif /* !defined(SIMDE_ARM_NEON_ST4_LANE_H) */ /* :: End simde/arm/neon/st4_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/subhn.h :: */ /* SPDX-License-Identifier: MIT * @@ -143927,14 +148008,14 @@ #define SIMDE_ARM_NEON_SUBHN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -144114,7 +148195,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUBHN_H) */ /* :: End simde/arm/neon/subhn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/subhn_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -144146,12 +148227,12 @@ #define SIMDE_ARM_NEON_SUBHN_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -144223,9 +148304,9 @@ #endif /* !defined(SIMDE_ARM_NEON_SUBHN_HIGH_H) */ /* :: End simde/arm/neon/subhn_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/subl_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -144251,19 +148332,20 @@ * * Copyright: * 2021 Décio Luiz Gazzoni Filho + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SUBL_HIGH_H) #define SIMDE_ARM_NEON_SUBL_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -144274,6 +148356,14 @@ simde_vsubl_high_s8(simde_int8x16_t a, simde_int8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubl_high_s8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_int16x8_private r_; + simde_int8x16_private a_ = simde_int8x16_to_private(a); + simde_int8x16_private b_ = simde_int8x16_to_private(b); + a_.sv128 = __riscv_vslidedown_vx_i8m1(a_.sv128 , 8 , 16); + b_.sv128 = __riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwsub_vv_i16m1(__riscv_vlmul_trunc_v_i8m1_i8mf2(a_.sv128) , __riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv128) , 8); + return simde_int16x8_from_private(r_); #else return simde_vsubq_s16(simde_vmovl_high_s8(a), simde_vmovl_high_s8(b)); #endif @@ -144288,6 +148378,14 @@ simde_vsubl_high_s16(simde_int16x8_t a, simde_int16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubl_high_s16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_int32x4_private r_; + simde_int16x8_private a_ = simde_int16x8_to_private(a); + simde_int16x8_private b_ = simde_int16x8_to_private(b); + a_.sv128 = __riscv_vslidedown_vx_i16m1(a_.sv128 , 4 , 8); + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwsub_vv_i32m1(__riscv_vlmul_trunc_v_i16m1_i16mf2(a_.sv128) , __riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv128) , 4); + return simde_int32x4_from_private(r_); #else return simde_vsubq_s32(simde_vmovl_high_s16(a), simde_vmovl_high_s16(b)); #endif @@ -144302,6 +148400,14 @@ simde_vsubl_high_s32(simde_int32x4_t a, simde_int32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubl_high_s32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_int64x2_private r_; + simde_int32x4_private a_ = simde_int32x4_to_private(a); + simde_int32x4_private b_ = simde_int32x4_to_private(b); + a_.sv128 = __riscv_vslidedown_vx_i32m1(a_.sv128 , 2, 4); + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2, 4); + r_.sv128 = __riscv_vwsub_vv_i64m1(__riscv_vlmul_trunc_v_i32m1_i32mf2(a_.sv128) , __riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv128) , 2); + return simde_int64x2_from_private(r_); #else return simde_vsubq_s64(simde_vmovl_high_s32(a), simde_vmovl_high_s32(b)); #endif @@ -144316,6 +148422,14 @@ simde_vsubl_high_u8(simde_uint8x16_t a, simde_uint8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubl_high_u8(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint16x8_private r_; + simde_uint8x16_private a_ = simde_uint8x16_to_private(a); + simde_uint8x16_private b_ = simde_uint8x16_to_private(b); + a_.sv128 = __riscv_vslidedown_vx_u8m1(a_.sv128 , 8 , 16); + b_.sv128 = __riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwsubu_vv_u16m1(__riscv_vlmul_trunc_v_u8m1_u8mf2 (a_.sv128) , __riscv_vlmul_trunc_v_u8m1_u8mf2 (b_.sv128) , 8); + return simde_uint16x8_from_private(r_); #else return simde_vsubq_u16(simde_vmovl_high_u8(a), simde_vmovl_high_u8(b)); #endif @@ -144330,6 +148444,14 @@ simde_vsubl_high_u16(simde_uint16x8_t a, simde_uint16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubl_high_u16(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint32x4_private r_; + simde_uint16x8_private a_ = simde_uint16x8_to_private(a); + simde_uint16x8_private b_ = simde_uint16x8_to_private(b); + a_.sv128 = __riscv_vslidedown_vx_u16m1(a_.sv128 , 4 , 8); + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwsubu_vv_u32m1(__riscv_vlmul_trunc_v_u16m1_u16mf2 (a_.sv128) , __riscv_vlmul_trunc_v_u16m1_u16mf2 (b_.sv128) , 4); + return simde_uint32x4_from_private(r_); #else return simde_vsubq_u32(simde_vmovl_high_u16(a), simde_vmovl_high_u16(b)); #endif @@ -144344,6 +148466,14 @@ simde_vsubl_high_u32(simde_uint32x4_t a, simde_uint32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubl_high_u32(a, b); + #elif defined(SIMDE_RISCV_V_NATIVE) && (SIMDE_NATURAL_VECTOR_SIZE == 128) + simde_uint64x2_private r_; + simde_uint32x4_private a_ = simde_uint32x4_to_private(a); + simde_uint32x4_private b_ = simde_uint32x4_to_private(b); + a_.sv128 = __riscv_vslidedown_vx_u32m1(a_.sv128 , 2, 4); + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2, 4); + r_.sv128 = __riscv_vwsubu_vv_u64m1(__riscv_vlmul_trunc_v_u32m1_u32mf2 (a_.sv128) , __riscv_vlmul_trunc_v_u32m1_u32mf2 (b_.sv128) , 2); + return simde_uint64x2_from_private(r_); #else return simde_vsubq_u64(simde_vmovl_high_u32(a), simde_vmovl_high_u32(b)); #endif @@ -144359,7 +148489,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUBL_HIGH_H) */ /* :: End simde/arm/neon/subl_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/subw.h :: */ /* SPDX-License-Identifier: MIT * @@ -144385,17 +148515,18 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SUBW_H) #define SIMDE_ARM_NEON_SUBW_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -144406,14 +148537,16 @@ simde_vsubw_s8(simde_int16x8_t a, simde_int8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubw_s8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_s16(a, simde_vmovl_s8(b)); #else simde_int16x8_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); simde_int8x8_private b_ = simde_int8x8_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vwsub_wv_i16m1(a_.sv128 , __riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv64) , 8); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144436,14 +148569,16 @@ simde_vsubw_s16(simde_int32x4_t a, simde_int16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubw_s16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_s32(a, simde_vmovl_s16(b)); #else simde_int32x4_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); simde_int16x4_private b_ = simde_int16x4_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vwsub_wv_i32m1(a_.sv128 , __riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv64) , 4); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144466,14 +148601,16 @@ simde_vsubw_s32(simde_int64x2_t a, simde_int32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubw_s32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_s64(a, simde_vmovl_s32(b)); #else simde_int64x2_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); simde_int32x2_private b_ = simde_int32x2_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vwsub_wv_i64m1(a_.sv128 , __riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv64) , 2); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144496,14 +148633,16 @@ simde_vsubw_u8(simde_uint16x8_t a, simde_uint8x8_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubw_u8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_u16(a, simde_vmovl_u8(b)); #else simde_uint16x8_private r_; simde_uint16x8_private a_ = simde_uint16x8_to_private(a); simde_uint8x8_private b_ = simde_uint8x8_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vwsubu_wv_u16m1(a_.sv128 , __riscv_vlmul_trunc_v_u8m1_u8mf2(b_.sv64) , 8); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144526,14 +148665,16 @@ simde_vsubw_u16(simde_uint32x4_t a, simde_uint16x4_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubw_u16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_u32(a, simde_vmovl_u16(b)); #else simde_uint32x4_private r_; simde_uint32x4_private a_ = simde_uint32x4_to_private(a); simde_uint16x4_private b_ = simde_uint16x4_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vwsubu_wv_u32m1(a_.sv128 , __riscv_vlmul_trunc_v_u16m1_u16mf2(b_.sv64) , 4); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144556,14 +148697,16 @@ simde_vsubw_u32(simde_uint64x2_t a, simde_uint32x2_t b) { #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) return vsubw_u32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_u64(a, simde_vmovl_u32(b)); #else simde_uint64x2_private r_; simde_uint64x2_private a_ = simde_uint64x2_to_private(a); simde_uint32x2_private b_ = simde_uint32x2_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + r_.sv128 = __riscv_vwsubu_wv_u64m1(a_.sv128 , __riscv_vlmul_trunc_v_u32m1_u32mf2(b_.sv64) , 2); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144587,7 +148730,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUBW_H) */ /* :: End simde/arm/neon/subw.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/subw_high.h :: */ /* SPDX-License-Identifier: MIT * @@ -144613,17 +148756,18 @@ * * Copyright: * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_SUBW_HIGH_H) #define SIMDE_ARM_NEON_SUBW_HIGH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -144634,14 +148778,17 @@ simde_vsubw_high_s8(simde_int16x8_t a, simde_int8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubw_high_s8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_s16(a, simde_vmovl_high_s8(b)); #else simde_int16x8_private r_; simde_int16x8_private a_ = simde_int16x8_to_private(a); simde_int8x16_private b_ = simde_int8x16_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + b_.sv128 = __riscv_vslidedown_vx_i8m1(b_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwsub_wv_i16m1(a_.sv128 , __riscv_vlmul_trunc_v_i8m1_i8mf2(b_.sv128) , 8); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144664,14 +148811,17 @@ simde_vsubw_high_s16(simde_int32x4_t a, simde_int16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubw_high_s16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_s32(a, simde_vmovl_high_s16(b)); #else simde_int32x4_private r_; simde_int32x4_private a_ = simde_int32x4_to_private(a); simde_int16x8_private b_ = simde_int16x8_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + b_.sv128 = __riscv_vslidedown_vx_i16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwsub_wv_i32m1(a_.sv128 , __riscv_vlmul_trunc_v_i16m1_i16mf2(b_.sv128) , 4); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144694,14 +148844,16 @@ simde_vsubw_high_s32(simde_int64x2_t a, simde_int32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubw_high_s32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_s64(a, simde_vmovl_high_s32(b)); #else simde_int64x2_private r_; simde_int64x2_private a_ = simde_int64x2_to_private(a); simde_int32x4_private b_ = simde_int32x4_to_private(b); - - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + b_.sv128 = __riscv_vslidedown_vx_i32m1(b_.sv128 , 2 , 4); + r_.sv128 = __riscv_vwsub_wv_i64m1(a_.sv128 , __riscv_vlmul_trunc_v_i32m1_i32mf2(b_.sv128) , 2); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144724,14 +148876,17 @@ simde_vsubw_high_u8(simde_uint16x8_t a, simde_uint8x16_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubw_high_u8(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_u16(a, simde_vmovl_high_u8(b)); #else simde_uint16x8_private r_; simde_uint16x8_private a_ = simde_uint16x8_to_private(a); simde_uint8x16_private b_ = simde_uint8x16_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + b_.sv128 = __riscv_vslidedown_vx_u8m1(b_.sv128 , 8 , 16); + r_.sv128 = __riscv_vwsubu_wv_u16m1(a_.sv128 , __riscv_vlmul_trunc_v_u8m1_u8mf2(b_.sv128) , 8); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144754,14 +148909,17 @@ simde_vsubw_high_u16(simde_uint32x4_t a, simde_uint16x8_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubw_high_u16(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_u32(a, simde_vmovl_high_u16(b)); #else simde_uint32x4_private r_; simde_uint32x4_private a_ = simde_uint32x4_to_private(a); simde_uint16x8_private b_ = simde_uint16x8_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + b_.sv128 = __riscv_vslidedown_vx_u16m1(b_.sv128 , 4 , 8); + r_.sv128 = __riscv_vwsubu_wv_u32m1(a_.sv128 , __riscv_vlmul_trunc_v_u16m1_u16mf2(b_.sv128) , 4); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144784,14 +148942,17 @@ simde_vsubw_high_u32(simde_uint64x2_t a, simde_uint32x4_t b) { #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) return vsubw_high_u32(a, b); - #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) + #elif SIMDE_NATURAL_VECTOR_SIZE_GE(128) && !defined(SIMDE_RISCV_V_NATIVE) return simde_vsubq_u64(a, simde_vmovl_high_u32(b)); #else simde_uint64x2_private r_; simde_uint64x2_private a_ = simde_uint64x2_to_private(a); simde_uint32x4_private b_ = simde_uint32x4_to_private(b); - #if (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) + #if defined(SIMDE_RISCV_V_NATIVE) + b_.sv128 = __riscv_vslidedown_vx_u32m1(b_.sv128 , 2 , 4); + r_.sv128 = __riscv_vwsubu_wv_u64m1(a_.sv128 , __riscv_vlmul_trunc_v_u32m1_u32mf2(b_.sv128) , 2); + #elif (SIMDE_NATURAL_VECTOR_SIZE > 0) && defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) SIMDE_CONVERT_VECTOR_(r_.values, b_.values); r_.values -= a_.values; #else @@ -144815,7 +148976,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUBW_HIGH_H) */ /* :: End simde/arm/neon/subw_high.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/sudot_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -144847,7 +149008,7 @@ #define SIMDE_ARM_NEON_SUDOT_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -144985,7 +149146,7 @@ #endif /* !defined(SIMDE_ARM_NEON_SUDOT_LANE_H) */ /* :: End simde/arm/neon/sudot_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/tbl.h :: */ /* SPDX-License-Identifier: MIT * @@ -145013,17 +149174,18 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_TBL_H) #define SIMDE_ARM_NEON_TBL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -145052,6 +149214,10 @@ #if defined(SIMDE_X86_SSSE3_NATIVE) && defined(SIMDE_X86_MMX_NATIVE) r_.m64 = _mm_shuffle_pi8(a_.m64, _mm_or_si64(b_.m64, _mm_cmpgt_pi8(b_.m64, _mm_set1_pi8(7)))); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (b_.sv64, 8, 8); + r_.sv64 = __riscv_vrgather_vv_u8m1(a_.sv64 , b_.sv64 , 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_.sv64, 0, mask, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145099,6 +149265,11 @@ __m128i b128 = _mm_set1_epi64(b_.m64); __m128i r128 = _mm_shuffle_epi8(a128, _mm_or_si128(b128, _mm_cmpgt_epi8(b128, _mm_set1_epi8(15)))); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t t_combine = __riscv_vslideup_vx_u8m1(a_[0].sv64 , a_[1].sv64 , 8 , 16); + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (b_.sv64 , 16 , 8); + vuint8m1_t r_tmp = __riscv_vrgather_vv_u8m1(t_combine , b_.sv64 , 8); + r_.sv64 = __riscv_vmerge_vxm_u8m1(r_tmp, 0, mask, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145148,6 +149319,16 @@ __m128i r128_2 = _mm_shuffle_epi8(_mm_set1_epi64(a_[2].m64), b128); __m128i r128 = _mm_blendv_epi8(r128_01, r128_2, _mm_slli_epi32(b128, 3)); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[0].sv64); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[1].sv64); + vuint8m2_t t3 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[2].sv64); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t2 , t3 , 8 , 24); + t_combine = __riscv_vslideup_vx_u8m2(t1 , t_combine , 8 , 24); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(b_.sv64); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 24, 8); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vxm_u8m2(r_tmp, 0, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145197,6 +149378,18 @@ __m128i r128_23 = _mm_shuffle_epi8(_mm_set_epi64(a_[3].m64, a_[2].m64), b128); __m128i r128 = _mm_blendv_epi8(r128_01, r128_23, _mm_slli_epi32(b128, 3)); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[0].sv64); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[1].sv64); + vuint8m2_t t3 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[2].sv64); + vuint8m2_t t4 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_[3].sv64); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t3 , t4 , 8 , 32); + t_combine = __riscv_vslideup_vx_u8m2(t2 , t_combine , 8 , 32); + t_combine = __riscv_vslideup_vx_u8m2(t1 , t_combine , 8 , 32); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(b_.sv64); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 32, 8); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vxm_u8m2(r_tmp, 0, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145298,7 +149491,7 @@ #endif /* !defined(SIMDE_ARM_NEON_TBL_H) */ /* :: End simde/arm/neon/tbl.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/tbx.h :: */ /* SPDX-License-Identifier: MIT * @@ -145326,15 +149519,16 @@ * 2020 Evan Nemerson * 2020 Christopher Moore * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) */ #if !defined(SIMDE_ARM_NEON_TBX_H) #define SIMDE_ARM_NEON_TBX_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -145360,6 +149554,10 @@ __m128i r128 = _mm_shuffle_epi8(b128, c128); r128 = _mm_blendv_epi8(r128, a128, c128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (c_.sv64, 8, 16); + r_.sv64 = __riscv_vrgather_vv_u8m1(b_.sv64 , c_.sv64 , 8); + r_.sv64 = __riscv_vmerge_vvm_u8m1(r_.sv64, a_.sv64, mask, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145411,6 +149609,11 @@ __m128i r128 = _mm_shuffle_epi8(b128, c128); r128 = _mm_blendv_epi8(r128, a128, c128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m1_t t_combine = __riscv_vslideup_vx_u8m1(b_[0].sv64 , b_[1].sv64 , 8 , 16); + vbool8_t mask = __riscv_vmsgeu_vx_u8m1_b8 (c_.sv64 , 16 , 8); + vuint8m1_t r_tmp = __riscv_vrgather_vv_u8m1(t_combine , c_.sv64 , 8); + r_.sv64 = __riscv_vmerge_vvm_u8m1(r_tmp, a_.sv64, mask, 8); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145465,6 +149668,17 @@ __m128i r128 = _mm_blendv_epi8(r128_01, r128_2, _mm_slli_epi32(c128, 3)); r128 = _mm_blendv_epi8(r128, a128, c128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[0].sv64); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[1].sv64); + vuint8m2_t t3 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[2].sv64); + vuint8m2_t am2 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_.sv64); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t2 , t3 , 8 , 24); + t_combine = __riscv_vslideup_vx_u8m2(t1 , t_combine , 8 , 24); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(c_.sv64); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 24, 8); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vvm_u8m2(r_tmp, am2, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145519,6 +149733,19 @@ __m128i r128 = _mm_blendv_epi8(r128_01, r128_23, _mm_slli_epi32(c128, 3)); r128 = _mm_blendv_epi8(r128, a128, c128); r_.m64 = _mm_movepi64_pi64(r128); + #elif defined(SIMDE_RISCV_V_NATIVE) + vuint8m2_t t1 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[0].sv64); + vuint8m2_t t2 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[1].sv64); + vuint8m2_t t3 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[2].sv64); + vuint8m2_t t4 = __riscv_vlmul_ext_v_u8m1_u8m2 (b_[3].sv64); + vuint8m2_t am2 = __riscv_vlmul_ext_v_u8m1_u8m2 (a_.sv64); + vuint8m2_t t_combine = __riscv_vslideup_vx_u8m2(t3 , t4 , 8 , 32); + t_combine = __riscv_vslideup_vx_u8m2(t2 , t_combine , 8 , 32); + t_combine = __riscv_vslideup_vx_u8m2(t1 , t_combine , 8 , 32); + vuint8m2_t idxm2 = __riscv_vlmul_ext_v_u8m1_u8m2(c_.sv64); + vbool4_t mask = __riscv_vmsgeu_vx_u8m2_b4 (idxm2, 32, 8); + vuint8m2_t r_tmp = __riscv_vrgather_vv_u8m2(t_combine , idxm2 , 8); + r_.sv64 = __riscv_vlmul_trunc_v_u8m2_u8m1(__riscv_vmerge_vvm_u8m2(r_tmp, am2, mask, 8)); #else SIMDE_VECTORIZE for (size_t i = 0 ; i < (sizeof(r_.values) / sizeof(r_.values[0])) ; i++) { @@ -145628,7 +149855,7 @@ #endif /* !defined(SIMDE_ARM_NEON_TBX_H) */ /* :: End simde/arm/neon/tbx.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/trn.h :: */ /* SPDX-License-Identifier: MIT * @@ -145662,9 +149889,9 @@ #define SIMDE_ARM_NEON_TRN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/trn1.h :: */ /* SPDX-License-Identifier: MIT * @@ -145698,7 +149925,7 @@ #define SIMDE_ARM_NEON_TRN1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -146359,7 +150586,7 @@ #endif /* !defined(SIMDE_ARM_NEON_TRN1_H) */ /* :: End simde/arm/neon/trn1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/trn2.h :: */ /* SPDX-License-Identifier: MIT * @@ -146393,7 +150620,7 @@ #define SIMDE_ARM_NEON_TRN2_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -147363,13 +151590,13 @@ #endif /* !defined(SIMDE_ARM_NEON_TRN_H) */ /* :: End simde/arm/neon/trn.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/uqadd.h :: */ /* SPDX-License-Identifier: MIT * @@ -147401,7 +151628,7 @@ #define SIMDE_ARM_NEON_UQADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -147711,7 +151938,7 @@ #endif /* !defined(SIMDE_ARM_NEON_UQADD_H) */ /* :: End simde/arm/neon/uqadd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/usdot.h :: */ /* SPDX-License-Identifier: MIT * @@ -147743,10 +151970,10 @@ #define SIMDE_ARM_NEON_USDOT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -147810,7 +152037,7 @@ #endif /* !defined(SIMDE_ARM_NEON_USDOT_H) */ /* :: End simde/arm/neon/usdot.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/usdot_lane.h :: */ /* SPDX-License-Identifier: MIT * @@ -147842,7 +152069,7 @@ #define SIMDE_ARM_NEON_USDOT_LANE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -147980,13 +152207,13 @@ #endif /* !defined(SIMDE_ARM_NEON_USDOT_LANE_H) */ /* :: End simde/arm/neon/usdot_lane.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/neon/xar.h :: */ /* SPDX-License-Identifier: MIT * @@ -148018,9 +152245,9 @@ #define SIMDE_ARM_NEON_XAR_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -148055,11 +152282,11 @@ #endif /* !defined(SIMDE_ARM_NEON_XAR_H) */ /* :: End simde/arm/neon/xar.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #endif /* SIMDE_ARM_NEON_H */ /* :: End simde/arm/neon.h :: */ diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/simde/arm/sve.h webkit2gtk-2.46.3/Source/WTF/wtf/simde/arm/sve.h --- webkit2gtk-2.46.0/Source/WTF/wtf/simde/arm/sve.h 2024-08-19 06:28:38.591296200 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/simde/arm/sve.h 2024-10-21 09:00:02.703246800 +0000 @@ -1,5 +1,5 @@ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve.h :: */ /* SPDX-License-Identifier: MIT * @@ -31,7 +31,7 @@ #define SIMDE_ARM_SVE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/types.h :: */ /* SPDX-License-Identifier: MIT * @@ -83,7 +83,7 @@ #define SIMDE_ARM_SVE_TYPES_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-common.h :: */ /* SPDX-License-Identifier: MIT * @@ -117,7 +117,7 @@ #define SIMDE_COMMON_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/hedley.h :: */ /* Hedley - https://nemequ.github.io/hedley * Created by Evan Nemerson @@ -2168,7 +2168,7 @@ #define SIMDE_VERSION_MAJOR 0 #define SIMDE_VERSION_MINOR 8 -#define SIMDE_VERSION_MICRO 2 +#define SIMDE_VERSION_MICRO 3 #define SIMDE_VERSION HEDLEY_VERSION_ENCODE(SIMDE_VERSION_MAJOR, SIMDE_VERSION_MINOR, SIMDE_VERSION_MICRO) // Also update meson.build in the root directory of the repository @@ -2176,7 +2176,7 @@ #include /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-detect-clang.h :: */ /* Detect Clang Version * Created by Evan Nemerson @@ -2311,7 +2311,7 @@ #endif /* !defined(SIMDE_DETECT_CLANG_H) */ /* :: End simde/simde-detect-clang.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-arch.h :: */ /* Architecture detection * Created by Evan Nemerson @@ -2358,7 +2358,7 @@ #define SIMDE_ARCH_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* Alpha */ @@ -2446,6 +2446,9 @@ #if defined(__ARM_FEATURE_CRYPTO) && __ARM_FEATURE_CRYPTO # define SIMDE_ARCH_ARM_CRYPTO #endif +#if defined(__ARM_FEATURE_CRC32) && __ARM_FEATURE_CRC32 +# define SIMDE_ARCH_ARM_CRC32 +#endif #if defined(__ARM_FEATURE_DOTPROD) && __ARM_FEATURE_DOTPROD # define SIMDE_ARCH_ARM_DOTPROD #endif @@ -3003,7 +3006,7 @@ #endif /* !defined(SIMDE_ARCH_H) */ /* :: End simde/simde-arch.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-features.h :: */ /* SPDX-License-Identifier: MIT * @@ -3040,9 +3043,9 @@ #define SIMDE_FEATURES_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-diagnostic.h :: */ /* SPDX-License-Identifier: MIT * @@ -3094,11 +3097,11 @@ #define SIMDE_DIAGNOSTIC_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* This is only to help us implement functions like _mm_undefined_ps. */ #if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) @@ -3819,7 +3822,7 @@ #endif #if !defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) - #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(8,0) && (__ARM_NEON_FP & 0x02) + #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(8,0) && defined (__ARM_NEON_FP) && (__ARM_NEON_FP & 0x02) #define SIMDE_ARM_NEON_A32V8_NATIVE #endif #endif @@ -4239,9 +4242,9 @@ #endif /* !defined(SIMDE_FEATURES_H) */ /* :: End simde/simde-features.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-math.h :: */ /* SPDX-License-Identifier: MIT * @@ -4279,9 +4282,9 @@ #define SIMDE_MATH_H 1 /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) @@ -4422,7 +4425,7 @@ #endif #endif -#if !defined(SIMDE_NANF) +#if !defined(SIMDE_MATH_NANF) #if \ HEDLEY_HAS_BUILTIN(__builtin_nanf) || \ HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ @@ -5199,16 +5202,36 @@ #endif #endif +#if !defined(simde_math_pow) + #if SIMDE_MATH_BUILTIN_LIBM(pow) + #define simde_math_pow(y, x) __builtin_pow(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_pow(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_pow(y, x) pow(y, x) + #endif +#endif + +#if !defined(simde_math_powf) + #if SIMDE_MATH_BUILTIN_LIBM(powf) + #define simde_math_powf(y, x) __builtin_powf(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_powf(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_powf(y, x) powf(y, x) + #endif +#endif + #if HEDLEY_HAS_BUILTIN(__builtin_exp10) || HEDLEY_GCC_VERSION_CHECK(3,4,0) # define simde_math_exp10(v) __builtin_exp10(v) #else -# define simde_math_exp10(v) pow(10.0, (v)) +# define simde_math_exp10(v) simde_math_pow(10.0, (v)) #endif #if HEDLEY_HAS_BUILTIN(__builtin_exp10f) || HEDLEY_GCC_VERSION_CHECK(3,4,0) # define simde_math_exp10f(v) __builtin_exp10f(v) #else -# define simde_math_exp10f(v) powf(10.0f, (v)) +# define simde_math_exp10f(v) simde_math_powf(10.0f, (v)) #endif #if !defined(simde_math_fabs) @@ -5451,26 +5474,6 @@ #endif #endif -#if !defined(simde_math_pow) - #if SIMDE_MATH_BUILTIN_LIBM(pow) - #define simde_math_pow(y, x) __builtin_pow(y, x) - #elif defined(SIMDE_MATH_HAVE_CMATH) - #define simde_math_pow(y, x) std::pow(y, x) - #elif defined(SIMDE_MATH_HAVE_MATH_H) - #define simde_math_pow(y, x) pow(y, x) - #endif -#endif - -#if !defined(simde_math_powf) - #if SIMDE_MATH_BUILTIN_LIBM(powf) - #define simde_math_powf(y, x) __builtin_powf(y, x) - #elif defined(SIMDE_MATH_HAVE_CMATH) - #define simde_math_powf(y, x) std::pow(y, x) - #elif defined(SIMDE_MATH_HAVE_MATH_H) - #define simde_math_powf(y, x) powf(y, x) - #endif -#endif - #if !defined(simde_math_rint) #if SIMDE_MATH_BUILTIN_LIBM(rint) #define simde_math_rint(v) __builtin_rint(v) @@ -6312,7 +6315,7 @@ #endif /* !defined(SIMDE_MATH_H) */ /* :: End simde/simde-math.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-constify.h :: */ /* SPDX-License-Identifier: MIT * @@ -6367,7 +6370,7 @@ #define SIMDE_CONSTIFY_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ @@ -6714,7 +6717,7 @@ #endif /* :: End simde/simde-constify.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-align.h :: */ /* Alignment * Created by Evan Nemerson @@ -6771,7 +6774,7 @@ #define SIMDE_ALIGN_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* I know this seems a little silly, but some non-hosted compilers * don't have stddef.h, so we try to accommodate them. */ @@ -7969,7 +7972,7 @@ SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_uint64_as_float64, simde_float64, uint64_t) /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/check.h :: */ /* Check (assertions) * Portable Snippets - https://github.com/nemequ/portable-snippets @@ -7991,9 +7994,9 @@ #endif /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #include #if !defined(_WIN32) @@ -8034,7 +8037,7 @@ # endif /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/debug-trap.h :: */ /* Debugging assertions and traps * Portable Snippets - https://github.com/nemequ/portable-snippets @@ -8523,6 +8526,9 @@ # if (!HEDLEY_GCC_VERSION_CHECK(9,0,0) && !defined(SIMDE_ARCH_AARCH64)) || (!defined(SIMDE_ARCH_AARCH64) && defined(SIMDE_ARCH_ARM)) # define SIMDE_BUG_GCC_REV_260989 # endif +# if !HEDLEY_GCC_VERSION_CHECK(11,5,0) && (defined(SIMDE_ARCH_ARM4) || defined(SIMDE_ARCH_AARCH64)) +# define SIMDE_BUG_GCC_114521 +# endif # if defined(SIMDE_ARCH_ARM) && !defined(SIMDE_ARCH_AARCH64) # define SIMDE_BUG_GCC_95399 # define SIMDE_BUG_GCC_95471 @@ -8720,7 +8726,7 @@ #endif /* !defined(SIMDE_COMMON_H) */ /* :: End simde/simde-common.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/simde-f16.h :: */ /* SPDX-License-Identifier: MIT * @@ -8750,11 +8756,11 @@ */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #if !defined(SIMDE_FLOAT16_H) #define SIMDE_FLOAT16_H @@ -8798,11 +8804,13 @@ #elif !defined(__EMSCRIPTEN__) && !(defined(__clang__) && defined(SIMDE_ARCH_POWER)) && \ !(defined(HEDLEY_MSVC_VERSION) && defined(__clang__)) && \ !(defined(SIMDE_ARCH_MIPS) && defined(__clang__)) && \ + !(defined(SIMDE_ARCH_ZARCH) && defined(__clang__)) && \ !(defined(__clang__) && defined(SIMDE_ARCH_RISCV64)) && ( \ defined(SIMDE_X86_AVX512FP16_NATIVE) || \ (defined(SIMDE_ARCH_X86_SSE2) && HEDLEY_GCC_VERSION_CHECK(12,0,0)) || \ (defined(SIMDE_ARCH_AARCH64) && HEDLEY_GCC_VERSION_CHECK(7,0,0) && !defined(__cplusplus)) || \ - ((defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0)) || \ + (defined(SIMDE_ARCH_AARCH64) && HEDLEY_GCC_VERSION_CHECK(13,0,0)) || \ + ((defined(SIMDE_ARCH_X86_SSE2) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0)) || \ (!(defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(6,0,0))) || \ defined(SIMDE_ARCH_RISCV_ZVFH) /* We haven't found a better way to detect this. It seems like defining @@ -9904,7 +9912,7 @@ * arm/sve/types.h, it might be better to think of it more as * arm/sve/common.h. */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/cnt.h :: */ /* SPDX-License-Identifier: MIT * @@ -9936,7 +9944,7 @@ #define SIMDE_ARM_SVE_CNT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -10002,7 +10010,7 @@ #endif /* SIMDE_ARM_SVE_CNT_H */ /* :: End simde/arm/sve/cnt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/ld1.h :: */ /* SPDX-License-Identifier: MIT * @@ -10045,7 +10053,7 @@ #define SIMDE_ARM_SVE_LD1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -10365,7 +10373,7 @@ #endif /* SIMDE_ARM_SVE_LD1_H */ /* :: End simde/arm/sve/ld1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/ptest.h :: */ /* SPDX-License-Identifier: MIT * @@ -10397,7 +10405,7 @@ #define SIMDE_ARM_SVE_PTEST_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -10441,7 +10449,7 @@ #endif /* SIMDE_ARM_SVE_PTEST_H */ /* :: End simde/arm/sve/ptest.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/ptrue.h :: */ /* SPDX-License-Identifier: MIT * @@ -10473,7 +10481,7 @@ #define SIMDE_ARM_SVE_PTRUE_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -10603,7 +10611,7 @@ #endif /* SIMDE_ARM_SVE_PTRUE_H */ /* :: End simde/arm/sve/ptrue.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/st1.h :: */ /* SPDX-License-Identifier: MIT * @@ -10635,7 +10643,7 @@ #define SIMDE_ARM_SVE_ST1_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -10915,7 +10923,7 @@ #endif /* SIMDE_ARM_SVE_ST1_H */ /* :: End simde/arm/sve/st1.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/whilelt.h :: */ /* SPDX-License-Identifier: MIT * @@ -10947,7 +10955,7 @@ #define SIMDE_ARM_SVE_WHILELT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -11767,7 +11775,7 @@ /* :: End simde/arm/sve/types.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/add.h :: */ /* SPDX-License-Identifier: MIT * @@ -11799,9 +11807,9 @@ #define SIMDE_ARM_SVE_ADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/sel.h :: */ /* SPDX-License-Identifier: MIT * @@ -11833,9 +11841,9 @@ #define SIMDE_ARM_SVE_SEL_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/reinterpret.h :: */ /* SPDX-License-Identifier: MIT * @@ -11867,7 +11875,7 @@ #define SIMDE_ARM_SVE_REINTERPRET_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -13190,7 +13198,7 @@ #endif /* SIMDE_ARM_SVE_SEL_H */ /* :: End simde/arm/sve/sel.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/dup.h :: */ /* SPDX-License-Identifier: MIT * @@ -13222,11 +13230,11 @@ #define SIMDE_ARM_SVE_DUP_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -15649,7 +15657,7 @@ #endif /* SIMDE_ARM_SVE_ADD_H */ /* :: End simde/arm/sve/add.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/and.h :: */ /* SPDX-License-Identifier: MIT * @@ -15681,9 +15689,9 @@ #define SIMDE_ARM_SVE_AND_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -16658,9 +16666,9 @@ #endif /* SIMDE_ARM_SVE_AND_H */ /* :: End simde/arm/sve/and.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/cmplt.h :: */ /* SPDX-License-Identifier: MIT * @@ -16692,7 +16700,7 @@ #define SIMDE_ARM_SVE_CMPLT_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -17168,15 +17176,15 @@ #endif /* SIMDE_ARM_SVE_CMPLT_H */ /* :: End simde/arm/sve/cmplt.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/qadd.h :: */ /* SPDX-License-Identifier: MIT * @@ -17208,11 +17216,11 @@ #define SIMDE_ARM_SVE_QADD_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -17681,13 +17689,13 @@ #endif /* SIMDE_ARM_SVE_QADD_H */ /* :: End simde/arm/sve/qadd.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* :: Begin simde/arm/sve/sub.h :: */ /* SPDX-License-Identifier: MIT * @@ -17719,11 +17727,11 @@ #define SIMDE_ARM_SVE_SUB_H /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ HEDLEY_DIAGNOSTIC_PUSH SIMDE_DISABLE_UNWANTED_DIAGNOSTICS @@ -19044,7 +19052,7 @@ #endif /* SIMDE_ARM_SVE_SUB_H */ /* :: End simde/arm/sve/sub.h :: */ /* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ -/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ #endif /* SIMDE_ARM_SVE_H */ /* :: End simde/arm/sve.h :: */ diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/simde/wasm/simd128.h webkit2gtk-2.46.3/Source/WTF/wtf/simde/wasm/simd128.h --- webkit2gtk-2.46.0/Source/WTF/wtf/simde/wasm/simd128.h 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/simde/wasm/simd128.h 2024-10-21 09:00:02.703246800 +0000 @@ -0,0 +1,17964 @@ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/wasm/simd128.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2021 Evan Nemerson + * 2023 Michael R. Crusoe + */ + +#if !defined(SIMDE_WASM_SIMD128_H) +#define SIMDE_WASM_SIMD128_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-common.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2017-2020 Evan Nemerson + * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) + */ + +#if !defined(SIMDE_COMMON_H) +#define SIMDE_COMMON_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/hedley.h :: */ +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + * + * To the extent possible under law, the author(s) have dedicated all + * copyright and related and neighboring rights to this software to + * the public domain worldwide. This software is distributed without + * any warranty. + * + * For details, see . + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < 16) +#if defined(HEDLEY_VERSION) +# undef HEDLEY_VERSION +#endif +#define HEDLEY_VERSION 16 + +#if defined(HEDLEY_STRINGIFY_EX) +# undef HEDLEY_STRINGIFY_EX +#endif +#define HEDLEY_STRINGIFY_EX(x) #x + +#if defined(HEDLEY_STRINGIFY) +# undef HEDLEY_STRINGIFY +#endif +#define HEDLEY_STRINGIFY(x) HEDLEY_STRINGIFY_EX(x) + +#if defined(HEDLEY_CONCAT_EX) +# undef HEDLEY_CONCAT_EX +#endif +#define HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(HEDLEY_CONCAT) +# undef HEDLEY_CONCAT +#endif +#define HEDLEY_CONCAT(a,b) HEDLEY_CONCAT_EX(a,b) + +#if defined(HEDLEY_CONCAT3_EX) +# undef HEDLEY_CONCAT3_EX +#endif +#define HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(HEDLEY_CONCAT3) +# undef HEDLEY_CONCAT3 +#endif +#define HEDLEY_CONCAT3(a,b,c) HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(HEDLEY_VERSION_ENCODE) +# undef HEDLEY_VERSION_ENCODE +#endif +#define HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(HEDLEY_VERSION_DECODE_MAJOR) +# undef HEDLEY_VERSION_DECODE_MAJOR +#endif +#define HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(HEDLEY_VERSION_DECODE_MINOR) +# undef HEDLEY_VERSION_DECODE_MINOR +#endif +#define HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(HEDLEY_VERSION_DECODE_REVISION) +# undef HEDLEY_VERSION_DECODE_REVISION +#endif +#define HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(HEDLEY_GNUC_VERSION) +# undef HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) +# define HEDLEY_GNUC_VERSION HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) +# define HEDLEY_GNUC_VERSION HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(HEDLEY_GNUC_VERSION_CHECK) +# undef HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(HEDLEY_GNUC_VERSION) +# define HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (HEDLEY_GNUC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_MSVC_VERSION) +# undef HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) +# define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) +# define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) +# define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(HEDLEY_MSVC_VERSION_CHECK) +# undef HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(HEDLEY_MSVC_VERSION) +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(HEDLEY_INTEL_VERSION) +# undef HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) +# define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) +# define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(HEDLEY_INTEL_VERSION_CHECK) +# undef HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(HEDLEY_INTEL_VERSION) +# define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_INTEL_CL_VERSION) +# undef HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) +# define HEDLEY_INTEL_CL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(HEDLEY_INTEL_CL_VERSION_CHECK) +# undef HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(HEDLEY_INTEL_CL_VERSION) +# define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_CL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_PGI_VERSION) +# undef HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) +# define HEDLEY_PGI_VERSION HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(HEDLEY_PGI_VERSION_CHECK) +# undef HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(HEDLEY_PGI_VERSION) +# define HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (HEDLEY_PGI_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_SUNPRO_VERSION) +# undef HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(HEDLEY_SUNPRO_VERSION_CHECK) +# undef HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(HEDLEY_SUNPRO_VERSION) +# define HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (HEDLEY_SUNPRO_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_EMSCRIPTEN_VERSION) +# undef HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) +# include +# define HEDLEY_EMSCRIPTEN_VERSION HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(HEDLEY_EMSCRIPTEN_VERSION_CHECK) +# undef HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(HEDLEY_EMSCRIPTEN_VERSION) +# define HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (HEDLEY_EMSCRIPTEN_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_ARM_VERSION) +# undef HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) +# define HEDLEY_ARM_VERSION HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) +# define HEDLEY_ARM_VERSION HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(HEDLEY_ARM_VERSION_CHECK) +# undef HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(HEDLEY_ARM_VERSION) +# define HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (HEDLEY_ARM_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_IBM_VERSION) +# undef HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) +# define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) +# define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) +# define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(HEDLEY_IBM_VERSION_CHECK) +# undef HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(HEDLEY_IBM_VERSION) +# define HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (HEDLEY_IBM_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_VERSION) +# undef HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +# if (__TI_COMPILER_VERSION__ >= 16000000) +# define HEDLEY_TI_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +# endif +#endif + +#if defined(HEDLEY_TI_VERSION_CHECK) +# undef HEDLEY_TI_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_VERSION) +# define HEDLEY_TI_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL2000_VERSION) +# undef HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) +# define HEDLEY_TI_CL2000_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL2000_VERSION_CHECK) +# undef HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL2000_VERSION) +# define HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL2000_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL430_VERSION) +# undef HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) +# define HEDLEY_TI_CL430_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL430_VERSION_CHECK) +# undef HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL430_VERSION) +# define HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL430_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_ARMCL_VERSION) +# undef HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) +# define HEDLEY_TI_ARMCL_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_ARMCL_VERSION_CHECK) +# undef HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_ARMCL_VERSION) +# define HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_ARMCL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL6X_VERSION) +# undef HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) +# define HEDLEY_TI_CL6X_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL6X_VERSION_CHECK) +# undef HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL6X_VERSION) +# define HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL6X_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL7X_VERSION) +# undef HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) +# define HEDLEY_TI_CL7X_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL7X_VERSION_CHECK) +# undef HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL7X_VERSION) +# define HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL7X_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CLPRU_VERSION) +# undef HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) +# define HEDLEY_TI_CLPRU_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CLPRU_VERSION_CHECK) +# undef HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CLPRU_VERSION) +# define HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CLPRU_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_CRAY_VERSION) +# undef HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) +# if defined(_RELEASE_PATCHLEVEL) +# define HEDLEY_CRAY_VERSION HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) +# else +# define HEDLEY_CRAY_VERSION HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) +# endif +#endif + +#if defined(HEDLEY_CRAY_VERSION_CHECK) +# undef HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(HEDLEY_CRAY_VERSION) +# define HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (HEDLEY_CRAY_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_IAR_VERSION) +# undef HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) +# if __VER__ > 1000 +# define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) +# else +# define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) +# endif +#endif + +#if defined(HEDLEY_IAR_VERSION_CHECK) +# undef HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(HEDLEY_IAR_VERSION) +# define HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (HEDLEY_IAR_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TINYC_VERSION) +# undef HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) +# define HEDLEY_TINYC_VERSION HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(HEDLEY_TINYC_VERSION_CHECK) +# undef HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(HEDLEY_TINYC_VERSION) +# define HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (HEDLEY_TINYC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_DMC_VERSION) +# undef HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) +# define HEDLEY_DMC_VERSION HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(HEDLEY_DMC_VERSION_CHECK) +# undef HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(HEDLEY_DMC_VERSION) +# define HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (HEDLEY_DMC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_COMPCERT_VERSION) +# undef HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) +# define HEDLEY_COMPCERT_VERSION HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(HEDLEY_COMPCERT_VERSION_CHECK) +# undef HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(HEDLEY_COMPCERT_VERSION) +# define HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (HEDLEY_COMPCERT_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_PELLES_VERSION) +# undef HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) +# define HEDLEY_PELLES_VERSION HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(HEDLEY_PELLES_VERSION_CHECK) +# undef HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(HEDLEY_PELLES_VERSION) +# define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (HEDLEY_PELLES_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_MCST_LCC_VERSION) +# undef HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) +# define HEDLEY_MCST_LCC_VERSION HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(HEDLEY_MCST_LCC_VERSION_CHECK) +# undef HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(HEDLEY_MCST_LCC_VERSION) +# define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (HEDLEY_MCST_LCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_GCC_VERSION) +# undef HEDLEY_GCC_VERSION +#endif +#if \ + defined(HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(HEDLEY_INTEL_VERSION) && \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_ARM_VERSION) && \ + !defined(HEDLEY_CRAY_VERSION) && \ + !defined(HEDLEY_TI_VERSION) && \ + !defined(HEDLEY_TI_ARMCL_VERSION) && \ + !defined(HEDLEY_TI_CL430_VERSION) && \ + !defined(HEDLEY_TI_CL2000_VERSION) && \ + !defined(HEDLEY_TI_CL6X_VERSION) && \ + !defined(HEDLEY_TI_CL7X_VERSION) && \ + !defined(HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(HEDLEY_MCST_LCC_VERSION) +# define HEDLEY_GCC_VERSION HEDLEY_GNUC_VERSION +#endif + +#if defined(HEDLEY_GCC_VERSION_CHECK) +# undef HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(HEDLEY_GCC_VERSION) +# define HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (HEDLEY_GCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_HAS_ATTRIBUTE) +# undef HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(HEDLEY_IAR_VERSION) || HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_ATTRIBUTE) +# undef HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) +# define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute) +#else +# define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_ATTRIBUTE) +# undef HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) +# define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute) +#else +# define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(HEDLEY_SUNPRO_VERSION) || HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) +# define HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else +# define HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(HEDLEY_HAS_CPP_ATTRIBUTE_NS) +# undef HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) +# define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_IAR_VERSION) && \ + (!defined(HEDLEY_SUNPRO_VERSION) || HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,20,0)) +# define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else +# define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) +# define HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else +# define HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) +# define HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else +# define HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_BUILTIN) +# undef HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) +# define HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else +# define HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_BUILTIN) +# undef HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) +# define HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else +# define HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_BUILTIN) +# undef HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) +# define HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else +# define HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_FEATURE) +# undef HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) +# define HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else +# define HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_FEATURE) +# undef HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) +# define HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else +# define HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_FEATURE) +# undef HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) +# define HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else +# define HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_EXTENSION) +# undef HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) +# define HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else +# define HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_EXTENSION) +# undef HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) +# define HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else +# define HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_EXTENSION) +# undef HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) +# define HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else +# define HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) +# define HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else +# define HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) +# define HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else +# define HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) +# define HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else +# define HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_WARNING) +# undef HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) +# define HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else +# define HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_WARNING) +# undef HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) +# define HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else +# define HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_WARNING) +# undef HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) +# define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else +# define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) +# define HEDLEY_PRAGMA(value) _Pragma(#value) +#elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define HEDLEY_PRAGMA(value) __pragma(value) +#else +# define HEDLEY_PRAGMA(value) +#endif + +#if defined(HEDLEY_DIAGNOSTIC_PUSH) +# undef HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(HEDLEY_DIAGNOSTIC_POP) +# undef HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif HEDLEY_GCC_VERSION_CHECK(4,6,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) +# define HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif HEDLEY_ARM_VERSION_CHECK(5,6,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif HEDLEY_PELLES_VERSION_CHECK(2,90,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else +# define HEDLEY_DIAGNOSTIC_PUSH +# define HEDLEY_DIAGNOSTIC_POP +#endif + +/* HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) +# undef HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if HEDLEY_HAS_WARNING("-Wc++98-compat") +# if HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + HEDLEY_DIAGNOSTIC_POP +# else +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(HEDLEY_CONST_CAST) +# undef HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + HEDLEY_HAS_WARNING("-Wcast-qual") || \ + HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(HEDLEY_REINTERPRET_CAST) +# undef HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) +# define HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else +# define HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(HEDLEY_STATIC_CAST) +# undef HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) +# define HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else +# define HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(HEDLEY_CPP_CAST) +# undef HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if HEDLEY_HAS_WARNING("-Wold-style-cast") +# define HEDLEY_CPP_CAST(T, expr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + HEDLEY_DIAGNOSTIC_POP +# elif HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define HEDLEY_CPP_CAST(T, expr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + HEDLEY_DIAGNOSTIC_POP +# else +# define HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) +# undef HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if HEDLEY_HAS_WARNING("-Wdeprecated-declarations") +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif HEDLEY_PGI_VERSION_CHECK(20,7,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif HEDLEY_PELLES_VERSION_CHECK(2,90,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) +# undef HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) +# undef HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-attributes") +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,6,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif HEDLEY_INTEL_VERSION_CHECK(17,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif HEDLEY_PGI_VERSION_CHECK(20,7,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) +# undef HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if HEDLEY_HAS_WARNING("-Wcast-qual") +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif HEDLEY_GCC_VERSION_CHECK(3,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) +# undef HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if HEDLEY_HAS_WARNING("-Wunused-function") +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif HEDLEY_GCC_VERSION_CHECK(3,4,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif HEDLEY_MSVC_VERSION_CHECK(1,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(HEDLEY_DEPRECATED) +# undef HEDLEY_DEPRECATED +#endif +#if defined(HEDLEY_DEPRECATED_FOR) +# undef HEDLEY_DEPRECATED_FOR +#endif +#if \ + HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(HEDLEY_IAR_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) +# define HEDLEY_DEPRECATED(since) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) +# define HEDLEY_DEPRECATED_FOR(since, replacement) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DEPRECATED(since) __declspec(deprecated) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DEPRECATED(since) _Pragma("deprecated") +# define HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else +# define HEDLEY_DEPRECATED(since) +# define HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(HEDLEY_UNAVAILABLE) +# undef HEDLEY_UNAVAILABLE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(warning) || \ + HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else +# define HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(HEDLEY_WARN_UNUSED_RESULT) +# undef HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(HEDLEY_WARN_UNUSED_RESULT_MSG) +# undef HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) +# define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) +# define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ +# define HEDLEY_WARN_UNUSED_RESULT _Check_return_ +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else +# define HEDLEY_WARN_UNUSED_RESULT +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(HEDLEY_SENTINEL) +# undef HEDLEY_SENTINEL +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else +# define HEDLEY_SENTINEL(position) +#endif + +#if defined(HEDLEY_NO_RETURN) +# undef HEDLEY_NO_RETURN +#endif +#if HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_NO_RETURN __noreturn +#elif \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# define HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) +# define HEDLEY_NO_RETURN HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_NO_RETURN __declspec(noreturn) +#elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) +# define HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) +# define HEDLEY_NO_RETURN __attribute((noreturn)) +#elif HEDLEY_PELLES_VERSION_CHECK(9,0,0) +# define HEDLEY_NO_RETURN __declspec(noreturn) +#else +# define HEDLEY_NO_RETURN +#endif + +#if defined(HEDLEY_NO_ESCAPE) +# undef HEDLEY_NO_ESCAPE +#endif +#if HEDLEY_HAS_ATTRIBUTE(noescape) +# define HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else +# define HEDLEY_NO_ESCAPE +#endif + +#if defined(HEDLEY_UNREACHABLE) +# undef HEDLEY_UNREACHABLE +#endif +#if defined(HEDLEY_UNREACHABLE_RETURN) +# undef HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(HEDLEY_ASSUME) +# undef HEDLEY_ASSUME +#endif +#if \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_ASSUME(expr) __assume(expr) +#elif HEDLEY_HAS_BUILTIN(__builtin_assume) +# define HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) +# if defined(__cplusplus) +# define HEDLEY_ASSUME(expr) std::_nassert(expr) +# else +# define HEDLEY_ASSUME(expr) _nassert(expr) +# endif +#endif +#if \ + (HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(HEDLEY_ARM_VERSION))) || \ + HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(HEDLEY_ASSUME) +# define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0) +#endif +#if !defined(HEDLEY_ASSUME) +# if defined(HEDLEY_UNREACHABLE) +# define HEDLEY_ASSUME(expr) HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (HEDLEY_UNREACHABLE(), 1))) +# else +# define HEDLEY_ASSUME(expr) HEDLEY_STATIC_CAST(void, expr) +# endif +#endif +#if defined(HEDLEY_UNREACHABLE) +# if \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) +# define HEDLEY_UNREACHABLE_RETURN(value) return (HEDLEY_STATIC_CAST(void, HEDLEY_ASSUME(0)), (value)) +# else +# define HEDLEY_UNREACHABLE_RETURN(value) HEDLEY_UNREACHABLE() +# endif +#else +# define HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(HEDLEY_UNREACHABLE) +# define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0) +#endif + +HEDLEY_DIAGNOSTIC_PUSH +#if HEDLEY_HAS_WARNING("-Wpedantic") +# pragma clang diagnostic ignored "-Wpedantic" +#endif +#if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) +# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) +# if defined(__clang__) +# pragma clang diagnostic ignored "-Wvariadic-macros" +# elif defined(HEDLEY_GCC_VERSION) +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# endif +#endif +#if defined(HEDLEY_NON_NULL) +# undef HEDLEY_NON_NULL +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) +# define HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else +# define HEDLEY_NON_NULL(...) +#endif +HEDLEY_DIAGNOSTIC_POP + +#if defined(HEDLEY_PRINTF_FORMAT) +# undef HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + HEDLEY_HAS_ATTRIBUTE(format) || \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif HEDLEY_PELLES_VERSION_CHECK(6,0,0) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(HEDLEY_CONSTEXPR) +# undef HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) +# if __cplusplus >= 201103L +# define HEDLEY_CONSTEXPR HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) +# endif +#endif +#if !defined(HEDLEY_CONSTEXPR) +# define HEDLEY_CONSTEXPR +#endif + +#if defined(HEDLEY_PREDICT) +# undef HEDLEY_PREDICT +#endif +#if defined(HEDLEY_LIKELY) +# undef HEDLEY_LIKELY +#endif +#if defined(HEDLEY_UNLIKELY) +# undef HEDLEY_UNLIKELY +#endif +#if defined(HEDLEY_UNPREDICTABLE) +# undef HEDLEY_UNPREDICTABLE +#endif +#if HEDLEY_HAS_BUILTIN(__builtin_unpredictable) +# define HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(HEDLEY_PGI_VERSION) && !defined(HEDLEY_INTEL_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(HEDLEY_INTEL_CL_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (HEDLEY_STATIC_CAST(void, expected), (expr))) +# define HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define HEDLEY_PREDICT(expr, expected, probability) (HEDLEY_STATIC_CAST(void, expected), (expr)) +# define HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define HEDLEY_LIKELY(expr) (!!(expr)) +# define HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(HEDLEY_UNPREDICTABLE) +# define HEDLEY_UNPREDICTABLE(expr) HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(HEDLEY_MALLOC) +# undef HEDLEY_MALLOC +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(malloc) || \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_MALLOC __attribute__((__malloc__)) +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_MALLOC __declspec(restrict) +#else +# define HEDLEY_MALLOC +#endif + +#if defined(HEDLEY_PURE) +# undef HEDLEY_PURE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(pure) || \ + HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PURE __attribute__((__pure__)) +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define HEDLEY_PURE +#endif + +#if defined(HEDLEY_CONST) +# undef HEDLEY_CONST +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(const) || \ + HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_CONST __attribute__((__const__)) +#elif \ + HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_CONST _Pragma("no_side_effect") +#else +# define HEDLEY_CONST HEDLEY_PURE +#endif + +#if defined(HEDLEY_RESTRICT) +# undef HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) +# define HEDLEY_RESTRICT restrict +#elif \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_RESTRICT __restrict +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) +# define HEDLEY_RESTRICT _Restrict +#else +# define HEDLEY_RESTRICT +#endif + +#if defined(HEDLEY_INLINE) +# undef HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) +# define HEDLEY_INLINE inline +#elif \ + defined(HEDLEY_GCC_VERSION) || \ + HEDLEY_ARM_VERSION_CHECK(6,2,0) +# define HEDLEY_INLINE __inline__ +#elif \ + HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_INLINE __inline +#else +# define HEDLEY_INLINE +#endif + +#if defined(HEDLEY_ALWAYS_INLINE) +# undef HEDLEY_ALWAYS_INLINE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) HEDLEY_INLINE +#elif \ + HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define HEDLEY_ALWAYS_INLINE HEDLEY_INLINE +#endif + +#if defined(HEDLEY_NEVER_INLINE) +# undef HEDLEY_NEVER_INLINE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(noinline) || \ + HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_NEVER_INLINE __declspec(noinline) +#elif HEDLEY_PGI_VERSION_CHECK(10,2,0) +# define HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) +# define HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) +# define HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif HEDLEY_PELLES_VERSION_CHECK(9,0,0) +# define HEDLEY_NEVER_INLINE __declspec(noinline) +#else +# define HEDLEY_NEVER_INLINE +#endif + +#if defined(HEDLEY_PRIVATE) +# undef HEDLEY_PRIVATE +#endif +#if defined(HEDLEY_PUBLIC) +# undef HEDLEY_PUBLIC +#endif +#if defined(HEDLEY_IMPORT) +# undef HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define HEDLEY_PRIVATE +# define HEDLEY_PUBLIC __declspec(dllexport) +# define HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + HEDLEY_HAS_ATTRIBUTE(visibility) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define HEDLEY_PRIVATE +# define HEDLEY_PUBLIC +# endif +# define HEDLEY_IMPORT extern +#endif + +#if defined(HEDLEY_NO_THROW) +# undef HEDLEY_NO_THROW +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) +# define HEDLEY_NO_THROW __declspec(nothrow) +#else +# define HEDLEY_NO_THROW +#endif + +#if defined(HEDLEY_FALL_THROUGH) +# undef HEDLEY_FALL_THROUGH +#endif +#if defined(HEDLEY_INTEL_VERSION) +# define HEDLEY_FALL_THROUGH +#elif \ + HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) +# define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) +# define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ +# define HEDLEY_FALL_THROUGH __fallthrough +#else +# define HEDLEY_FALL_THROUGH +#endif + +#if defined(HEDLEY_RETURNS_NON_NULL) +# undef HEDLEY_RETURNS_NON_NULL +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ +# define HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else +# define HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(HEDLEY_ARRAY_PARAM) +# undef HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_TINYC_VERSION) +# define HEDLEY_ARRAY_PARAM(name) (name) +#else +# define HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(HEDLEY_IS_CONSTANT) +# undef HEDLEY_IS_CONSTANT +#endif +#if defined(HEDLEY_REQUIRE_CONSTEXPR) +# undef HEDLEY_REQUIRE_CONSTEXPR +#endif +/* HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(HEDLEY_IS_CONSTEXPR_) +# undef HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,24) +# if defined(__INTPTR_TYPE__) +# define HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +# else +# include +# define HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +# endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(HEDLEY_SUNPRO_VERSION) && \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_IAR_VERSION)) || \ + (HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(HEDLEY_IAR_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,3,0) +# if defined(__INTPTR_TYPE__) +# define HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +# else +# include +# define HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +# endif +# elif \ + defined(HEDLEY_GCC_VERSION) || \ + defined(HEDLEY_INTEL_VERSION) || \ + defined(HEDLEY_TINYC_VERSION) || \ + defined(HEDLEY_TI_ARMCL_VERSION) || \ + HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(HEDLEY_TI_CL2000_VERSION) || \ + defined(HEDLEY_TI_CL6X_VERSION) || \ + defined(HEDLEY_TI_CL7X_VERSION) || \ + defined(HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ + ((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(HEDLEY_IS_CONSTEXPR_) +# if !defined(HEDLEY_IS_CONSTANT) +# define HEDLEY_IS_CONSTANT(expr) HEDLEY_IS_CONSTEXPR_(expr) +# endif +# define HEDLEY_REQUIRE_CONSTEXPR(expr) (HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else +# if !defined(HEDLEY_IS_CONSTANT) +# define HEDLEY_IS_CONSTANT(expr) (0) +# endif +# define HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(HEDLEY_BEGIN_C_DECLS) +# undef HEDLEY_BEGIN_C_DECLS +#endif +#if defined(HEDLEY_END_C_DECLS) +# undef HEDLEY_END_C_DECLS +#endif +#if defined(HEDLEY_C_DECL) +# undef HEDLEY_C_DECL +#endif +#if defined(__cplusplus) +# define HEDLEY_BEGIN_C_DECLS extern "C" { +# define HEDLEY_END_C_DECLS } +# define HEDLEY_C_DECL extern "C" +#else +# define HEDLEY_BEGIN_C_DECLS +# define HEDLEY_END_C_DECLS +# define HEDLEY_C_DECL +#endif + +#if defined(HEDLEY_STATIC_ASSERT) +# undef HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (HEDLEY_HAS_FEATURE(c_static_assert) && !defined(HEDLEY_INTEL_CL_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_STATIC_ASSERT(expr, message) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(HEDLEY_NULL) +# undef HEDLEY_NULL +#endif +#if defined(__cplusplus) +# if __cplusplus >= 201103L +# define HEDLEY_NULL HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) +# elif defined(NULL) +# define HEDLEY_NULL NULL +# else +# define HEDLEY_NULL HEDLEY_STATIC_CAST(void*, 0) +# endif +#elif defined(NULL) +# define HEDLEY_NULL NULL +#else +# define HEDLEY_NULL ((void*) 0) +#endif + +#if defined(HEDLEY_MESSAGE) +# undef HEDLEY_MESSAGE +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define HEDLEY_MESSAGE(msg) \ + HEDLEY_DIAGNOSTIC_PUSH \ + HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + HEDLEY_PRAGMA(message msg) \ + HEDLEY_DIAGNOSTIC_POP +#elif \ + HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message msg) +#elif HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(_CRI message msg) +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message(msg)) +#elif HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message(msg)) +#else +# define HEDLEY_MESSAGE(msg) +#endif + +#if defined(HEDLEY_WARNING) +# undef HEDLEY_WARNING +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define HEDLEY_WARNING(msg) \ + HEDLEY_DIAGNOSTIC_PUSH \ + HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + HEDLEY_PRAGMA(clang warning msg) \ + HEDLEY_DIAGNOSTIC_POP +#elif \ + HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(GCC warning msg) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(message(msg)) +#else +# define HEDLEY_WARNING(msg) HEDLEY_MESSAGE(msg) +#endif + +#if defined(HEDLEY_REQUIRE) +# undef HEDLEY_REQUIRE +#endif +#if defined(HEDLEY_REQUIRE_MSG) +# undef HEDLEY_REQUIRE_MSG +#endif +#if HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if HEDLEY_HAS_WARNING("-Wgcc-compat") +# define HEDLEY_REQUIRE(expr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + HEDLEY_DIAGNOSTIC_POP +# define HEDLEY_REQUIRE_MSG(expr,msg) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + HEDLEY_DIAGNOSTIC_POP +# else +# define HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define HEDLEY_REQUIRE(expr) +# define HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(HEDLEY_FLAGS) +# undef HEDLEY_FLAGS +#endif +#if HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) +# define HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else +# define HEDLEY_FLAGS +#endif + +#if defined(HEDLEY_FLAGS_CAST) +# undef HEDLEY_FLAGS_CAST +#endif +#if HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define HEDLEY_FLAGS_CAST(T, expr) HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(HEDLEY_EMPTY_BASES) +# undef HEDLEY_EMPTY_BASES +#endif +#if \ + (HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else +# define HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) +# undef HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) +# define HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else +# define HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_CLANG_HAS_ATTRIBUTE) +# undef HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(HEDLEY_CLANG_HAS_BUILTIN) +# undef HEDLEY_CLANG_HAS_BUILTIN +#endif +#define HEDLEY_CLANG_HAS_BUILTIN(builtin) HEDLEY_HAS_BUILTIN(builtin) + +#if defined(HEDLEY_CLANG_HAS_FEATURE) +# undef HEDLEY_CLANG_HAS_FEATURE +#endif +#define HEDLEY_CLANG_HAS_FEATURE(feature) HEDLEY_HAS_FEATURE(feature) + +#if defined(HEDLEY_CLANG_HAS_EXTENSION) +# undef HEDLEY_CLANG_HAS_EXTENSION +#endif +#define HEDLEY_CLANG_HAS_EXTENSION(extension) HEDLEY_HAS_EXTENSION(extension) + +#if defined(HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(HEDLEY_CLANG_HAS_WARNING) +# undef HEDLEY_CLANG_HAS_WARNING +#endif +#define HEDLEY_CLANG_HAS_WARNING(warning) HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < X) */ +/* :: End simde/hedley.h :: */ + +#define SIMDE_VERSION_MAJOR 0 +#define SIMDE_VERSION_MINOR 8 +#define SIMDE_VERSION_MICRO 3 +#define SIMDE_VERSION HEDLEY_VERSION_ENCODE(SIMDE_VERSION_MAJOR, SIMDE_VERSION_MINOR, SIMDE_VERSION_MICRO) +// Also update meson.build in the root directory of the repository + +#include +#include + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-detect-clang.h :: */ +/* Detect Clang Version + * Created by Evan Nemerson + * + * To the extent possible under law, the author(s) have dedicated all + * copyright and related and neighboring rights to this software to + * the public domain worldwide. This software is distributed without + * any warranty. + * + * For details, see . + * SPDX-License-Identifier: CC0-1.0 + */ + +/* This file was originally part of SIMDe + * (). You're free to do with it as + * you please, but I do have a few small requests: + * + * * If you make improvements, please submit them back to SIMDe + * (at ) so others can + * benefit from them. + * * Please keep a link to SIMDe intact so people know where to submit + * improvements. + * * If you expose it publicly, please change the SIMDE_ prefix to + * something specific to your project. + * + * The version numbers clang exposes (in the ___clang_major__, + * __clang_minor__, and __clang_patchlevel__ macros) are unreliable. + * Vendors such as Apple will define these values to their version + * numbers; for example, "Apple Clang 4.0" is really clang 3.1, but + * __clang_major__ and __clang_minor__ are defined to 4 and 0 + * respectively, instead of 3 and 1. + * + * The solution is *usually* to use clang's feature detection macros + * () + * to determine if the feature you're interested in is available. This + * generally works well, and it should probably be the first thing you + * try. Unfortunately, it's not possible to check for everything. In + * particular, compiler bugs. + * + * This file just uses the feature checking macros to detect features + * added in specific versions of clang to identify which version of + * clang the compiler is based on. + * + * Right now it only goes back to 3.6, but I'm happy to accept patches + * to go back further. And, of course, newer versions are welcome if + * they're not already present, and if you find a way to detect a point + * release that would be great, too! + */ + +#if !defined(SIMDE_DETECT_CLANG_H) +#define SIMDE_DETECT_CLANG_H 1 + +/* Attempt to detect the upstream clang version number. I usually only + * worry about major version numbers (at least for 4.0+), but if you + * need more resolution I'm happy to accept patches that are able to + * detect minor versions as well. That said, you'll probably have a + * hard time with detection since AFAIK most minor releases don't add + * anything we can detect. Updated based on + * https://github.com/google/highway/blob/438c705a295176b96a50336527bb3e7ea365ffac/hwy/detect_compiler_arch.h#L73 + * - would welcome patches/updates there as well. + */ + +#if defined(__clang__) && !defined(SIMDE_DETECT_CLANG_VERSION) +# if __has_warning("-Wmissing-designated-field-initializers") +# define SIMDE_DETECT_CLANG_VERSION 190000 +# elif __has_warning("-Woverriding-option") +# define SIMDE_DETECT_CLANG_VERSION 180000 +# elif __has_attribute(unsafe_buffer_usage) // no new warnings in 17.0 +# define SIMDE_DETECT_CLANG_VERSION 170000 +# elif __has_attribute(nouwtable) // no new warnings in 16.0 +# define SIMDE_DETECT_CLANG_VERSION 160000 +# elif __has_warning("-Warray-parameter") +# define SIMDE_DETECT_CLANG_VERSION 150000 +# elif __has_warning("-Wbitwise-instead-of-logical") +# define SIMDE_DETECT_CLANG_VERSION 140000 +# elif __has_warning("-Waix-compat") +# define SIMDE_DETECT_CLANG_VERSION 130000 +# elif __has_warning("-Wformat-insufficient-args") +# define SIMDE_DETECT_CLANG_VERSION 120000 +# elif __has_warning("-Wimplicit-const-int-float-conversion") +# define SIMDE_DETECT_CLANG_VERSION 110000 +# elif __has_warning("-Wmisleading-indentation") +# define SIMDE_DETECT_CLANG_VERSION 100000 +# elif defined(__FILE_NAME__) +# define SIMDE_DETECT_CLANG_VERSION 90000 +# elif __has_warning("-Wextra-semi-stmt") || __has_builtin(__builtin_rotateleft32) +# define SIMDE_DETECT_CLANG_VERSION 80000 +// For reasons unknown, Xcode 10.3 (Apple LLVM version 10.0.1) is apparently +// based on Clang 7, but does not support the warning we test. +// See https://en.wikipedia.org/wiki/Xcode#Toolchain_versions and +// https://trac.macports.org/wiki/XcodeVersionInfo. +# elif __has_warning("-Wc++98-compat-extra-semi") || \ + (defined(__apple_build_version__) && __apple_build_version__ >= 10010000) +# define SIMDE_DETECT_CLANG_VERSION 70000 +# elif __has_warning("-Wpragma-pack") +# define SIMDE_DETECT_CLANG_VERSION 60000 +# elif __has_warning("-Wbitfield-enum-conversion") +# define SIMDE_DETECT_CLANG_VERSION 50000 +# elif __has_attribute(diagnose_if) +# define SIMDE_DETECT_CLANG_VERSION 40000 +# elif __has_warning("-Wcomma") +# define SIMDE_DETECT_CLANG_VERSION 39000 +# elif __has_warning("-Wdouble-promotion") +# define SIMDE_DETECT_CLANG_VERSION 38000 +# elif __has_warning("-Wshift-negative-value") +# define SIMDE_DETECT_CLANG_VERSION 37000 +# elif __has_warning("-Wambiguous-ellipsis") +# define SIMDE_DETECT_CLANG_VERSION 36000 +# else +# define SIMDE_DETECT_CLANG_VERSION 1 +# endif +#endif /* defined(__clang__) && !defined(SIMDE_DETECT_CLANG_VERSION) */ + +/* The SIMDE_DETECT_CLANG_VERSION_CHECK macro is pretty + * straightforward; it returns true if the compiler is a derivative + * of clang >= the specified version. + * + * Since this file is often (primarily?) useful for working around bugs + * it is also helpful to have a macro which returns true if only if the + * compiler is a version of clang *older* than the specified version to + * make it a bit easier to ifdef regions to add code for older versions, + * such as pragmas to disable a specific warning. */ + +#if defined(SIMDE_DETECT_CLANG_VERSION) +# define SIMDE_DETECT_CLANG_VERSION_CHECK(major, minor, revision) (SIMDE_DETECT_CLANG_VERSION >= ((major * 10000) + (minor * 1000) + (revision))) +# define SIMDE_DETECT_CLANG_VERSION_NOT(major, minor, revision) (SIMDE_DETECT_CLANG_VERSION < ((major * 10000) + (minor * 1000) + (revision))) +#else +# define SIMDE_DETECT_CLANG_VERSION_CHECK(major, minor, revision) (0) +# define SIMDE_DETECT_CLANG_VERSION_NOT(major, minor, revision) (0) +#endif + +#endif /* !defined(SIMDE_DETECT_CLANG_H) */ +/* :: End simde/simde-detect-clang.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-arch.h :: */ +/* Architecture detection + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * + * + * SPDX-License-Identifier: CC0-1.0 + * + * Different compilers define different preprocessor macros for the + * same architecture. This is an attempt to provide a single + * interface which is usable on any compiler. + * + * In general, a macro named SIMDE_ARCH_* is defined for each + * architecture the CPU supports. When there are multiple possible + * versions, we try to define the macro to the target version. For + * example, if you want to check for i586+, you could do something + * like: + * + * #if defined(SIMDE_ARCH_X86) && (SIMDE_ARCH_X86 >= 5) + * ... + * #endif + * + * You could also just check that SIMDE_ARCH_X86 >= 5 without checking + * if it's defined first, but some compilers may emit a warning about + * an undefined macro being used (e.g., GCC with -Wundef). + * + * This was originally created for SIMDe + * (hence the prefix), but this + * header has no dependencies and may be used anywhere. It is + * originally based on information from + * , though it + * has been enhanced with additional information. + * + * If you improve this file, or find a bug, please file the issue at + * . If you copy this into + * your project, even if you change the prefix, please keep the links + * to SIMDe intact so others know where to report issues, submit + * enhancements, and find the latest version. */ + +#if !defined(SIMDE_ARCH_H) +#define SIMDE_ARCH_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ + +/* Alpha + */ +#if defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) +# if defined(__alpha_ev6__) +# define SIMDE_ARCH_ALPHA 6 +# elif defined(__alpha_ev5__) +# define SIMDE_ARCH_ALPHA 5 +# elif defined(__alpha_ev4__) +# define SIMDE_ARCH_ALPHA 4 +# else +# define SIMDE_ARCH_ALPHA 1 +# endif +#endif +#if defined(SIMDE_ARCH_ALPHA) +# define SIMDE_ARCH_ALPHA_CHECK(version) ((version) <= SIMDE_ARCH_ALPHA) +#else +# define SIMDE_ARCH_ALPHA_CHECK(version) (0) +#endif + +/* Atmel AVR + */ +#if defined(__AVR_ARCH__) +# define SIMDE_ARCH_AVR __AVR_ARCH__ +#endif + +/* AMD64 / x86_64 + */ +#if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64) +# if !defined(_M_ARM64EC) +# define SIMDE_ARCH_AMD64 1000 +# endif +#endif + +/* ARM + */ +#if defined(__ARM_ARCH) +# if __ARM_ARCH > 100 +# define SIMDE_ARCH_ARM (__ARM_ARCH) +# else +# define SIMDE_ARCH_ARM (__ARM_ARCH * 100) +# endif +#elif defined(_M_ARM) +# if _M_ARM > 100 +# define SIMDE_ARCH_ARM (_M_ARM) +# else +# define SIMDE_ARCH_ARM (_M_ARM * 100) +# endif +#elif defined(_M_ARM64) || defined(_M_ARM64EC) +# define SIMDE_ARCH_ARM 800 +#elif defined(__arm__) || defined(__thumb__) || defined(__TARGET_ARCH_ARM) || defined(_ARM) || defined(_M_ARM) || defined(_M_ARM) +# define SIMDE_ARCH_ARM 1 +#endif +#if defined(SIMDE_ARCH_ARM) +# define SIMDE_ARCH_ARM_CHECK(major, minor) (((major * 100) + (minor)) <= SIMDE_ARCH_ARM) +#else +# define SIMDE_ARCH_ARM_CHECK(major, minor) (0) +#endif + +/* AArch64 + */ +#if defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) +# define SIMDE_ARCH_AARCH64 1000 +#endif +#if defined(SIMDE_ARCH_AARCH64) +# define SIMDE_ARCH_AARCH64_CHECK(version) ((version) <= SIMDE_ARCH_AARCH64) +#else +# define SIMDE_ARCH_AARCH64_CHECK(version) (0) +#endif + +/* ARM SIMD ISA extensions */ +#if defined(__ARM_NEON) || defined(SIMDE_ARCH_AARCH64) +# if defined(SIMDE_ARCH_AARCH64) +# define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_AARCH64 +# elif defined(SIMDE_ARCH_ARM) +# define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_ARM +# endif +#endif +#if defined(__ARM_FEATURE_AES) && __ARM_FEATURE_AES +# define SIMDE_ARCH_ARM_AES +#endif +#if defined(__ARM_FEATURE_COMPLEX) && __ARM_FEATURE_COMPLEX +# define SIMDE_ARCH_ARM_COMPLEX +#endif +#if defined(__ARM_FEATURE_CRYPTO) && __ARM_FEATURE_CRYPTO +# define SIMDE_ARCH_ARM_CRYPTO +#endif +#if defined(__ARM_FEATURE_CRC32) && __ARM_FEATURE_CRC32 +# define SIMDE_ARCH_ARM_CRC32 +#endif +#if defined(__ARM_FEATURE_DOTPROD) && __ARM_FEATURE_DOTPROD +# define SIMDE_ARCH_ARM_DOTPROD +#endif +#if defined(__ARM_FEATURE_FMA) && __ARM_FEATURE_FMA +# define SIMDE_ARCH_ARM_FMA +#endif +#if defined(__ARM_FEATURE_FP16_FML) && __ARM_FEATURE_FP16_FML +# define SIMDE_ARCH_ARM_FP16_FML +#endif +#if defined(__ARM_FEATURE_FRINT) && __ARM_FEATURE_FRINT +# define SIMDE_ARCH_ARM_FRINT +#endif +#if defined(__ARM_FEATURE_MATMUL_INT8) && __ARM_FEATURE_MATMUL_INT8 +# define SIMDE_ARCH_ARM_MATMUL_INT8 +#endif +#if defined(__ARM_FEATURE_SHA2) && __ARM_FEATURE_SHA2 && !defined(__APPLE_CC__) +# define SIMDE_ARCH_ARM_SHA2 +#endif +#if defined(__ARM_FEATURE_SHA3) && __ARM_FEATURE_SHA3 +# define SIMDE_ARCH_ARM_SHA3 +#endif +#if defined(__ARM_FEATURE_SHA512) && __ARM_FEATURE_SHA512 +# define SIMDE_ARCH_ARM_SHA512 +#endif +#if defined(__ARM_FEATURE_SM3) && __ARM_FEATURE_SM3 +# define SIMDE_ARCH_ARM_SM3 +#endif +#if defined(__ARM_FEATURE_SM4) && __ARM_FEATURE_SM4 +# define SIMDE_ARCH_ARM_SM4 +#endif +#if defined(__ARM_FEATURE_SVE) && __ARM_FEATURE_SVE +# define SIMDE_ARCH_ARM_SVE +#endif +#if defined(__ARM_FEATURE_QRDMX) && __ARM_FEATURE_QRDMX +# define SIMDE_ARCH_ARM_QRDMX +#endif + +/* Blackfin + */ +#if defined(__bfin) || defined(__BFIN__) || defined(__bfin__) +# define SIMDE_ARCH_BLACKFIN 1 +#endif + +/* CRIS + */ +#if defined(__CRIS_arch_version) +# define SIMDE_ARCH_CRIS __CRIS_arch_version +#elif defined(__cris__) || defined(__cris) || defined(__CRIS) || defined(__CRIS__) +# define SIMDE_ARCH_CRIS 1 +#endif + +/* Convex + */ +#if defined(__convex_c38__) +# define SIMDE_ARCH_CONVEX 38 +#elif defined(__convex_c34__) +# define SIMDE_ARCH_CONVEX 34 +#elif defined(__convex_c32__) +# define SIMDE_ARCH_CONVEX 32 +#elif defined(__convex_c2__) +# define SIMDE_ARCH_CONVEX 2 +#elif defined(__convex__) +# define SIMDE_ARCH_CONVEX 1 +#endif +#if defined(SIMDE_ARCH_CONVEX) +# define SIMDE_ARCH_CONVEX_CHECK(version) ((version) <= SIMDE_ARCH_CONVEX) +#else +# define SIMDE_ARCH_CONVEX_CHECK(version) (0) +#endif + +/* Adapteva Epiphany + */ +#if defined(__epiphany__) +# define SIMDE_ARCH_EPIPHANY 1 +#endif + +/* Fujitsu FR-V + */ +#if defined(__frv__) +# define SIMDE_ARCH_FRV 1 +#endif + +/* H8/300 + */ +#if defined(__H8300__) +# define SIMDE_ARCH_H8300 +#endif + +/* Elbrus (8S, 8SV and successors) + */ +#if defined(__e2k__) +# define SIMDE_ARCH_E2K +#endif + +/* HP/PA / PA-RISC + */ +#if defined(__PA8000__) || defined(__HPPA20__) || defined(__RISC2_0__) || defined(_PA_RISC2_0) +# define SIMDE_ARCH_HPPA 20 +#elif defined(__PA7100__) || defined(__HPPA11__) || defined(_PA_RISC1_1) +# define SIMDE_ARCH_HPPA 11 +#elif defined(_PA_RISC1_0) +# define SIMDE_ARCH_HPPA 10 +#elif defined(__hppa__) || defined(__HPPA__) || defined(__hppa) +# define SIMDE_ARCH_HPPA 1 +#endif +#if defined(SIMDE_ARCH_HPPA) +# define SIMDE_ARCH_HPPA_CHECK(version) ((version) <= SIMDE_ARCH_HPPA) +#else +# define SIMDE_ARCH_HPPA_CHECK(version) (0) +#endif + +/* x86 + */ +#if defined(_M_IX86) +# define SIMDE_ARCH_X86 (_M_IX86 / 100) +#elif defined(__I86__) +# define SIMDE_ARCH_X86 __I86__ +#elif defined(i686) || defined(__i686) || defined(__i686__) +# define SIMDE_ARCH_X86 6 +#elif defined(i586) || defined(__i586) || defined(__i586__) +# define SIMDE_ARCH_X86 5 +#elif defined(i486) || defined(__i486) || defined(__i486__) +# define SIMDE_ARCH_X86 4 +#elif defined(i386) || defined(__i386) || defined(__i386__) +# define SIMDE_ARCH_X86 3 +#elif defined(_X86_) || defined(__X86__) || defined(__THW_INTEL__) +# define SIMDE_ARCH_X86 3 +#endif +#if defined(SIMDE_ARCH_X86) +# define SIMDE_ARCH_X86_CHECK(version) ((version) <= SIMDE_ARCH_X86) +#else +# define SIMDE_ARCH_X86_CHECK(version) (0) +#endif + +/* SIMD ISA extensions for x86/x86_64 and Elbrus */ +#if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) || defined(SIMDE_ARCH_E2K) +# if defined(_M_IX86_FP) +# define SIMDE_ARCH_X86_MMX +# if (_M_IX86_FP >= 1) +# define SIMDE_ARCH_X86_SSE 1 +# endif +# if (_M_IX86_FP >= 2) +# define SIMDE_ARCH_X86_SSE2 1 +# endif +# elif defined(_M_X64) +# define SIMDE_ARCH_X86_SSE 1 +# define SIMDE_ARCH_X86_SSE2 1 +# else +# if defined(__MMX__) +# define SIMDE_ARCH_X86_MMX 1 +# endif +# if defined(__SSE__) +# define SIMDE_ARCH_X86_SSE 1 +# endif +# if defined(__SSE2__) +# define SIMDE_ARCH_X86_SSE2 1 +# endif +# endif +# if defined(__SSE3__) +# define SIMDE_ARCH_X86_SSE3 1 +# endif +# if defined(__SSSE3__) +# define SIMDE_ARCH_X86_SSSE3 1 +# endif +# if defined(__SSE4_1__) +# define SIMDE_ARCH_X86_SSE4_1 1 +# endif +# if defined(__SSE4_2__) +# define SIMDE_ARCH_X86_SSE4_2 1 +# endif +# if defined(__XOP__) +# define SIMDE_ARCH_X86_XOP 1 +# endif +# if defined(__AVX__) +# define SIMDE_ARCH_X86_AVX 1 +# if !defined(SIMDE_ARCH_X86_SSE3) +# define SIMDE_ARCH_X86_SSE3 1 +# endif +# if !defined(SIMDE_ARCH_X86_SSE4_1) +# define SIMDE_ARCH_X86_SSE4_1 1 +# endif +# if !defined(SIMDE_ARCH_X86_SSE4_2) +# define SIMDE_ARCH_X86_SSE4_2 1 +# endif +# endif +# if defined(__AVX2__) +# define SIMDE_ARCH_X86_AVX2 1 +# if defined(_MSC_VER) +# define SIMDE_ARCH_X86_FMA 1 +# endif +# endif +# if defined(__FMA__) +# define SIMDE_ARCH_X86_FMA 1 +# if !defined(SIMDE_ARCH_X86_AVX) +# define SIMDE_ARCH_X86_AVX 1 +# endif +# endif +# if defined(__AVX512VP2INTERSECT__) +# define SIMDE_ARCH_X86_AVX512VP2INTERSECT 1 +# endif +# if defined(__AVX512BITALG__) +# define SIMDE_ARCH_X86_AVX512BITALG 1 +# endif +# if defined(__AVX512VPOPCNTDQ__) +# define SIMDE_ARCH_X86_AVX512VPOPCNTDQ 1 +# endif +# if defined(__AVX512VBMI__) +# define SIMDE_ARCH_X86_AVX512VBMI 1 +# endif +# if defined(__AVX512VBMI2__) +# define SIMDE_ARCH_X86_AVX512VBMI2 1 +# endif +# if defined(__AVX512VNNI__) +# define SIMDE_ARCH_X86_AVX512VNNI 1 +# endif +# if defined(__AVX5124VNNIW__) +# define SIMDE_ARCH_X86_AVX5124VNNIW 1 +# endif +# if defined(__AVX512BW__) +# define SIMDE_ARCH_X86_AVX512BW 1 +# endif +# if defined(__AVX512BF16__) +# define SIMDE_ARCH_X86_AVX512BF16 1 +# endif +# if defined(__AVX512CD__) +# define SIMDE_ARCH_X86_AVX512CD 1 +# endif +# if defined(__AVX512DQ__) +# define SIMDE_ARCH_X86_AVX512DQ 1 +# endif +# if defined(__AVX512F__) +# define SIMDE_ARCH_X86_AVX512F 1 +# endif +# if defined(__AVX512VL__) +# define SIMDE_ARCH_X86_AVX512VL 1 +# endif +# if defined(__AVX512FP16__) +# define SIMDE_ARCH_X86_AVX512FP16 1 +# endif +# if defined(__GFNI__) +# define SIMDE_ARCH_X86_GFNI 1 +# endif +# if defined(__PCLMUL__) +# define SIMDE_ARCH_X86_PCLMUL 1 +# endif +# if defined(__VPCLMULQDQ__) +# define SIMDE_ARCH_X86_VPCLMULQDQ 1 +# endif +# if defined(__F16C__) || (defined(HEDLEY_MSVC_VERSION) && HEDLEY_MSVC_VERSION_CHECK(19,30,0) && defined(SIMDE_ARCH_X86_AVX2) ) +# define SIMDE_ARCH_X86_F16C 1 +# endif +# if defined(__AES__) +# define SIMDE_ARCH_X86_AES 1 +# endif +#endif + +/* Itanium + */ +#if defined(__ia64__) || defined(_IA64) || defined(__IA64__) || defined(__ia64) || defined(_M_IA64) || defined(__itanium__) +# define SIMDE_ARCH_IA64 1 +#endif + +/* Renesas M32R + */ +#if defined(__m32r__) || defined(__M32R__) +# define SIMDE_ARCH_M32R +#endif + +/* Motorola 68000 + */ +#if defined(__mc68060__) || defined(__MC68060__) +# define SIMDE_ARCH_M68K 68060 +#elif defined(__mc68040__) || defined(__MC68040__) +# define SIMDE_ARCH_M68K 68040 +#elif defined(__mc68030__) || defined(__MC68030__) +# define SIMDE_ARCH_M68K 68030 +#elif defined(__mc68020__) || defined(__MC68020__) +# define SIMDE_ARCH_M68K 68020 +#elif defined(__mc68010__) || defined(__MC68010__) +# define SIMDE_ARCH_M68K 68010 +#elif defined(__mc68000__) || defined(__MC68000__) +# define SIMDE_ARCH_M68K 68000 +#endif +#if defined(SIMDE_ARCH_M68K) +# define SIMDE_ARCH_M68K_CHECK(version) ((version) <= SIMDE_ARCH_M68K) +#else +# define SIMDE_ARCH_M68K_CHECK(version) (0) +#endif + +/* Xilinx MicroBlaze + */ +#if defined(__MICROBLAZE__) || defined(__microblaze__) +# define SIMDE_ARCH_MICROBLAZE +#endif + +/* MIPS + */ +#if defined(_MIPS_ISA_MIPS64R2) +# define SIMDE_ARCH_MIPS 642 +#elif defined(_MIPS_ISA_MIPS64) +# define SIMDE_ARCH_MIPS 640 +#elif defined(_MIPS_ISA_MIPS32R2) +# define SIMDE_ARCH_MIPS 322 +#elif defined(_MIPS_ISA_MIPS32) +# define SIMDE_ARCH_MIPS 320 +#elif defined(_MIPS_ISA_MIPS4) +# define SIMDE_ARCH_MIPS 4 +#elif defined(_MIPS_ISA_MIPS3) +# define SIMDE_ARCH_MIPS 3 +#elif defined(_MIPS_ISA_MIPS2) +# define SIMDE_ARCH_MIPS 2 +#elif defined(_MIPS_ISA_MIPS1) +# define SIMDE_ARCH_MIPS 1 +#elif defined(_MIPS_ISA_MIPS) || defined(__mips) || defined(__MIPS__) +# define SIMDE_ARCH_MIPS 1 +#endif +#if defined(SIMDE_ARCH_MIPS) +# define SIMDE_ARCH_MIPS_CHECK(version) ((version) <= SIMDE_ARCH_MIPS) +#else +# define SIMDE_ARCH_MIPS_CHECK(version) (0) +#endif + +#if defined(__mips_loongson_mmi) +# define SIMDE_ARCH_MIPS_LOONGSON_MMI 1 +#endif + +#if defined(__mips_msa) +# define SIMDE_ARCH_MIPS_MSA 1 +#endif + +/* Matsushita MN10300 + */ +#if defined(__MN10300__) || defined(__mn10300__) +# define SIMDE_ARCH_MN10300 1 +#endif + +/* POWER + */ +#if defined(_M_PPC) +# define SIMDE_ARCH_POWER _M_PPC +#elif defined(_ARCH_PWR9) +# define SIMDE_ARCH_POWER 900 +#elif defined(_ARCH_PWR8) +# define SIMDE_ARCH_POWER 800 +#elif defined(_ARCH_PWR7) +# define SIMDE_ARCH_POWER 700 +#elif defined(_ARCH_PWR6) +# define SIMDE_ARCH_POWER 600 +#elif defined(_ARCH_PWR5) +# define SIMDE_ARCH_POWER 500 +#elif defined(_ARCH_PWR4) +# define SIMDE_ARCH_POWER 400 +#elif defined(_ARCH_440) || defined(__ppc440__) +# define SIMDE_ARCH_POWER 440 +#elif defined(_ARCH_450) || defined(__ppc450__) +# define SIMDE_ARCH_POWER 450 +#elif defined(_ARCH_601) || defined(__ppc601__) +# define SIMDE_ARCH_POWER 601 +#elif defined(_ARCH_603) || defined(__ppc603__) +# define SIMDE_ARCH_POWER 603 +#elif defined(_ARCH_604) || defined(__ppc604__) +# define SIMDE_ARCH_POWER 604 +#elif defined(_ARCH_605) || defined(__ppc605__) +# define SIMDE_ARCH_POWER 605 +#elif defined(_ARCH_620) || defined(__ppc620__) +# define SIMDE_ARCH_POWER 620 +#elif defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC) || defined(__ppc) +# define SIMDE_ARCH_POWER 1 +#endif +#if defined(SIMDE_ARCH_POWER) + #define SIMDE_ARCH_POWER_CHECK(version) ((version) <= SIMDE_ARCH_POWER) +#else + #define SIMDE_ARCH_POWER_CHECK(version) (0) +#endif + +#if defined(__ALTIVEC__) +# define SIMDE_ARCH_POWER_ALTIVEC SIMDE_ARCH_POWER + #define SIMDE_ARCH_POWER_ALTIVEC_CHECK(version) ((version) <= SIMDE_ARCH_POWER) +#else + #define SIMDE_ARCH_POWER_ALTIVEC_CHECK(version) (0) +#endif + +/* RISC-V + */ +#if defined(__riscv) || defined(__riscv__) +# if __riscv_xlen == 64 +# define SIMDE_ARCH_RISCV64 +# elif __riscv_xlen == 32 +# define SIMDE_ARCH_RISCV32 +# endif +#endif + +/* RISC-V SIMD ISA extensions */ +#if defined(__riscv_zve32x) +# define SIMDE_ARCH_RISCV_ZVE32X 1 +#endif +#if defined(__riscv_zve32f) +# define SIMDE_ARCH_RISCV_ZVE32F 1 +#endif +#if defined(__riscv_zve64x) +# define SIMDE_ARCH_RISCV_ZVE64X 1 +#endif +#if defined(__riscv_zve64f) +# define SIMDE_ARCH_RISCV_ZVE64F 1 +#endif +#if defined(__riscv_zve64d) +# define SIMDE_ARCH_RISCV_ZVE64D 1 +#endif +#if defined(__riscv_v) +# define SIMDE_ARCH_RISCV_V 1 +#endif +#if defined(__riscv_zvfh) +# define SIMDE_ARCH_RISCV_ZVFH 1 +#endif +#if defined(__riscv_zvfhmin) +# define SIMDE_ARCH_RISCV_ZVFHMIN 1 +#endif + +/* SPARC + */ +#if defined(__sparc_v9__) || defined(__sparcv9) +# define SIMDE_ARCH_SPARC 9 +#elif defined(__sparc_v8__) || defined(__sparcv8) +# define SIMDE_ARCH_SPARC 8 +#elif defined(__sparc_v7__) || defined(__sparcv7) +# define SIMDE_ARCH_SPARC 7 +#elif defined(__sparc_v6__) || defined(__sparcv6) +# define SIMDE_ARCH_SPARC 6 +#elif defined(__sparc_v5__) || defined(__sparcv5) +# define SIMDE_ARCH_SPARC 5 +#elif defined(__sparc_v4__) || defined(__sparcv4) +# define SIMDE_ARCH_SPARC 4 +#elif defined(__sparc_v3__) || defined(__sparcv3) +# define SIMDE_ARCH_SPARC 3 +#elif defined(__sparc_v2__) || defined(__sparcv2) +# define SIMDE_ARCH_SPARC 2 +#elif defined(__sparc_v1__) || defined(__sparcv1) +# define SIMDE_ARCH_SPARC 1 +#elif defined(__sparc__) || defined(__sparc) +# define SIMDE_ARCH_SPARC 1 +#endif +#if defined(SIMDE_ARCH_SPARC) + #define SIMDE_ARCH_SPARC_CHECK(version) ((version) <= SIMDE_ARCH_SPARC) +#else + #define SIMDE_ARCH_SPARC_CHECK(version) (0) +#endif + +/* SuperH + */ +#if defined(__sh5__) || defined(__SH5__) +# define SIMDE_ARCH_SUPERH 5 +#elif defined(__sh4__) || defined(__SH4__) +# define SIMDE_ARCH_SUPERH 4 +#elif defined(__sh3__) || defined(__SH3__) +# define SIMDE_ARCH_SUPERH 3 +#elif defined(__sh2__) || defined(__SH2__) +# define SIMDE_ARCH_SUPERH 2 +#elif defined(__sh1__) || defined(__SH1__) +# define SIMDE_ARCH_SUPERH 1 +#elif defined(__sh__) || defined(__SH__) +# define SIMDE_ARCH_SUPERH 1 +#endif + +/* IBM System z + */ +#if defined(__370__) || defined(__THW_370__) || defined(__s390__) || defined(__s390x__) || defined(__zarch__) || defined(__SYSC_ZARCH__) +# define SIMDE_ARCH_ZARCH __ARCH__ +#endif +#if defined(SIMDE_ARCH_ZARCH) + #define SIMDE_ARCH_ZARCH_CHECK(version) ((version) <= SIMDE_ARCH_ZARCH) +#else + #define SIMDE_ARCH_ZARCH_CHECK(version) (0) +#endif + +#if defined(SIMDE_ARCH_ZARCH) && defined(__VEC__) + #define SIMDE_ARCH_ZARCH_ZVECTOR SIMDE_ARCH_ZARCH +#endif + +/* TMS320 DSP + */ +#if defined(_TMS320C6740) || defined(__TMS320C6740__) +# define SIMDE_ARCH_TMS320 6740 +#elif defined(_TMS320C6700_PLUS) || defined(__TMS320C6700_PLUS__) +# define SIMDE_ARCH_TMS320 6701 +#elif defined(_TMS320C6700) || defined(__TMS320C6700__) +# define SIMDE_ARCH_TMS320 6700 +#elif defined(_TMS320C6600) || defined(__TMS320C6600__) +# define SIMDE_ARCH_TMS320 6600 +#elif defined(_TMS320C6400_PLUS) || defined(__TMS320C6400_PLUS__) +# define SIMDE_ARCH_TMS320 6401 +#elif defined(_TMS320C6400) || defined(__TMS320C6400__) +# define SIMDE_ARCH_TMS320 6400 +#elif defined(_TMS320C6200) || defined(__TMS320C6200__) +# define SIMDE_ARCH_TMS320 6200 +#elif defined(_TMS320C55X) || defined(__TMS320C55X__) +# define SIMDE_ARCH_TMS320 550 +#elif defined(_TMS320C54X) || defined(__TMS320C54X__) +# define SIMDE_ARCH_TMS320 540 +#elif defined(_TMS320C28X) || defined(__TMS320C28X__) +# define SIMDE_ARCH_TMS320 280 +#endif +#if defined(SIMDE_ARCH_TMS320) + #define SIMDE_ARCH_TMS320_CHECK(version) ((version) <= SIMDE_ARCH_TMS320) +#else + #define SIMDE_ARCH_TMS320_CHECK(version) (0) +#endif + +/* WebAssembly */ +#if defined(__wasm__) +# define SIMDE_ARCH_WASM 1 +#endif + +#if defined(SIMDE_ARCH_WASM) && defined(__wasm_simd128__) +# define SIMDE_ARCH_WASM_SIMD128 +#endif + +#if defined(SIMDE_ARCH_WASM) && defined(__wasm_relaxed_simd__) +# define SIMDE_ARCH_WASM_RELAXED_SIMD +#endif + +/* Xtensa + */ +#if defined(__xtensa__) || defined(__XTENSA__) +# define SIMDE_ARCH_XTENSA 1 +#endif + +/* Availability of 16-bit floating-point arithmetic intrinsics */ +#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) +# define SIMDE_ARCH_ARM_NEON_FP16 +#endif + +/* Availability of 16-bit brain floating-point arithmetic intrinsics */ +#if defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) +# define SIMDE_ARCH_ARM_NEON_BF16 +#endif + +/* LoongArch + */ +#if defined(__loongarch32) +# define SIMDE_ARCH_LOONGARCH 1 +#elif defined(__loongarch64) +# define SIMDE_ARCH_LOONGARCH 2 +#endif + +/* LSX: LoongArch 128-bits SIMD extension */ +#if defined(__loongarch_sx) +# define SIMDE_ARCH_LOONGARCH_LSX 1 +#endif + +/* LASX: LoongArch 256-bits SIMD extension */ +#if defined(__loongarch_asx) +# define SIMDE_ARCH_LOONGARCH_LASX 2 +#endif + +#endif /* !defined(SIMDE_ARCH_H) */ +/* :: End simde/simde-arch.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-features.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) + */ + +/* simde-arch.h is used to determine which features are available according + to the compiler. However, we want to make it possible to forcibly enable + or disable APIs */ + +#if !defined(SIMDE_FEATURES_H) +#define SIMDE_FEATURES_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-diagnostic.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2017-2020 Evan Nemerson + */ + +/* SIMDe targets a very wide range of standards and compilers, and our + * goal is to compile cleanly even with extremely aggressive warnings + * (i.e., -Weverything in clang, -Wextra in GCC, /W4 for MSVC, etc.) + * treated as errors. + * + * While our preference is to resolve the underlying issue a given + * diagnostic is warning us about, sometimes that's not possible. + * Fixing a warning in one compiler may cause problems in another. + * Sometimes a warning doesn't really apply to us (false positives), + * and sometimes adhering to a warning would mean dropping a feature + * we *know* the compiler supports since we have tested specifically + * for the compiler or feature. + * + * When practical, warnings are only disabled for specific code. For + * a list of warnings which are enabled by default in all SIMDe code, + * see SIMDE_DISABLE_UNWANTED_DIAGNOSTICS. Note that we restore the + * warning stack when SIMDe is done parsing, so code which includes + * SIMDe is not deprived of these warnings. + */ + +#if !defined(SIMDE_DIAGNOSTIC_H) +#define SIMDE_DIAGNOSTIC_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ + +/* This is only to help us implement functions like _mm_undefined_ps. */ +#if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) + #undef SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ +#endif +#if HEDLEY_HAS_WARNING("-Wuninitialized") + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("clang diagnostic ignored \"-Wuninitialized\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,2,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") +#elif HEDLEY_PGI_VERSION_CHECK(19,10,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("diag_suppress 549") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("error_messages(off,SEC_UNINITIALIZED_MEM_READ,SEC_UNDEFINED_RETURN_VALUE,unassigned)") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("error_messages(off,SEC_UNINITIALIZED_MEM_READ,SEC_UNDEFINED_RETURN_VALUE)") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,12,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("error_messages(off,unassigned)") +#elif \ + HEDLEY_TI_VERSION_CHECK(16,9,9) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,2) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("diag_suppress 551") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("warning(disable:592)") +#elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) && !defined(__MSVC_RUNTIME_CHECKS) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ __pragma(warning(disable:4700)) +#endif + +/* GCC emits a lot of "notes" about the ABI being different for things + * in newer versions of GCC. We don't really care because all our + * functions are inlined and don't generate ABI. */ +#if HEDLEY_GCC_VERSION_CHECK(7,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_PSABI_ _Pragma("GCC diagnostic ignored \"-Wpsabi\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PSABI_ +#endif + +/* Since MMX uses x87 FP registers, you're supposed to call _mm_empty() + * after each MMX function before any floating point instructions. + * Some compilers warn about functions which use MMX functions but + * don't call _mm_empty(). However, since SIMDe is implementyng the + * MMX API we shouldn't be calling _mm_empty(); we leave it to the + * caller to invoke simde_mm_empty(). */ +#if HEDLEY_INTEL_VERSION_CHECK(19,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ _Pragma("warning(disable:13200 13203)") +#elif defined(HEDLEY_MSVC_VERSION) + #define SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ __pragma(warning(disable:4799)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ +#endif + +/* Intel is pushing people to use OpenMP SIMD instead of Cilk+, so they + * emit a diagnostic if you use #pragma simd instead of + * #pragma omp simd. SIMDe supports OpenMP SIMD, you just need to + * compile with -qopenmp or -qopenmp-simd and define + * SIMDE_ENABLE_OPENMP. Cilk+ is just a fallback. */ +#if HEDLEY_INTEL_VERSION_CHECK(18,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_SIMD_PRAGMA_DEPRECATED_ _Pragma("warning(disable:3948)") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_SIMD_PRAGMA_DEPRECATED_ +#endif + +/* MSVC emits a diagnostic when we call a function (like + * simde_mm_set_epi32) while initializing a struct. We currently do + * this a *lot* in the tests. */ +#if \ + defined(HEDLEY_MSVC_VERSION) + #define SIMDE_DIAGNOSTIC_DISABLE_NON_CONSTANT_AGGREGATE_INITIALIZER_ __pragma(warning(disable:4204)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_NON_CONSTANT_AGGREGATE_INITIALIZER_ +#endif + +/* This warning needs a lot of work. It is triggered if all you do is + * pass the value to memcpy/__builtin_memcpy, or if you initialize a + * member of the union, even if that member takes up the entire union. + * Last tested with clang-10, hopefully things will improve in the + * future; if clang fixes this I'd love to enable it. */ +#if \ + HEDLEY_HAS_WARNING("-Wconditional-uninitialized") + #define SIMDE_DIAGNOSTIC_DISABLE_CONDITIONAL_UNINITIALIZED_ _Pragma("clang diagnostic ignored \"-Wconditional-uninitialized\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CONDITIONAL_UNINITIALIZED_ +#endif + +/* This warning is meant to catch things like `0.3 + 0.4 == 0.7`, which + * will is false. However, SIMDe uses these operations exclusively + * for things like _mm_cmpeq_ps, for which we really do want to check + * for equality (or inequality). + * + * If someone wants to put together a SIMDE_FLOAT_EQUAL(a, op, b) macro + * which just wraps a check in some code do disable this diagnostic I'd + * be happy to accept it. */ +#if \ + HEDLEY_HAS_WARNING("-Wfloat-equal") || \ + HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL_ _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL_ +#endif + +/* This is because we use HEDLEY_STATIC_ASSERT for static assertions. + * If Hedley can't find an implementation it will preprocess to + * nothing, which means there will be a trailing semi-colon. */ +#if HEDLEY_HAS_WARNING("-Wextra-semi") + #define SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ _Pragma("clang diagnostic ignored \"-Wextra-semi\"") +#elif HEDLEY_GCC_VERSION_CHECK(8,1,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ _Pragma("GCC diagnostic ignored \"-Wextra-semi\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ +#endif + +/* We do use a few variadic macros, which technically aren't available + * until C99 and C++11, but every compiler I'm aware of has supported + * them for much longer. That said, usage is isolated to the test + * suite and compilers known to support them. */ +#if HEDLEY_HAS_WARNING("-Wvariadic-macros") || HEDLEY_GCC_VERSION_CHECK(4,0,0) + #if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") + #define SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ \ + _Pragma("clang diagnostic ignored \"-Wvariadic-macros\"") \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat-pedantic\"") + #else + #define SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ _Pragma("GCC diagnostic ignored \"-Wvariadic-macros\"") + #endif +#else + #define SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ +#endif + +/* emscripten requires us to use a __wasm_unimplemented_simd128__ macro + * before we can access certain SIMD intrinsics, but this diagnostic + * warns about it being a reserved name. It is a reserved name, but + * it's reserved for the compiler and we are using it to convey + * information to the compiler. + * + * This is also used when enabling native aliases since we don't get to + * choose the macro names. */ +#if HEDLEY_HAS_WARNING("-Wreserved-id-macro") + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_ _Pragma("clang diagnostic ignored \"-Wreserved-id-macro\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_ +#endif + +/* Similar to above; types like simde__m128i are reserved due to the + * double underscore, but we didn't choose them, Intel did. */ +#if HEDLEY_HAS_WARNING("-Wreserved-identifier") + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_ _Pragma("clang diagnostic ignored \"-Wreserved-identifier\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_ +#endif + +/* clang 3.8 warns about the packed attribute being unnecessary when + * used in the _mm_loadu_* functions. That *may* be true for version + * 3.8, but for later versions it is crucial in order to make unaligned + * access safe. */ +#if HEDLEY_HAS_WARNING("-Wpacked") + #define SIMDE_DIAGNOSTIC_DISABLE_PACKED_ _Pragma("clang diagnostic ignored \"-Wpacked\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PACKED_ +#endif + +/* Triggered when assigning a float to a double implicitly. We use + * explicit casts in SIMDe, this is only used in the test suite. */ +#if HEDLEY_HAS_WARNING("-Wdouble-promotion") + #define SIMDE_DIAGNOSTIC_DISABLE_DOUBLE_PROMOTION_ _Pragma("clang diagnostic ignored \"-Wdouble-promotion\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_DOUBLE_PROMOTION_ +#endif + +/* Several compilers treat conformant array parameters as VLAs. We + * test to make sure we're in C mode (C++ doesn't support CAPs), and + * that the version of the standard supports CAPs. We also reject + * some buggy compilers like MSVC (the logic is in Hedley if you want + * to take a look), but with certain warnings enabled some compilers + * still like to emit a diagnostic. */ +#if HEDLEY_HAS_WARNING("-Wvla") + #define SIMDE_DIAGNOSTIC_DISABLE_VLA_ _Pragma("clang diagnostic ignored \"-Wvla\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define SIMDE_DIAGNOSTIC_DISABLE_VLA_ _Pragma("GCC diagnostic ignored \"-Wvla\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_VLA_ +#endif + +/* If you add an unused attribute to a function and don't use it, clang + * may emit this. */ +#if HEDLEY_HAS_WARNING("-Wused-but-marked-unused") + #define SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ _Pragma("clang diagnostic ignored \"-Wused-but-marked-unused\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ +#endif + +#if HEDLEY_HAS_WARNING("-Wpass-failed") + #define SIMDE_DIAGNOSTIC_DISABLE_PASS_FAILED_ _Pragma("clang diagnostic ignored \"-Wpass-failed\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PASS_FAILED_ +#endif + +#if HEDLEY_HAS_WARNING("-Wpadded") + #define SIMDE_DIAGNOSTIC_DISABLE_PADDED_ _Pragma("clang diagnostic ignored \"-Wpadded\"") +#elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) /* Likely goes back further */ + #define SIMDE_DIAGNOSTIC_DISABLE_PADDED_ __pragma(warning(disable:4324)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PADDED_ +#endif + +#if HEDLEY_HAS_WARNING("-Wzero-as-null-pointer-constant") + #define SIMDE_DIAGNOSTIC_DISABLE_ZERO_AS_NULL_POINTER_CONSTANT_ _Pragma("clang diagnostic ignored \"-Wzero-as-null-pointer-constant\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_ZERO_AS_NULL_POINTER_CONSTANT_ +#endif + +#if HEDLEY_HAS_WARNING("-Wold-style-cast") + #define SIMDE_DIAGNOSTIC_DISABLE_OLD_STYLE_CAST_ _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_OLD_STYLE_CAST_ +#endif + +#if HEDLEY_HAS_WARNING("-Wcast-function-type") || HEDLEY_GCC_VERSION_CHECK(8,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_CAST_FUNCTION_TYPE_ _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CAST_FUNCTION_TYPE_ +#endif + +/* clang will emit this warning when we use C99 extensions when not in + * C99 mode, even though it does support this. In such cases we check + * the compiler and version first, so we know it's not a problem. */ +#if HEDLEY_HAS_WARNING("-Wc99-extensions") + #define SIMDE_DIAGNOSTIC_DISABLE_C99_EXTENSIONS_ _Pragma("clang diagnostic ignored \"-Wc99-extensions\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_C99_EXTENSIONS_ +#endif + +/* Similar problm as above; we rely on some basic C99 support, but clang + * has started warning obut this even in C17 mode with -Weverything. */ +#if HEDLEY_HAS_WARNING("-Wdeclaration-after-statement") + #define SIMDE_DIAGNOSTIC_DISABLE_DECLARATION_AFTER_STATEMENT_ _Pragma("clang diagnostic ignored \"-Wdeclaration-after-statement\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_DECLARATION_AFTER_STATEMENT_ +#endif + +/* https://github.com/simd-everywhere/simde/issues/277 */ +#if defined(HEDLEY_GCC_VERSION) && HEDLEY_GCC_VERSION_CHECK(4,6,0) && !HEDLEY_GCC_VERSION_CHECK(6,4,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_UNUSED_BUT_SET_VARIBALE_ _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_UNUSED_BUT_SET_VARIBALE_ +#endif + +/* This is the warning that you normally define _CRT_SECURE_NO_WARNINGS + * to silence, but you have to do that before including anything and + * that would require reordering includes. */ +#if defined(_MSC_VER) + #define SIMDE_DIAGNOSTIC_DISABLE_ANNEX_K_ __pragma(warning(disable:4996)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_ANNEX_K_ +#endif + +/* Some compilers, such as clang, may use `long long` for 64-bit + * integers, but `long long` triggers a diagnostic with + * -Wc++98-compat-pedantic which says 'long long' is incompatible with + * C++98. */ +#if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") + #if HEDLEY_HAS_WARNING("-Wc++11-long-long") + #define SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat-pedantic\"") \ + _Pragma("clang diagnostic ignored \"-Wc++11-long-long\"") + #else + #define SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ _Pragma("clang diagnostic ignored \"-Wc++98-compat-pedantic\"") + #endif +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ +#endif + +/* Some problem as above */ +#if HEDLEY_HAS_WARNING("-Wc++11-long-long") + #define SIMDE_DIAGNOSTIC_DISABLE_CPP11_LONG_LONG_ _Pragma("clang diagnostic ignored \"-Wc++11-long-long\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CPP11_LONG_LONG_ +#endif + +/* emscripten emits this whenever stdin/stdout/stderr is used in a + * macro. */ +#if HEDLEY_HAS_WARNING("-Wdisabled-macro-expansion") + #define SIMDE_DIAGNOSTIC_DISABLE_DISABLED_MACRO_EXPANSION_ _Pragma("clang diagnostic ignored \"-Wdisabled-macro-expansion\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_DISABLED_MACRO_EXPANSION_ +#endif + +/* Clang uses C11 generic selections to implement some AltiVec + * functions, which triggers this diagnostic when not compiling + * in C11 mode */ +#if HEDLEY_HAS_WARNING("-Wc11-extensions") + #define SIMDE_DIAGNOSTIC_DISABLE_C11_EXTENSIONS_ _Pragma("clang diagnostic ignored \"-Wc11-extensions\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_C11_EXTENSIONS_ +#endif + +/* Clang sometimes triggers this warning in macros in the AltiVec and + * NEON headers, or due to missing functions. */ +#if HEDLEY_HAS_WARNING("-Wvector-conversion") + #define SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ _Pragma("clang diagnostic ignored \"-Wvector-conversion\"") + /* For NEON, the situation with -Wvector-conversion in clang < 10 is + * bad enough that we just disable the warning altogether. On x86, + * clang has similar issues on several sse4.2+ intrinsics before 3.8. */ + #if \ + (defined(SIMDE_ARCH_ARM) && SIMDE_DETECT_CLANG_VERSION_NOT(10,0,0)) || \ + SIMDE_DETECT_CLANG_VERSION_NOT(3,8,0) + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_ SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ + #endif +#else + #define SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ +#endif +#if !defined(SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_) + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_ +#endif + +/* Prior to 5.0, clang didn't support disabling diagnostics in + * statement exprs. As a result, some macros we use don't + * properly silence warnings. */ +#if SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) && HEDLEY_HAS_WARNING("-Wcast-qual") && HEDLEY_HAS_WARNING("-Wcast-align") + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ _Pragma("clang diagnostic ignored \"-Wcast-qual\"") _Pragma("clang diagnostic ignored \"-Wcast-align\"") +#elif SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) && HEDLEY_HAS_WARNING("-Wcast-qual") + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) && HEDLEY_HAS_WARNING("-Wcast-align") + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ _Pragma("clang diagnostic ignored \"-Wcast-align\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ +#endif + +/* SLEEF triggers this a *lot* in their headers */ +#if HEDLEY_HAS_WARNING("-Wignored-qualifiers") + #define SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ _Pragma("clang diagnostic ignored \"-Wignored-qualifiers\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ _Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ +#endif + +/* GCC emits this under some circumstances when using __int128 */ +#if HEDLEY_GCC_VERSION_CHECK(4,8,0) + #define SIMDE_DIAGNOSTIC_DISABLE_PEDANTIC_ _Pragma("GCC diagnostic ignored \"-Wpedantic\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PEDANTIC_ +#endif + +/* MSVC doesn't like (__assume(0), code) and will warn about code being + * unreachable, but we want it there because not all compilers + * understand the unreachable macro and will complain if it is missing. + * I'm planning on adding a new macro to Hedley to handle this a bit + * more elegantly, but until then... */ +#if defined(HEDLEY_MSVC_VERSION) + #define SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ __pragma(warning(disable:4702)) +#elif defined(__clang__) + #define SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ HEDLEY_PRAGMA(clang diagnostic ignored "-Wunreachable-code") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ +#endif + +/* This is a false positive from GCC in a few places. */ +#if HEDLEY_GCC_VERSION_CHECK(4,7,0) + #define SIMDE_DIAGNOSTIC_DISABLE_MAYBE_UNINITIAZILED_ _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_MAYBE_UNINITIAZILED_ +#endif + +#if defined(SIMDE_ENABLE_NATIVE_ALIASES) + #define SIMDE_DISABLE_UNWANTED_DIAGNOSTICS_NATIVE_ALIASES_ \ + SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_ +#else + #define SIMDE_DISABLE_UNWANTED_DIAGNOSTICS_NATIVE_ALIASES_ +#endif + +/* Some native functions on E2K with instruction set < v6 are declared + * as deprecated due to inefficiency. Still they are more efficient + * than SIMDe implementation. So we're using them, and switching off + * these deprecation warnings. */ +#if defined(HEDLEY_MCST_LCC_VERSION) +# define SIMDE_LCC_DISABLE_DEPRECATED_WARNINGS _Pragma("diag_suppress 1215,1444") +# define SIMDE_LCC_REVERT_DEPRECATED_WARNINGS _Pragma("diag_default 1215,1444") +#else +# define SIMDE_LCC_DISABLE_DEPRECATED_WARNINGS +# define SIMDE_LCC_REVERT_DEPRECATED_WARNINGS +#endif + +#define SIMDE_DISABLE_UNWANTED_DIAGNOSTICS \ + HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION \ + SIMDE_DISABLE_UNWANTED_DIAGNOSTICS_NATIVE_ALIASES_ \ + SIMDE_DIAGNOSTIC_DISABLE_PSABI_ \ + SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ \ + SIMDE_DIAGNOSTIC_DISABLE_SIMD_PRAGMA_DEPRECATED_ \ + SIMDE_DIAGNOSTIC_DISABLE_CONDITIONAL_UNINITIALIZED_ \ + SIMDE_DIAGNOSTIC_DISABLE_DECLARATION_AFTER_STATEMENT_ \ + SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL_ \ + SIMDE_DIAGNOSTIC_DISABLE_NON_CONSTANT_AGGREGATE_INITIALIZER_ \ + SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ \ + SIMDE_DIAGNOSTIC_DISABLE_VLA_ \ + SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ \ + SIMDE_DIAGNOSTIC_DISABLE_PASS_FAILED_ \ + SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ \ + SIMDE_DIAGNOSTIC_DISABLE_CPP11_LONG_LONG_ \ + SIMDE_DIAGNOSTIC_DISABLE_BUGGY_UNUSED_BUT_SET_VARIBALE_ \ + SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ \ + SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_ \ + SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_ + +#endif /* !defined(SIMDE_DIAGNOSTIC_H) */ +/* :: End simde/simde-diagnostic.h :: */ + +#if !defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_SVML_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SVML) + #define SIMDE_X86_SVML_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) && !defined(SIMDE_X86_AVX512VP2INTERSECT_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VP2INTERSECT) + #define SIMDE_X86_AVX512VP2INTERSECT_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VPOPCNTDQ_NATIVE) && !defined(SIMDE_X86_AVX512VPOPCNTDQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VPOPCNTDQ) + #define SIMDE_X86_AVX512VPOPCNTDQ_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VPOPCNTDQ_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512BITALG_NATIVE) && !defined(SIMDE_X86_AVX512BITALG_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512BITALG) + #define SIMDE_X86_AVX512BITALG_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BITALG_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VBMI_NATIVE) && !defined(SIMDE_X86_AVX512VBMI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VBMI) + #define SIMDE_X86_AVX512VBMI_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VBMI_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VBMI2_NATIVE) && !defined(SIMDE_X86_AVX512VBMI2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VBMI2) + #define SIMDE_X86_AVX512VBMI2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VBMI2_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VNNI_NATIVE) && !defined(SIMDE_X86_AVX512VNNI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VNNI) + #define SIMDE_X86_AVX512VNNI_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VNNI_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX5124VNNIW_NATIVE) && !defined(SIMDE_X86_AVX5124VNNIW_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX5124VNNIW) + #define SIMDE_X86_AVX5124VNNIW_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX5124VNNIW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512CD_NATIVE) && !defined(SIMDE_X86_AVX512CD_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512CD) + #define SIMDE_X86_AVX512CD_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512CD_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512DQ_NATIVE) && !defined(SIMDE_X86_AVX512DQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512DQ) + #define SIMDE_X86_AVX512DQ_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512DQ_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VL_NATIVE) && !defined(SIMDE_X86_AVX512VL_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VL) + #define SIMDE_X86_AVX512VL_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VL_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512BW_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512BW) + #define SIMDE_X86_AVX512BW_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512FP16_NATIVE) && !defined(SIMDE_X86_AVX512FP16_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512FP16) + #define SIMDE_X86_AVX512FP16_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512BF16_NATIVE) && !defined(SIMDE_X86_AVX512BF16_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512BF16) + #define SIMDE_X86_AVX512BF16_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BF16_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512F_NATIVE) && !defined(SIMDE_X86_AVX512F_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512F) + #define SIMDE_X86_AVX512F_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512F_NATIVE) && !defined(SIMDE_X86_AVX2_NATIVE) + #define SIMDE_X86_AVX2_NATIVE +#endif + +#if !defined(SIMDE_X86_FMA_NATIVE) && !defined(SIMDE_X86_FMA_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_FMA) + #define SIMDE_X86_FMA_NATIVE + #endif +#endif +#if defined(SIMDE_X86_FMA_NATIVE) && !defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_X86_AVX_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX2_NATIVE) && !defined(SIMDE_X86_AVX2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX2) + #define SIMDE_X86_AVX2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX2_NATIVE) && !defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_X86_AVX_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX_NATIVE) && !defined(SIMDE_X86_AVX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX) + #define SIMDE_X86_AVX_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX_NATIVE) && !defined(SIMDE_X86_SSE4_2_NATIVE) + #define SIMDE_X86_SSE4_2_NATIVE +#endif + +#if !defined(SIMDE_X86_XOP_NATIVE) && !defined(SIMDE_X86_XOP_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_XOP) + #define SIMDE_X86_XOP_NATIVE + #endif +#endif +#if defined(SIMDE_X86_XOP_NATIVE) && !defined(SIMDE_X86_SSE4_2_NATIVE) + #define SIMDE_X86_SSE4_2_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE4_2_NATIVE) && !defined(SIMDE_X86_SSE4_2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE4_2) + #define SIMDE_X86_SSE4_2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE4_2_NATIVE) && !defined(SIMDE_X86_SSE4_1_NATIVE) + #define SIMDE_X86_SSE4_1_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE4_1_NATIVE) && !defined(SIMDE_X86_SSE4_1_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE4_1) + #define SIMDE_X86_SSE4_1_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE4_1_NATIVE) && !defined(SIMDE_X86_SSSE3_NATIVE) + #define SIMDE_X86_SSSE3_NATIVE +#endif + +#if !defined(SIMDE_X86_SSSE3_NATIVE) && !defined(SIMDE_X86_SSSE3_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSSE3) + #define SIMDE_X86_SSSE3_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSSE3_NATIVE) && !defined(SIMDE_X86_SSE3_NATIVE) + #define SIMDE_X86_SSE3_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE3_NATIVE) && !defined(SIMDE_X86_SSE3_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE3) + #define SIMDE_X86_SSE3_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE3_NATIVE) && !defined(SIMDE_X86_SSE2_NATIVE) + #define SIMDE_X86_SSE2_NATIVE +#endif + +#if !defined(SIMDE_X86_AES_NATIVE) && !defined(SIMDE_X86_AES_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AES) + #define SIMDE_X86_AES_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AES_NATIVE) && !defined(SIMDE_X86_SSE2_NATIVE) + #define SIMDE_X86_SSE2_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE2_NATIVE) && !defined(SIMDE_X86_SSE2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE2) + #define SIMDE_X86_SSE2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE2_NATIVE) && !defined(SIMDE_X86_SSE_NATIVE) + #define SIMDE_X86_SSE_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE_NATIVE) && !defined(SIMDE_X86_SSE_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE) + #define SIMDE_X86_SSE_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_MMX_NATIVE) && !defined(SIMDE_X86_MMX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_MMX) + #define SIMDE_X86_MMX_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_GFNI_NATIVE) && !defined(SIMDE_X86_GFNI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_GFNI) + #define SIMDE_X86_GFNI_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_PCLMUL_NATIVE) && !defined(SIMDE_X86_PCLMUL_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_PCLMUL) + #define SIMDE_X86_PCLMUL_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_VPCLMULQDQ_NATIVE) && !defined(SIMDE_X86_VPCLMULQDQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_VPCLMULQDQ) + #define SIMDE_X86_VPCLMULQDQ_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_F16C_NATIVE) && !defined(SIMDE_X86_F16C_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_F16C) + #define SIMDE_X86_F16C_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_SVML_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86) && (defined(__INTEL_COMPILER) || (HEDLEY_MSVC_VERSION_CHECK(14, 20, 0) && !defined(__clang__))) + #define SIMDE_X86_SVML_NATIVE + #endif +#endif + +#if defined(HEDLEY_MSVC_VERSION) + #pragma warning(push) + #pragma warning(disable:4799) +#endif + +#if \ + defined(SIMDE_X86_AVX_NATIVE) || defined(SIMDE_X86_GFNI_NATIVE) || defined(SIMDE_X86_SVML_NATIVE) + #include +#elif defined(SIMDE_X86_SSE4_2_NATIVE) + #include +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #include +#elif defined(SIMDE_X86_SSSE3_NATIVE) + #include +#elif defined(SIMDE_X86_SSE3_NATIVE) + #include +#elif defined(SIMDE_X86_SSE2_NATIVE) + #include +#elif defined(SIMDE_X86_SSE_NATIVE) + #include +#elif defined(SIMDE_X86_MMX_NATIVE) + #include +#endif + +#if defined(SIMDE_X86_XOP_NATIVE) + #if defined(_MSC_VER) + #include + #else + #include + #endif +#endif + +#if defined(SIMDE_X86_AES_NATIVE) + #include +#endif + +#if defined(HEDLEY_MSVC_VERSION) + #pragma warning(pop) +#endif + +#if !defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_ARM_NEON_A64V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_NEON) && defined(SIMDE_ARCH_AARCH64) && SIMDE_ARCH_ARM_CHECK(8,0) + #define SIMDE_ARM_NEON_A64V8_NATIVE + #endif +#endif +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #define SIMDE_ARM_NEON_A32V8_NATIVE +#endif + +#if !defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(8,0) && defined (__ARM_NEON_FP) && (__ARM_NEON_FP & 0x02) + #define SIMDE_ARM_NEON_A32V8_NATIVE + #endif +#endif +#if defined(__ARM_ACLE) + #include +#endif +#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define SIMDE_ARM_NEON_A32V7_NATIVE +#endif + +#if !defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_ARM_NEON_A32V7_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(7,0) + #define SIMDE_ARM_NEON_A32V7_NATIVE + #endif +#endif +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #include + #if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) + #include + #endif +#endif + +#if !defined(SIMDE_ARM_SVE_NATIVE) && !defined(SIMDE_ARM_SVE_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_SVE) + #define SIMDE_ARM_SVE_NATIVE + #include + #endif +#endif + +#if !defined(SIMDE_RISCV_V_NATIVE) && !defined(SIMDE_RISCV_V_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_RISCV_V) + #define SIMDE_RISCV_V_NATIVE + #endif +#endif +#if defined(SIMDE_RISCV_V_NATIVE) + #include +#endif + +#if !defined(SIMDE_WASM_SIMD128_NATIVE) && !defined(SIMDE_WASM_SIMD128_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_WASM_SIMD128) + #define SIMDE_WASM_SIMD128_NATIVE + #endif +#endif + +#if !defined(SIMDE_WASM_RELAXED_SIMD_NATIVE) && !defined(SIMDE_WASM_RELAXED_SIMD_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_WASM_RELAXED_SIMD) + #define SIMDE_WASM_RELAXED_SIMD_NATIVE + #endif +#endif +#if defined(SIMDE_WASM_SIMD128_NATIVE) || defined(SIMDE_WASM_RELAXED_SIMD_NATIVE) + #include +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P9_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P9_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(900) + #define SIMDE_POWER_ALTIVEC_P9_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P9_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P8) + #define SIMDE_POWER_ALTIVEC_P8_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(800) + #define SIMDE_POWER_ALTIVEC_P8_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P7) + #define SIMDE_POWER_ALTIVEC_P7_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P7_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(700) + #define SIMDE_POWER_ALTIVEC_P7_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P6) + #define SIMDE_POWER_ALTIVEC_P6_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P6_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(600) + #define SIMDE_POWER_ALTIVEC_P6_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P5) + #define SIMDE_POWER_ALTIVEC_P5_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P5_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P5_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(500) + #define SIMDE_POWER_ALTIVEC_P5_NATIVE + #endif +#endif + +#if !defined(SIMDE_ZARCH_ZVECTOR_15_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_15_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_ZARCH_CHECK(13) && defined(SIMDE_ARCH_ZARCH_ZVECTOR) + #define SIMDE_ZARCH_ZVECTOR_15_NATIVE + #endif +#endif + +#if !defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_14_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_ZARCH_CHECK(12) && defined(SIMDE_ARCH_ZARCH_ZVECTOR) + #define SIMDE_ZARCH_ZVECTOR_14_NATIVE + #endif +#endif + +#if !defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_13_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_ZARCH_CHECK(11) && defined(SIMDE_ARCH_ZARCH_ZVECTOR) + #define SIMDE_ZARCH_ZVECTOR_13_NATIVE + #endif +#endif + +#if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + /* AltiVec conflicts with lots of stuff. The bool keyword conflicts + * with the bool keyword in C++ and the bool macro in C99+ (defined + * in stdbool.h). The vector keyword conflicts with std::vector in + * C++ if you are `using std;`. + * + * Luckily AltiVec allows you to use `__vector`/`__bool`/`__pixel` + * instead, but altivec.h will unconditionally define + * `vector`/`bool`/`pixel` so we need to work around that. + * + * Unfortunately this means that if your code uses AltiVec directly + * it may break. If this is the case you'll want to define + * `SIMDE_POWER_ALTIVEC_NO_UNDEF` before including SIMDe. Or, even + * better, port your code to use the double-underscore versions. */ + #if defined(bool) + #undef bool + #endif + + #if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + #include + + #if !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) + #if defined(vector) + #undef vector + #endif + #if defined(pixel) + #undef pixel + #endif + #if defined(bool) + #undef bool + #endif + #endif /* !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) */ + #elif defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + #include + #endif + + /* Use these intsead of vector/pixel/bool in SIMDe. */ + #define SIMDE_POWER_ALTIVEC_VECTOR(T) __vector T + #define SIMDE_POWER_ALTIVEC_PIXEL __pixel + #define SIMDE_POWER_ALTIVEC_BOOL __bool + + /* Re-define bool if we're using stdbool.h */ + #if !defined(__cplusplus) && defined(__bool_true_false_are_defined) && !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) + #define bool _Bool + #endif +#endif + +#if !defined(SIMDE_MIPS_LOONGSON_MMI_NATIVE) && !defined(SIMDE_MIPS_LOONGSON_MMI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_MIPS_LOONGSON_MMI) + #define SIMDE_MIPS_LOONGSON_MMI_NATIVE 1 + #endif +#endif +#if defined(SIMDE_MIPS_LOONGSON_MMI_NATIVE) + #include +#endif + +#if !defined(SIMDE_MIPS_MSA_NATIVE) && !defined(SIMDE_MIPS_MSA_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_MIPS_MSA) + #define SIMDE_MIPS_MSA_NATIVE 1 + #endif +#endif +#if defined(SIMDE_MIPS_MSA_NATIVE) + #include +#endif + +/* This is used to determine whether or not to fall back on a vector + * function in an earlier ISA extensions, as well as whether + * we expected any attempts at vectorization to be fruitful or if we + * expect to always be running serial code. + * + * Note that, for some architectures (okay, *one* architecture) there + * can be a split where some types are supported for one vector length + * but others only for a shorter length. Therefore, it is possible to + * provide separate values for float/int/double types. */ + +#if !defined(SIMDE_NATURAL_VECTOR_SIZE) + #if defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_NATURAL_VECTOR_SIZE (512) + #elif defined(SIMDE_X86_AVX2_NATIVE) + #define SIMDE_NATURAL_VECTOR_SIZE (256) + #elif defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_NATURAL_FLOAT_VECTOR_SIZE (256) + #define SIMDE_NATURAL_INT_VECTOR_SIZE (128) + #define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE (128) + #elif \ + defined(SIMDE_X86_SSE2_NATIVE) || \ + defined(SIMDE_ARM_NEON_A32V7_NATIVE) || \ + defined(SIMDE_WASM_SIMD128_NATIVE) || \ + defined(SIMDE_POWER_ALTIVEC_P5_NATIVE) || \ + defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) || \ + defined(SIMDE_MIPS_MSA_NATIVE) + #define SIMDE_NATURAL_VECTOR_SIZE (128) + #elif defined(SIMDE_X86_SSE_NATIVE) + #define SIMDE_NATURAL_FLOAT_VECTOR_SIZE (128) + #define SIMDE_NATURAL_INT_VECTOR_SIZE (64) + #define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE (0) + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(__riscv_v_fixed_vlen) + //FIXME : SIMDE_NATURAL_VECTOR_SIZE == __riscv_v_fixed_vlen + #define SIMDE_NATURAL_VECTOR_SIZE (128) + #endif + + #if !defined(SIMDE_NATURAL_VECTOR_SIZE) + #if defined(SIMDE_NATURAL_FLOAT_VECTOR_SIZE) + #define SIMDE_NATURAL_VECTOR_SIZE SIMDE_NATURAL_FLOAT_VECTOR_SIZE + #elif defined(SIMDE_NATURAL_INT_VECTOR_SIZE) + #define SIMDE_NATURAL_VECTOR_SIZE SIMDE_NATURAL_INT_VECTOR_SIZE + #elif defined(SIMDE_NATURAL_DOUBLE_VECTOR_SIZE) + #define SIMDE_NATURAL_VECTOR_SIZE SIMDE_NATURAL_DOUBLE_VECTOR_SIZE + #else + #define SIMDE_NATURAL_VECTOR_SIZE (0) + #endif + #endif + + #if !defined(SIMDE_NATURAL_FLOAT_VECTOR_SIZE) + #define SIMDE_NATURAL_FLOAT_VECTOR_SIZE SIMDE_NATURAL_VECTOR_SIZE + #endif + #if !defined(SIMDE_NATURAL_INT_VECTOR_SIZE) + #define SIMDE_NATURAL_INT_VECTOR_SIZE SIMDE_NATURAL_VECTOR_SIZE + #endif + #if !defined(SIMDE_NATURAL_DOUBLE_VECTOR_SIZE) + #define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE SIMDE_NATURAL_VECTOR_SIZE + #endif +#endif + +#define SIMDE_NATURAL_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_VECTOR_SIZE > 0) && (SIMDE_NATURAL_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_VECTOR_SIZE > 0) && (SIMDE_NATURAL_VECTOR_SIZE >= (x))) +#define SIMDE_NATURAL_FLOAT_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_FLOAT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_FLOAT_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_FLOAT_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_FLOAT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_FLOAT_VECTOR_SIZE >= (x))) +#define SIMDE_NATURAL_INT_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_INT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_INT_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_INT_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_INT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_INT_VECTOR_SIZE >= (x))) +#define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_DOUBLE_VECTOR_SIZE > 0) && (SIMDE_NATURAL_DOUBLE_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_DOUBLE_VECTOR_SIZE > 0) && (SIMDE_NATURAL_DOUBLE_VECTOR_SIZE >= (x))) + +/* Native aliases */ +#if defined(SIMDE_ENABLE_NATIVE_ALIASES) + #if !defined(SIMDE_X86_MMX_NATIVE) + #define SIMDE_X86_MMX_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE_NATIVE) + #define SIMDE_X86_SSE_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE2_NATIVE) + #define SIMDE_X86_SSE2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE3_NATIVE) + #define SIMDE_X86_SSE3_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSSE3_NATIVE) + #define SIMDE_X86_SSSE3_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE4_1_NATIVE) + #define SIMDE_X86_SSE4_1_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE4_2_NATIVE) + #define SIMDE_X86_SSE4_2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX2_NATIVE) + #define SIMDE_X86_AVX2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_FMA_NATIVE) + #define SIMDE_X86_FMA_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VL_NATIVE) + #define SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VBMI_NATIVE) + #define SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VBMI2_NATIVE) + #define SIMDE_X86_AVX512VBMI2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512BW_NATIVE) + #define SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VNNI_NATIVE) + #define SIMDE_X86_AVX512VNNI_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX5124VNNIW_NATIVE) + #define SIMDE_X86_AVX5124VNNIW_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512BF16_NATIVE) + #define SIMDE_X86_AVX512BF16_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512BITALG_NATIVE) + #define SIMDE_X86_AVX512BITALG_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VPOPCNTDQ_NATIVE) + #define SIMDE_X86_AVX512VPOPCNTDQ_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) + #define SIMDE_X86_AVX512VP2INTERSECT_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512DQ_NATIVE) + #define SIMDE_X86_AVX512DQ_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512CD_NATIVE) + #define SIMDE_X86_AVX512CD_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512FP16_NATIVE) + #define SIMDE_X86_AVX512FP16_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_GFNI_NATIVE) + #define SIMDE_X86_GFNI_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_PCLMUL_NATIVE) + #define SIMDE_X86_PCLMUL_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_VPCLMULQDQ_NATIVE) + #define SIMDE_X86_VPCLMULQDQ_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_F16C_NATIVE) + #define SIMDE_X86_F16C_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AES_NATIVE) + #define SIMDE_X86_AES_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SVML_NATIVE) + #define SIMDE_X86_SVML_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #define SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #define SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_ARM_SVE_NATIVE) + #define SIMDE_ARM_SVE_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_RISCV_V_NATIVE) + #define SIMDE_RISCV_V_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_MIPS_MSA_NATIVE) + #define SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_WASM_SIMD128_NATIVE) + #define SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES + #endif +#endif + +/* Are floating point values stored using IEEE 754? Knowing + * this at during preprocessing is a bit tricky, mostly because what + * we're curious about is how values are stored and not whether the + * implementation is fully conformant in terms of rounding, NaN + * handling, etc. + * + * For example, if you use -ffast-math or -Ofast on + * GCC or clang IEEE 754 isn't strictly followed, therefore IEE 754 + * support is not advertised (by defining __STDC_IEC_559__). + * + * However, what we care about is whether it is safe to assume that + * floating point values are stored in IEEE 754 format, in which case + * we can provide faster implementations of some functions. + * + * Luckily every vaugely modern architecture I'm aware of uses IEEE 754- + * so we just assume IEEE 754 for now. There is a test which verifies + * this, if that test fails sowewhere please let us know and we'll add + * an exception for that platform. Meanwhile, you can define + * SIMDE_NO_IEEE754_STORAGE. */ +#if !defined(SIMDE_IEEE754_STORAGE) && !defined(SIMDE_NO_IEE754_STORAGE) + #define SIMDE_IEEE754_STORAGE +#endif + +#if defined(SIMDE_ARCH_ARM_NEON_FP16) + #define SIMDE_ARM_NEON_FP16 +#endif + +#if defined(SIMDE_ARCH_ARM_NEON_BF16) + #define SIMDE_ARM_NEON_BF16 +#endif + +#if !defined(SIMDE_LOONGARCH_LASX_NATIVE) && !defined(SIMDE_LOONGARCH_LASX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_LOONGARCH_LASX) + #define SIMDE_LOONGARCH_LASX_NATIVE + #endif +#endif + +#if !defined(SIMDE_LOONGARCH_LSX_NATIVE) && !defined(SIMDE_LOONGARCH_LSX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_LOONGARCH_LSX) + #define SIMDE_LOONGARCH_LSX_NATIVE + #endif +#endif + +#if defined(SIMDE_LOONGARCH_LASX_NATIVE) + #include +#endif +#if defined(SIMDE_LOONGARCH_LSX_NATIVE) + #include +#endif + +#endif /* !defined(SIMDE_FEATURES_H) */ +/* :: End simde/simde-features.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-math.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2017-2020 Evan Nemerson + * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + */ + +/* Attempt to find math functions. Functions may be in , + * , compiler built-ins/intrinsics, or platform/architecture + * specific headers. In some cases, especially those not built in to + * libm, we may need to define our own implementations. */ + +#if !defined(SIMDE_MATH_H) +#define SIMDE_MATH_H 1 + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ + +#include +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #include +#endif + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DISABLE_UNWANTED_DIAGNOSTICS + +/* SLEEF support + * https://sleef.org/ + * + * If you include prior to including SIMDe, SIMDe will use + * SLEEF. You can also define SIMDE_MATH_SLEEF_ENABLE prior to + * including SIMDe to force the issue. + * + * Note that SLEEF does requires linking to libsleef. + * + * By default, SIMDe will use the 1 ULP functions, but if you use + * SIMDE_ACCURACY_PREFERENCE of 0 we will use up to 4 ULP. This is + * only the case for the simde_math_* functions; for code in other + * SIMDe headers which calls SLEEF directly we may use functions with + * greater error if the API we're implementing is less precise (for + * example, SVML guarantees 4 ULP, so we will generally use the 3.5 + * ULP functions from SLEEF). */ +#if !defined(SIMDE_MATH_SLEEF_DISABLE) + #if defined(__SLEEF_H__) + #define SIMDE_MATH_SLEEF_ENABLE + #endif +#endif + +#if defined(SIMDE_MATH_SLEEF_ENABLE) && !defined(__SLEEF_H__) + HEDLEY_DIAGNOSTIC_PUSH + SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ + #include + HEDLEY_DIAGNOSTIC_POP +#endif + +#if defined(SIMDE_MATH_SLEEF_ENABLE) && defined(__SLEEF_H__) + #if defined(SLEEF_VERSION_MAJOR) + #define SIMDE_MATH_SLEEF_VERSION_CHECK(major, minor, patch) (HEDLEY_VERSION_ENCODE(SLEEF_VERSION_MAJOR, SLEEF_VERSION_MINOR, SLEEF_VERSION_PATCHLEVEL) >= HEDLEY_VERSION_ENCODE(major, minor, patch)) + #else + #define SIMDE_MATH_SLEEF_VERSION_CHECK(major, minor, patch) (HEDLEY_VERSION_ENCODE(3,0,0) >= HEDLEY_VERSION_ENCODE(major, minor, patch)) + #endif +#else + #define SIMDE_MATH_SLEEF_VERSION_CHECK(major, minor, patch) (0) +#endif + +#if defined(__has_builtin) + #define SIMDE_MATH_BUILTIN_LIBM(func) __has_builtin(__builtin_##func) +#elif \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_GCC_VERSION_CHECK(4,4,0) + #define SIMDE_MATH_BUILTIN_LIBM(func) (1) +#else + #define SIMDE_MATH_BUILTIN_LIBM(func) (0) +#endif + +#if defined(HUGE_VAL) + /* Looks like or has already been included. */ + + /* The math.h from libc++ (yes, the C header from the C++ standard + * library) will define an isnan function, but not an isnan macro + * like the C standard requires. So we detect the header guards + * macro libc++ uses. */ + #if defined(isnan) || (defined(_LIBCPP_MATH_H) && !defined(_LIBCPP_CMATH)) + #define SIMDE_MATH_HAVE_MATH_H + #elif defined(__cplusplus) + #define SIMDE_MATH_HAVE_CMATH + #endif +#elif defined(__has_include) + #if defined(__cplusplus) && (__cplusplus >= 201103L) && __has_include() + #define SIMDE_MATH_HAVE_CMATH + #include + #elif __has_include() + #define SIMDE_MATH_HAVE_MATH_H + #include + #elif !defined(SIMDE_MATH_NO_LIBM) + #define SIMDE_MATH_NO_LIBM + #endif +#elif !defined(SIMDE_MATH_NO_LIBM) + #if defined(__cplusplus) && (__cplusplus >= 201103L) + #define SIMDE_MATH_HAVE_CMATH + HEDLEY_DIAGNOSTIC_PUSH + #if defined(HEDLEY_MSVC_VERSION) + /* VS 14 emits this diagnostic about noexcept being used on a + * function, which we can't do anything about. */ + #pragma warning(disable:4996) + #endif + #include + HEDLEY_DIAGNOSTIC_POP + #else + #define SIMDE_MATH_HAVE_MATH_H + #include + #endif +#endif + +#if !defined(SIMDE_MATH_INFINITY) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_inf) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) + #define SIMDE_MATH_INFINITY (__builtin_inf()) + #elif defined(INFINITY) + #define SIMDE_MATH_INFINITY INFINITY + #endif +#endif + +#if !defined(SIMDE_INFINITYF) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_inff) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) + #define SIMDE_MATH_INFINITYF (__builtin_inff()) + #elif defined(INFINITYF) + #define SIMDE_MATH_INFINITYF INFINITYF + #elif defined(SIMDE_MATH_INFINITY) + #define SIMDE_MATH_INFINITYF HEDLEY_STATIC_CAST(float, SIMDE_MATH_INFINITY) + #endif +#endif + +#if !defined(SIMDE_MATH_NAN) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_nan) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) + #define SIMDE_MATH_NAN (__builtin_nan("")) + #elif defined(NAN) + #define SIMDE_MATH_NAN NAN + #endif +#endif + +#if !defined(SIMDE_MATH_NANF) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_nanf) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) + #define SIMDE_MATH_NANF (__builtin_nanf("")) + #elif defined(NANF) + #define SIMDE_MATH_NANF NANF + #elif defined(SIMDE_MATH_NAN) + #define SIMDE_MATH_NANF HEDLEY_STATIC_CAST(float, SIMDE_MATH_NAN) + #endif +#endif + +#if !defined(SIMDE_MATH_PI) + #if defined(M_PI) + #define SIMDE_MATH_PI M_PI + #else + #define SIMDE_MATH_PI 3.14159265358979323846 + #endif +#endif + +#if !defined(SIMDE_MATH_PIF) + #if defined(M_PI) + #define SIMDE_MATH_PIF HEDLEY_STATIC_CAST(float, M_PI) + #else + #define SIMDE_MATH_PIF 3.14159265358979323846f + #endif +#endif + +#if !defined(SIMDE_MATH_PI_OVER_180) + #define SIMDE_MATH_PI_OVER_180 0.0174532925199432957692369076848861271344287188854172545609719144 +#endif + +#if !defined(SIMDE_MATH_PI_OVER_180F) + #define SIMDE_MATH_PI_OVER_180F 0.0174532925199432957692369076848861271344287188854172545609719144f +#endif + +#if !defined(SIMDE_MATH_180_OVER_PI) + #define SIMDE_MATH_180_OVER_PI 57.295779513082320876798154814105170332405472466564321549160243861 +#endif + +#if !defined(SIMDE_MATH_180_OVER_PIF) + #define SIMDE_MATH_180_OVER_PIF 57.295779513082320876798154814105170332405472466564321549160243861f +#endif + +#if !defined(SIMDE_MATH_FLT_MIN) + #if defined(__FLT_MIN__) + #define SIMDE_MATH_FLT_MIN __FLT_MIN__ + #else + #if !defined(FLT_MIN) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_FLT_MIN FLT_MIN + #endif +#endif + +#if !defined(SIMDE_MATH_FLT_MAX) + #if defined(__FLT_MAX__) + #define SIMDE_MATH_FLT_MAX __FLT_MAX__ + #else + #if !defined(FLT_MAX) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_FLT_MAX FLT_MAX + #endif +#endif + +#if !defined(SIMDE_MATH_DBL_MIN) + #if defined(__DBL_MIN__) + #define SIMDE_MATH_DBL_MIN __DBL_MIN__ + #else + #if !defined(DBL_MIN) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_DBL_MIN DBL_MIN + #endif +#endif + +#if !defined(SIMDE_MATH_DBL_MAX) + #if defined(__DBL_MAX__) + #define SIMDE_MATH_DBL_MAX __DBL_MAX__ + #else + #if !defined(DBL_MAX) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_DBL_MAX DBL_MAX + #endif +#endif + +/*** Classification macros from C99 ***/ + +#if !defined(simde_math_isinf) + #if SIMDE_MATH_BUILTIN_LIBM(isinf) + #define simde_math_isinf(v) __builtin_isinf(v) + #elif defined(isinf) || defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isinf(v) isinf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isinf(v) std::isinf(v) + #endif +#endif + +#if !defined(simde_math_isinff) + #if HEDLEY_HAS_BUILTIN(__builtin_isinff) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define simde_math_isinff(v) __builtin_isinff(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isinff(v) std::isinf(v) + #elif defined(simde_math_isinf) + #define simde_math_isinff(v) simde_math_isinf(HEDLEY_STATIC_CAST(double, v)) + #endif +#endif + +#if !defined(simde_math_isnan) + #if SIMDE_MATH_BUILTIN_LIBM(isnan) + #define simde_math_isnan(v) __builtin_isnan(v) + #elif defined(isnan) || defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isnan(v) isnan(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnan(v) std::isnan(v) + #endif +#endif + +#if !defined(simde_math_isnanf) + #if HEDLEY_HAS_BUILTIN(__builtin_isnanf) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) + /* XL C/C++ has __builtin_isnan but not __builtin_isnanf */ + #define simde_math_isnanf(v) __builtin_isnanf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnanf(v) std::isnan(v) + #elif defined(simde_math_isnan) + #define simde_math_isnanf(v) simde_math_isnan(HEDLEY_STATIC_CAST(double, v)) + #endif +#endif + +#if !defined(simde_math_isnormal) + #if SIMDE_MATH_BUILTIN_LIBM(isnormal) + #define simde_math_isnormal(v) __builtin_isnormal(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isnormal(v) isnormal(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnormal(v) std::isnormal(v) + #endif +#endif + +#if !defined(simde_math_isnormalf) + #if HEDLEY_HAS_BUILTIN(__builtin_isnormalf) + #define simde_math_isnormalf(v) __builtin_isnormalf(v) + #elif SIMDE_MATH_BUILTIN_LIBM(isnormal) + #define simde_math_isnormalf(v) __builtin_isnormal(v) + #elif defined(isnormalf) + #define simde_math_isnormalf(v) isnormalf(v) + #elif defined(isnormal) || defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isnormalf(v) isnormal(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnormalf(v) std::isnormal(v) + #elif defined(simde_math_isnormal) + #define simde_math_isnormalf(v) simde_math_isnormal(v) + #endif +#endif + +#if !defined(simde_math_issubnormalf) + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + #define simde_math_issubnormalf(v) __builtin_fpclassify(0, 0, 0, 1, 0, v) + #elif defined(fpclassify) + #define simde_math_issubnormalf(v) (fpclassify(v) == FP_SUBNORMAL) + #elif defined(SIMDE_IEEE754_STORAGE) + #define simde_math_issubnormalf(v) (((simde_float32_as_uint32(v) & UINT32_C(0x7F800000)) == UINT32_C(0)) && ((simde_float32_as_uint32(v) & UINT32_C(0x007FFFFF)) != UINT32_C(0))) + #endif +#endif + +#if !defined(simde_math_issubnormal) + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + #define simde_math_issubnormal(v) __builtin_fpclassify(0, 0, 0, 1, 0, v) + #elif defined(fpclassify) + #define simde_math_issubnormal(v) (fpclassify(v) == FP_SUBNORMAL) + #elif defined(SIMDE_IEEE754_STORAGE) + #define simde_math_issubnormal(v) (((simde_float64_as_uint64(v) & UINT64_C(0x7FF0000000000000)) == UINT64_C(0)) && ((simde_float64_as_uint64(v) & UINT64_C(0x00FFFFFFFFFFFFF)) != UINT64_C(0))) + #endif +#endif + +#if defined(FP_NAN) + #define SIMDE_MATH_FP_NAN FP_NAN +#else + #define SIMDE_MATH_FP_NAN 0 +#endif +#if defined(FP_INFINITE) + #define SIMDE_MATH_FP_INFINITE FP_INFINITE +#else + #define SIMDE_MATH_FP_INFINITE 1 +#endif +#if defined(FP_ZERO) + #define SIMDE_MATH_FP_ZERO FP_ZERO +#else + #define SIMDE_MATH_FP_ZERO 2 +#endif +#if defined(FP_SUBNORMAL) + #define SIMDE_MATH_FP_SUBNORMAL FP_SUBNORMAL +#else + #define SIMDE_MATH_FP_SUBNORMAL 3 +#endif +#if defined(FP_NORMAL) + #define SIMDE_MATH_FP_NORMAL FP_NORMAL +#else + #define SIMDE_MATH_FP_NORMAL 4 +#endif + +static HEDLEY_INLINE +int +simde_math_fpclassifyf(float v) { + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + return __builtin_fpclassify(SIMDE_MATH_FP_NAN, SIMDE_MATH_FP_INFINITE, SIMDE_MATH_FP_NORMAL, SIMDE_MATH_FP_SUBNORMAL, SIMDE_MATH_FP_ZERO, v); + #elif defined(fpclassify) + return fpclassify(v); + #else + return + simde_math_isnormalf(v) ? SIMDE_MATH_FP_NORMAL : + (v == 0.0f) ? SIMDE_MATH_FP_ZERO : + simde_math_isnanf(v) ? SIMDE_MATH_FP_NAN : + simde_math_isinff(v) ? SIMDE_MATH_FP_INFINITE : + SIMDE_MATH_FP_SUBNORMAL; + #endif +} + +static HEDLEY_INLINE +int +simde_math_fpclassify(double v) { + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + return __builtin_fpclassify(SIMDE_MATH_FP_NAN, SIMDE_MATH_FP_INFINITE, SIMDE_MATH_FP_NORMAL, SIMDE_MATH_FP_SUBNORMAL, SIMDE_MATH_FP_ZERO, v); + #elif defined(fpclassify) + return fpclassify(v); + #else + return + simde_math_isnormal(v) ? SIMDE_MATH_FP_NORMAL : + (v == 0.0) ? SIMDE_MATH_FP_ZERO : + simde_math_isnan(v) ? SIMDE_MATH_FP_NAN : + simde_math_isinf(v) ? SIMDE_MATH_FP_INFINITE : + SIMDE_MATH_FP_SUBNORMAL; + #endif +} + +#define SIMDE_MATH_FP_QNAN 0x01 +#define SIMDE_MATH_FP_PZERO 0x02 +#define SIMDE_MATH_FP_NZERO 0x04 +#define SIMDE_MATH_FP_PINF 0x08 +#define SIMDE_MATH_FP_NINF 0x10 +#define SIMDE_MATH_FP_DENORMAL 0x20 +#define SIMDE_MATH_FP_NEGATIVE 0x40 +#define SIMDE_MATH_FP_SNAN 0x80 + +static HEDLEY_INLINE +uint8_t +simde_math_fpclassf(float v, const int imm8) { + union { + float f; + uint32_t u; + } fu; + fu.f = v; + uint32_t bits = fu.u; + uint8_t NegNum = (bits >> 31) & 1; + uint32_t const ExpMask = 0x3F800000; // [30:23] + uint32_t const MantMask = 0x007FFFFF; // [22:0] + uint8_t ExpAllOnes = ((bits & ExpMask) == ExpMask); + uint8_t ExpAllZeros = ((bits & ExpMask) == 0); + uint8_t MantAllZeros = ((bits & MantMask) == 0); + uint8_t ZeroNumber = ExpAllZeros & MantAllZeros; + uint8_t SignalingBit = (bits >> 22) & 1; + + uint8_t result = 0; + uint8_t qNaN_res = ExpAllOnes & (!MantAllZeros) & SignalingBit; + uint8_t Pzero_res = (!NegNum) & ExpAllZeros & MantAllZeros; + uint8_t Nzero_res = NegNum & ExpAllZeros & MantAllZeros; + uint8_t Pinf_res = (!NegNum) & ExpAllOnes & MantAllZeros; + uint8_t Ninf_res = NegNum & ExpAllOnes & MantAllZeros; + uint8_t Denorm_res = ExpAllZeros & (!MantAllZeros); + uint8_t FinNeg_res = NegNum & (!ExpAllOnes) & (!ZeroNumber); + uint8_t sNaN_res = ExpAllOnes & (!MantAllZeros) & (!SignalingBit); + result = (((imm8 >> 0) & qNaN_res) | \ + ((imm8 >> 1) & Pzero_res) | \ + ((imm8 >> 2) & Nzero_res) | \ + ((imm8 >> 3) & Pinf_res) | \ + ((imm8 >> 4) & Ninf_res) | \ + ((imm8 >> 5) & Denorm_res) | \ + ((imm8 >> 6) & FinNeg_res) | \ + ((imm8 >> 7) & sNaN_res)); + return result; +} + +static HEDLEY_INLINE +uint8_t +simde_math_fpclass(double v, const int imm8) { + union { + double d; + uint64_t u; + } du; + du.d = v; + uint64_t bits = du.u; + uint8_t NegNum = (bits >> 63) & 1; + uint64_t const ExpMask = 0x3FF0000000000000; // [62:52] + uint64_t const MantMask = 0x000FFFFFFFFFFFFF; // [51:0] + uint8_t ExpAllOnes = ((bits & ExpMask) == ExpMask); + uint8_t ExpAllZeros = ((bits & ExpMask) == 0); + uint8_t MantAllZeros = ((bits & MantMask) == 0); + uint8_t ZeroNumber = ExpAllZeros & MantAllZeros; + uint8_t SignalingBit = (bits >> 51) & 1; + + uint8_t result = 0; + uint8_t qNaN_res = ExpAllOnes & (!MantAllZeros) & SignalingBit; + uint8_t Pzero_res = (!NegNum) & ExpAllZeros & MantAllZeros; + uint8_t Nzero_res = NegNum & ExpAllZeros & MantAllZeros; + uint8_t Pinf_res = (!NegNum) & ExpAllOnes & MantAllZeros; + uint8_t Ninf_res = NegNum & ExpAllOnes & MantAllZeros; + uint8_t Denorm_res = ExpAllZeros & (!MantAllZeros); + uint8_t FinNeg_res = NegNum & (!ExpAllOnes) & (!ZeroNumber); + uint8_t sNaN_res = ExpAllOnes & (!MantAllZeros) & (!SignalingBit); + result = (((imm8 >> 0) & qNaN_res) | \ + ((imm8 >> 1) & Pzero_res) | \ + ((imm8 >> 2) & Nzero_res) | \ + ((imm8 >> 3) & Pinf_res) | \ + ((imm8 >> 4) & Ninf_res) | \ + ((imm8 >> 5) & Denorm_res) | \ + ((imm8 >> 6) & FinNeg_res) | \ + ((imm8 >> 7) & sNaN_res)); + return result; +} + +/*** Manipulation functions ***/ + +#if !defined(simde_math_nextafter) + #if \ + (HEDLEY_HAS_BUILTIN(__builtin_nextafter) && !defined(HEDLEY_IBM_VERSION)) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define simde_math_nextafter(x, y) __builtin_nextafter(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nextafter(x, y) std::nextafter(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nextafter(x, y) nextafter(x, y) + #endif +#endif + +#if !defined(simde_math_nextafterf) + #if \ + (HEDLEY_HAS_BUILTIN(__builtin_nextafterf) && !defined(HEDLEY_IBM_VERSION)) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define simde_math_nextafterf(x, y) __builtin_nextafterf(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nextafterf(x, y) std::nextafter(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nextafterf(x, y) nextafterf(x, y) + #endif +#endif + +/*** Functions from C99 ***/ + +#if !defined(simde_math_abs) + #if SIMDE_MATH_BUILTIN_LIBM(abs) + #define simde_math_abs(v) __builtin_abs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_abs(v) std::abs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_abs(v) abs(v) + #endif +#endif + +#if !defined(simde_math_labs) + #if SIMDE_MATH_BUILTIN_LIBM(labs) + #define simde_math_labs(v) __builtin_labs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_labs(v) std::labs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_labs(v) labs(v) + #endif +#endif + +#if !defined(simde_math_llabs) + #if SIMDE_MATH_BUILTIN_LIBM(llabs) + #define simde_math_llabs(v) __builtin_llabs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_llabs(v) std::llabs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_llabs(v) llabs(v) + #endif +#endif + +#if !defined(simde_math_fabsf) + #if SIMDE_MATH_BUILTIN_LIBM(fabsf) + #define simde_math_fabsf(v) __builtin_fabsf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fabsf(v) std::abs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fabsf(v) fabsf(v) + #endif +#endif + +#if !defined(simde_math_acos) + #if SIMDE_MATH_BUILTIN_LIBM(acos) + #define simde_math_acos(v) __builtin_acos(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acos(v) std::acos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acos(v) acos(v) + #endif +#endif + +#if !defined(simde_math_acosf) + #if SIMDE_MATH_BUILTIN_LIBM(acosf) + #define simde_math_acosf(v) __builtin_acosf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acosf(v) std::acos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acosf(v) acosf(v) + #endif +#endif + +#if !defined(simde_math_acosh) + #if SIMDE_MATH_BUILTIN_LIBM(acosh) + #define simde_math_acosh(v) __builtin_acosh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acosh(v) std::acosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acosh(v) acosh(v) + #endif +#endif + +#if !defined(simde_math_acoshf) + #if SIMDE_MATH_BUILTIN_LIBM(acoshf) + #define simde_math_acoshf(v) __builtin_acoshf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acoshf(v) std::acosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acoshf(v) acoshf(v) + #endif +#endif + +#if !defined(simde_math_asin) + #if SIMDE_MATH_BUILTIN_LIBM(asin) + #define simde_math_asin(v) __builtin_asin(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asin(v) std::asin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asin(v) asin(v) + #endif +#endif + +#if !defined(simde_math_asinf) + #if SIMDE_MATH_BUILTIN_LIBM(asinf) + #define simde_math_asinf(v) __builtin_asinf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asinf(v) std::asin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asinf(v) asinf(v) + #endif +#endif + +#if !defined(simde_math_asinh) + #if SIMDE_MATH_BUILTIN_LIBM(asinh) + #define simde_math_asinh(v) __builtin_asinh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asinh(v) std::asinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asinh(v) asinh(v) + #endif +#endif + +#if !defined(simde_math_asinhf) + #if SIMDE_MATH_BUILTIN_LIBM(asinhf) + #define simde_math_asinhf(v) __builtin_asinhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asinhf(v) std::asinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asinhf(v) asinhf(v) + #endif +#endif + +#if !defined(simde_math_atan) + #if SIMDE_MATH_BUILTIN_LIBM(atan) + #define simde_math_atan(v) __builtin_atan(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atan(v) std::atan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atan(v) atan(v) + #endif +#endif + +#if !defined(simde_math_atan2) + #if SIMDE_MATH_BUILTIN_LIBM(atan2) + #define simde_math_atan2(y, x) __builtin_atan2(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atan2(y, x) std::atan2(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atan2(y, x) atan2(y, x) + #endif +#endif + +#if !defined(simde_math_atan2f) + #if SIMDE_MATH_BUILTIN_LIBM(atan2f) + #define simde_math_atan2f(y, x) __builtin_atan2f(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atan2f(y, x) std::atan2(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atan2f(y, x) atan2f(y, x) + #endif +#endif + +#if !defined(simde_math_atanf) + #if SIMDE_MATH_BUILTIN_LIBM(atanf) + #define simde_math_atanf(v) __builtin_atanf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atanf(v) std::atan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atanf(v) atanf(v) + #endif +#endif + +#if !defined(simde_math_atanh) + #if SIMDE_MATH_BUILTIN_LIBM(atanh) + #define simde_math_atanh(v) __builtin_atanh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atanh(v) std::atanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atanh(v) atanh(v) + #endif +#endif + +#if !defined(simde_math_atanhf) + #if SIMDE_MATH_BUILTIN_LIBM(atanhf) + #define simde_math_atanhf(v) __builtin_atanhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atanhf(v) std::atanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atanhf(v) atanhf(v) + #endif +#endif + +#if !defined(simde_math_cbrt) + #if SIMDE_MATH_BUILTIN_LIBM(cbrt) + #define simde_math_cbrt(v) __builtin_cbrt(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cbrt(v) std::cbrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cbrt(v) cbrt(v) + #endif +#endif + +#if !defined(simde_math_cbrtf) + #if SIMDE_MATH_BUILTIN_LIBM(cbrtf) + #define simde_math_cbrtf(v) __builtin_cbrtf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cbrtf(v) std::cbrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cbrtf(v) cbrtf(v) + #endif +#endif + +#if !defined(simde_math_ceil) + #if SIMDE_MATH_BUILTIN_LIBM(ceil) + #define simde_math_ceil(v) __builtin_ceil(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_ceil(v) std::ceil(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_ceil(v) ceil(v) + #endif +#endif + +#if !defined(simde_math_ceilf) + #if SIMDE_MATH_BUILTIN_LIBM(ceilf) + #define simde_math_ceilf(v) __builtin_ceilf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_ceilf(v) std::ceil(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_ceilf(v) ceilf(v) + #endif +#endif + +#if !defined(simde_math_copysign) + #if SIMDE_MATH_BUILTIN_LIBM(copysign) + #define simde_math_copysign(x, y) __builtin_copysign(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_copysign(x, y) std::copysign(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_copysign(x, y) copysign(x, y) + #endif +#endif + +#if !defined(simde_math_copysignf) + #if SIMDE_MATH_BUILTIN_LIBM(copysignf) + #define simde_math_copysignf(x, y) __builtin_copysignf(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_copysignf(x, y) std::copysignf(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_copysignf(x, y) copysignf(x, y) + #endif +#endif + +#if !defined(simde_math_signbit) + #if SIMDE_MATH_BUILTIN_LIBM(signbit) + #if (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) + #define simde_math_signbit(x) __builtin_signbit(x) + #else + #define simde_math_signbit(x) __builtin_signbit(HEDLEY_STATIC_CAST(double, (x))) + #endif + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_signbit(x) std::signbit(x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_signbit(x) signbit(x) + #endif +#endif + +#if !defined(simde_math_cos) + #if SIMDE_MATH_BUILTIN_LIBM(cos) + #define simde_math_cos(v) __builtin_cos(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cos(v) std::cos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cos(v) cos(v) + #endif +#endif + +#if !defined(simde_math_cosf) + #if defined(SIMDE_MATH_SLEEF_ENABLE) + #if SIMDE_ACCURACY_PREFERENCE < 1 + #define simde_math_cosf(v) Sleef_cosf_u35(v) + #else + #define simde_math_cosf(v) Sleef_cosf_u10(v) + #endif + #elif SIMDE_MATH_BUILTIN_LIBM(cosf) + #define simde_math_cosf(v) __builtin_cosf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cosf(v) std::cos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cosf(v) cosf(v) + #endif +#endif + +#if !defined(simde_math_cosh) + #if SIMDE_MATH_BUILTIN_LIBM(cosh) + #define simde_math_cosh(v) __builtin_cosh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cosh(v) std::cosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cosh(v) cosh(v) + #endif +#endif + +#if !defined(simde_math_coshf) + #if SIMDE_MATH_BUILTIN_LIBM(coshf) + #define simde_math_coshf(v) __builtin_coshf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_coshf(v) std::cosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_coshf(v) coshf(v) + #endif +#endif + +#if !defined(simde_math_erf) + #if SIMDE_MATH_BUILTIN_LIBM(erf) + #define simde_math_erf(v) __builtin_erf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erf(v) std::erf(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erf(v) erf(v) + #endif +#endif + +#if !defined(simde_math_erff) + #if SIMDE_MATH_BUILTIN_LIBM(erff) + #define simde_math_erff(v) __builtin_erff(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erff(v) std::erf(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erff(v) erff(v) + #endif +#endif + +#if !defined(simde_math_erfc) + #if SIMDE_MATH_BUILTIN_LIBM(erfc) + #define simde_math_erfc(v) __builtin_erfc(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erfc(v) std::erfc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erfc(v) erfc(v) + #endif +#endif + +#if !defined(simde_math_erfcf) + #if SIMDE_MATH_BUILTIN_LIBM(erfcf) + #define simde_math_erfcf(v) __builtin_erfcf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erfcf(v) std::erfc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erfcf(v) erfcf(v) + #endif +#endif + +#if !defined(simde_math_exp) + #if SIMDE_MATH_BUILTIN_LIBM(exp) + #define simde_math_exp(v) __builtin_exp(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_exp(v) std::exp(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_exp(v) exp(v) + #endif +#endif + +#if !defined(simde_math_expf) + #if SIMDE_MATH_BUILTIN_LIBM(expf) + #define simde_math_expf(v) __builtin_expf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_expf(v) std::exp(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_expf(v) expf(v) + #endif +#endif + +#if !defined(simde_math_expm1) + #if SIMDE_MATH_BUILTIN_LIBM(expm1) + #define simde_math_expm1(v) __builtin_expm1(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_expm1(v) std::expm1(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_expm1(v) expm1(v) + #endif +#endif + +#if !defined(simde_math_expm1f) + #if SIMDE_MATH_BUILTIN_LIBM(expm1f) + #define simde_math_expm1f(v) __builtin_expm1f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_expm1f(v) std::expm1(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_expm1f(v) expm1f(v) + #endif +#endif + +#if !defined(simde_math_exp2) + #if SIMDE_MATH_BUILTIN_LIBM(exp2) + #define simde_math_exp2(v) __builtin_exp2(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_exp2(v) std::exp2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_exp2(v) exp2(v) + #endif +#endif + +#if !defined(simde_math_exp2f) + #if SIMDE_MATH_BUILTIN_LIBM(exp2f) + #define simde_math_exp2f(v) __builtin_exp2f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_exp2f(v) std::exp2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_exp2f(v) exp2f(v) + #endif +#endif + +#if !defined(simde_math_pow) + #if SIMDE_MATH_BUILTIN_LIBM(pow) + #define simde_math_pow(y, x) __builtin_pow(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_pow(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_pow(y, x) pow(y, x) + #endif +#endif + +#if !defined(simde_math_powf) + #if SIMDE_MATH_BUILTIN_LIBM(powf) + #define simde_math_powf(y, x) __builtin_powf(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_powf(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_powf(y, x) powf(y, x) + #endif +#endif + +#if HEDLEY_HAS_BUILTIN(__builtin_exp10) || HEDLEY_GCC_VERSION_CHECK(3,4,0) + # define simde_math_exp10(v) __builtin_exp10(v) +#else +# define simde_math_exp10(v) simde_math_pow(10.0, (v)) +#endif + +#if HEDLEY_HAS_BUILTIN(__builtin_exp10f) || HEDLEY_GCC_VERSION_CHECK(3,4,0) + # define simde_math_exp10f(v) __builtin_exp10f(v) +#else +# define simde_math_exp10f(v) simde_math_powf(10.0f, (v)) +#endif + +#if !defined(simde_math_fabs) + #if SIMDE_MATH_BUILTIN_LIBM(fabs) + #define simde_math_fabs(v) __builtin_fabs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fabs(v) std::fabs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fabs(v) fabs(v) + #endif +#endif + +#if !defined(simde_math_fabsf) + #if SIMDE_MATH_BUILTIN_LIBM(fabsf) + #define simde_math_fabsf(v) __builtin_fabsf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fabsf(v) std::fabs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fabsf(v) fabsf(v) + #endif +#endif + +#if !defined(simde_math_floor) + #if SIMDE_MATH_BUILTIN_LIBM(floor) + #define simde_math_floor(v) __builtin_floor(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_floor(v) std::floor(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_floor(v) floor(v) + #endif +#endif + +#if !defined(simde_math_floorf) + #if SIMDE_MATH_BUILTIN_LIBM(floorf) + #define simde_math_floorf(v) __builtin_floorf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_floorf(v) std::floor(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_floorf(v) floorf(v) + #endif +#endif + +#if !defined(simde_math_fma) + #if SIMDE_MATH_BUILTIN_LIBM(fma) + #define simde_math_fma(x, y, z) __builtin_fma(x, y, z) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fma(x, y, z) std::fma(x, y, z) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fma(x, y, z) fma(x, y, z) + #endif +#endif + +#if !defined(simde_math_fmaf) + #if SIMDE_MATH_BUILTIN_LIBM(fmaf) + #define simde_math_fmaf(x, y, z) __builtin_fmaf(x, y, z) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fmaf(x, y, z) std::fma(x, y, z) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fmaf(x, y, z) fmaf(x, y, z) + #endif +#endif + +#if !defined(simde_math_fmax) + #if SIMDE_MATH_BUILTIN_LIBM(fmax) + #define simde_math_fmax(x, y) __builtin_fmax(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fmax(x, y) std::fmax(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fmax(x, y) fmax(x, y) + #endif +#endif + +#if !defined(simde_math_fmaxf) + #if SIMDE_MATH_BUILTIN_LIBM(fmaxf) + #define simde_math_fmaxf(x, y) __builtin_fmaxf(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fmaxf(x, y) std::fmax(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fmaxf(x, y) fmaxf(x, y) + #endif +#endif + +#if !defined(simde_math_hypot) + #if SIMDE_MATH_BUILTIN_LIBM(hypot) + #define simde_math_hypot(y, x) __builtin_hypot(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_hypot(y, x) std::hypot(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_hypot(y, x) hypot(y, x) + #endif +#endif + +#if !defined(simde_math_hypotf) + #if SIMDE_MATH_BUILTIN_LIBM(hypotf) + #define simde_math_hypotf(y, x) __builtin_hypotf(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_hypotf(y, x) std::hypot(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_hypotf(y, x) hypotf(y, x) + #endif +#endif + +#if !defined(simde_math_log) + #if SIMDE_MATH_BUILTIN_LIBM(log) + #define simde_math_log(v) __builtin_log(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log(v) std::log(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log(v) log(v) + #endif +#endif + +#if !defined(simde_math_logf) + #if SIMDE_MATH_BUILTIN_LIBM(logf) + #define simde_math_logf(v) __builtin_logf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_logf(v) std::log(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_logf(v) logf(v) + #endif +#endif + +#if !defined(simde_math_logb) + #if SIMDE_MATH_BUILTIN_LIBM(logb) + #define simde_math_logb(v) __builtin_logb(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_logb(v) std::logb(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_logb(v) logb(v) + #endif +#endif + +#if !defined(simde_math_logbf) + #if SIMDE_MATH_BUILTIN_LIBM(logbf) + #define simde_math_logbf(v) __builtin_logbf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_logbf(v) std::logb(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_logbf(v) logbf(v) + #endif +#endif + +#if !defined(simde_math_log1p) + #if SIMDE_MATH_BUILTIN_LIBM(log1p) + #define simde_math_log1p(v) __builtin_log1p(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log1p(v) std::log1p(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log1p(v) log1p(v) + #endif +#endif + +#if !defined(simde_math_log1pf) + #if SIMDE_MATH_BUILTIN_LIBM(log1pf) + #define simde_math_log1pf(v) __builtin_log1pf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log1pf(v) std::log1p(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log1pf(v) log1pf(v) + #endif +#endif + +#if !defined(simde_math_log2) + #if SIMDE_MATH_BUILTIN_LIBM(log2) + #define simde_math_log2(v) __builtin_log2(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log2(v) std::log2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log2(v) log2(v) + #endif +#endif + +#if !defined(simde_math_log2f) + #if SIMDE_MATH_BUILTIN_LIBM(log2f) + #define simde_math_log2f(v) __builtin_log2f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log2f(v) std::log2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log2f(v) log2f(v) + #endif +#endif + +#if !defined(simde_math_log10) + #if SIMDE_MATH_BUILTIN_LIBM(log10) + #define simde_math_log10(v) __builtin_log10(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log10(v) std::log10(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log10(v) log10(v) + #endif +#endif + +#if !defined(simde_math_log10f) + #if SIMDE_MATH_BUILTIN_LIBM(log10f) + #define simde_math_log10f(v) __builtin_log10f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log10f(v) std::log10(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log10f(v) log10f(v) + #endif +#endif + +#if !defined(simde_math_modf) + #if SIMDE_MATH_BUILTIN_LIBM(modf) + #define simde_math_modf(x, iptr) __builtin_modf(x, iptr) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_modf(x, iptr) std::modf(x, iptr) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_modf(x, iptr) modf(x, iptr) + #endif +#endif + +#if !defined(simde_math_modff) + #if SIMDE_MATH_BUILTIN_LIBM(modff) + #define simde_math_modff(x, iptr) __builtin_modff(x, iptr) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_modff(x, iptr) std::modf(x, iptr) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_modff(x, iptr) modff(x, iptr) + #endif +#endif + +#if !defined(simde_math_nearbyint) + #if SIMDE_MATH_BUILTIN_LIBM(nearbyint) + #define simde_math_nearbyint(v) __builtin_nearbyint(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nearbyint(v) std::nearbyint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nearbyint(v) nearbyint(v) + #endif +#endif + +#if !defined(simde_math_nearbyintf) + #if SIMDE_MATH_BUILTIN_LIBM(nearbyintf) + #define simde_math_nearbyintf(v) __builtin_nearbyintf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nearbyintf(v) std::nearbyint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nearbyintf(v) nearbyintf(v) + #endif +#endif + +#if !defined(simde_math_rint) + #if SIMDE_MATH_BUILTIN_LIBM(rint) + #define simde_math_rint(v) __builtin_rint(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_rint(v) std::rint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_rint(v) rint(v) + #endif +#endif + +#if !defined(simde_math_rintf) + #if SIMDE_MATH_BUILTIN_LIBM(rintf) + #define simde_math_rintf(v) __builtin_rintf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_rintf(v) std::rint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_rintf(v) rintf(v) + #endif +#endif + +#if !defined(simde_math_round) + #if SIMDE_MATH_BUILTIN_LIBM(round) + #define simde_math_round(v) __builtin_round(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_round(v) std::round(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_round(v) round(v) + #endif +#endif + +#if !defined(simde_math_roundf) + #if SIMDE_MATH_BUILTIN_LIBM(roundf) + #define simde_math_roundf(v) __builtin_roundf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_roundf(v) std::round(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_roundf(v) roundf(v) + #endif +#endif + +#if !defined(simde_math_roundeven) + #if \ + ((!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundeven)) || \ + HEDLEY_GCC_VERSION_CHECK(10,0,0) + #define simde_math_roundeven(v) __builtin_roundeven(v) + #elif defined(simde_math_round) && defined(simde_math_fabs) + static HEDLEY_INLINE + double + simde_math_roundeven(double v) { + double rounded = simde_math_round(v); + double diff = rounded - v; + if (HEDLEY_UNLIKELY(simde_math_fabs(diff) == 0.5) && (HEDLEY_STATIC_CAST(int64_t, rounded) & 1)) { + rounded = v - diff; + } + return rounded; + } + #define simde_math_roundeven simde_math_roundeven + #endif +#endif + +#if !defined(simde_math_roundevenf) + #if \ + ((!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundevenf)) || \ + HEDLEY_GCC_VERSION_CHECK(10,0,0) + #define simde_math_roundevenf(v) __builtin_roundevenf(v) + #elif defined(simde_math_roundf) && defined(simde_math_fabsf) + static HEDLEY_INLINE + float + simde_math_roundevenf(float v) { + float rounded = simde_math_roundf(v); + float diff = rounded - v; + if (HEDLEY_UNLIKELY(simde_math_fabsf(diff) == 0.5f) && (HEDLEY_STATIC_CAST(int32_t, rounded) & 1)) { + rounded = v - diff; + } + return rounded; + } + #define simde_math_roundevenf simde_math_roundevenf + #endif +#endif + +#if !defined(simde_math_sin) + #if SIMDE_MATH_BUILTIN_LIBM(sin) + #define simde_math_sin(v) __builtin_sin(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sin(v) std::sin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sin(v) sin(v) + #endif +#endif + +#if !defined(simde_math_sinf) + #if SIMDE_MATH_BUILTIN_LIBM(sinf) + #define simde_math_sinf(v) __builtin_sinf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sinf(v) std::sin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sinf(v) sinf(v) + #endif +#endif + +#if !defined(simde_math_sinh) + #if SIMDE_MATH_BUILTIN_LIBM(sinh) + #define simde_math_sinh(v) __builtin_sinh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sinh(v) std::sinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sinh(v) sinh(v) + #endif +#endif + +#if !defined(simde_math_sinhf) + #if SIMDE_MATH_BUILTIN_LIBM(sinhf) + #define simde_math_sinhf(v) __builtin_sinhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sinhf(v) std::sinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sinhf(v) sinhf(v) + #endif +#endif + +#if !defined(simde_math_sqrt) + #if SIMDE_MATH_BUILTIN_LIBM(sqrt) + #define simde_math_sqrt(v) __builtin_sqrt(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sqrt(v) std::sqrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sqrt(v) sqrt(v) + #endif +#endif + +#if !defined(simde_math_sqrtf) + #if SIMDE_MATH_BUILTIN_LIBM(sqrtf) + #define simde_math_sqrtf(v) __builtin_sqrtf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sqrtf(v) std::sqrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sqrtf(v) sqrtf(v) + #endif +#endif + +#if !defined(simde_math_sqrtl) + #if SIMDE_MATH_BUILTIN_LIBM(sqrtl) + #define simde_math_sqrtl(v) __builtin_sqrtl(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sqrtl(v) std::sqrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sqrtl(v) sqrtl(v) + #endif +#endif + +#if !defined(simde_math_tan) + #if SIMDE_MATH_BUILTIN_LIBM(tan) + #define simde_math_tan(v) __builtin_tan(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tan(v) std::tan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tan(v) tan(v) + #endif +#endif + +#if !defined(simde_math_tanf) + #if SIMDE_MATH_BUILTIN_LIBM(tanf) + #define simde_math_tanf(v) __builtin_tanf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tanf(v) std::tan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tanf(v) tanf(v) + #endif +#endif + +#if !defined(simde_math_tanh) + #if SIMDE_MATH_BUILTIN_LIBM(tanh) + #define simde_math_tanh(v) __builtin_tanh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tanh(v) std::tanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tanh(v) tanh(v) + #endif +#endif + +#if !defined(simde_math_tanhf) + #if SIMDE_MATH_BUILTIN_LIBM(tanhf) + #define simde_math_tanhf(v) __builtin_tanhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tanhf(v) std::tanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tanhf(v) tanhf(v) + #endif +#endif + +#if !defined(simde_math_trunc) + #if SIMDE_MATH_BUILTIN_LIBM(trunc) + #define simde_math_trunc(v) __builtin_trunc(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_trunc(v) std::trunc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_trunc(v) trunc(v) + #endif +#endif + +#if !defined(simde_math_truncf) + #if SIMDE_MATH_BUILTIN_LIBM(truncf) + #define simde_math_truncf(v) __builtin_truncf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_truncf(v) std::trunc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_truncf(v) truncf(v) + #endif +#endif + +/*** Comparison macros (which don't raise invalid errors) ***/ + +#if defined(isunordered) + #define simde_math_isunordered(x, y) isunordered(x, y) +#elif HEDLEY_HAS_BUILTIN(__builtin_isunordered) + #define simde_math_isunordered(x, y) __builtin_isunordered(x, y) +#else + static HEDLEY_INLINE + int simde_math_isunordered(double x, double y) { + return (x != y) && (x != x || y != y); + } + #define simde_math_isunordered simde_math_isunordered + + static HEDLEY_INLINE + int simde_math_isunorderedf(float x, float y) { + return (x != y) && (x != x || y != y); + } + #define simde_math_isunorderedf simde_math_isunorderedf +#endif +#if !defined(simde_math_isunorderedf) + #define simde_math_isunorderedf simde_math_isunordered +#endif + +/*** Additional functions not in libm ***/ + +#if defined(simde_math_fabs) && defined(simde_math_sqrt) && defined(simde_math_exp) + static HEDLEY_INLINE + double + simde_math_cdfnorm(double x) { + /* https://www.johndcook.com/blog/cpp_phi/ + * Public Domain */ + static const double a1 = 0.254829592; + static const double a2 = -0.284496736; + static const double a3 = 1.421413741; + static const double a4 = -1.453152027; + static const double a5 = 1.061405429; + static const double p = 0.3275911; + + const int sign = x < 0; + x = simde_math_fabs(x) / simde_math_sqrt(2.0); + + /* A&S formula 7.1.26 */ + double t = 1.0 / (1.0 + p * x); + double y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * simde_math_exp(-x * x); + + return 0.5 * (1.0 + (sign ? -y : y)); + } + #define simde_math_cdfnorm simde_math_cdfnorm +#endif + +#if defined(simde_math_fabsf) && defined(simde_math_sqrtf) && defined(simde_math_expf) + static HEDLEY_INLINE + float + simde_math_cdfnormf(float x) { + /* https://www.johndcook.com/blog/cpp_phi/ + * Public Domain */ + static const float a1 = 0.254829592f; + static const float a2 = -0.284496736f; + static const float a3 = 1.421413741f; + static const float a4 = -1.453152027f; + static const float a5 = 1.061405429f; + static const float p = 0.3275911f; + + const int sign = x < 0; + x = simde_math_fabsf(x) / simde_math_sqrtf(2.0f); + + /* A&S formula 7.1.26 */ + float t = 1.0f / (1.0f + p * x); + float y = 1.0f - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * simde_math_expf(-x * x); + + return 0.5f * (1.0f + (sign ? -y : y)); + } + #define simde_math_cdfnormf simde_math_cdfnormf +#endif + +#if !defined(simde_math_cdfnorminv) && defined(simde_math_log) && defined(simde_math_sqrt) + /*https://web.archive.org/web/20150910081113/http://home.online.no/~pjacklam/notes/invnorm/impl/sprouse/ltqnorm.c*/ + static HEDLEY_INLINE + double + simde_math_cdfnorminv(double p) { + static const double a[6] = { + -3.969683028665376e+01, + 2.209460984245205e+02, + -2.759285104469687e+02, + 1.383577518672690e+02, + -3.066479806614716e+01, + 2.506628277459239e+00 + }; + + static const double b[5] = { + -5.447609879822406e+01, + 1.615858368580409e+02, + -1.556989798598866e+02, + 6.680131188771972e+01, + -1.328068155288572e+01 + }; + + static const double c[6] = { + -7.784894002430293e-03, + -3.223964580411365e-01, + -2.400758277161838e+00, + -2.549732539343734e+00, + 4.374664141464968e+00, + 2.938163982698783e+00 + }; + + static const double d[4] = { + 7.784695709041462e-03, + 3.224671290700398e-01, + 2.445134137142996e+00, + 3.754408661907416e+00 + }; + + static const double low = 0.02425; + static const double high = 0.97575; + double q, r; + + if (p < 0 || p > 1) { + return 0.0; + } else if (p == 0) { + return -SIMDE_MATH_INFINITY; + } else if (p == 1) { + return SIMDE_MATH_INFINITY; + } else if (p < low) { + q = simde_math_sqrt(-2.0 * simde_math_log(p)); + return + (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else if (p > high) { + q = simde_math_sqrt(-2.0 * simde_math_log(1.0 - p)); + return + -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else { + q = p - 0.5; + r = q * q; + return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * + q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1); + } +} +#define simde_math_cdfnorminv simde_math_cdfnorminv +#endif + +#if !defined(simde_math_cdfnorminvf) && defined(simde_math_logf) && defined(simde_math_sqrtf) + static HEDLEY_INLINE + float + simde_math_cdfnorminvf(float p) { + static const float a[6] = { + -3.969683028665376e+01f, + 2.209460984245205e+02f, + -2.759285104469687e+02f, + 1.383577518672690e+02f, + -3.066479806614716e+01f, + 2.506628277459239e+00f + }; + static const float b[5] = { + -5.447609879822406e+01f, + 1.615858368580409e+02f, + -1.556989798598866e+02f, + 6.680131188771972e+01f, + -1.328068155288572e+01f + }; + static const float c[6] = { + -7.784894002430293e-03f, + -3.223964580411365e-01f, + -2.400758277161838e+00f, + -2.549732539343734e+00f, + 4.374664141464968e+00f, + 2.938163982698783e+00f + }; + static const float d[4] = { + 7.784695709041462e-03f, + 3.224671290700398e-01f, + 2.445134137142996e+00f, + 3.754408661907416e+00f + }; + static const float low = 0.02425f; + static const float high = 0.97575f; + float q, r; + + if (p < 0 || p > 1) { + return 0.0f; + } else if (p == 0) { + return -SIMDE_MATH_INFINITYF; + } else if (p == 1) { + return SIMDE_MATH_INFINITYF; + } else if (p < low) { + q = simde_math_sqrtf(-2.0f * simde_math_logf(p)); + return + (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else if (p > high) { + q = simde_math_sqrtf(-2.0f * simde_math_logf(1.0f - p)); + return + -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else { + q = p - 0.5f; + r = q * q; + return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * + q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1); + } + } + #define simde_math_cdfnorminvf simde_math_cdfnorminvf +#endif + +#if !defined(simde_math_erfinv) && defined(simde_math_log) && defined(simde_math_copysign) && defined(simde_math_sqrt) + static HEDLEY_INLINE + double + simde_math_erfinv(double x) { + /* https://stackoverflow.com/questions/27229371/inverse-error-function-in-c + * + * The original answer on SO uses a constant of 0.147, but in my + * testing 0.14829094707965850830078125 gives a lower average absolute error + * (0.0001410958211636170744895935 vs. 0.0001465479290345683693885803). + * That said, if your goal is to minimize the *maximum* absolute + * error, 0.15449436008930206298828125 provides significantly better + * results; 0.0009250640869140625000000000 vs ~ 0.005. */ + double tt1, tt2, lnx; + double sgn = simde_math_copysign(1.0, x); + + x = (1.0 - x) * (1.0 + x); + lnx = simde_math_log(x); + + tt1 = 2.0 / (SIMDE_MATH_PI * 0.14829094707965850830078125) + 0.5 * lnx; + tt2 = (1.0 / 0.14829094707965850830078125) * lnx; + + return sgn * simde_math_sqrt(-tt1 + simde_math_sqrt(tt1 * tt1 - tt2)); + } + #define simde_math_erfinv simde_math_erfinv +#endif + +#if !defined(simde_math_erfinvf) && defined(simde_math_logf) && defined(simde_math_copysignf) && defined(simde_math_sqrtf) + static HEDLEY_INLINE + float + simde_math_erfinvf(float x) { + float tt1, tt2, lnx; + float sgn = simde_math_copysignf(1.0f, x); + + x = (1.0f - x) * (1.0f + x); + lnx = simde_math_logf(x); + + tt1 = 2.0f / (SIMDE_MATH_PIF * 0.14829094707965850830078125f) + 0.5f * lnx; + tt2 = (1.0f / 0.14829094707965850830078125f) * lnx; + + return sgn * simde_math_sqrtf(-tt1 + simde_math_sqrtf(tt1 * tt1 - tt2)); + } + #define simde_math_erfinvf simde_math_erfinvf +#endif + +#if !defined(simde_math_erfcinv) && defined(simde_math_erfinv) && defined(simde_math_log) && defined(simde_math_sqrt) + static HEDLEY_INLINE + double + simde_math_erfcinv(double x) { + if(x >= 0.0625 && x < 2.0) { + return simde_math_erfinv(1.0 - x); + } else if (x < 0.0625 && x >= 1.0e-100) { + static const double p[6] = { + 0.1550470003116, + 1.382719649631, + 0.690969348887, + -1.128081391617, + 0.680544246825, + -0.16444156791 + }; + static const double q[3] = { + 0.155024849822, + 1.385228141995, + 1.000000000000 + }; + + const double t = 1.0 / simde_math_sqrt(-simde_math_log(x)); + return (p[0] / t + p[1] + t * (p[2] + t * (p[3] + t * (p[4] + t * p[5])))) / + (q[0] + t * (q[1] + t * (q[2]))); + } else if (x < 1.0e-100 && x >= SIMDE_MATH_DBL_MIN) { + static const double p[4] = { + 0.00980456202915, + 0.363667889171, + 0.97302949837, + -0.5374947401 + }; + static const double q[3] = { + 0.00980451277802, + 0.363699971544, + 1.000000000000 + }; + + const double t = 1.0 / simde_math_sqrt(-simde_math_log(x)); + return (p[0] / t + p[1] + t * (p[2] + t * p[3])) / + (q[0] + t * (q[1] + t * (q[2]))); + } else if (!simde_math_isnormal(x)) { + return SIMDE_MATH_INFINITY; + } else { + return -SIMDE_MATH_INFINITY; + } + } + + #define simde_math_erfcinv simde_math_erfcinv +#endif + +#if !defined(simde_math_erfcinvf) && defined(simde_math_erfinvf) && defined(simde_math_logf) && defined(simde_math_sqrtf) + static HEDLEY_INLINE + float + simde_math_erfcinvf(float x) { + if(x >= 0.0625f && x < 2.0f) { + return simde_math_erfinvf(1.0f - x); + } else if (x < 0.0625f && x >= SIMDE_MATH_FLT_MIN) { + static const float p[6] = { + 0.1550470003116f, + 1.382719649631f, + 0.690969348887f, + -1.128081391617f, + 0.680544246825f + -0.164441567910f + }; + static const float q[3] = { + 0.155024849822f, + 1.385228141995f, + 1.000000000000f + }; + + const float t = 1.0f / simde_math_sqrtf(-simde_math_logf(x)); + return (p[0] / t + p[1] + t * (p[2] + t * (p[3] + t * (p[4] + t * p[5])))) / + (q[0] + t * (q[1] + t * (q[2]))); + } else if (x < SIMDE_MATH_FLT_MIN && simde_math_isnormalf(x)) { + static const float p[4] = { + 0.00980456202915f, + 0.36366788917100f, + 0.97302949837000f, + -0.5374947401000f + }; + static const float q[3] = { + 0.00980451277802f, + 0.36369997154400f, + 1.00000000000000f + }; + + const float t = 1.0f / simde_math_sqrtf(-simde_math_logf(x)); + return (p[0] / t + p[1] + t * (p[2] + t * p[3])) / + (q[0] + t * (q[1] + t * (q[2]))); + } else { + return simde_math_isnormalf(x) ? -SIMDE_MATH_INFINITYF : SIMDE_MATH_INFINITYF; + } + } + + #define simde_math_erfcinvf simde_math_erfcinvf +#endif + +static HEDLEY_INLINE +double +simde_math_rad2deg(double radians) { + return radians * SIMDE_MATH_180_OVER_PI; +} + +static HEDLEY_INLINE +float +simde_math_rad2degf(float radians) { + return radians * SIMDE_MATH_180_OVER_PIF; +} + +static HEDLEY_INLINE +double +simde_math_deg2rad(double degrees) { + return degrees * SIMDE_MATH_PI_OVER_180; +} + +static HEDLEY_INLINE +float +simde_math_deg2radf(float degrees) { + return degrees * (SIMDE_MATH_PI_OVER_180F); +} + +/*** Saturated arithmetic ***/ + +static HEDLEY_INLINE +int8_t +simde_math_adds_i8(int8_t a, int8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddb_s8(a, b); + #else + uint8_t a_ = HEDLEY_STATIC_CAST(uint8_t, a); + uint8_t b_ = HEDLEY_STATIC_CAST(uint8_t, b); + uint8_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT8_MAX; + if (HEDLEY_STATIC_CAST(int8_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int8_t, r_); + #endif +} + +static HEDLEY_INLINE +int16_t +simde_math_adds_i16(int16_t a, int16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddh_s16(a, b); + #else + uint16_t a_ = HEDLEY_STATIC_CAST(uint16_t, a); + uint16_t b_ = HEDLEY_STATIC_CAST(uint16_t, b); + uint16_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT16_MAX; + if (HEDLEY_STATIC_CAST(int16_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int16_t, r_); + #endif +} + +static HEDLEY_INLINE +int32_t +simde_math_adds_i32(int32_t a, int32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqadds_s32(a, b); + #else + uint32_t a_ = HEDLEY_STATIC_CAST(uint32_t, a); + uint32_t b_ = HEDLEY_STATIC_CAST(uint32_t, b); + uint32_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT32_MAX; + if (HEDLEY_STATIC_CAST(int32_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int32_t, r_); + #endif +} + +static HEDLEY_INLINE +int64_t +simde_math_adds_i64(int64_t a, int64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddd_s64(a, b); + #else + uint64_t a_ = HEDLEY_STATIC_CAST(uint64_t, a); + uint64_t b_ = HEDLEY_STATIC_CAST(uint64_t, b); + uint64_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT64_MAX; + if (HEDLEY_STATIC_CAST(int64_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int64_t, r_); + #endif +} + +static HEDLEY_INLINE +uint8_t +simde_math_adds_u8(uint8_t a, uint8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddb_u8(a, b); + #else + uint8_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +uint16_t +simde_math_adds_u16(uint16_t a, uint16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddh_u16(a, b); + #else + uint16_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +uint32_t +simde_math_adds_u32(uint32_t a, uint32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqadds_u32(a, b); + #else + uint32_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +uint64_t +simde_math_adds_u64(uint64_t a, uint64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddd_u64(a, b); + #else + uint64_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +int8_t +simde_math_subs_i8(int8_t a, int8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubb_s8(a, b); + #else + uint8_t a_ = HEDLEY_STATIC_CAST(uint8_t, a); + uint8_t b_ = HEDLEY_STATIC_CAST(uint8_t, b); + uint8_t r_ = a_ - b_; + + a_ = (a_ >> 7) + INT8_MAX; + + if (HEDLEY_STATIC_CAST(int8_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int8_t, r_); + #endif +} + +static HEDLEY_INLINE +int16_t +simde_math_subs_i16(int16_t a, int16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubh_s16(a, b); + #else + uint16_t a_ = HEDLEY_STATIC_CAST(uint16_t, a); + uint16_t b_ = HEDLEY_STATIC_CAST(uint16_t, b); + uint16_t r_ = a_ - b_; + + a_ = (a_ >> 15) + INT16_MAX; + + if (HEDLEY_STATIC_CAST(int16_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int16_t, r_); + #endif +} + +static HEDLEY_INLINE +int32_t +simde_math_subs_i32(int32_t a, int32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubs_s32(a, b); + #else + uint32_t a_ = HEDLEY_STATIC_CAST(uint32_t, a); + uint32_t b_ = HEDLEY_STATIC_CAST(uint32_t, b); + uint32_t r_ = a_ - b_; + + a_ = (a_ >> 31) + INT32_MAX; + + if (HEDLEY_STATIC_CAST(int32_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int32_t, r_); + #endif +} + +static HEDLEY_INLINE +int64_t +simde_math_subs_i64(int64_t a, int64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubd_s64(a, b); + #else + uint64_t a_ = HEDLEY_STATIC_CAST(uint64_t, a); + uint64_t b_ = HEDLEY_STATIC_CAST(uint64_t, b); + uint64_t r_ = a_ - b_; + + a_ = (a_ >> 63) + INT64_MAX; + + if (HEDLEY_STATIC_CAST(int64_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int64_t, r_); + #endif +} + +static HEDLEY_INLINE +uint8_t +simde_math_subs_u8(uint8_t a, uint8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubb_u8(a, b); + #else + uint8_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +static HEDLEY_INLINE +uint16_t +simde_math_subs_u16(uint16_t a, uint16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubh_u16(a, b); + #else + uint16_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +static HEDLEY_INLINE +uint32_t +simde_math_subs_u32(uint32_t a, uint32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubs_u32(a, b); + #else + uint32_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +static HEDLEY_INLINE +uint64_t +simde_math_subs_u64(uint64_t a, uint64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubd_u64(a, b); + #else + uint64_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +HEDLEY_DIAGNOSTIC_POP + +#endif /* !defined(SIMDE_MATH_H) */ +/* :: End simde/simde-math.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-constify.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2020 Evan Nemerson + */ + +/* Constify macros. For internal use only. + * + * These are used to make it possible to call a function which takes + * an Integer Constant Expression (ICE) using a compile time constant. + * Technically it would also be possible to use a value not trivially + * known by the compiler, but there would be a siginficant performance + * hit (a switch switch is used). + * + * The basic idea is pretty simple; we just emit a do while loop which + * contains a switch with a case for every possible value of the + * constant. + * + * As long as the value you pass to the function in constant, pretty + * much any copmiler shouldn't have a problem generating exactly the + * same code as if you had used an ICE. + * + * This is intended to be used in the SIMDe implementations of + * functions the compilers require to be an ICE, but the other benefit + * is that if we also disable the warnings from + * SIMDE_REQUIRE_CONSTANT_RANGE we can actually just allow the tests + * to use non-ICE parameters + */ + +#if !defined(SIMDE_CONSTIFY_H) +#define SIMDE_CONSTIFY_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ +SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ + +#define SIMDE_CONSTIFY_2_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_4_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_8_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_16_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + case 8: result = func_name(__VA_ARGS__, 8); break; \ + case 9: result = func_name(__VA_ARGS__, 9); break; \ + case 10: result = func_name(__VA_ARGS__, 10); break; \ + case 11: result = func_name(__VA_ARGS__, 11); break; \ + case 12: result = func_name(__VA_ARGS__, 12); break; \ + case 13: result = func_name(__VA_ARGS__, 13); break; \ + case 14: result = func_name(__VA_ARGS__, 14); break; \ + case 15: result = func_name(__VA_ARGS__, 15); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_32_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + case 8: result = func_name(__VA_ARGS__, 8); break; \ + case 9: result = func_name(__VA_ARGS__, 9); break; \ + case 10: result = func_name(__VA_ARGS__, 10); break; \ + case 11: result = func_name(__VA_ARGS__, 11); break; \ + case 12: result = func_name(__VA_ARGS__, 12); break; \ + case 13: result = func_name(__VA_ARGS__, 13); break; \ + case 14: result = func_name(__VA_ARGS__, 14); break; \ + case 15: result = func_name(__VA_ARGS__, 15); break; \ + case 16: result = func_name(__VA_ARGS__, 16); break; \ + case 17: result = func_name(__VA_ARGS__, 17); break; \ + case 18: result = func_name(__VA_ARGS__, 18); break; \ + case 19: result = func_name(__VA_ARGS__, 19); break; \ + case 20: result = func_name(__VA_ARGS__, 20); break; \ + case 21: result = func_name(__VA_ARGS__, 21); break; \ + case 22: result = func_name(__VA_ARGS__, 22); break; \ + case 23: result = func_name(__VA_ARGS__, 23); break; \ + case 24: result = func_name(__VA_ARGS__, 24); break; \ + case 25: result = func_name(__VA_ARGS__, 25); break; \ + case 26: result = func_name(__VA_ARGS__, 26); break; \ + case 27: result = func_name(__VA_ARGS__, 27); break; \ + case 28: result = func_name(__VA_ARGS__, 28); break; \ + case 29: result = func_name(__VA_ARGS__, 29); break; \ + case 30: result = func_name(__VA_ARGS__, 30); break; \ + case 31: result = func_name(__VA_ARGS__, 31); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_64_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + case 8: result = func_name(__VA_ARGS__, 8); break; \ + case 9: result = func_name(__VA_ARGS__, 9); break; \ + case 10: result = func_name(__VA_ARGS__, 10); break; \ + case 11: result = func_name(__VA_ARGS__, 11); break; \ + case 12: result = func_name(__VA_ARGS__, 12); break; \ + case 13: result = func_name(__VA_ARGS__, 13); break; \ + case 14: result = func_name(__VA_ARGS__, 14); break; \ + case 15: result = func_name(__VA_ARGS__, 15); break; \ + case 16: result = func_name(__VA_ARGS__, 16); break; \ + case 17: result = func_name(__VA_ARGS__, 17); break; \ + case 18: result = func_name(__VA_ARGS__, 18); break; \ + case 19: result = func_name(__VA_ARGS__, 19); break; \ + case 20: result = func_name(__VA_ARGS__, 20); break; \ + case 21: result = func_name(__VA_ARGS__, 21); break; \ + case 22: result = func_name(__VA_ARGS__, 22); break; \ + case 23: result = func_name(__VA_ARGS__, 23); break; \ + case 24: result = func_name(__VA_ARGS__, 24); break; \ + case 25: result = func_name(__VA_ARGS__, 25); break; \ + case 26: result = func_name(__VA_ARGS__, 26); break; \ + case 27: result = func_name(__VA_ARGS__, 27); break; \ + case 28: result = func_name(__VA_ARGS__, 28); break; \ + case 29: result = func_name(__VA_ARGS__, 29); break; \ + case 30: result = func_name(__VA_ARGS__, 30); break; \ + case 31: result = func_name(__VA_ARGS__, 31); break; \ + case 32: result = func_name(__VA_ARGS__, 32); break; \ + case 33: result = func_name(__VA_ARGS__, 33); break; \ + case 34: result = func_name(__VA_ARGS__, 34); break; \ + case 35: result = func_name(__VA_ARGS__, 35); break; \ + case 36: result = func_name(__VA_ARGS__, 36); break; \ + case 37: result = func_name(__VA_ARGS__, 37); break; \ + case 38: result = func_name(__VA_ARGS__, 38); break; \ + case 39: result = func_name(__VA_ARGS__, 39); break; \ + case 40: result = func_name(__VA_ARGS__, 40); break; \ + case 41: result = func_name(__VA_ARGS__, 41); break; \ + case 42: result = func_name(__VA_ARGS__, 42); break; \ + case 43: result = func_name(__VA_ARGS__, 43); break; \ + case 44: result = func_name(__VA_ARGS__, 44); break; \ + case 45: result = func_name(__VA_ARGS__, 45); break; \ + case 46: result = func_name(__VA_ARGS__, 46); break; \ + case 47: result = func_name(__VA_ARGS__, 47); break; \ + case 48: result = func_name(__VA_ARGS__, 48); break; \ + case 49: result = func_name(__VA_ARGS__, 49); break; \ + case 50: result = func_name(__VA_ARGS__, 50); break; \ + case 51: result = func_name(__VA_ARGS__, 51); break; \ + case 52: result = func_name(__VA_ARGS__, 52); break; \ + case 53: result = func_name(__VA_ARGS__, 53); break; \ + case 54: result = func_name(__VA_ARGS__, 54); break; \ + case 55: result = func_name(__VA_ARGS__, 55); break; \ + case 56: result = func_name(__VA_ARGS__, 56); break; \ + case 57: result = func_name(__VA_ARGS__, 57); break; \ + case 58: result = func_name(__VA_ARGS__, 58); break; \ + case 59: result = func_name(__VA_ARGS__, 59); break; \ + case 60: result = func_name(__VA_ARGS__, 60); break; \ + case 61: result = func_name(__VA_ARGS__, 61); break; \ + case 62: result = func_name(__VA_ARGS__, 62); break; \ + case 63: result = func_name(__VA_ARGS__, 63); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_2_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_4_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_8_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_16_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + case 8: func_name(__VA_ARGS__, 8); break; \ + case 9: func_name(__VA_ARGS__, 9); break; \ + case 10: func_name(__VA_ARGS__, 10); break; \ + case 11: func_name(__VA_ARGS__, 11); break; \ + case 12: func_name(__VA_ARGS__, 12); break; \ + case 13: func_name(__VA_ARGS__, 13); break; \ + case 14: func_name(__VA_ARGS__, 14); break; \ + case 15: func_name(__VA_ARGS__, 15); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_32_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + case 8: func_name(__VA_ARGS__, 8); break; \ + case 9: func_name(__VA_ARGS__, 9); break; \ + case 10: func_name(__VA_ARGS__, 10); break; \ + case 11: func_name(__VA_ARGS__, 11); break; \ + case 12: func_name(__VA_ARGS__, 12); break; \ + case 13: func_name(__VA_ARGS__, 13); break; \ + case 14: func_name(__VA_ARGS__, 14); break; \ + case 15: func_name(__VA_ARGS__, 15); break; \ + case 16: func_name(__VA_ARGS__, 16); break; \ + case 17: func_name(__VA_ARGS__, 17); break; \ + case 18: func_name(__VA_ARGS__, 18); break; \ + case 19: func_name(__VA_ARGS__, 19); break; \ + case 20: func_name(__VA_ARGS__, 20); break; \ + case 21: func_name(__VA_ARGS__, 21); break; \ + case 22: func_name(__VA_ARGS__, 22); break; \ + case 23: func_name(__VA_ARGS__, 23); break; \ + case 24: func_name(__VA_ARGS__, 24); break; \ + case 25: func_name(__VA_ARGS__, 25); break; \ + case 26: func_name(__VA_ARGS__, 26); break; \ + case 27: func_name(__VA_ARGS__, 27); break; \ + case 28: func_name(__VA_ARGS__, 28); break; \ + case 29: func_name(__VA_ARGS__, 29); break; \ + case 30: func_name(__VA_ARGS__, 30); break; \ + case 31: func_name(__VA_ARGS__, 31); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_64_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + case 8: func_name(__VA_ARGS__, 8); break; \ + case 9: func_name(__VA_ARGS__, 9); break; \ + case 10: func_name(__VA_ARGS__, 10); break; \ + case 11: func_name(__VA_ARGS__, 11); break; \ + case 12: func_name(__VA_ARGS__, 12); break; \ + case 13: func_name(__VA_ARGS__, 13); break; \ + case 14: func_name(__VA_ARGS__, 14); break; \ + case 15: func_name(__VA_ARGS__, 15); break; \ + case 16: func_name(__VA_ARGS__, 16); break; \ + case 17: func_name(__VA_ARGS__, 17); break; \ + case 18: func_name(__VA_ARGS__, 18); break; \ + case 19: func_name(__VA_ARGS__, 19); break; \ + case 20: func_name(__VA_ARGS__, 20); break; \ + case 21: func_name(__VA_ARGS__, 21); break; \ + case 22: func_name(__VA_ARGS__, 22); break; \ + case 23: func_name(__VA_ARGS__, 23); break; \ + case 24: func_name(__VA_ARGS__, 24); break; \ + case 25: func_name(__VA_ARGS__, 25); break; \ + case 26: func_name(__VA_ARGS__, 26); break; \ + case 27: func_name(__VA_ARGS__, 27); break; \ + case 28: func_name(__VA_ARGS__, 28); break; \ + case 29: func_name(__VA_ARGS__, 29); break; \ + case 30: func_name(__VA_ARGS__, 30); break; \ + case 31: func_name(__VA_ARGS__, 31); break; \ + case 32: func_name(__VA_ARGS__, 32); break; \ + case 33: func_name(__VA_ARGS__, 33); break; \ + case 34: func_name(__VA_ARGS__, 34); break; \ + case 35: func_name(__VA_ARGS__, 35); break; \ + case 36: func_name(__VA_ARGS__, 36); break; \ + case 37: func_name(__VA_ARGS__, 37); break; \ + case 38: func_name(__VA_ARGS__, 38); break; \ + case 39: func_name(__VA_ARGS__, 39); break; \ + case 40: func_name(__VA_ARGS__, 40); break; \ + case 41: func_name(__VA_ARGS__, 41); break; \ + case 42: func_name(__VA_ARGS__, 42); break; \ + case 43: func_name(__VA_ARGS__, 43); break; \ + case 44: func_name(__VA_ARGS__, 44); break; \ + case 45: func_name(__VA_ARGS__, 45); break; \ + case 46: func_name(__VA_ARGS__, 46); break; \ + case 47: func_name(__VA_ARGS__, 47); break; \ + case 48: func_name(__VA_ARGS__, 48); break; \ + case 49: func_name(__VA_ARGS__, 49); break; \ + case 50: func_name(__VA_ARGS__, 50); break; \ + case 51: func_name(__VA_ARGS__, 51); break; \ + case 52: func_name(__VA_ARGS__, 52); break; \ + case 53: func_name(__VA_ARGS__, 53); break; \ + case 54: func_name(__VA_ARGS__, 54); break; \ + case 55: func_name(__VA_ARGS__, 55); break; \ + case 56: func_name(__VA_ARGS__, 56); break; \ + case 57: func_name(__VA_ARGS__, 57); break; \ + case 58: func_name(__VA_ARGS__, 58); break; \ + case 59: func_name(__VA_ARGS__, 59); break; \ + case 60: func_name(__VA_ARGS__, 60); break; \ + case 61: func_name(__VA_ARGS__, 61); break; \ + case 62: func_name(__VA_ARGS__, 62); break; \ + case 63: func_name(__VA_ARGS__, 63); break; \ + default: default_case; break; \ + } \ + } while (0) + +HEDLEY_DIAGNOSTIC_POP + +#endif +/* :: End simde/simde-constify.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/simde-align.h :: */ +/* Alignment + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * + * + * SPDX-License-Identifier: CC0-1.0 + * + ********************************************************************** + * + * This is portability layer which should help iron out some + * differences across various compilers, as well as various versions of + * C and C++. + * + * It was originally developed for SIMD Everywhere + * (), but since its only + * dependency is Hedley (, also CC0) + * it can easily be used in other projects, so please feel free to do + * so. + * + * If you do use this in your project, please keep a link to SIMDe in + * your code to remind you where to report any bugs and/or check for + * updated versions. + * + * # API Overview + * + * The API has several parts, and most macros have a few variations. + * There are APIs for declaring aligned fields/variables, optimization + * hints, and run-time alignment checks. + * + * Briefly, macros ending with "_TO" take numeric values and are great + * when you know the value you would like to use. Macros ending with + * "_LIKE", on the other hand, accept a type and are used when you want + * to use the alignment of a type instead of hardcoding a value. + * + * Documentation for each section of the API is inline. + * + * True to form, MSVC is the main problem and imposes several + * limitations on the effectiveness of the APIs. Detailed descriptions + * of the limitations of each macro are inline, but in general: + * + * * On C11+ or C++11+ code written using this API will work. The + * ASSUME macros may or may not generate a hint to the compiler, but + * that is only an optimization issue and will not actually cause + * failures. + * * If you're using pretty much any compiler other than MSVC, + * everything should basically work as well as in C11/C++11. + */ + +#if !defined(SIMDE_ALIGN_H) +#define SIMDE_ALIGN_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ + +/* I know this seems a little silly, but some non-hosted compilers + * don't have stddef.h, so we try to accommodate them. */ +#if !defined(SIMDE_ALIGN_SIZE_T_) + #if defined(__SIZE_TYPE__) + #define SIMDE_ALIGN_SIZE_T_ __SIZE_TYPE__ + #elif defined(__SIZE_T_TYPE__) + #define SIMDE_ALIGN_SIZE_T_ __SIZE_TYPE__ + #elif defined(__cplusplus) + #include + #define SIMDE_ALIGN_SIZE_T_ size_t + #else + #include + #define SIMDE_ALIGN_SIZE_T_ size_t + #endif +#endif + +#if !defined(SIMDE_ALIGN_INTPTR_T_) + #if defined(__INTPTR_TYPE__) + #define SIMDE_ALIGN_INTPTR_T_ __INTPTR_TYPE__ + #elif defined(__PTRDIFF_TYPE__) + #define SIMDE_ALIGN_INTPTR_T_ __PTRDIFF_TYPE__ + #elif defined(__PTRDIFF_T_TYPE__) + #define SIMDE_ALIGN_INTPTR_T_ __PTRDIFF_T_TYPE__ + #elif defined(__cplusplus) + #include + #define SIMDE_ALIGN_INTPTR_T_ ptrdiff_t + #else + #include + #define SIMDE_ALIGN_INTPTR_T_ ptrdiff_t + #endif +#endif + +#if defined(SIMDE_ALIGN_DEBUG) + #if defined(__cplusplus) + #include + #else + #include + #endif +#endif + +/* SIMDE_ALIGN_OF(Type) + * + * The SIMDE_ALIGN_OF macro works like alignof, or _Alignof, or + * __alignof, or __alignof__, or __ALIGNOF__, depending on the compiler. + * It isn't defined everywhere (only when the compiler has some alignof- + * like feature we can use to implement it), but it should work in most + * modern compilers, as well as C11 and C++11. + * + * If we can't find an implementation for SIMDE_ALIGN_OF then the macro + * will not be defined, so if you can handle that situation sensibly + * you may need to sprinkle some ifdefs into your code. + */ +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (0 && HEDLEY_HAS_FEATURE(c_alignof)) + #define SIMDE_ALIGN_OF(Type) _Alignof(Type) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + (0 && HEDLEY_HAS_FEATURE(cxx_alignof)) + #define SIMDE_ALIGN_OF(Type) alignof(Type) +#elif \ + HEDLEY_GCC_VERSION_CHECK(2,95,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,24) || \ + HEDLEY_PGI_VERSION_CHECK(19,10,0) || \ + HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,2) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + defined(__IBM__ALIGNOF__) || \ + defined(__clang__) + #define SIMDE_ALIGN_OF(Type) __alignof__(Type) +#elif \ + HEDLEY_IAR_VERSION_CHECK(8,40,0) + #define SIMDE_ALIGN_OF(Type) __ALIGNOF__(Type) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(19,0,0) + /* Probably goes back much further, but MS takes down their old docs. + * If you can verify that this works in earlier versions please let + * me know! */ + #define SIMDE_ALIGN_OF(Type) __alignof(Type) +#endif + +/* SIMDE_ALIGN_MAXIMUM: + * + * This is the maximum alignment that the compiler supports. You can + * define the value prior to including SIMDe if necessary, but in that + * case *please* submit an issue so we can add the platform to the + * detection code. + * + * Most compilers are okay with types which are aligned beyond what + * they think is the maximum, as long as the alignment is a power + * of two. Older versions of MSVC is the exception, so we need to cap + * the alignment requests at values that the implementation supports. + * + * XL C/C++ will accept values larger than 16 (which is the alignment + * of an AltiVec vector), but will not reliably align to the larger + * value, so so we cap the value at 16 there. + * + * If the compiler accepts any power-of-two value within reason then + * this macro should be left undefined, and the SIMDE_ALIGN_CAP + * macro will just return the value passed to it. */ +#if !defined(SIMDE_ALIGN_MAXIMUM) + #if defined(HEDLEY_MSVC_VERSION) + #if HEDLEY_MSVC_VERSION_CHECK(19, 16, 0) + // Visual studio 2017 and newer does not need a max + #else + #if defined(_M_IX86) || defined(_M_AMD64) + #if HEDLEY_MSVC_VERSION_CHECK(19,14,0) + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 64 + #elif HEDLEY_MSVC_VERSION_CHECK(16,0,0) + /* VS 2010 is really a guess based on Wikipedia; if anyone can + * test with old VS versions I'd really appreciate it. */ + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 32 + #else + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 16 + #endif + #elif defined(_M_ARM) || defined(_M_ARM64) + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 8 + #endif + #endif + #elif defined(HEDLEY_IBM_VERSION) + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 16 + #endif +#endif + +/* You can mostly ignore these; they're intended for internal use. + * If you do need to use them please let me know; if they fulfill + * a common use case I'll probably drop the trailing underscore + * and make them part of the public API. */ +#if defined(SIMDE_ALIGN_PLATFORM_MAXIMUM) + #if SIMDE_ALIGN_PLATFORM_MAXIMUM >= 64 + #define SIMDE_ALIGN_64_ 64 + #define SIMDE_ALIGN_32_ 32 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 + #elif SIMDE_ALIGN_PLATFORM_MAXIMUM >= 32 + #define SIMDE_ALIGN_64_ 32 + #define SIMDE_ALIGN_32_ 32 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 + #elif SIMDE_ALIGN_PLATFORM_MAXIMUM >= 16 + #define SIMDE_ALIGN_64_ 16 + #define SIMDE_ALIGN_32_ 16 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 + #elif SIMDE_ALIGN_PLATFORM_MAXIMUM >= 8 + #define SIMDE_ALIGN_64_ 8 + #define SIMDE_ALIGN_32_ 8 + #define SIMDE_ALIGN_16_ 8 + #define SIMDE_ALIGN_8_ 8 + #else + #error Max alignment expected to be >= 8 + #endif +#else + #define SIMDE_ALIGN_64_ 64 + #define SIMDE_ALIGN_32_ 32 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 +#endif + +/** + * SIMDE_ALIGN_CAP(Alignment) + * + * Returns the minimum of Alignment or SIMDE_ALIGN_MAXIMUM. + */ +#if defined(SIMDE_ALIGN_MAXIMUM) + #define SIMDE_ALIGN_CAP(Alignment) (((Alignment) < (SIMDE_ALIGN_PLATFORM_MAXIMUM)) ? (Alignment) : (SIMDE_ALIGN_PLATFORM_MAXIMUM)) +#else + #define SIMDE_ALIGN_CAP(Alignment) (Alignment) +#endif + +/* SIMDE_ALIGN_TO(Alignment) + * + * SIMDE_ALIGN_TO is used to declare types or variables. It basically + * maps to the align attribute in most compilers, the align declspec + * in MSVC, or _Alignas/alignas in C11/C++11. + * + * Example: + * + * struct i32x4 { + * SIMDE_ALIGN_TO(16) int32_t values[4]; + * } + * + * Limitations: + * + * MSVC requires that the Alignment parameter be numeric; you can't do + * something like `SIMDE_ALIGN_TO(SIMDE_ALIGN_OF(int))`. This is + * unfortunate because that's really how the LIKE macros are + * implemented, and I am not aware of a way to get anything like this + * to work without using the C11/C++11 keywords. + * + * It also means that we can't use SIMDE_ALIGN_CAP to limit the + * alignment to the value specified, which MSVC also requires, so on + * MSVC you should use the `SIMDE_ALIGN_TO_8/16/32/64` macros instead. + * They work like `SIMDE_ALIGN_TO(SIMDE_ALIGN_CAP(Alignment))` would, + * but should be safe to use on MSVC. + * + * All this is to say that, if you want your code to work on MSVC, you + * should use the SIMDE_ALIGN_TO_8/16/32/64 macros below instead of + * SIMDE_ALIGN_TO(8/16/32/64). + */ +#if \ + HEDLEY_HAS_ATTRIBUTE(aligned) || \ + HEDLEY_GCC_VERSION_CHECK(2,95,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,4,0) || \ + HEDLEY_IBM_VERSION_CHECK(11,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_PGI_VERSION_CHECK(19,4,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,24) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,2) + #define SIMDE_ALIGN_TO(Alignment) __attribute__((__aligned__(SIMDE_ALIGN_CAP(Alignment)))) +#elif \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) + #define SIMDE_ALIGN_TO(Alignment) _Alignas(SIMDE_ALIGN_CAP(Alignment)) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) + #define SIMDE_ALIGN_TO(Alignment) alignas(SIMDE_ALIGN_CAP(Alignment)) +#elif \ + defined(HEDLEY_MSVC_VERSION) + #define SIMDE_ALIGN_TO(Alignment) __declspec(align(Alignment)) + /* Unfortunately MSVC can't handle __declspec(align(__alignof(Type))); + * the alignment passed to the declspec has to be an integer. */ + #define SIMDE_ALIGN_OF_UNUSABLE_FOR_LIKE +#endif +#define SIMDE_ALIGN_TO_64 SIMDE_ALIGN_TO(SIMDE_ALIGN_64_) +#define SIMDE_ALIGN_TO_32 SIMDE_ALIGN_TO(SIMDE_ALIGN_32_) +#define SIMDE_ALIGN_TO_16 SIMDE_ALIGN_TO(SIMDE_ALIGN_16_) +#define SIMDE_ALIGN_TO_8 SIMDE_ALIGN_TO(SIMDE_ALIGN_8_) + +/* SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) + * + * SIMDE_ALIGN_ASSUME_TO is semantically similar to C++20's + * std::assume_aligned, or __builtin_assume_aligned. It tells the + * compiler to assume that the provided pointer is aligned to an + * `Alignment`-byte boundary. + * + * If you define SIMDE_ALIGN_DEBUG prior to including this header then + * SIMDE_ALIGN_ASSUME_TO will turn into a runtime check. We don't + * integrate with NDEBUG in this header, but it may be a good idea to + * put something like this in your code: + * + * #if !defined(NDEBUG) + * #define SIMDE_ALIGN_DEBUG + * #endif + * #include <.../simde-align.h> + */ +#if \ + HEDLEY_HAS_BUILTIN(__builtin_assume_aligned) || \ + HEDLEY_GCC_VERSION_CHECK(4,7,0) + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) \ + HEDLEY_REINTERPRET_CAST(__typeof__(Pointer), __builtin_assume_aligned(HEDLEY_CONST_CAST(void*, HEDLEY_REINTERPRET_CAST(const void*, Pointer)), Alignment)) +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) (__extension__ ({ \ + __typeof__(v) simde_assume_aligned_t_ = (Pointer); \ + __assume_aligned(simde_assume_aligned_t_, Alignment); \ + simde_assume_aligned_t_; \ + })) +#elif defined(__cplusplus) && (__cplusplus > 201703L) + #include + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) std::assume_aligned(Pointer) +#else + #if defined(__cplusplus) + template HEDLEY_ALWAYS_INLINE static T* simde_align_assume_to_unchecked(T* ptr, const size_t alignment) + #else + HEDLEY_ALWAYS_INLINE static void* simde_align_assume_to_unchecked(void* ptr, const size_t alignment) + #endif + { + HEDLEY_ASSUME((HEDLEY_REINTERPRET_CAST(size_t, (ptr)) % SIMDE_ALIGN_CAP(alignment)) == 0); + return ptr; + } + #if defined(__cplusplus) + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) simde_align_assume_to_unchecked((Pointer), (Alignment)) + #else + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) simde_align_assume_to_unchecked(HEDLEY_CONST_CAST(void*, HEDLEY_REINTERPRET_CAST(const void*, Pointer)), (Alignment)) + #endif +#endif + +#if !defined(SIMDE_ALIGN_DEBUG) + #define SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) +#else + #include + #if defined(__cplusplus) + template + static HEDLEY_ALWAYS_INLINE + T* + simde_align_assume_to_checked_uncapped(T* ptr, const size_t alignment, const char* file, int line, const char* ptrname) + #else + static HEDLEY_ALWAYS_INLINE + void* + simde_align_assume_to_checked_uncapped(void* ptr, const size_t alignment, const char* file, int line, const char* ptrname) + #endif + { + if (HEDLEY_UNLIKELY((HEDLEY_REINTERPRET_CAST(SIMDE_ALIGN_INTPTR_T_, (ptr)) % HEDLEY_STATIC_CAST(SIMDE_ALIGN_INTPTR_T_, SIMDE_ALIGN_CAP(alignment))) != 0)) { + fprintf(stderr, "%s:%d: alignment check failed for `%s' (%p %% %u == %u)\n", + file, line, ptrname, HEDLEY_REINTERPRET_CAST(const void*, ptr), + HEDLEY_STATIC_CAST(unsigned int, SIMDE_ALIGN_CAP(alignment)), + HEDLEY_STATIC_CAST(unsigned int, HEDLEY_REINTERPRET_CAST(SIMDE_ALIGN_INTPTR_T_, (ptr)) % HEDLEY_STATIC_CAST(SIMDE_ALIGN_INTPTR_T_, SIMDE_ALIGN_CAP(alignment)))); + } + + return ptr; + } + + #if defined(__cplusplus) + #define SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) simde_align_assume_to_checked_uncapped((Pointer), (Alignment), __FILE__, __LINE__, #Pointer) + #else + #define SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) simde_align_assume_to_checked_uncapped(HEDLEY_CONST_CAST(void*, HEDLEY_REINTERPRET_CAST(const void*, Pointer)), (Alignment), __FILE__, __LINE__, #Pointer) + #endif +#endif + +/* SIMDE_ALIGN_LIKE(Type) + * SIMDE_ALIGN_LIKE_#(Type) + * + * The SIMDE_ALIGN_LIKE macros are similar to the SIMDE_ALIGN_TO macros + * except instead of an integer they take a type; basically, it's just + * a more convenient way to do something like: + * + * SIMDE_ALIGN_TO(SIMDE_ALIGN_OF(Type)) + * + * The versions with a numeric suffix will fall back on using a numeric + * value in the event we can't use SIMDE_ALIGN_OF(Type). This is + * mainly for MSVC, where __declspec(align()) can't handle anything + * other than hard-coded numeric values. + */ +#if defined(SIMDE_ALIGN_OF) && defined(SIMDE_ALIGN_TO) && !defined(SIMDE_ALIGN_OF_UNUSABLE_FOR_LIKE) + #define SIMDE_ALIGN_LIKE(Type) SIMDE_ALIGN_TO(SIMDE_ALIGN_OF(Type)) + #define SIMDE_ALIGN_LIKE_64(Type) SIMDE_ALIGN_LIKE(Type) + #define SIMDE_ALIGN_LIKE_32(Type) SIMDE_ALIGN_LIKE(Type) + #define SIMDE_ALIGN_LIKE_16(Type) SIMDE_ALIGN_LIKE(Type) + #define SIMDE_ALIGN_LIKE_8(Type) SIMDE_ALIGN_LIKE(Type) +#else + #define SIMDE_ALIGN_LIKE_64(Type) SIMDE_ALIGN_TO_64 + #define SIMDE_ALIGN_LIKE_32(Type) SIMDE_ALIGN_TO_32 + #define SIMDE_ALIGN_LIKE_16(Type) SIMDE_ALIGN_TO_16 + #define SIMDE_ALIGN_LIKE_8(Type) SIMDE_ALIGN_TO_8 +#endif + +/* SIMDE_ALIGN_ASSUME_LIKE(Pointer, Type) + * + * This is similar to SIMDE_ALIGN_ASSUME_TO, except that it takes a + * type instead of a numeric value. */ +#if defined(SIMDE_ALIGN_OF) && defined(SIMDE_ALIGN_ASSUME_TO) + #define SIMDE_ALIGN_ASSUME_LIKE(Pointer, Type) SIMDE_ALIGN_ASSUME_TO(Pointer, SIMDE_ALIGN_OF(Type)) +#endif + +/* SIMDE_ALIGN_CAST(Type, Pointer) + * + * SIMDE_ALIGN_CAST is like C++'s reinterpret_cast, but it will try + * to silence warnings that some compilers may produce if you try + * to assign to a type with increased alignment requirements. + * + * Note that it does *not* actually attempt to tell the compiler that + * the pointer is aligned like the destination should be; that's the + * job of the next macro. This macro is necessary for stupid APIs + * like _mm_loadu_si128 where the input is a __m128i* but the function + * is specifically for data which isn't necessarily aligned to + * _Alignof(__m128i). + */ +#if HEDLEY_HAS_WARNING("-Wcast-align") || defined(__clang__) || HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define SIMDE_ALIGN_CAST(Type, Pointer) (__extension__({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \ + Type simde_r_ = HEDLEY_REINTERPRET_CAST(Type, Pointer); \ + HEDLEY_DIAGNOSTIC_POP \ + simde_r_; \ + })) +#else + #define SIMDE_ALIGN_CAST(Type, Pointer) HEDLEY_REINTERPRET_CAST(Type, Pointer) +#endif + +/* SIMDE_ALIGN_ASSUME_CAST(Type, Pointer) + * + * This is sort of like a combination of a reinterpret_cast and a + * SIMDE_ALIGN_ASSUME_LIKE. It uses SIMDE_ALIGN_ASSUME_LIKE to tell + * the compiler that the pointer is aligned like the specified type + * and casts the pointer to the specified type while suppressing any + * warnings from the compiler about casting to a type with greater + * alignment requirements. + */ +#define SIMDE_ALIGN_ASSUME_CAST(Type, Pointer) SIMDE_ALIGN_ASSUME_LIKE(SIMDE_ALIGN_CAST(Type, Pointer), Type) + +#endif /* !defined(SIMDE_ALIGN_H) */ +/* :: End simde/simde-align.h :: */ + +/* In some situations, SIMDe has to make large performance sacrifices + * for small increases in how faithfully it reproduces an API, but + * only a relatively small number of users will actually need the API + * to be completely accurate. The SIMDE_FAST_* options can be used to + * disable these trade-offs. + * + * They can be enabled by passing -DSIMDE_FAST_MATH to the compiler, or + * the individual defines (e.g., -DSIMDE_FAST_NANS) if you only want to + * enable some optimizations. Using -ffast-math and/or + * -ffinite-math-only will also enable the relevant options. If you + * don't want that you can pass -DSIMDE_NO_FAST_* to disable them. */ + +/* Most programs avoid NaNs by never passing values which can result in + * a NaN; for example, if you only pass non-negative values to the sqrt + * functions, it won't generate a NaN. On some platforms, similar + * functions handle NaNs differently; for example, the _mm_min_ps SSE + * function will return 0.0 if you pass it (0.0, NaN), but the NEON + * vminq_f32 function will return NaN. Making them behave like one + * another is expensive; it requires generating a mask of all lanes + * with NaNs, then performing the operation (e.g., vminq_f32), then + * blending together the result with another vector using the mask. + * + * If you don't want SIMDe to worry about the differences between how + * NaNs are handled on the two platforms, define this (or pass + * -ffinite-math-only) */ +#if !defined(SIMDE_FAST_MATH) && !defined(SIMDE_NO_FAST_MATH) && defined(__FAST_MATH__) + #define SIMDE_FAST_MATH +#endif + +#if !defined(SIMDE_FAST_NANS) && !defined(SIMDE_NO_FAST_NANS) + #if defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_NANS + #elif defined(__FINITE_MATH_ONLY__) + #if __FINITE_MATH_ONLY__ + #define SIMDE_FAST_NANS + #endif + #endif +#endif + +/* Many functions are defined as using the current rounding mode + * (i.e., the SIMD version of fegetround()) when converting to + * an integer. For example, _mm_cvtpd_epi32. Unfortunately, + * on some platforms (such as ARMv8+ where round-to-nearest is + * always used, regardless of the FPSCR register) this means we + * have to first query the current rounding mode, then choose + * the proper function (rounnd + , ceil, floor, etc.) */ +#if !defined(SIMDE_FAST_ROUND_MODE) && !defined(SIMDE_NO_FAST_ROUND_MODE) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_ROUND_MODE +#endif + +/* This controls how ties are rounded. For example, does 10.5 round to + * 10 or 11? IEEE 754 specifies round-towards-even, but ARMv7 (for + * example) doesn't support it and it must be emulated (which is rather + * slow). If you're okay with just using the default for whatever arch + * you're on, you should definitely define this. + * + * Note that we don't use this macro to avoid correct implementations + * in functions which are explicitly about rounding (such as vrnd* on + * NEON, _mm_round_* on x86, etc.); it is only used for code where + * rounding is a component in another function, and even then it isn't + * usually a problem since such functions will use the current rounding + * mode. */ +#if !defined(SIMDE_FAST_ROUND_TIES) && !defined(SIMDE_NO_FAST_ROUND_TIES) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_ROUND_TIES +#endif + +/* For functions which convert from one type to another (mostly from + * floating point to integer types), sometimes we need to do a range + * check and potentially return a different result if the value + * falls outside that range. Skipping this check can provide a + * performance boost, at the expense of faithfulness to the API we're + * emulating. */ +#if !defined(SIMDE_FAST_CONVERSION_RANGE) && !defined(SIMDE_NO_FAST_CONVERSION_RANGE) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_CONVERSION_RANGE +#endif + +/* Due to differences across platforms, sometimes it can be much + * faster for us to allow spurious floating point exceptions, + * or to no generate them when we should. */ +#if !defined(SIMDE_FAST_EXCEPTIONS) && !defined(SIMDE_NO_FAST_EXCEPTIONS) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_EXCEPTIONS +#endif + +#if \ + HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define SIMDE_CHECK_CONSTANT_(expr) (__builtin_constant_p(expr)) +#elif defined(__cplusplus) && (__cplusplus > 201703L) + #include + #define SIMDE_CHECK_CONSTANT_(expr) (std::is_constant_evaluated()) +#endif + +#if !defined(SIMDE_NO_CHECK_IMMEDIATE_CONSTANT) + #if defined(SIMDE_CHECK_CONSTANT_) && \ + SIMDE_DETECT_CLANG_VERSION_CHECK(9,0,0) && \ + (!defined(__apple_build_version__) || ((__apple_build_version__ < 11000000) || (__apple_build_version__ >= 12000000))) + #define SIMDE_REQUIRE_CONSTANT(arg) HEDLEY_REQUIRE_MSG(SIMDE_CHECK_CONSTANT_(arg), "`" #arg "' must be constant") + #else + #define SIMDE_REQUIRE_CONSTANT(arg) + #endif +#else + #define SIMDE_REQUIRE_CONSTANT(arg) +#endif + +#define SIMDE_REQUIRE_RANGE(arg, min, max) \ + HEDLEY_REQUIRE_MSG((((arg) >= (min)) && ((arg) <= (max))), "'" #arg "' must be in [" #min ", " #max "]") + +#define SIMDE_REQUIRE_CONSTANT_RANGE(arg, min, max) \ + SIMDE_REQUIRE_CONSTANT(arg) \ + SIMDE_REQUIRE_RANGE(arg, min, max) + +/* A copy of HEDLEY_STATIC_ASSERT, except we don't define an empty + * fallback if we can't find an implementation; instead we have to + * check if SIMDE_STATIC_ASSERT is defined before using it. */ +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + HEDLEY_HAS_FEATURE(c_static_assert) || \ + HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) + /* Sometimes _Static_assert is defined (in cdefs.h) using a symbol which + * starts with a double-underscore. This is a system header so we have no + * control over it, but since it's a macro it will emit a diagnostic which + * prevents compilation with -Werror. */ + #if HEDLEY_HAS_WARNING("-Wreserved-identifier") + #define SIMDE_STATIC_ASSERT(expr, message) (__extension__({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wreserved-identifier\"") \ + _Static_assert(expr, message); \ + HEDLEY_DIAGNOSTIC_POP \ + })) + #else + #define SIMDE_STATIC_ASSERT(expr, message) _Static_assert(expr, message) + #endif +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + HEDLEY_MSVC_VERSION_CHECK(16,0,0) + #define SIMDE_STATIC_ASSERT(expr, message) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#endif + +/* Statement exprs */ +#if \ + HEDLEY_GNUC_VERSION_CHECK(2,95,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,26) || \ + HEDLEY_INTEL_VERSION_CHECK(9,0,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,12,0) || \ + HEDLEY_IBM_VERSION_CHECK(11,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define SIMDE_STATEMENT_EXPR_(expr) (__extension__ expr) +#endif + +/* This is just a convenience macro to make it easy to call a single + * function with a specific diagnostic disabled. */ +#if defined(SIMDE_STATEMENT_EXPR_) + #define SIMDE_DISABLE_DIAGNOSTIC_EXPR_(diagnostic, expr) \ + SIMDE_STATEMENT_EXPR_(({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + diagnostic \ + (expr); \ + HEDLEY_DIAGNOSTIC_POP \ + })) +#endif + +#if defined(SIMDE_CHECK_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define SIMDE_ASSERT_CONSTANT_(v) SIMDE_STATIC_ASSERT(SIMDE_CHECK_CONSTANT_(v), #v " must be constant.") +#endif + +#if \ + (HEDLEY_HAS_ATTRIBUTE(may_alias) && !defined(HEDLEY_SUNPRO_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) +# define SIMDE_MAY_ALIAS __attribute__((__may_alias__)) +#else +# define SIMDE_MAY_ALIAS +#endif + +/* Lots of compilers support GCC-style vector extensions, but many + don't support all the features. Define different macros depending + on support for + + * SIMDE_VECTOR - Declaring a vector. + * SIMDE_VECTOR_OPS - basic operations (binary and unary). + * SIMDE_VECTOR_NEGATE - negating a vector + * SIMDE_VECTOR_SCALAR - For binary operators, the second argument + can be a scalar, in which case the result is as if that scalar + had been broadcast to all lanes of a vector. + * SIMDE_VECTOR_SUBSCRIPT - Supports array subscript notation for + extracting/inserting a single element.= + + SIMDE_VECTOR can be assumed if any others are defined, the + others are independent. */ +#if !defined(SIMDE_NO_VECTOR) +# if \ + HEDLEY_GCC_VERSION_CHECK(4,8,0) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# define SIMDE_VECTOR_NEGATE +# define SIMDE_VECTOR_SCALAR +# define SIMDE_VECTOR_SUBSCRIPT +# elif HEDLEY_INTEL_VERSION_CHECK(16,0,0) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# define SIMDE_VECTOR_NEGATE +/* ICC only supports SIMDE_VECTOR_SCALAR for constants */ +# define SIMDE_VECTOR_SUBSCRIPT +# elif \ + HEDLEY_GCC_VERSION_CHECK(4,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# elif HEDLEY_SUNPRO_VERSION_CHECK(5,12,0) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# elif HEDLEY_HAS_ATTRIBUTE(vector_size) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# define SIMDE_VECTOR_NEGATE +# define SIMDE_VECTOR_SUBSCRIPT +# if SIMDE_DETECT_CLANG_VERSION_CHECK(5,0,0) +# define SIMDE_VECTOR_SCALAR +# endif +# endif + +/* GCC and clang have built-in functions to handle shuffling and + converting of vectors, but the implementations are slightly + different. This macro is just an abstraction over them. Note that + elem_size is in bits but vec_size is in bytes. */ +# if !defined(SIMDE_NO_SHUFFLE_VECTOR) && defined(SIMDE_VECTOR_SUBSCRIPT) + HEDLEY_DIAGNOSTIC_PUSH + /* We don't care about -Wvariadic-macros; all compilers that support + * shufflevector/shuffle support them. */ +# if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") +# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +# endif +# if HEDLEY_HAS_WARNING("-Wvariadic-macros") || HEDLEY_GCC_VERSION_CHECK(4,0,0) +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# endif + +# if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) +# define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...) __builtin_shufflevector(a, b, __VA_ARGS__) +# elif HEDLEY_GCC_HAS_BUILTIN(__builtin_shuffle,4,7,0) && !defined(__INTEL_COMPILER) +# define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...) (__extension__ ({ \ + int##elem_size##_t SIMDE_VECTOR(vec_size) simde_shuffle_ = { __VA_ARGS__ }; \ + __builtin_shuffle(a, b, simde_shuffle_); \ + })) +# endif + HEDLEY_DIAGNOSTIC_POP +# endif + +/* TODO: this actually works on XL C/C++ without SIMDE_VECTOR_SUBSCRIPT + but the code needs to be refactored a bit to take advantage. */ +# if !defined(SIMDE_NO_CONVERT_VECTOR) && defined(SIMDE_VECTOR_SUBSCRIPT) +# if HEDLEY_HAS_BUILTIN(__builtin_convertvector) || HEDLEY_GCC_VERSION_CHECK(9,0,0) +# if HEDLEY_GCC_VERSION_CHECK(9,0,0) && !HEDLEY_GCC_VERSION_CHECK(9,3,0) + /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93557 */ +# define SIMDE_CONVERT_VECTOR_(to, from) ((to) = (__extension__({ \ + __typeof__(from) from_ = (from); \ + ((void) from_); \ + __builtin_convertvector(from_, __typeof__(to)); \ + }))) +# else +# define SIMDE_CONVERT_VECTOR_(to, from) ((to) = __builtin_convertvector((from), __typeof__(to))) +# endif +# endif +# endif +#endif + +/* Since we currently require SUBSCRIPT before using a vector in a + union, we define these as dependencies of SUBSCRIPT. They are + likely to disappear in the future, once SIMDe learns how to make + use of vectors without using the union members. Do not use them + in your code unless you're okay with it breaking when SIMDe + changes. */ +#if defined(SIMDE_VECTOR_SUBSCRIPT) +# if defined(SIMDE_VECTOR_OPS) +# define SIMDE_VECTOR_SUBSCRIPT_OPS +# endif +# if defined(SIMDE_VECTOR_SCALAR) +# define SIMDE_VECTOR_SUBSCRIPT_SCALAR +# endif +#endif + +#if !defined(SIMDE_DISABLE_OPENMP) + #if !defined(SIMDE_ENABLE_OPENMP) && ((defined(_OPENMP) && (_OPENMP >= 201307L)) || (defined(_OPENMP_SIMD) && (_OPENMP_SIMD >= 201307L))) || defined(HEDLEY_MCST_LCC_VERSION) + #define SIMDE_ENABLE_OPENMP + #endif +#endif + +#if !defined(SIMDE_ENABLE_CILKPLUS) && (defined(__cilk) || defined(HEDLEY_INTEL_VERSION)) +# define SIMDE_ENABLE_CILKPLUS +#endif + +#if defined(SIMDE_ENABLE_OPENMP) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(omp simd) +# define SIMDE_VECTORIZE_SAFELEN(l) HEDLEY_PRAGMA(omp simd safelen(l)) +# if defined(__clang__) +# define SIMDE_VECTORIZE_REDUCTION(r) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wsign-conversion\"") \ + HEDLEY_PRAGMA(omp simd reduction(r)) \ + HEDLEY_DIAGNOSTIC_POP +# else +# define SIMDE_VECTORIZE_REDUCTION(r) HEDLEY_PRAGMA(omp simd reduction(r)) +# endif +# if !defined(HEDLEY_MCST_LCC_VERSION) +# define SIMDE_VECTORIZE_ALIGNED(a) HEDLEY_PRAGMA(omp simd aligned(a)) +# else +# define SIMDE_VECTORIZE_ALIGNED(a) HEDLEY_PRAGMA(omp simd) +# endif +#elif defined(SIMDE_ENABLE_CILKPLUS) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(simd) +# define SIMDE_VECTORIZE_SAFELEN(l) HEDLEY_PRAGMA(simd vectorlength(l)) +# define SIMDE_VECTORIZE_REDUCTION(r) HEDLEY_PRAGMA(simd reduction(r)) +# define SIMDE_VECTORIZE_ALIGNED(a) HEDLEY_PRAGMA(simd aligned(a)) +#elif defined(__clang__) && !defined(HEDLEY_IBM_VERSION) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(clang loop vectorize(enable)) +# define SIMDE_VECTORIZE_SAFELEN(l) HEDLEY_PRAGMA(clang loop vectorize_width(l)) +# define SIMDE_VECTORIZE_REDUCTION(r) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_ALIGNED(a) +#elif HEDLEY_GCC_VERSION_CHECK(4,9,0) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(GCC ivdep) +# define SIMDE_VECTORIZE_SAFELEN(l) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_REDUCTION(r) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_ALIGNED(a) +#elif HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(_CRI ivdep) +# define SIMDE_VECTORIZE_SAFELEN(l) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_REDUCTION(r) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_ALIGNED(a) +#else +# define SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_SAFELEN(l) +# define SIMDE_VECTORIZE_REDUCTION(r) +# define SIMDE_VECTORIZE_ALIGNED(a) +#endif + +#define SIMDE_MASK_NZ_(v, mask) (((v) & (mask)) | !((v) & (mask))) + +/* Intended for checking coverage, you should never use this in + production. */ +#if defined(SIMDE_NO_INLINE) +# define SIMDE_FUNCTION_ATTRIBUTES HEDLEY_NEVER_INLINE static +#else +# define SIMDE_FUNCTION_ATTRIBUTES HEDLEY_ALWAYS_INLINE static +#endif + +#if defined(SIMDE_NO_INLINE) +# define SIMDE_HUGE_FUNCTION_ATTRIBUTES HEDLEY_NEVER_INLINE static +#elif defined(SIMDE_CONSTRAINED_COMPILATION) +# define SIMDE_HUGE_FUNCTION_ATTRIBUTES static +#else +# define SIMDE_HUGE_FUNCTION_ATTRIBUTES HEDLEY_ALWAYS_INLINE static +#endif + +#if \ + HEDLEY_HAS_ATTRIBUTE(unused) || \ + HEDLEY_GCC_VERSION_CHECK(2,95,0) +# define SIMDE_FUNCTION_POSSIBLY_UNUSED_ __attribute__((__unused__)) +#else +# define SIMDE_FUNCTION_POSSIBLY_UNUSED_ +#endif + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ + +#if defined(_MSC_VER) +# define SIMDE_BEGIN_DECLS_ HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(disable:4996 4204)) HEDLEY_BEGIN_C_DECLS +# define SIMDE_END_DECLS_ HEDLEY_DIAGNOSTIC_POP HEDLEY_END_C_DECLS +#else +# define SIMDE_BEGIN_DECLS_ \ + HEDLEY_DIAGNOSTIC_PUSH \ + SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ \ + HEDLEY_BEGIN_C_DECLS +# define SIMDE_END_DECLS_ \ + HEDLEY_END_C_DECLS \ + HEDLEY_DIAGNOSTIC_POP +#endif + +#if defined(__SIZEOF_INT128__) +# define SIMDE_HAVE_INT128_ +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_PEDANTIC_ +typedef __int128 simde_int128; +typedef unsigned __int128 simde_uint128; +HEDLEY_DIAGNOSTIC_POP +#endif + +#if !defined(SIMDE_ENDIAN_LITTLE) +# define SIMDE_ENDIAN_LITTLE 1234 +#endif +#if !defined(SIMDE_ENDIAN_BIG) +# define SIMDE_ENDIAN_BIG 4321 +#endif + +#if !defined(SIMDE_ENDIAN_ORDER) +/* GCC (and compilers masquerading as GCC) define __BYTE_ORDER__. */ +# if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +/* TI defines _BIG_ENDIAN or _LITTLE_ENDIAN */ +# elif defined(_BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# elif defined(_LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +/* We know the endianness of some common architectures. Common + * architectures not listed (ARM, POWER, MIPS, etc.) here are + * bi-endian. */ +# elif defined(__amd64) || defined(_M_X64) || defined(__i386) || defined(_M_IX86) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__s390x__) || defined(__zarch__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +/* Looks like we'll have to rely on the platform. If we're missing a + * platform, please let us know. */ +# elif defined(_WIN32) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(sun) || defined(__sun) /* Solaris */ +# include +# if defined(_LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(_BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# elif defined(__APPLE__) +# include +# if defined(__LITTLE_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BIG_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) || defined(BSD) +# include +# if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# elif defined(__linux__) || defined(__linux) || defined(__gnu_linux__) +# include +# if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# endif +#endif + +#if \ + HEDLEY_HAS_BUILTIN(__builtin_bswap64) || \ + HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define simde_bswap64(v) __builtin_bswap64(v) +#elif HEDLEY_MSVC_VERSION_CHECK(13,10,0) + #define simde_bswap64(v) _byteswap_uint64(v) +#else + SIMDE_FUNCTION_ATTRIBUTES + uint64_t + simde_bswap64(uint64_t v) { + return + ((v & (((uint64_t) 0xff) << 56)) >> 56) | + ((v & (((uint64_t) 0xff) << 48)) >> 40) | + ((v & (((uint64_t) 0xff) << 40)) >> 24) | + ((v & (((uint64_t) 0xff) << 32)) >> 8) | + ((v & (((uint64_t) 0xff) << 24)) << 8) | + ((v & (((uint64_t) 0xff) << 16)) << 24) | + ((v & (((uint64_t) 0xff) << 8)) << 40) | + ((v & (((uint64_t) 0xff) )) << 56); + } +#endif + +#if !defined(SIMDE_ENDIAN_ORDER) +# error Unknown byte order; please file a bug +#else +# if SIMDE_ENDIAN_ORDER == SIMDE_ENDIAN_LITTLE +# define simde_endian_bswap64_be(value) simde_bswap64(value) +# define simde_endian_bswap64_le(value) (value) +# elif SIMDE_ENDIAN_ORDER == SIMDE_ENDIAN_BIG +# define simde_endian_bswap64_be(value) (value) +# define simde_endian_bswap64_le(value) simde_bswap64(value) +# endif +#endif + +/* TODO: we should at least make an attempt to detect the correct + types for simde_float32/float64 instead of just assuming float and + double. */ + +#if !defined(SIMDE_FLOAT32_TYPE) +# define SIMDE_FLOAT32_TYPE float +# define SIMDE_FLOAT32_C(value) value##f +#else +# define SIMDE_FLOAT32_C(value) ((SIMDE_FLOAT32_TYPE) value) +#endif +typedef SIMDE_FLOAT32_TYPE simde_float32; + +#if !defined(SIMDE_FLOAT64_TYPE) +# define SIMDE_FLOAT64_TYPE double +# define SIMDE_FLOAT64_C(value) value +#else +# define SIMDE_FLOAT64_C(value) ((SIMDE_FLOAT64_TYPE) value) +#endif +typedef SIMDE_FLOAT64_TYPE simde_float64; + +#if defined(SIMDE_POLY8_TYPE) +# undef SIMDE_POLY8_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) +# define SIMDE_POLY8_TYPE poly8_t +# define SIMDE_POLY8_C(value) (HEDLEY_STATIC_CAST(poly8_t, value)) +#else +# define SIMDE_POLY8_TYPE uint8_t +# define SIMDE_POLY8_C(value) (HEDLEY_STATIC_CAST(uint8_t, value)) +#endif +typedef SIMDE_POLY8_TYPE simde_poly8; + +#if defined(SIMDE_POLY16_TYPE) +# undef SIMDE_POLY16_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) +# define SIMDE_POLY16_TYPE poly16_t +# define SIMDE_POLY16_C(value) (HEDLEY_STATIC_CAST(poly16_t, value)) +#else +# define SIMDE_POLY16_TYPE uint16_t +# define SIMDE_POLY16_C(value) (HEDLEY_STATIC_CAST(uint16_t, value)) +#endif +typedef SIMDE_POLY16_TYPE simde_poly16; + +#if defined(SIMDE_POLY64_TYPE) +# undef SIMDE_POLY64_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) +# define SIMDE_POLY64_TYPE poly64_t +# define SIMDE_POLY64_C(value) (HEDLEY_STATIC_CAST(poly64_t, value ## ull)) +#else +# define SIMDE_POLY64_TYPE uint64_t +# define SIMDE_POLY64_C(value) value ## ull +#endif +typedef SIMDE_POLY64_TYPE simde_poly64; + +#if defined(SIMDE_POLY128_TYPE) +# undef SIMDE_POLY128_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRYPTO) +# define SIMDE_POLY128_TYPE poly128_t +# define SIMDE_POLY128_C(value) value +#elif defined(__SIZEOF_INT128__) +# define SIMDE_POLY128_TYPE __int128 +# define SIMDE_POLY128_C(value) (HEDLEY_STATIC_CAST(__int128, value)) +#else +# define SIMDE_POLY128_TYPE uint64_t +# define SIMDE_TARGET_NOT_SUPPORT_INT128_TYPE 1 +#endif +typedef SIMDE_POLY128_TYPE simde_poly128; + +#if defined(__cplusplus) + typedef bool simde_bool; +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) + typedef _Bool simde_bool; +#elif defined(bool) + typedef bool simde_bool; +#else + #include + typedef bool simde_bool; +#endif + +#if HEDLEY_HAS_WARNING("-Wbad-function-cast") +# define SIMDE_CONVERT_FTOI(T,v) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wbad-function-cast\"") \ + HEDLEY_STATIC_CAST(T, (v)) \ + HEDLEY_DIAGNOSTIC_POP +#else +# define SIMDE_CONVERT_FTOI(T,v) ((T) (v)) +#endif + +/* TODO: detect compilers which support this outside of C11 mode */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) + #define SIMDE_CHECKED_REINTERPRET_CAST(to, from, value) _Generic((value), to: (value), default: (_Generic((value), from: ((to) (value))))) + #define SIMDE_CHECKED_STATIC_CAST(to, from, value) _Generic((value), to: (value), default: (_Generic((value), from: ((to) (value))))) +#else + #define SIMDE_CHECKED_REINTERPRET_CAST(to, from, value) HEDLEY_REINTERPRET_CAST(to, value) + #define SIMDE_CHECKED_STATIC_CAST(to, from, value) HEDLEY_STATIC_CAST(to, value) +#endif + +#if HEDLEY_HAS_WARNING("-Wfloat-equal") +# define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") +#elif HEDLEY_GCC_VERSION_CHECK(3,0,0) +# define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") +#else +# define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL +#endif + +/* Some functions can trade accuracy for speed. For those functions + you can control the trade-off using this macro. Possible values: + + 0: prefer speed + 1: reasonable trade-offs + 2: prefer accuracy */ +#if !defined(SIMDE_ACCURACY_PREFERENCE) +# define SIMDE_ACCURACY_PREFERENCE 1 +#endif + +#if defined(__STDC_HOSTED__) +# define SIMDE_STDC_HOSTED __STDC_HOSTED__ +#else +# if \ + defined(HEDLEY_PGI_VERSION) || \ + defined(HEDLEY_MSVC_VERSION) +# define SIMDE_STDC_HOSTED 1 +# else +# define SIMDE_STDC_HOSTED 0 +# endif +#endif + +/* Try to deal with environments without a standard library. */ +#if !defined(simde_memcpy) + #if HEDLEY_HAS_BUILTIN(__builtin_memcpy) + #define simde_memcpy(dest, src, n) __builtin_memcpy(dest, src, n) + #endif +#endif +#if !defined(simde_memset) + #if HEDLEY_HAS_BUILTIN(__builtin_memset) + #define simde_memset(s, c, n) __builtin_memset(s, c, n) + #endif +#endif +#if !defined(simde_memcmp) + #if HEDLEY_HAS_BUILTIN(__builtin_memcmp) + #define simde_memcmp(s1, s2, n) __builtin_memcmp(s1, s2, n) + #endif +#endif + +#if !defined(simde_memcpy) || !defined(simde_memset) || !defined(simde_memcmp) + #if !defined(SIMDE_NO_STRING_H) + #if defined(__has_include) + #if !__has_include() + #define SIMDE_NO_STRING_H + #endif + #elif (SIMDE_STDC_HOSTED == 0) + #define SIMDE_NO_STRING_H + #endif + #endif + + #if !defined(SIMDE_NO_STRING_H) + #include + #if !defined(simde_memcpy) + #define simde_memcpy(dest, src, n) memcpy(dest, src, n) + #endif + #if !defined(simde_memset) + #define simde_memset(s, c, n) memset(s, c, n) + #endif + #if !defined(simde_memcmp) + #define simde_memcmp(s1, s2, n) memcmp(s1, s2, n) + #endif + #else + /* These are meant to be portable, not fast. If you're hitting them you + * should think about providing your own (by defining the simde_memcpy + * macro prior to including any SIMDe files) or submitting a patch to + * SIMDe so we can detect your system-provided memcpy/memset, like by + * adding your compiler to the checks for __builtin_memcpy and/or + * __builtin_memset. */ + #if !defined(simde_memcpy) + SIMDE_FUNCTION_ATTRIBUTES + void + simde_memcpy_(void* dest, const void* src, size_t len) { + char* dest_ = HEDLEY_STATIC_CAST(char*, dest); + char* src_ = HEDLEY_STATIC_CAST(const char*, src); + for (size_t i = 0 ; i < len ; i++) { + dest_[i] = src_[i]; + } + } + #define simde_memcpy(dest, src, n) simde_memcpy_(dest, src, n) + #endif + + #if !defined(simde_memset) + SIMDE_FUNCTION_ATTRIBUTES + void + simde_memset_(void* s, int c, size_t len) { + char* s_ = HEDLEY_STATIC_CAST(char*, s); + char c_ = HEDLEY_STATIC_CAST(char, c); + for (size_t i = 0 ; i < len ; i++) { + s_[i] = c_[i]; + } + } + #define simde_memset(s, c, n) simde_memset_(s, c, n) + #endif + + #if !defined(simde_memcmp) + SIMDE_FUCTION_ATTRIBUTES + int + simde_memcmp_(const void *s1, const void *s2, size_t n) { + unsigned char* s1_ = HEDLEY_STATIC_CAST(unsigned char*, s1); + unsigned char* s2_ = HEDLEY_STATIC_CAST(unsigned char*, s2); + for (size_t i = 0 ; i < len ; i++) { + if (s1_[i] != s2_[i]) { + return (int) (s1_[i] - s2_[i]); + } + } + return 0; + } + #define simde_memcmp(s1, s2, n) simde_memcmp_(s1, s2, n) + #endif + #endif +#endif + +/*** Functions that quiet a signaling NaN ***/ + +static HEDLEY_INLINE +double +simde_math_quiet(double x) { + uint64_t tmp, mask; + if (!simde_math_isnan(x)) { + return x; + } + simde_memcpy(&tmp, &x, 8); + mask = 0x7ff80000; + mask <<= 32; + tmp |= mask; + simde_memcpy(&x, &tmp, 8); + return x; +} + +static HEDLEY_INLINE +float +simde_math_quietf(float x) { + uint32_t tmp; + if (!simde_math_isnanf(x)) { + return x; + } + simde_memcpy(&tmp, &x, 4); + tmp |= 0x7fc00000lu; + simde_memcpy(&x, &tmp, 4); + return x; +} + +#if defined(FE_ALL_EXCEPT) + #define SIMDE_HAVE_FENV_H +#elif defined(__has_include) + #if __has_include() + #include + #define SIMDE_HAVE_FENV_H + #endif +#elif SIMDE_STDC_HOSTED == 1 + #include + #define SIMDE_HAVE_FENV_H +#endif + +#if defined(EXIT_FAILURE) + #define SIMDE_HAVE_STDLIB_H +#elif defined(__has_include) + #if __has_include() + #include + #define SIMDE_HAVE_STDLIB_H + #endif +#elif SIMDE_STDC_HOSTED == 1 + #include + #define SIMDE_HAVE_STDLIB_H +#endif + +#if defined(__has_include) +# if defined(__cplusplus) && (__cplusplus >= 201103L) && __has_include() +# include +# elif __has_include() +# include +# endif +# if __has_include() +# include +# endif +#elif SIMDE_STDC_HOSTED == 1 +# include +# include +#endif + +#define SIMDE_DEFINE_CONVERSION_FUNCTION_(Name, T_To, T_From) \ + static HEDLEY_ALWAYS_INLINE HEDLEY_CONST SIMDE_FUNCTION_POSSIBLY_UNUSED_ \ + T_To \ + Name (T_From value) { \ + T_To r; \ + simde_memcpy(&r, &value, sizeof(r)); \ + return r; \ + } + +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_float32_as_uint32, uint32_t, simde_float32) +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_uint32_as_float32, simde_float32, uint32_t) +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_float64_as_uint64, uint64_t, simde_float64) +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_uint64_as_float64, simde_float64, uint64_t) + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/check.h :: */ +/* Check (assertions) + * Portable Snippets - https://github.com/nemequ/portable-snippets + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(SIMDE_CHECK_H) +#define SIMDE_CHECK_H + +#if !defined(SIMDE_NDEBUG) && !defined(SIMDE_DEBUG) +# define SIMDE_NDEBUG 1 +#endif + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +#include + +#if !defined(_WIN32) +# define SIMDE_SIZE_MODIFIER "z" +# define SIMDE_CHAR_MODIFIER "hh" +# define SIMDE_SHORT_MODIFIER "h" +#else +# if defined(_M_X64) || defined(__amd64__) +# define SIMDE_SIZE_MODIFIER "I64" +# else +# define SIMDE_SIZE_MODIFIER "" +# endif +# define SIMDE_CHAR_MODIFIER "" +# define SIMDE_SHORT_MODIFIER "" +#endif + +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define SIMDE_PUSH_DISABLE_MSVC_C4127_ __pragma(warning(push)) __pragma(warning(disable:4127)) +# define SIMDE_POP_DISABLE_MSVC_C4127_ __pragma(warning(pop)) +#else +# define SIMDE_PUSH_DISABLE_MSVC_C4127_ +# define SIMDE_POP_DISABLE_MSVC_C4127_ +#endif + +#if !defined(simde_errorf) +# if defined(__has_include) +# if __has_include() +# include +# endif +# elif defined(SIMDE_STDC_HOSTED) +# if SIMDE_STDC_HOSTED == 1 +# include +# endif +# elif defined(__STDC_HOSTED__) +# if __STDC_HOSTETD__ == 1 +# include +# endif +# endif + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* b8e468a68a879f51c694791e17a4bff175d7cd5e */ +/* :: Begin simde/debug-trap.h :: */ +/* Debugging assertions and traps + * Portable Snippets - https://github.com/nemequ/portable-snippets + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(SIMDE_DEBUG_TRAP_H) +#define SIMDE_DEBUG_TRAP_H + +#if !defined(SIMDE_NDEBUG) && defined(NDEBUG) && !defined(SIMDE_DEBUG) +# define SIMDE_NDEBUG 1 +#endif + +#if defined(__has_builtin) && !defined(__ibmxl__) +# if __has_builtin(__builtin_debugtrap) +# define simde_trap() __builtin_debugtrap() +# elif __has_builtin(__debugbreak) +# define simde_trap() __debugbreak() +# endif +#endif +#if !defined(simde_trap) +# if defined(_MSC_VER) || defined(__INTEL_COMPILER) +# define simde_trap() __debugbreak() +# elif defined(__ARMCC_VERSION) +# define simde_trap() __breakpoint(42) +# elif defined(__ibmxl__) || defined(__xlC__) +# include +# define simde_trap() __trap(42) +# elif defined(__DMC__) && defined(_M_IX86) + static inline void simde_trap(void) { __asm int 3h; } +# elif defined(__i386__) || defined(__x86_64__) + static inline void simde_trap(void) { __asm__ __volatile__("int $03"); } +# elif defined(__thumb__) + static inline void simde_trap(void) { __asm__ __volatile__(".inst 0xde01"); } +# elif defined(__aarch64__) + static inline void simde_trap(void) { __asm__ __volatile__(".inst 0xd4200000"); } +# elif defined(__arm__) + static inline void simde_trap(void) { __asm__ __volatile__(".inst 0xe7f001f0"); } +# elif defined (__alpha__) && !defined(__osf__) + static inline void simde_trap(void) { __asm__ __volatile__("bpt"); } +# elif defined(_54_) + static inline void simde_trap(void) { __asm__ __volatile__("ESTOP"); } +# elif defined(_55_) + static inline void simde_trap(void) { __asm__ __volatile__(";\n .if (.MNEMONIC)\n ESTOP_1\n .else\n ESTOP_1()\n .endif\n NOP"); } +# elif defined(_64P_) + static inline void simde_trap(void) { __asm__ __volatile__("SWBP 0"); } +# elif defined(_6x_) + static inline void simde_trap(void) { __asm__ __volatile__("NOP\n .word 0x10000000"); } +# elif defined(__STDC_HOSTED__) && (__STDC_HOSTED__ == 0) && defined(__GNUC__) +# define simde_trap() __builtin_trap() +# else +# include +# if defined(SIGTRAP) +# define simde_trap() raise(SIGTRAP) +# else +# define simde_trap() raise(SIGABRT) +# endif +# endif +#endif + +#if defined(HEDLEY_LIKELY) +# define SIMDE_DBG_LIKELY(expr) HEDLEY_LIKELY(expr) +#elif defined(__GNUC__) && (__GNUC__ >= 3) +# define SIMDE_DBG_LIKELY(expr) __builtin_expect(!!(expr), 1) +#else +# define SIMDE_DBG_LIKELY(expr) (!!(expr)) +#endif + +#if !defined(SIMDE_NDEBUG) || (SIMDE_NDEBUG == 0) +# define simde_dbg_assert(expr) do { \ + if (!SIMDE_DBG_LIKELY(expr)) { \ + simde_trap(); \ + } \ + } while (0) +#else +# define simde_dbg_assert(expr) +#endif + +#endif /* !defined(SIMDE_DEBUG_TRAP_H) */ +/* :: End simde/debug-trap.h :: */ + + HEDLEY_DIAGNOSTIC_PUSH + SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ +# if defined(EOF) +# define simde_errorf(format, ...) (fprintf(stderr, format, __VA_ARGS__), abort()) +# else +# define simde_errorf(format, ...) (simde_trap()) +# endif + HEDLEY_DIAGNOSTIC_POP +#endif + +#define simde_error(msg) simde_errorf("%s", msg) + +#if defined(SIMDE_NDEBUG) || \ + (defined(__cplusplus) && (__cplusplus < 201103L)) || \ + (defined(__STDC__) && (__STDC__ < 199901L)) +# if defined(SIMDE_CHECK_FAIL_DEFINED) +# define simde_assert(expr) +# else +# if defined(HEDLEY_ASSUME) +# define simde_assert(expr) HEDLEY_ASSUME(expr) +# elif HEDLEY_GCC_VERSION_CHECK(4,5,0) +# define simde_assert(expr) ((void) (!!(expr) ? 1 : (__builtin_unreachable(), 1))) +# elif HEDLEY_MSVC_VERSION_CHECK(13,10,0) +# define simde_assert(expr) __assume(expr) +# else +# define simde_assert(expr) +# endif +# endif +# define simde_assert_true(expr) simde_assert(expr) +# define simde_assert_false(expr) simde_assert(!(expr)) +# define simde_assert_type_full(prefix, suffix, T, fmt, a, op, b) simde_assert(((a) op (b))) +# define simde_assert_double_equal(a, b, precision) +# define simde_assert_string_equal(a, b) +# define simde_assert_string_not_equal(a, b) +# define simde_assert_memory_equal(size, a, b) +# define simde_assert_memory_not_equal(size, a, b) +#else +# define simde_assert(expr) \ + do { \ + if (!HEDLEY_LIKELY(expr)) { \ + simde_error("assertion failed: " #expr "\n"); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_true(expr) \ + do { \ + if (!HEDLEY_LIKELY(expr)) { \ + simde_error("assertion failed: " #expr " is not true\n"); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_false(expr) \ + do { \ + if (!HEDLEY_LIKELY(!(expr))) { \ + simde_error("assertion failed: " #expr " is not false\n"); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_type_full(prefix, suffix, T, fmt, a, op, b) \ + do { \ + T simde_tmp_a_ = (a); \ + T simde_tmp_b_ = (b); \ + if (!(simde_tmp_a_ op simde_tmp_b_)) { \ + simde_errorf("assertion failed: %s %s %s (" prefix "%" fmt suffix " %s " prefix "%" fmt suffix ")\n", \ + #a, #op, #b, simde_tmp_a_, #op, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_double_equal(a, b, precision) \ + do { \ + const double simde_tmp_a_ = (a); \ + const double simde_tmp_b_ = (b); \ + const double simde_tmp_diff_ = ((simde_tmp_a_ - simde_tmp_b_) < 0) ? \ + -(simde_tmp_a_ - simde_tmp_b_) : \ + (simde_tmp_a_ - simde_tmp_b_); \ + if (HEDLEY_UNLIKELY(simde_tmp_diff_ > 1e-##precision)) { \ + simde_errorf("assertion failed: %s == %s (%0." #precision "g == %0." #precision "g)\n", \ + #a, #b, simde_tmp_a_, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# include +# define simde_assert_string_equal(a, b) \ + do { \ + const char* simde_tmp_a_ = a; \ + const char* simde_tmp_b_ = b; \ + if (HEDLEY_UNLIKELY(strcmp(simde_tmp_a_, simde_tmp_b_) != 0)) { \ + simde_errorf("assertion failed: string %s == %s (\"%s\" == \"%s\")\n", \ + #a, #b, simde_tmp_a_, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_string_not_equal(a, b) \ + do { \ + const char* simde_tmp_a_ = a; \ + const char* simde_tmp_b_ = b; \ + if (HEDLEY_UNLIKELY(strcmp(simde_tmp_a_, simde_tmp_b_) == 0)) { \ + simde_errorf("assertion failed: string %s != %s (\"%s\" == \"%s\")\n", \ + #a, #b, simde_tmp_a_, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_memory_equal(size, a, b) \ + do { \ + const unsigned char* simde_tmp_a_ = (const unsigned char*) (a); \ + const unsigned char* simde_tmp_b_ = (const unsigned char*) (b); \ + const size_t simde_tmp_size_ = (size); \ + if (HEDLEY_UNLIKELY(memcmp(simde_tmp_a_, simde_tmp_b_, simde_tmp_size_)) != 0) { \ + size_t simde_tmp_pos_; \ + for (simde_tmp_pos_ = 0 ; simde_tmp_pos_ < simde_tmp_size_ ; simde_tmp_pos_++) { \ + if (simde_tmp_a_[simde_tmp_pos_] != simde_tmp_b_[simde_tmp_pos_]) { \ + simde_errorf("assertion failed: memory %s == %s, at offset %" SIMDE_SIZE_MODIFIER "u\n", \ + #a, #b, simde_tmp_pos_); \ + break; \ + } \ + } \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_memory_not_equal(size, a, b) \ + do { \ + const unsigned char* simde_tmp_a_ = (const unsigned char*) (a); \ + const unsigned char* simde_tmp_b_ = (const unsigned char*) (b); \ + const size_t simde_tmp_size_ = (size); \ + if (HEDLEY_UNLIKELY(memcmp(simde_tmp_a_, simde_tmp_b_, simde_tmp_size_)) == 0) { \ + simde_errorf("assertion failed: memory %s != %s (%" SIMDE_SIZE_MODIFIER "u bytes)\n", \ + #a, #b, simde_tmp_size_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ +#endif + +#define simde_assert_type(T, fmt, a, op, b) \ + simde_assert_type_full("", "", T, fmt, a, op, b) + +#define simde_assert_char(a, op, b) \ + simde_assert_type_full("'\\x", "'", char, "02" SIMDE_CHAR_MODIFIER "x", a, op, b) +#define simde_assert_uchar(a, op, b) \ + simde_assert_type_full("'\\x", "'", unsigned char, "02" SIMDE_CHAR_MODIFIER "x", a, op, b) +#define simde_assert_short(a, op, b) \ + simde_assert_type(short, SIMDE_SHORT_MODIFIER "d", a, op, b) +#define simde_assert_ushort(a, op, b) \ + simde_assert_type(unsigned short, SIMDE_SHORT_MODIFIER "u", a, op, b) +#define simde_assert_int(a, op, b) \ + simde_assert_type(int, "d", a, op, b) +#define simde_assert_uint(a, op, b) \ + simde_assert_type(unsigned int, "u", a, op, b) +#define simde_assert_long(a, op, b) \ + simde_assert_type(long int, "ld", a, op, b) +#define simde_assert_ulong(a, op, b) \ + simde_assert_type(unsigned long int, "lu", a, op, b) +#define simde_assert_llong(a, op, b) \ + simde_assert_type(long long int, "lld", a, op, b) +#define simde_assert_ullong(a, op, b) \ + simde_assert_type(unsigned long long int, "llu", a, op, b) + +#define simde_assert_size(a, op, b) \ + simde_assert_type(size_t, SIMDE_SIZE_MODIFIER "u", a, op, b) + +#define simde_assert_float(a, op, b) \ + simde_assert_type(float, "f", a, op, b) +#define simde_assert_double(a, op, b) \ + simde_assert_type(double, "g", a, op, b) +#define simde_assert_ptr(a, op, b) \ + simde_assert_type(const void*, "p", a, op, b) + +#define simde_assert_int8(a, op, b) \ + simde_assert_type(int8_t, PRIi8, a, op, b) +#define simde_assert_uint8(a, op, b) \ + simde_assert_type(uint8_t, PRIu8, a, op, b) +#define simde_assert_int16(a, op, b) \ + simde_assert_type(int16_t, PRIi16, a, op, b) +#define simde_assert_uint16(a, op, b) \ + simde_assert_type(uint16_t, PRIu16, a, op, b) +#define simde_assert_int32(a, op, b) \ + simde_assert_type(int32_t, PRIi32, a, op, b) +#define simde_assert_uint32(a, op, b) \ + simde_assert_type(uint32_t, PRIu32, a, op, b) +#define simde_assert_int64(a, op, b) \ + simde_assert_type(int64_t, PRIi64, a, op, b) +#define simde_assert_uint64(a, op, b) \ + simde_assert_type(uint64_t, PRIu64, a, op, b) + +#define simde_assert_ptr_equal(a, b) \ + simde_assert_ptr(a, ==, b) +#define simde_assert_ptr_not_equal(a, b) \ + simde_assert_ptr(a, !=, b) +#define simde_assert_null(ptr) \ + simde_assert_ptr(ptr, ==, NULL) +#define simde_assert_not_null(ptr) \ + simde_assert_ptr(ptr, !=, NULL) +#define simde_assert_ptr_null(ptr) \ + simde_assert_ptr(ptr, ==, NULL) +#define simde_assert_ptr_not_null(ptr) \ + simde_assert_ptr(ptr, !=, NULL) + +#endif /* !defined(SIMDE_CHECK_H) */ +/* :: End simde/check.h :: */ + +/* GCC/clang have a bunch of functionality in builtins which we would + * like to access, but the suffixes indicate whether the operate on + * int, long, or long long, not fixed width types (e.g., int32_t). + * we use these macros to attempt to map from fixed-width to the + * names GCC uses. Note that you should still cast the input(s) and + * return values (to/from SIMDE_BUILTIN_TYPE_*_) since often even if + * types are the same size they may not be compatible according to the + * compiler. For example, on x86 long and long lonsg are generally + * both 64 bits, but platforms vary on whether an int64_t is mapped + * to a long or long long. */ + +#include + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ + +#if (INT8_MAX == INT_MAX) && (INT8_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_8_ + #define SIMDE_BUILTIN_TYPE_8_ int +#elif (INT8_MAX == LONG_MAX) && (INT8_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_8_ l + #define SIMDE_BUILTIN_TYPE_8_ long +#elif (INT8_MAX == LLONG_MAX) && (INT8_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_8_ ll + #define SIMDE_BUILTIN_TYPE_8_ long long +#endif + +#if (INT16_MAX == INT_MAX) && (INT16_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_16_ + #define SIMDE_BUILTIN_TYPE_16_ int +#elif (INT16_MAX == LONG_MAX) && (INT16_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_16_ l + #define SIMDE_BUILTIN_TYPE_16_ long +#elif (INT16_MAX == LLONG_MAX) && (INT16_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_16_ ll + #define SIMDE_BUILTIN_TYPE_16_ long long +#endif + +#if (INT32_MAX == INT_MAX) && (INT32_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_32_ + #define SIMDE_BUILTIN_TYPE_32_ int +#elif (INT32_MAX == LONG_MAX) && (INT32_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_32_ l + #define SIMDE_BUILTIN_TYPE_32_ long +#elif (INT32_MAX == LLONG_MAX) && (INT32_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_32_ ll + #define SIMDE_BUILTIN_TYPE_32_ long long +#endif + +#if (INT64_MAX == INT_MAX) && (INT64_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_64_ + #define SIMDE_BUILTIN_TYPE_64_ int +#elif (INT64_MAX == LONG_MAX) && (INT64_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_64_ l + #define SIMDE_BUILTIN_TYPE_64_ long +#elif (INT64_MAX == LLONG_MAX) && (INT64_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_64_ ll + #define SIMDE_BUILTIN_TYPE_64_ long long +#endif + +/* SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ */ +HEDLEY_DIAGNOSTIC_POP + +#if defined(SIMDE_BUILTIN_SUFFIX_8_) + #define SIMDE_BUILTIN_8_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_8_) + #define SIMDE_BUILTIN_HAS_8_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_8_)) +#else + #define SIMDE_BUILTIN_HAS_8_(name) 0 +#endif +#if defined(SIMDE_BUILTIN_SUFFIX_16_) + #define SIMDE_BUILTIN_16_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_16_) + #define SIMDE_BUILTIN_HAS_16_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_16_)) +#else + #define SIMDE_BUILTIN_HAS_16_(name) 0 +#endif +#if defined(SIMDE_BUILTIN_SUFFIX_32_) + #define SIMDE_BUILTIN_32_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_32_) + #define SIMDE_BUILTIN_HAS_32_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_32_)) +#else + #define SIMDE_BUILTIN_HAS_32_(name) 0 +#endif +#if defined(SIMDE_BUILTIN_SUFFIX_64_) + #define SIMDE_BUILTIN_64_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_64_) + #define SIMDE_BUILTIN_HAS_64_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_64_)) +#else + #define SIMDE_BUILTIN_HAS_64_(name) 0 +#endif + +#if !defined(__cplusplus) + #if defined(__clang__) + #if HEDLEY_HAS_WARNING("-Wc11-extensions") + #define SIMDE_GENERIC_(...) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc11-extensions\"") \ + _Generic(__VA_ARGS__); \ + HEDLEY_DIAGNOSTIC_POP \ + })) + #elif HEDLEY_HAS_WARNING("-Wc1x-extensions") + #define SIMDE_GENERIC_(...) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc1x-extensions\"") \ + _Generic(__VA_ARGS__); \ + HEDLEY_DIAGNOSTIC_POP \ + })) + #endif + #elif \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) || \ + HEDLEY_HAS_EXTENSION(c_generic_selections) || \ + HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,3,0) + #define SIMDE_GENERIC_(...) _Generic(__VA_ARGS__) + #endif +#endif + +/* Sometimes we run into problems with specific versions of compilers + which make the native versions unusable for us. Often this is due + to missing functions, sometimes buggy implementations, etc. These + macros are how we check for specific bugs. As they are fixed we'll + start only defining them for problematic compiler versions. */ + +#if !defined(SIMDE_IGNORE_COMPILER_BUGS) +# if defined(HEDLEY_GCC_VERSION) +# if !HEDLEY_GCC_VERSION_CHECK(4,9,0) +# define SIMDE_BUG_GCC_REV_208793 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(5,0,0) +# define SIMDE_BUG_GCC_BAD_MM_SRA_EPI32 /* TODO: find relevant bug or commit */ +# endif +# if !HEDLEY_GCC_VERSION_CHECK(6,0,0) +# define SIMDE_BUG_GCC_SIZEOF_IMMEDIATE +# endif +# if !HEDLEY_GCC_VERSION_CHECK(4,6,0) +# define SIMDE_BUG_GCC_BAD_MM_EXTRACT_EPI8 /* TODO: find relevant bug or commit */ +# endif +# if !HEDLEY_GCC_VERSION_CHECK(7,4,0) || (HEDLEY_GCC_VERSION_CHECK(8,0,0) && !HEDLEY_GCC_VERSION_CHECK(8,3,0)) +# define SIMDE_BUG_GCC_87467 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(8,0,0) +# define SIMDE_BUG_GCC_REV_247851 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(10,0,0) +# define SIMDE_BUG_GCC_REV_274313 +# define SIMDE_BUG_GCC_91341 +# define SIMDE_BUG_GCC_92035 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,0,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_ARM_SHIFT_SCALAR +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,0,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_BAD_VEXT_REV32 +# endif +# if !(HEDLEY_GCC_VERSION_CHECK(9,4,0) \ + || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && !HEDLEY_GCC_VERSION_CHECK(9,0,0)) \ + ) && defined(SIMDE_ARCH_X86) && !defined(SIMDE_ARCH_AMD64) +# define SIMDE_BUG_GCC_94482 +# endif +# if (defined(SIMDE_ARCH_X86) && !defined(SIMDE_ARCH_AMD64)) || defined(SIMDE_ARCH_ZARCH) +# define SIMDE_BUG_GCC_53784 +# endif +# if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) +# if HEDLEY_GCC_VERSION_CHECK(4,3,0) /* -Wsign-conversion */ +# define SIMDE_BUG_GCC_95144 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(11,2,0) +# define SIMDE_BUG_GCC_95483 +# endif +# if defined(__OPTIMIZE__) +# define SIMDE_BUG_GCC_100927 +# endif +# if !(HEDLEY_GCC_VERSION_CHECK(10,3,0)) +# define SIMDE_BUG_GCC_98521 +# endif +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,4,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_94488 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,1,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_REV_264019 +# endif +# if (!HEDLEY_GCC_VERSION_CHECK(9,0,0) && !defined(SIMDE_ARCH_AARCH64)) || (!defined(SIMDE_ARCH_AARCH64) && defined(SIMDE_ARCH_ARM)) +# define SIMDE_BUG_GCC_REV_260989 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(11,5,0) && (defined(SIMDE_ARCH_ARM4) || defined(SIMDE_ARCH_AARCH64)) +# define SIMDE_BUG_GCC_114521 +# endif +# if defined(SIMDE_ARCH_ARM) && !defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_95399 +# define SIMDE_BUG_GCC_95471 +# define SIMDE_BUG_GCC_111609 +# if SIMDE_ARCH_ARM_CHECK(8,0) +# define SIMDE_BUG_GCC_113065 +# endif +# endif +# if defined(SIMDE_ARCH_POWER) +# define SIMDE_BUG_GCC_95227 +# define SIMDE_BUG_GCC_95782 +# if !HEDLEY_GCC_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_VEC_CPSGN_REVERSED_ARGS +# endif +# endif +# if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) +# if !HEDLEY_GCC_VERSION_CHECK(10,2,0) && !defined(__OPTIMIZE__) +# define SIMDE_BUG_GCC_96174 +# endif +# endif +# if defined(SIMDE_ARCH_ZARCH) +# define SIMDE_BUG_GCC_95782 +# if HEDLEY_GCC_VERSION_CHECK(10,0,0) +# define SIMDE_BUG_GCC_101614 +# endif +# endif +# if defined(SIMDE_ARCH_MIPS_MSA) +# define SIMDE_BUG_GCC_97248 +# if !HEDLEY_GCC_VERSION_CHECK(12,1,0) +# define SIMDE_BUG_GCC_100760 +# define SIMDE_BUG_GCC_100761 +# define SIMDE_BUG_GCC_100762 +# endif +# endif +# if !defined(__OPTIMIZE__) && !(\ + HEDLEY_GCC_VERSION_CHECK(11,4,0) \ + || (HEDLEY_GCC_VERSION_CHECK(10,4,0) && !(HEDLEY_GCC_VERSION_CHECK(11,0,0))) \ + || (HEDLEY_GCC_VERSION_CHECK(9,5,0) && !(HEDLEY_GCC_VERSION_CHECK(10,0,0)))) +# define SIMDE_BUG_GCC_105339 +# endif +# elif defined(__clang__) +# if defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_CLANG_48257 // https://github.com/llvm/llvm-project/issues/47601 +# define SIMDE_BUG_CLANG_71362 // https://github.com/llvm/llvm-project/issues/71362 +# define SIMDE_BUG_CLANG_71365 // https://github.com/llvm/llvm-project/issues/71365 +# define SIMDE_BUG_CLANG_71751 // https://github.com/llvm/llvm-project/issues/71751 +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0) +# define SIMDE_BUG_CLANG_45541 +# endif +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_CLANG_46840 +# define SIMDE_BUG_CLANG_46844 +# endif +# if SIMDE_DETECT_CLANG_VERSION_CHECK(10,0,0) && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0) +# define SIMDE_BUG_CLANG_BAD_VI64_OPS +# endif +# if SIMDE_DETECT_CLANG_VERSION_NOT(9,0,0) +# define SIMDE_BUG_CLANG_GIT_4EC445B8 +# define SIMDE_BUG_CLANG_REV_365298 /* 0464e07c8f6e3310c28eb210a4513bc2243c2a7e */ +# endif +# endif +# if defined(SIMDE_ARCH_ARM) +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(11,0,0) +# define SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES +# endif +# if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NATIVE) +# define SIMDE_BUG_CLANG_71763 // https://github.com/llvm/llvm-project/issues/71763 +# endif +# endif +# if defined(SIMDE_ARCH_POWER) && !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_CLANG_46770 +# endif +# if defined(SIMDE_ARCH_POWER) && (SIMDE_ARCH_POWER == 700) && (SIMDE_DETECT_CLANG_VERSION_CHECK(11,0,0)) +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(13,0,0) +# define SIMDE_BUG_CLANG_50893 +# define SIMDE_BUG_CLANG_50901 +# endif +# endif +# if defined(_ARCH_PWR9) && !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) && !defined(__OPTIMIZE__) +# define SIMDE_BUG_CLANG_POWER9_16x4_BAD_SHIFT +# endif +# if defined(SIMDE_ARCH_POWER) +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(14,0,0) +# define SIMDE_BUG_CLANG_50932 +# endif +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_VEC_CPSGN_REVERSED_ARGS +# endif +# endif +# if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) +# if SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) +# define SIMDE_BUG_CLANG_REV_298042 /* 6afc436a7817a52e78ae7bcdc3faafd460124cac */ +# endif +# if SIMDE_DETECT_CLANG_VERSION_NOT(3,7,0) +# define SIMDE_BUG_CLANG_REV_234560 /* b929ad7b1726a32650a8051f69a747fb6836c540 */ +# endif +# if SIMDE_DETECT_CLANG_VERSION_CHECK(3,8,0) && SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) +# define SIMDE_BUG_CLANG_BAD_MADD +# endif +# if SIMDE_DETECT_CLANG_VERSION_CHECK(4,0,0) && SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) +# define SIMDE_BUG_CLANG_REV_299346 /* ac9959eb533a58482ea4da6c4db1e635a98de384 */ +# endif +# if SIMDE_DETECT_CLANG_VERSION_NOT(8,0,0) +# define SIMDE_BUG_CLANG_REV_344862 /* eae26bf73715994c2bd145f9b6dc3836aa4ffd4f */ +# endif +# if HEDLEY_HAS_WARNING("-Wsign-conversion") && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0) +# define SIMDE_BUG_CLANG_45931 +# endif +# if HEDLEY_HAS_WARNING("-Wvector-conversion") && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0) +# define SIMDE_BUG_CLANG_44589 +# endif +# define SIMDE_BUG_CLANG_48673 // https://github.com/llvm/llvm-project/issues/48017 +# endif +# define SIMDE_BUG_CLANG_45959 // https://github.com/llvm/llvm-project/issues/45304 +# if defined(SIMDE_ARCH_WASM_SIMD128) && !SIMDE_DETECT_CLANG_VERSION_CHECK(17,0,0) +# define SIMDE_BUG_CLANG_60655 +# endif +# elif defined(HEDLEY_MSVC_VERSION) +# if defined(SIMDE_ARCH_X86) +# define SIMDE_BUG_MSVC_ROUND_EXTRACT +# endif +# elif defined(HEDLEY_INTEL_VERSION) +# define SIMDE_BUG_INTEL_857088 +# elif defined(HEDLEY_MCST_LCC_VERSION) +# define SIMDE_BUG_MCST_LCC_MISSING_AVX_LOAD_STORE_M128_FUNCS +# define SIMDE_BUG_MCST_LCC_MISSING_CMOV_M256 +# define SIMDE_BUG_MCST_LCC_FMA_WRONG_RESULT +# elif defined(HEDLEY_PGI_VERSION) +# define SIMDE_BUG_PGI_30104 +# define SIMDE_BUG_PGI_30107 +# define SIMDE_BUG_PGI_30106 +# endif +#endif + +/* GCC and Clang both have the same issue: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95144 + * https://bugs.llvm.org/show_bug.cgi?id=45931 + * This is just an easy way to work around it. + */ +#if \ + (HEDLEY_HAS_WARNING("-Wsign-conversion") && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0)) || \ + HEDLEY_GCC_VERSION_CHECK(4,3,0) +# define SIMDE_BUG_IGNORE_SIGN_CONVERSION(expr) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \ + __typeof__(expr) simde_bug_ignore_sign_conversion_v_= (expr); \ + HEDLEY_DIAGNOSTIC_POP \ + simde_bug_ignore_sign_conversion_v_; \ + })) +#else +# define SIMDE_BUG_IGNORE_SIGN_CONVERSION(expr) (expr) +#endif + +/* Usually the shift count is signed (for example, NEON or SSE). + * OTOH, unsigned is good for PPC (vec_srl uses unsigned), and the only option for E2K. + * Further info: https://github.com/simd-everywhere/simde/pull/700 + */ +#if defined(SIMDE_ARCH_E2K) || defined(SIMDE_ARCH_POWER) + #define SIMDE_CAST_VECTOR_SHIFT_COUNT(width, value) HEDLEY_STATIC_CAST(uint##width##_t, (value)) +#else + #define SIMDE_CAST_VECTOR_SHIFT_COUNT(width, value) HEDLEY_STATIC_CAST(int##width##_t, (value)) +#endif + +/* Initial support for RISCV V extensions based on ZVE64D. */ +#if defined(SIMDE_ARCH_RISCV_ZVE64D) && SIMDE_NATURAL_VECTOR_SIZE >= 64 + #define RVV_FIXED_TYPE_DEF(name, lmul) \ + typedef vint8##name##_t fixed_vint8##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vint16##name##_t fixed_vint16##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vint32##name##_t fixed_vint32##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint8##name##_t fixed_vuint8##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint16##name##_t fixed_vuint16##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint32##name##_t fixed_vuint32##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vfloat32##name##_t fixed_vfloat32##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); + RVV_FIXED_TYPE_DEF(mf2, 1/2); + RVV_FIXED_TYPE_DEF(m1, 1); + RVV_FIXED_TYPE_DEF(m2, 2); + #define RVV_FIXED_TYPE_DEF_64B(name, lmul) \ + typedef vint64##name##_t fixed_vint64##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint64##name##_t fixed_vuint64##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vfloat64##name##_t fixed_vfloat64##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); + RVV_FIXED_TYPE_DEF_64B(m1, 1); + RVV_FIXED_TYPE_DEF_64B(m2, 2); + #if defined(SIMDE_ARCH_RISCV_ZVFH) + #define RVV_FIXED_TYPE_DEF_16F(name, lmul) \ + typedef vfloat16##name##_t fixed_vfloat16##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); + RVV_FIXED_TYPE_DEF_16F(mf2, 1/2); + RVV_FIXED_TYPE_DEF_16F(m1, 1); + RVV_FIXED_TYPE_DEF_16F(m2, 2); + #endif +#endif + +/* SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ */ +HEDLEY_DIAGNOSTIC_POP + +#endif /* !defined(SIMDE_COMMON_H) */ +/* :: End simde/simde-common.h :: */ + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DISABLE_UNWANTED_DIAGNOSTICS +SIMDE_BEGIN_DECLS_ + +typedef union { + #if defined(SIMDE_VECTOR_SUBSCRIPT) + SIMDE_ALIGN_TO_16 int8_t i8 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int16_t i16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int32_t i32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int64_t i64 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint8_t u8 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint16_t u16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint32_t u32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint64_t u64 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + #if defined(SIMDE_HAVE_INT128_) + SIMDE_ALIGN_TO_16 simde_int128 i128 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 simde_uint128 u128 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + #endif + SIMDE_ALIGN_TO_16 simde_float32 f32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 simde_float64 f64 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int_fast32_t i32f SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint_fast32_t u32f SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + #else + SIMDE_ALIGN_TO_16 int8_t i8[16]; + SIMDE_ALIGN_TO_16 int16_t i16[8]; + SIMDE_ALIGN_TO_16 int32_t i32[4]; + SIMDE_ALIGN_TO_16 int64_t i64[2]; + SIMDE_ALIGN_TO_16 uint8_t u8[16]; + SIMDE_ALIGN_TO_16 uint16_t u16[8]; + SIMDE_ALIGN_TO_16 uint32_t u32[4]; + SIMDE_ALIGN_TO_16 uint64_t u64[2]; + #if defined(SIMDE_HAVE_INT128_) + SIMDE_ALIGN_TO_16 simde_int128 i128[1]; + SIMDE_ALIGN_TO_16 simde_uint128 u128[1]; + #endif + SIMDE_ALIGN_TO_16 simde_float32 f32[4]; + SIMDE_ALIGN_TO_16 simde_float64 f64[2]; + SIMDE_ALIGN_TO_16 int_fast32_t i32f[16 / sizeof(int_fast32_t)]; + SIMDE_ALIGN_TO_16 uint_fast32_t u32f[16 / sizeof(uint_fast32_t)]; + #endif + + #if defined(SIMDE_X86_SSE_NATIVE) + SIMDE_ALIGN_TO_16 __m128 sse_m128; + #if defined(SIMDE_X86_SSE2_NATIVE) + SIMDE_ALIGN_TO_16 __m128i sse_m128i; + SIMDE_ALIGN_TO_16 __m128d sse_m128d; + #endif + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + SIMDE_ALIGN_TO_16 int8x16_t neon_i8; + SIMDE_ALIGN_TO_16 int16x8_t neon_i16; + SIMDE_ALIGN_TO_16 int32x4_t neon_i32; + SIMDE_ALIGN_TO_16 int64x2_t neon_i64; + SIMDE_ALIGN_TO_16 uint8x16_t neon_u8; + SIMDE_ALIGN_TO_16 uint16x8_t neon_u16; + SIMDE_ALIGN_TO_16 uint32x4_t neon_u32; + SIMDE_ALIGN_TO_16 uint64x2_t neon_u64; + SIMDE_ALIGN_TO_16 float32x4_t neon_f32; + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + SIMDE_ALIGN_TO_16 float64x2_t neon_f64; + #endif + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + SIMDE_ALIGN_TO_16 v128_t wasm_v128; + #elif defined(SIMDE_MIPS_MSA_NATIVE) + SIMDE_ALIGN_TO_16 v16i8 msa_v16i8; + SIMDE_ALIGN_TO_16 v8i16 msa_v8i16; + SIMDE_ALIGN_TO_16 v4i32 msa_v4i32; + SIMDE_ALIGN_TO_16 v2i64 msa_v2i64; + SIMDE_ALIGN_TO_16 v16u8 msa_v16u8; + SIMDE_ALIGN_TO_16 v8u16 msa_v8u16; + SIMDE_ALIGN_TO_16 v4u32 msa_v4u32; + SIMDE_ALIGN_TO_16 v2u64 msa_v2u64; + SIMDE_ALIGN_TO_16 v4f32 msa_v4f32; + SIMDE_ALIGN_TO_16 v2f64 msa_v2f64; + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) altivec_u8; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) altivec_u16; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) altivec_u32; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed char) altivec_i8; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed short) altivec_i16; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed int) altivec_i32; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(float) altivec_f32; + #if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned long long) altivec_u64; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed long long) altivec_i64; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(double) altivec_f64; + #endif + #endif +} simde_v128_private; + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + typedef v128_t simde_v128_t; +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + typedef int32x4_t simde_v128_t; +#elif defined(SIMDE_X86_SSE2_NATIVE) + typedef __m128i simde_v128_t; +#elif defined(SIMDE_X86_SSE_NATIVE) + typedef __m128 simde_v128_t; +#elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + typedef SIMDE_POWER_ALTIVEC_VECTOR(signed int) simde_v128_t; +#elif defined(SIMDE_MIPS_MSA_NATIVE) + typedef v4i32 simde_v128_t; +#elif defined(SIMDE_VECTOR_SUBSCRIPT) + typedef int32_t simde_v128_t SIMDE_ALIGN_TO_16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; +#else + typedef simde_v128_private simde_v128_t; +#endif + +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + typedef simde_v128_t v128_t; +#endif + +HEDLEY_STATIC_ASSERT(16 == sizeof(simde_v128_t), "simde_v128_t size incorrect"); +HEDLEY_STATIC_ASSERT(16 == sizeof(simde_v128_private), "simde_v128_private size incorrect"); +#if defined(SIMDE_CHECK_ALIGNMENT) && defined(SIMDE_ALIGN_OF) +HEDLEY_STATIC_ASSERT(SIMDE_ALIGN_OF(simde_v128_t) == 16, "simde_v128_t is not 16-byte aligned"); +HEDLEY_STATIC_ASSERT(SIMDE_ALIGN_OF(simde_v128_private) == 16, "simde_v128_private is not 16-byte aligned"); +#endif + +#define SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(Other_Type, SIMDe_Type, To_Name, From_Name) \ + SIMDE_FUNCTION_ATTRIBUTES \ + Other_Type To_Name(SIMDe_Type v) { \ + Other_Type r; \ + simde_memcpy(&r, &v, sizeof(r)); \ + return r; \ + } \ + \ + SIMDE_FUNCTION_ATTRIBUTES \ + SIMDe_Type From_Name(Other_Type v) { \ + SIMDe_Type r; \ + simde_memcpy(&r, &v, sizeof(r)); \ + return r; \ + } + +SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(simde_v128_private, simde_v128_t, simde_v128_to_private, simde_v128_from_private) + +#define SIMDE_WASM_SIMD128_FMIN(x, y) \ + (simde_math_isnan(x) ? SIMDE_MATH_NAN \ + : simde_math_isnan(y) ? SIMDE_MATH_NAN \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (x) : (y)) \ + : ((x) < (y) ? (x) : (y))) + +#define SIMDE_WASM_SIMD128_FMAX(x, y) \ + (simde_math_isnan(x) ? SIMDE_MATH_NAN \ + : simde_math_isnan(y) ? SIMDE_MATH_NAN \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (y) : (x)) \ + : ((x) > (y) ? (x) : (y))) + +#define SIMDE_WASM_SIMD128_FMINF(x, y) \ + (simde_math_isnanf(x) ? SIMDE_MATH_NANF \ + : simde_math_isnanf(y) ? SIMDE_MATH_NANF \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (x) : (y)) \ + : ((x) < (y) ? (x) : (y))) + +#define SIMDE_WASM_SIMD128_FMAXF(x, y) \ + (simde_math_isnanf(x) ? SIMDE_MATH_NANF \ + : simde_math_isnanf(y) ? SIMDE_MATH_NANF \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (y) : (x)) \ + : ((x) > (y) ? (x) : (y))) + +#if defined(SIMDE_X86_SSE_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(__m128 , simde_v128_t, simde_v128_to_m128 , simde_v128_from_m128 ) +#endif +#if defined(SIMDE_X86_SSE2_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(__m128i, simde_v128_t, simde_v128_to_m128i, simde_v128_from_m128i) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(__m128d, simde_v128_t, simde_v128_to_m128d, simde_v128_from_m128d) +#endif + +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int8x16_t, simde_v128_t, simde_v128_to_neon_i8 , simde_v128_from_neon_i8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int16x8_t, simde_v128_t, simde_v128_to_neon_i16, simde_v128_from_neon_i16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int32x4_t, simde_v128_t, simde_v128_to_neon_i32, simde_v128_from_neon_i32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int64x2_t, simde_v128_t, simde_v128_to_neon_i64, simde_v128_from_neon_i64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint8x16_t, simde_v128_t, simde_v128_to_neon_u8 , simde_v128_from_neon_u8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint16x8_t, simde_v128_t, simde_v128_to_neon_u16, simde_v128_from_neon_u16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint32x4_t, simde_v128_t, simde_v128_to_neon_u32, simde_v128_from_neon_u32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint64x2_t, simde_v128_t, simde_v128_to_neon_u64, simde_v128_from_neon_u64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(float32x4_t, simde_v128_t, simde_v128_to_neon_f32, simde_v128_from_neon_f32) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(float64x2_t, simde_v128_t, simde_v128_to_neon_f64, simde_v128_from_neon_f64) + #endif +#endif /* defined(SIMDE_ARM_NEON_A32V7_NATIVE) */ + +#if defined(SIMDE_MIPS_MSA_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v16i8, simde_v128_t, simde_v128_to_msa_v16i8, simde_v128_from_msa_v16i8) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v8i16, simde_v128_t, simde_v128_to_msa_v8i16, simde_v128_from_msa_v8i16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v4i32, simde_v128_t, simde_v128_to_msa_v4i32, simde_v128_from_msa_v4i32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v2i64, simde_v128_t, simde_v128_to_msa_v2i64, simde_v128_from_msa_v2i64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v16u8, simde_v128_t, simde_v128_to_msa_v16u8, simde_v128_from_msa_v16u8) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v8u16, simde_v128_t, simde_v128_to_msa_v8u16, simde_v128_from_msa_v8u16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v4u32, simde_v128_t, simde_v128_to_msa_v4u32, simde_v128_from_msa_v4u32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v2u64, simde_v128_t, simde_v128_to_msa_v2u64, simde_v128_from_msa_v2u64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v4f32, simde_v128_t, simde_v128_to_msa_v4f32, simde_v128_from_msa_v4f32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v2f64, simde_v128_t, simde_v128_to_msa_v2f64, simde_v128_from_msa_v2f64) +#endif + +#if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed char), simde_v128_t, simde_v128_to_altivec_i8 , simde_v128_from_altivec_i8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed short), simde_v128_t, simde_v128_to_altivec_i16, simde_v128_from_altivec_i16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed int), simde_v128_t, simde_v128_to_altivec_i32, simde_v128_from_altivec_i32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), simde_v128_t, simde_v128_to_altivec_u8 , simde_v128_from_altivec_u8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned short), simde_v128_t, simde_v128_to_altivec_u16, simde_v128_from_altivec_u16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned int), simde_v128_t, simde_v128_to_altivec_u32, simde_v128_from_altivec_u32) + #if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed long long), simde_v128_t, simde_v128_to_altivec_i64, simde_v128_from_altivec_i64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned long long), simde_v128_t, simde_v128_to_altivec_u64, simde_v128_from_altivec_u64) + #endif + + #if defined(SIMDE_BUG_GCC_95782) + SIMDE_FUNCTION_ATTRIBUTES + SIMDE_POWER_ALTIVEC_VECTOR(float) + simde_v128_to_altivec_f32(simde_v128_t value) { + simde_v128_private r_ = simde_v128_to_private(value); + return r_.altivec_f32; + } + + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_v128_from_altivec_f32(SIMDE_POWER_ALTIVEC_VECTOR(float) value) { + simde_v128_private r_; + r_.altivec_f32 = value; + return simde_v128_from_private(r_); + } + #else + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(float), simde_v128_t, simde_v128_to_altivec_f32, simde_v128_from_altivec_f32) + #endif +#endif /* defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) */ + +/* + * Begin function implementations + */ + +/* load */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load(mem); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_loadu_si128(HEDLEY_REINTERPRET_CAST(const __m128i*, mem)); + #else + simde_v128_t r; + simde_memcpy(&r, mem, sizeof(r)); + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load(mem) simde_wasm_v128_load((mem)) +#endif + +/* store */ + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store (void * mem, simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + wasm_v128_store(mem, a); + #elif defined(SIMDE_X86_SSE2_NATIVE) + _mm_storeu_si128(HEDLEY_REINTERPRET_CAST(__m128i*, mem), a); + #else + simde_memcpy(mem, &a, sizeof(a)); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store(mem, a) simde_wasm_v128_store((mem), (a)) +#endif + +/* make */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_make ( + int8_t c0, int8_t c1, int8_t c2, int8_t c3, int8_t c4, int8_t c5, int8_t c6, int8_t c7, + int8_t c8, int8_t c9, int8_t c10, int8_t c11, int8_t c12, int8_t c13, int8_t c14, int8_t c15) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return + wasm_i8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return + _mm_setr_epi8( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + #else + simde_v128_private r_; + + r_.i8[ 0] = c0; + r_.i8[ 1] = c1; + r_.i8[ 2] = c2; + r_.i8[ 3] = c3; + r_.i8[ 4] = c4; + r_.i8[ 5] = c5; + r_.i8[ 6] = c6; + r_.i8[ 7] = c7; + r_.i8[ 8] = c8; + r_.i8[ 9] = c9; + r_.i8[10] = c10; + r_.i8[11] = c11; + r_.i8[12] = c12; + r_.i8[13] = c13; + r_.i8[14] = c14; + r_.i8[15] = c15; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_i8x16_make( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_make ( + uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7, + uint8_t c8, uint8_t c9, uint8_t c10, uint8_t c11, uint8_t c12, uint8_t c13, uint8_t c14, uint8_t c15) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return + wasm_u8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi8( + HEDLEY_STATIC_CAST(char, c15), HEDLEY_STATIC_CAST(char, c14), HEDLEY_STATIC_CAST(char, c13), HEDLEY_STATIC_CAST(char, c12), + HEDLEY_STATIC_CAST(char, c11), HEDLEY_STATIC_CAST(char, c10), HEDLEY_STATIC_CAST(char, c9), HEDLEY_STATIC_CAST(char, c8), + HEDLEY_STATIC_CAST(char, c7), HEDLEY_STATIC_CAST(char, c6), HEDLEY_STATIC_CAST(char, c5), HEDLEY_STATIC_CAST(char, c4), + HEDLEY_STATIC_CAST(char, c3), HEDLEY_STATIC_CAST(char, c2), HEDLEY_STATIC_CAST(char, c1), HEDLEY_STATIC_CAST(char, c0)); + #else + simde_v128_private r_; + + r_.u8[ 0] = c0; + r_.u8[ 1] = c1; + r_.u8[ 2] = c2; + r_.u8[ 3] = c3; + r_.u8[ 4] = c4; + r_.u8[ 5] = c5; + r_.u8[ 6] = c6; + r_.u8[ 7] = c7; + r_.u8[ 8] = c8; + r_.u8[ 9] = c9; + r_.u8[10] = c10; + r_.u8[11] = c11; + r_.u8[12] = c12; + r_.u8[13] = c13; + r_.u8[14] = c14; + r_.u8[15] = c15; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_u8x16_make( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_make ( + int16_t c0, int16_t c1, int16_t c2, int16_t c3, int16_t c4, int16_t c5, int16_t c6, int16_t c7) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_make(c0, c1, c2, c3, c4, c5, c6, c7); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_setr_epi16(c0, c1, c2, c3, c4, c5, c6, c7); + #else + simde_v128_private r_; + + r_.i16[0] = c0; + r_.i16[1] = c1; + r_.i16[2] = c2; + r_.i16[3] = c3; + r_.i16[4] = c4; + r_.i16[5] = c5; + r_.i16[6] = c6; + r_.i16[7] = c7; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i16x8_make(c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_i16x8_make((c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_make ( + uint16_t c0, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_make(c0, c1, c2, c3, c4, c5, c6, c7); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi16( + HEDLEY_STATIC_CAST(short, c7), HEDLEY_STATIC_CAST(short, c6), HEDLEY_STATIC_CAST(short, c5), HEDLEY_STATIC_CAST(short, c4), + HEDLEY_STATIC_CAST(short, c3), HEDLEY_STATIC_CAST(short, c2), HEDLEY_STATIC_CAST(short, c1), HEDLEY_STATIC_CAST(short, c0)); + #else + simde_v128_private r_; + + r_.u16[0] = c0; + r_.u16[1] = c1; + r_.u16[2] = c2; + r_.u16[3] = c3; + r_.u16[4] = c4; + r_.u16[5] = c5; + r_.u16[6] = c6; + r_.u16[7] = c7; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u16x8_make(c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_u16x8_make((c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_make (int32_t c0, int32_t c1, int32_t c2, int32_t c3) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_make(c0, c1, c2, c3); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_setr_epi32(c0, c1, c2, c3); + #else + simde_v128_private r_; + + r_.i32[0] = c0; + r_.i32[1] = c1; + r_.i32[2] = c2; + r_.i32[3] = c3; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_make(c0, c1, c2, c3) simde_wasm_i32x4_make((c0), (c1), (c2), (c3)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_make (uint32_t c0, uint32_t c1, uint32_t c2, uint32_t c3) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_make(c0, c1, c2, c3); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi32( + HEDLEY_STATIC_CAST(int, c3), HEDLEY_STATIC_CAST(int, c2), HEDLEY_STATIC_CAST(int, c1), HEDLEY_STATIC_CAST(int, c0)); + #else + simde_v128_private r_; + + r_.u32[0] = c0; + r_.u32[1] = c1; + r_.u32[2] = c2; + r_.u32[3] = c3; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_make(c0, c1, c2, c3) simde_wasm_u32x4_make((c0), (c1), (c2), (c3)) +#endif + + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_make (int64_t c0, int64_t c1) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_make(c0, c1); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi64x(c1, c0); + #else + simde_v128_private r_; + + r_.i64[0] = c0; + r_.i64[1] = c1; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_make(c0, c1) simde_wasm_i64x2_make((c0), (c1)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_make (uint64_t c0, uint64_t c1) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_make(c0, c1); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi64x(HEDLEY_STATIC_CAST(int64_t, c1), HEDLEY_STATIC_CAST(int64_t, c0)); + #else + simde_v128_private r_; + + r_.u64[0] = c0; + r_.u64[1] = c1; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_make(c0, c1) simde_wasm_u64x2_make((c0), (c1)) +#endif + + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_make (simde_float32 c0, simde_float32 c1, simde_float32 c2, simde_float32 c3) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_make(c0, c1, c2, c3); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_setr_ps(c0, c1, c2, c3); + #else + r_.f32[0] = c0; + r_.f32[1] = c1; + r_.f32[2] = c2; + r_.f32[3] = c3; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_make(c0, c1, c2, c3) simde_wasm_f32x4_make((c0), (c1), (c2), (c3)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_make (simde_float64 c0, simde_float64 c1) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_make(c0, c1); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_set_pd(c1, c0); + #else + r_.f64[ 0] = c0; + r_.f64[ 1] = c1; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_make(c0, c1) simde_wasm_f64x2_make((c0), (c1)) +#endif + +/* const */ + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + wasm_i8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + SIMDE_ASSERT_CONSTANT_(c8); \ + SIMDE_ASSERT_CONSTANT_(c9); \ + SIMDE_ASSERT_CONSTANT_(c10); \ + SIMDE_ASSERT_CONSTANT_(c11); \ + SIMDE_ASSERT_CONSTANT_(c12); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c15); \ + \ + simde_wasm_i8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i8x16_const ( + int8_t c0, int8_t c1, int8_t c2, int8_t c3, int8_t c4, int8_t c5, int8_t c6, int8_t c7, + int8_t c8, int8_t c9, int8_t c10, int8_t c11, int8_t c12, int8_t c13, int8_t c14, int8_t c15) { + return simde_wasm_i8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_i8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + wasm_u8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + SIMDE_ASSERT_CONSTANT_(c8); \ + SIMDE_ASSERT_CONSTANT_(c9); \ + SIMDE_ASSERT_CONSTANT_(c10); \ + SIMDE_ASSERT_CONSTANT_(c11); \ + SIMDE_ASSERT_CONSTANT_(c12); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c15); \ + \ + simde_wasm_u8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u8x16_const ( + uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7, + uint8_t c8, uint8_t c9, uint8_t c10, uint8_t c11, uint8_t c12, uint8_t c13, uint8_t c14, uint8_t c15) { + return simde_wasm_u8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_u8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + wasm_i16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + \ + simde_wasm_i16x8_make( \ + c0, c1, c2, c3, c4, c5, c6, c7); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i16x8_const ( + int16_t c0, int16_t c1, int16_t c2, int16_t c3, int16_t c4, int16_t c5, int16_t c6, int16_t c7) { + return simde_wasm_i16x8_make( + c0, c1, c2, c3, c4, c5, c6, c7); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_i16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + wasm_u16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + \ + simde_wasm_u16x8_make( \ + c0, c1, c2, c3, c4, c5, c6, c7); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u16x8_const ( + uint16_t c0, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7) { + return simde_wasm_u16x8_make( + c0, c1, c2, c3, c4, c5, c6, c7); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_u16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i32x4_const( \ + c0, c1, c2, c3) \ + wasm_i32x4_const( \ + (c0), (c1), (c2), (c3)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i32x4_const( \ + c0, c1, c2, c3) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + \ + simde_wasm_i32x4_make( \ + c0, c1, c2, c3); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i32x4_const ( + int32_t c0, int32_t c1, int32_t c2, int32_t c3) { + return simde_wasm_i32x4_make( + c0, c1, c2, c3); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i32x4_const( \ + c0, c1, c2, c3) \ + simde_wasm_i32x4_const( \ + (c0), (c1), (c2), (c3)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u32x4_const( \ + c0, c1, c2, c3) \ + wasm_u32x4_const( \ + (c0), (c1), (c2), (c3)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u32x4_const( \ + c0, c1, c2, c3) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + \ + simde_wasm_u32x4_make( \ + c0, c1, c2, c3); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u32x4_const ( + uint32_t c0, uint32_t c1, uint32_t c2, uint32_t c3) { + return simde_wasm_u32x4_make( + c0, c1, c2, c3); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u32x4_const( \ + c0, c1, c2, c3) \ + simde_wasm_u32x4_const( \ + (c0), (c1), (c2), (c3)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i64x2_const( \ + c0, c1) \ + wasm_i64x2_const( \ + (c0), (c1)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i64x2_const( \ + c0, c1) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + \ + simde_wasm_i64x2_make( \ + c0, c1); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i64x2_const ( + int64_t c0, int64_t c1) { + return simde_wasm_i64x2_make( + c0, c1); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i64x2_const( \ + c0, c1) \ + simde_wasm_i64x2_const( \ + (c0), (c1)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u64x2_const( \ + c0, c1) \ + wasm_u64x2_const( \ + (c0), (c1)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u64x2_const( \ + c0, c1) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + \ + simde_wasm_u64x2_make( \ + c0, c1); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u64x2_const ( + uint64_t c0, uint64_t c1) { + return simde_wasm_u64x2_make( + c0, c1); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u64x2_const( \ + c0, c1) \ + simde_wasm_u64x2_const( \ + (c0), (c1)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_f32x4_const( \ + c0, c1, c2, c3) \ + wasm_f32x4_const( \ + (c0), (c1), (c2), (c3)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_f32x4_const( \ + c0, c1, c2, c3) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + \ + simde_wasm_f32x4_make( \ + c0, c1, c2, c3); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_f32x4_const ( + simde_float32 c0, simde_float32 c1, simde_float32 c2, simde_float32 c3) { + return simde_wasm_f32x4_make( + c0, c1, c2, c3); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_f32x4_const( \ + c0, c1, c2, c3) \ + simde_wasm_f32x4_const( \ + (c0), (c1), (c2), (c3)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_f64x2_const( \ + c0, c1) \ + wasm_f64x2_const( \ + (c0), (c1)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_f64x2_const( \ + c0, c1) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + \ + simde_wasm_f64x2_make( \ + c0, c1); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_f64x2_const ( + simde_float64 c0, simde_float64 c1) { + return simde_wasm_f64x2_make( + c0, c1); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_const(c0, c1) simde_wasm_f64x2_const((c0), (c1)) +#endif + +/* splat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_splat (int8_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi8(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vdupq_n_s8(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i8 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_splat(a) simde_wasm_i8x16_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_splat (uint8_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vdupq_n_u8(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u8 = vec_splats(HEDLEY_STATIC_CAST(unsigned char, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_splat(a) simde_wasm_u8x16_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i8x16_const_splat(a) wasm_i8x16_const_splat((a)) +#else + #define simde_wasm_i8x16_const_splat(a) simde_wasm_i8x16_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_const_splat(a) simde_wasm_i8x16_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u8x16_const_splat(a) wasm_u8x16_const_splat((a)) +#else + #define simde_wasm_u8x16_const_splat(a) simde_wasm_u8x16_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_const_splat(a) simde_wasm_u8x16_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_splat (int16_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi16(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vdupq_n_s16(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i16 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_splat(a) simde_wasm_i16x8_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_splat (uint16_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi16(HEDLEY_STATIC_CAST(int16_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vdupq_n_u16(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u16 = vec_splats(HEDLEY_STATIC_CAST(unsigned short, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_splat(a) simde_wasm_u16x8_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i16x8_const_splat(a) wasm_i16x8_const_splat((a)) +#else + #define simde_wasm_i16x8_const_splat(a) simde_wasm_i16x8_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_const_splat(a) simde_wasm_i16x8_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u16x8_const_splat(a) wasm_u16x8_const_splat((a)) +#else + #define simde_wasm_u16x8_const_splat(a) simde_wasm_u16x8_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_const_splat(a) simde_wasm_u16x8_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_splat (int32_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi32(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vdupq_n_s32(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_splat(a) simde_wasm_i32x4_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_splat (uint32_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vdupq_n_u32(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u32 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_splat(a) simde_wasm_u32x4_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i32x4_const_splat(a) wasm_i32x4_const_splat((a)) +#else + #define simde_wasm_i32x4_const_splat(a) simde_wasm_i32x4_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_const_splat(a) simde_wasm_i32x4_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u32x4_const_splat(a) wasm_u32x4_const_splat((a)) +#else + #define simde_wasm_u32x4_const_splat(a) simde_wasm_u32x4_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_const_splat(a) simde_wasm_u32x4_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_splat (int64_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,0,0)) + r_.sse_m128i = _mm_set1_epi64x(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vdupq_n_s64(a); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i64 = vec_splats(HEDLEY_STATIC_CAST(signed long long, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_splat(a) simde_wasm_i64x2_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_splat (uint64_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,0,0)) + r_.sse_m128i = _mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vdupq_n_u64(a); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u64 = vec_splats(HEDLEY_STATIC_CAST(unsigned long long, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_splat(a) simde_wasm_u64x2_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i64x2_const_splat(a) wasm_i64x2_const_splat((a)) +#else + #define simde_wasm_i64x2_const_splat(a) simde_wasm_i64x2_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_const_splat(a) simde_wasm_i64x2_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u64x2_const_splat(a) wasm_u64x2_const_splat((a)) +#else + #define simde_wasm_u64x2_const_splat(a) simde_wasm_u64x2_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_const_splat(a) simde_wasm_i64x2_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_splat (simde_float32 a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_set1_ps(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vdupq_n_f32(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) + r_.altivec_f32 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_splat(a) simde_wasm_f32x4_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_splat (simde_float64 a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_set1_pd(a); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vdupq_n_f64(a); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_f64 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_splat(a) simde_wasm_f64x2_splat((a)) +#endif + +/* load_splat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load8_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load8_splat(mem); + #else + int8_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i8x16_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load8_splat(mem) simde_wasm_v128_load8_splat((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load16_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load16_splat(mem); + #else + int16_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i16x8_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load16_splat(mem) simde_wasm_v128_load16_splat((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load32_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load32_splat(mem); + #else + int32_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i32x4_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load32_splat(mem) simde_wasm_v128_load32_splat((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load64_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load64_splat(mem); + #else + int64_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i64x2_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load64_splat(mem) simde_wasm_v128_load64_splat((mem)) +#endif + +/* extract_lane + * + * Note that, unlike normal WASM SIMD128 we return intN_t instead of + * int for sizeof(X) <= sizeof(int). This is done for portability; + * the regular API doesn't have to worry about things like int being + * 16 bits (like on AVR). + * + * This does mean that code which works in SIMDe may not work without + * changes on WASM, but luckily the necessary changes (i.e., casting + * the return values to smaller type when assigning to the smaller + * type) mean the code will work in *both* SIMDe and a native + * implementation. If you use the simde_* prefixed functions it will + * always work. */ + +SIMDE_FUNCTION_ATTRIBUTES +int8_t +simde_wasm_i8x16_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i8[lane & 15]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i8x16_extract_lane(a, lane) HEDLEY_STATIC_CAST(int8_t, wasm_i8x16_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #define simde_wasm_i8x16_extract_lane(a, lane) HEDLEY_STATIC_CAST(int8_t, _mm_extract_epi8(simde_v128_to_m128i(a), (lane) & 15)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde_wasm_i8x16_extract_lane(a, lane) vgetq_lane_s8(simde_v128_to_neon_i8(a), (lane) & 15) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_extract_lane(a, lane) simde_wasm_i8x16_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +int16_t +simde_wasm_i16x8_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i16[lane & 7]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i16x8_extract_lane(a, lane) HEDLEY_STATIC_CAST(int16_t, wasm_i16x8_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE2_NATIVE) + #define simde_wasm_i16x8_extract_lane(a, lane) HEDLEY_STATIC_CAST(int16_t, _mm_extract_epi16((a), (lane) & 7)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i16x8_extract_lane(a, lane) vgetq_lane_s16(simde_v128_to_neon_i16(a), (lane) & 7) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extract_lane(a, lane) simde_wasm_i16x8_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +int32_t +simde_wasm_i32x4_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i32[lane & 3]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i32x4_extract_lane(a, lane) HEDLEY_STATIC_CAST(int32_t, wasm_i32x4_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #define simde_wasm_i32x4_extract_lane(a, lane) HEDLEY_STATIC_CAST(int32_t, _mm_extract_epi32((a), (lane) & 3)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i32x4_extract_lane(a, lane) vgetq_lane_s32(simde_v128_to_neon_i32(a), (lane) & 3) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extract_lane(a, lane) simde_wasm_i32x4_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +int64_t +simde_wasm_i64x2_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i64[lane & 1]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i64x2_extract_lane(a, lane) HEDLEY_STATIC_CAST(int64_t, wasm_i64x2_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) && defined(SIMDE_ARCH_AMD64) + #define simde_wasm_i64x2_extract_lane(a, lane) HEDLEY_STATIC_CAST(int64_t, _mm_extract_epi64((a), (lane) & 1)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i64x2_extract_lane(a, lane) vgetq_lane_s64(simde_v128_to_neon_i64(a), (lane) & 1) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extract_lane(a, lane) simde_wasm_i64x2_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint8_t +simde_wasm_u8x16_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u8[lane & 15]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u8x16_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint8_t, wasm_u8x16_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde_wasm_u8x16_extract_lane(a, lane) vgetq_lane_u8(simde_v128_to_neon_u8(a), (lane) & 15) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_extract_lane(a, lane) simde_wasm_u8x16_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint16_t +simde_wasm_u16x8_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u16[lane & 7]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u16x8_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint16_t, wasm_u16x8_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_u16x8_extract_lane(a, lane) vgetq_lane_u16(simde_v128_to_neon_u16(a), (lane) & 7) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extract_lane(a, lane) simde_wasm_u16x8_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_u32x4_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u32[lane & 3]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u32x4_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint32_t, wasm_u32x4_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_u32x4_extract_lane(a, lane) vgetq_lane_u32(simde_v128_to_neon_u32(a), (lane) & 3) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extract_lane(a, lane) simde_wasm_u32x4_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint64_t +simde_wasm_u64x2_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u64[lane & 1]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u64x2_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint64_t, wasm_u64x2_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_u64x2_extract_lane(a, lane) vgetq_lane_u64(simde_v128_to_neon_u64(a), (lane) & 1) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extract_lane(a, lane) simde_wasm_u64x2_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_float32 +simde_wasm_f32x4_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.f32[lane & 3]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f32x4_extract_lane(a, lane) wasm_f32x4_extract_lane((a), (lane)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #define simde_wasm_f32x4(a, lane) _mm_extract_ps(simde_v128_to_m128(a), (lane) & 3) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f32x4_extract_lane(a, lane) vgetq_lane_f32(simde_v128_to_neon_f32(a), (lane) & 3) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_extract_lane(a, lane) simde_wasm_f32x4_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_float64 +simde_wasm_f64x2_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.f64[lane & 1]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f64x2_extract_lane(a, lane) wasm_f64x2_extract_lane((a), (lane)) +#elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f64x2_extract_lane(a, lane) vgetq_lane_f64(simde_v128_to_neon_f64(a), (lane) & 1) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_extract_lane(a, lane) simde_wasm_f64x2_extract_lane((a), (lane)) +#endif + +/* replace_lane */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_replace_lane (simde_v128_t a, const int lane, int8_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i8[lane & 15] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i8x16_replace_lane(a, lane, value) wasm_i8x16_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #if defined(__clang__) && !SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0) + #define simde_wasm_i8x16_replace_lane(a, lane, value) HEDLEY_REINTERPRET_CAST(simde_v128_t, _mm_insert_epi8((a), (value), (lane) & 15)) + #else + #define simde_wasm_i8x16_replace_lane(a, lane, value) _mm_insert_epi8((a), (value), (lane) & 15) + #endif +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde_wasm_i8x16_replace_lane(a, lane, value) simde_v128_from_neon_i8(vsetq_lane_s8((value), simde_v128_to_neon_i8(a), (lane) & 15)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_replace_lane(a, lane, value) simde_wasm_i8x16_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_replace_lane (simde_v128_t a, const int lane, int16_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i16[lane & 7] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i16x8_replace_lane(a, lane, value) wasm_i16x8_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE2_NATIVE) + #define simde_wasm_i16x8_replace_lane(a, lane, value) _mm_insert_epi16((a), (value), (lane) & 7) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i16x8_replace_lane(a, lane, value) simde_v128_from_neon_i16(vsetq_lane_s16((value), simde_v128_to_neon_i16(a), (lane) & 7)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_replace_lane(a, lane, value) simde_wasm_i16x8_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_replace_lane (simde_v128_t a, const int lane, int32_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i32[lane & 3] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i32x4_replace_lane(a, lane, value) wasm_i32x4_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #if defined(__clang__) && !SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0) + #define simde_wasm_i32x4_replace_lane(a, lane, value) HEDLEY_REINTERPRET_CAST(simde_v128_t, _mm_insert_epi32((a), (value), (lane) & 3)) + #else + #define simde_wasm_i32x4_replace_lane(a, lane, value) _mm_insert_epi32((a), (value), (lane) & 3) + #endif +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i32x4_replace_lane(a, lane, value) simde_v128_from_neon_i32(vsetq_lane_s32((value), simde_v128_to_neon_i32(a), (lane) & 3)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_replace_lane(a, lane, value) simde_wasm_i32x4_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_replace_lane (simde_v128_t a, const int lane, int64_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i64[lane & 1] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i64x2_replace_lane(a, lane, value) wasm_i64x2_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) && defined(SIMDE_ARCH_AMD64) + #define simde_wasm_i64x2_replace_lane(a, lane, value) _mm_insert_epi64((a), (value), (lane) & 1) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i64x2_replace_lane(a, lane, value) simde_v128_from_neon_i64(vsetq_lane_s64((value), simde_v128_to_neon_i64(a), (lane) & 1)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_replace_lane(a, lane, value) simde_wasm_i64x2_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_replace_lane (simde_v128_t a, const int lane, simde_float32 value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.f32[lane & 3] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f32x4_replace_lane(a, lane, value) wasm_f32x4_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f32x4_replace_lane(a, lane, value) simde_v128_from_neon_f32(vsetq_lane_f32((value), simde_v128_to_neon_f32(a), (lane) & 3)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_replace_lane(a, lane, value) simde_wasm_f32x4_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_replace_lane (simde_v128_t a, const int lane, simde_float64 value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.f64[lane & 1] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f64x2_replace_lane(a, lane, value) wasm_f64x2_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f64x2_replace_lane(a, lane, value) simde_v128_from_neon_f64(vsetq_lane_f64((value), simde_v128_to_neon_f64(a), (lane) & 1)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_replace_lane(a, lane, value) simde_wasm_f64x2_replace_lane((a), (lane), (value)) +#endif + +/* eq */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vceqq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 == b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] == b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_eq(a, b) simde_wasm_i8x16_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vceqq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 == b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] == b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_eq(a, b) simde_wasm_i16x8_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vceqq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 == b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] == b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_eq(a, b) simde_wasm_i32x4_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vceqq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 == b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] == b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_eq(a, b) simde_wasm_i64x2_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpeq_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vceqq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 == b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] == b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_eq(a, b) simde_wasm_f32x4_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpeq_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vceqq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 == b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] == b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_eq(a, b) simde_wasm_f64x2_eq((a), (b)) +#endif + +/* ne */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vmvnq_u8(vceqq_s8(a_.neon_i8, b_.neon_i8)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 != b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] != b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_ne(a, b) simde_wasm_i8x16_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmvnq_u16(vceqq_s16(a_.neon_i16, b_.neon_i16)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 != b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] != b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_ne(a, b) simde_wasm_i16x8_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmvnq_u32(vceqq_s32(a_.neon_i32, b_.neon_i32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 != b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] != b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_ne(a, b) simde_wasm_i32x4_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vmvnq_u32(vreinterpretq_u32_u64(vceqq_s64(a_.neon_i64, b_.neon_i64))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 != b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] != b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_ne(a, b) simde_wasm_i64x2_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpneq_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmvnq_u32(vceqq_f32(a_.neon_f32, b_.neon_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 != b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] != b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_ne(a, b) simde_wasm_f32x4_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpneq_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vmvnq_u32(vreinterpretq_u32_u64(vceqq_f64(a_.neon_f64, b_.neon_f64))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 != b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] != b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_ne(a, b) simde_wasm_f64x2_ne((a), (b)) +#endif + +/* lt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmplt_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcltq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), vec_cmplt(a_.altivec_i8, b_.altivec_i8)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 < b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] < b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_lt(a, b) simde_wasm_i8x16_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmplt_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcltq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed short), vec_cmplt(a_.altivec_i16, b_.altivec_i16)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 < b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] < b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_lt(a, b) simde_wasm_i16x8_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmplt_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcltq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), vec_cmplt(a_.altivec_i32, b_.altivec_i32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 < b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] < b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_lt(a, b) simde_wasm_i32x4_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcltq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + int32x4_t tmp = vorrq_s32( + vandq_s32( + vreinterpretq_s32_u32(vceqq_s32(b_.neon_i32, a_.neon_i32)), + vsubq_s32(a_.neon_i32, b_.neon_i32) + ), + vreinterpretq_s32_u32(vcgtq_s32(b_.neon_i32, a_.neon_i32)) + ); + int32x4x2_t trn = vtrnq_s32(tmp, tmp); + r_.neon_i32 = trn.val[1]; + #elif defined(SIMDE_X86_SSE4_2_NATIVE) + r_.sse_m128i = _mm_cmpgt_epi64(b_.sse_m128i, a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://stackoverflow.com/a/65175746 */ + r_.sse_m128i = + _mm_shuffle_epi32( + _mm_or_si128( + _mm_and_si128( + _mm_cmpeq_epi32(b_.sse_m128i, a_.sse_m128i), + _mm_sub_epi64(a_.sse_m128i, b_.sse_m128i) + ), + _mm_cmpgt_epi32( + b_.sse_m128i, + a_.sse_m128i + ) + ), + _MM_SHUFFLE(3, 3, 1, 1) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed int) tmp = + vec_or( + vec_and( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), vec_cmpeq(b_.altivec_i32, a_.altivec_i32)), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), vec_sub( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed long long), a_.altivec_i32), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed long long), b_.altivec_i32) + )) + ), + vec_cmpgt(b_.altivec_i32, a_.altivec_i32) + ); + r_.altivec_i32 = vec_mergeo(tmp, tmp); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 < b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] < b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_lt(a, b) simde_wasm_i64x2_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcltq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_cmplt(a_.altivec_u8, b_.altivec_u8)); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i tmp = _mm_subs_epu8(b_.sse_m128i, a_.sse_m128i); + r_.sse_m128i = _mm_adds_epu8(tmp, _mm_sub_epi8(_mm_setzero_si128(), tmp)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 < b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] < b_.u8[i]) ? ~UINT8_C(0) : UINT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_lt(a, b) simde_wasm_u8x16_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcltq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned short), vec_cmplt(a_.altivec_u16, b_.altivec_u16)); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i tmp = _mm_subs_epu16(b_.sse_m128i, a_.sse_m128i); + r_.sse_m128i = _mm_adds_epu16(tmp, _mm_sub_epi16(_mm_setzero_si128(), tmp)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 < b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] < b_.u16[i]) ? ~UINT16_C(0) : UINT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_lt(a, b) simde_wasm_u16x8_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcltq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_xor_si128( + _mm_cmpgt_epi32(b_.sse_m128i, a_.sse_m128i), + _mm_srai_epi32(_mm_xor_si128(b_.sse_m128i, a_.sse_m128i), 31) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned int), vec_cmplt(a_.altivec_u32, b_.altivec_u32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 < b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] < b_.u32[i]) ? ~UINT32_C(0) : UINT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_lt(a, b) simde_wasm_u32x4_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmplt_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcltq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmplt(a_.altivec_f32, b_.altivec_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 < b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] < b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_lt(a, b) simde_wasm_f32x4_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmplt_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcltq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(double), vec_cmplt(a_.altivec_f64, b_.altivec_f64)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 < b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] < b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_lt(a, b) simde_wasm_f64x2_lt((a), (b)) +#endif + +/* gt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_gt(a, b); + #else + return simde_wasm_i8x16_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_gt(a, b) simde_wasm_i8x16_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_gt(a, b); + #else + return simde_wasm_i16x8_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_gt(a, b) simde_wasm_i16x8_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_gt(a, b); + #else + return simde_wasm_i32x4_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_gt(a, b) simde_wasm_i32x4_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_gt(a, b); + #else + return simde_wasm_i64x2_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_gt(a, b) simde_wasm_i64x2_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_gt(a, b); + #else + return simde_wasm_u8x16_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_gt(a, b) simde_wasm_u8x16_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_gt(a, b); + #else + return simde_wasm_u16x8_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_gt(a, b) simde_wasm_u16x8_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_gt(a, b); + #else + return simde_wasm_u32x4_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_gt(a, b) simde_wasm_u32x4_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_gt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpgt_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgtq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmpgt(a_.altivec_f32, b_.altivec_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 > b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] > b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_gt(a, b) simde_wasm_f32x4_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_gt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpgt_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcgtq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(double), vec_cmpgt(a_.altivec_f64, b_.altivec_f64)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.f64 > b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] > b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_gt(a, b) simde_wasm_f64x2_gt((a), (b)) +#endif + +/* le */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(a_.sse_m128i, _mm_min_epi8(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcleq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 <= b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] <= b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_le(a, b) simde_wasm_i8x16_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(a_.sse_m128i, _mm_min_epi16(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcleq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 <= b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] <= b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_le(a, b) simde_wasm_i16x8_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(a_.sse_m128i, _mm_min_epi32(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcleq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 <= b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] <= b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_le(a, b) simde_wasm_i32x4_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi64(a_.sse_m128i, _mm_min_epi64(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcleq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 <= b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] <= b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_le(a, b) simde_wasm_i64x2_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcleq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 <= b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] <= b_.u8[i]) ? ~UINT8_C(0) : UINT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_le(a, b) simde_wasm_u8x16_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcleq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 <= b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] <= b_.u16[i]) ? ~UINT16_C(0) : UINT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_le(a, b) simde_wasm_u16x8_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcleq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 <= b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] <= b_.u32[i]) ? ~UINT32_C(0) : UINT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_le(a, b) simde_wasm_u32x4_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmple_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcleq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 <= b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] <= b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_le(a, b) simde_wasm_f32x4_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmple_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcleq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 <= b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] <= b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_le(a, b) simde_wasm_f64x2_le((a), (b)) +#endif + +/* ge */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(_mm_min_epi8(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcgeq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 >= b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] >= b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_ge(a, b) simde_wasm_i8x16_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(_mm_min_epi16(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcgeq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 >= b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] >= b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_ge(a, b) simde_wasm_i16x8_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(_mm_min_epi32(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgeq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 >= b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] >= b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_ge(a, b) simde_wasm_i32x4_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi64(_mm_min_epi64(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcgeq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 >= b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] >= b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_ge(a, b) simde_wasm_i64x2_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(_mm_min_epu8(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcgeq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 >= b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] >= b_.u8[i]) ? ~UINT8_C(0) : UINT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_ge(a, b) simde_wasm_u8x16_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(_mm_min_epu16(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcgeq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 >= b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] >= b_.u16[i]) ? ~UINT16_C(0) : UINT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_ge(a, b) simde_wasm_u16x8_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(_mm_min_epu32(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgeq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 >= b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] >= b_.u32[i]) ? ~UINT32_C(0) : UINT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_ge(a, b) simde_wasm_u32x4_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpge_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgeq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 >= b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] >= b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_ge(a, b) simde_wasm_f32x4_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpge_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcgeq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 >= b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] >= b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_ge(a, b) simde_wasm_f64x2_ge((a), (b)) +#endif + +/* not */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_not (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_not(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(a_.sse_m128i, _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmvnq_s32(a_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = ~a_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = ~(a_.i32f[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_not(a) simde_wasm_v128_not((a)) +#endif + +/* and */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_and (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_and(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_and_si128(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vandq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f & b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] & b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_and(a, b) simde_wasm_v128_and((a), (b)) +#endif + +/* or */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_or (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_or(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_or_si128(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vorrq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f | b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] | b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_or(a, b) simde_wasm_v128_or((a), (b)) +#endif + +/* xor */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_xor (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_xor(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = veorq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f ^ b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] ^ b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_xor(a, b) simde_wasm_v128_xor((a), (b)) +#endif + +/* andnot */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_andnot (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_andnot(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_andnot_si128(b_.sse_m128i, a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vbicq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f & ~b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] & ~b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_andnot(a, b) simde_wasm_v128_andnot((a), (b)) +#endif + +/* bitselect */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_bitselect (simde_v128_t a, simde_v128_t b, simde_v128_t mask) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_bitselect(a, b, mask); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + mask_ = simde_v128_to_private(mask), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_ternarylogic_epi32(mask_.sse_m128i, a_.sse_m128i, b_.sse_m128i, 0xca); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128 (mask_.sse_m128i, a_.sse_m128i), + _mm_andnot_si128(mask_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vbslq_s32(mask_.neon_u32, a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_sel(b_.altivec_i32, a_.altivec_i32, mask_.altivec_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = (a_.i32f & mask_.i32f) | (b_.i32f & ~mask_.i32f); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = (a_.i32f[i] & mask_.i32f[i]) | (b_.i32f[i] & ~mask_.i32f[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_bitselect(a, b, c) simde_wasm_v128_bitselect((a), (b), (c)) +#endif + +/* bitmask */ + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i8x16_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_epi8(a_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + /* https://github.com/WebAssembly/simd/pull/201#issue-380682845 */ + static const uint8_t md[16] = { + 1 << 0, 1 << 1, 1 << 2, 1 << 3, + 1 << 4, 1 << 5, 1 << 6, 1 << 7, + 1 << 0, 1 << 1, 1 << 2, 1 << 3, + 1 << 4, 1 << 5, 1 << 6, 1 << 7, + }; + + /* Extend sign bit over entire lane */ + uint8x16_t extended = vreinterpretq_u8_s8(vshrq_n_s8(a_.neon_i8, 7)); + /* Clear all but the bit we're interested in. */ + uint8x16_t masked = vandq_u8(vld1q_u8(md), extended); + /* Alternate bytes from low half and high half */ + uint8x8x2_t tmp = vzip_u8(vget_low_u8(masked), vget_high_u8(masked)); + uint16x8_t x = vreinterpretq_u16_u8(vcombine_u8(tmp.val[0], tmp.val[1])); + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = vaddvq_u16(x); + #else + uint64x2_t t64 = vpaddlq_u32(vpaddlq_u16(x)); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 0)) + + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 1)); + #endif + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i8) / sizeof(a_.i8[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i8[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_bitmask(a) simde_wasm_i8x16_bitmask((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i16x8_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_epi8(_mm_packs_epi16(a_.sse_m128i, _mm_setzero_si128()))); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + static const uint16_t md[8] = { + 1 << 0, 1 << 1, 1 << 2, 1 << 3, + 1 << 4, 1 << 5, 1 << 6, 1 << 7, + }; + + uint16x8_t extended = vreinterpretq_u16_s16(vshrq_n_s16(a_.neon_i16, 15)); + uint16x8_t masked = vandq_u16(vld1q_u16(md), extended); + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = vaddvq_u16(masked); + #else + uint64x2_t t64 = vpaddlq_u32(vpaddlq_u16(masked)); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 0)) + + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 1)); + #endif + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 112, 96, 80, 64, 48, 32, 16, 0, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 112, 96, 80, 64, 48, 32, 16, 0, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i16) / sizeof(a_.i16[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i16[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_bitmask(a) simde_wasm_i16x8_bitmask((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i32x4_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_ps(a_.sse_m128)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + static const uint32_t md[4] = { + 1 << 0, 1 << 1, 1 << 2, 1 << 3 + }; + + uint32x4_t extended = vreinterpretq_u32_s32(vshrq_n_s32(a_.neon_i32, 31)); + uint32x4_t masked = vandq_u32(vld1q_u32(md), extended); + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, vaddvq_u32(masked)); + #else + uint64x2_t t64 = vpaddlq_u32(masked); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 0)) + + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 1)); + #endif + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i32) / sizeof(a_.i32[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i32[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_bitmask(a) simde_wasm_i32x4_bitmask((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i64x2_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_pd(a_.sse_m128d)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + HEDLEY_DIAGNOSTIC_PUSH + SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ + uint64x2_t shifted = vshrq_n_u64(a_.neon_u64, 63); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(shifted, 0)) + + (HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(shifted, 1)) << 1); + HEDLEY_DIAGNOSTIC_POP + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 64, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 64, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i64) / sizeof(a_.i64[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i64[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_bitmask(a) simde_wasm_i64x2_bitmask((a)) +#endif + +/* abs */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_abs_epi8(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vabsq_s8(a_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_abs(a_.altivec_i8); + #elif defined(SIMDE_VECTOR_SCALAR) + __typeof__(r_.i8) mask = HEDLEY_REINTERPRET_CAST(__typeof__(mask), a_.i8 < 0); + r_.i8 = (-a_.i8 & mask) | (a_.i8 & ~mask); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] < INT8_C(0)) ? -a_.i8[i] : a_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_abs(a) simde_wasm_i8x16_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_abs_epi16(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vabsq_s16(a_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_abs(a_.altivec_i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] < INT8_C(0)) ? -a_.i16[i] : a_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_abs(a) simde_wasm_i16x8_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_abs_epi32(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i32 = vabsq_s32(a_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_abs(a_.altivec_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i32) z = { 0, }; + __typeof__(r_.i32) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 < z); + r_.i32 = (-a_.i32 & m) | (a_.i32 & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] < INT32_C(0)) ? -a_.i32[i] : a_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_abs(a) simde_wasm_i32x4_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_abs_epi64(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i64 = vabsq_s64(a_.neon_i64); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_abs(a_.altivec_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i64) z = { 0, }; + __typeof__(r_.i64) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 < z); + r_.i64 = (-a_.i64 & m) | (a_.i64 & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] < INT64_C(0)) ? -a_.i64[i] : a_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_abs(a) simde_wasm_i64x2_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_andnot_si128(_mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, UINT32_C(1) << 31)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vabsq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = vec_abs(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_signbit(a_.f32[i]) ? -a_.f32[i] : a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_abs(a) simde_wasm_f32x4_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_andnot_si128(_mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, UINT64_C(1) << 63)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vabsq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_abs(a_.altivec_f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_signbit(a_.f64[i]) ? -a_.f64[i] : a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_abs(a) simde_wasm_f64x2_abs((a)) +#endif + +/* neg */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi8(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vnegq_s8(a_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,1,0)) + r_.altivec_i8 = vec_neg(a_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = -a_.i8; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = -a_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_neg(a) simde_wasm_i8x16_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi16(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vnegq_s16(a_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i16 = vec_neg(a_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = -a_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = -a_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_neg(a) simde_wasm_i16x8_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi32(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vnegq_s32(a_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i32 = vec_neg(a_.altivec_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = -a_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = -a_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_neg(a) simde_wasm_i32x4_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi64(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i64 = vnegq_s64(a_.neon_i64); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_neg(a_.altivec_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = -a_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = -a_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_neg(a) simde_wasm_i64x2_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(_mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, UINT32_C(1) << 31)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vnegq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_f32 = vec_neg(a_.altivec_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = -a_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = -a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_neg(a) simde_wasm_f32x4_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(_mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, UINT64_C(1) << 63)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vnegq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_f64 = vec_neg(a_.altivec_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = -a_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = -a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_neg(a) simde_wasm_f64x2_neg((a)) +#endif + +/* any_true */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_v128_any_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_any_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + simde_bool r = 0; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r = !_mm_test_all_zeros(a_.sse_m128i, _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r = _mm_movemask_epi8(_mm_cmpeq_epi8(a_.sse_m128i, _mm_setzero_si128())) != 0xffff; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = !!vmaxvq_u32(a_.neon_u32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint32x2_t tmp = vpmax_u32(vget_low_u32(a_.u32), vget_high_u32(a_.u32)); + r = vget_lane_u32(tmp, 0); + r |= vget_lane_u32(tmp, 1); + r = !!r; + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r = HEDLEY_STATIC_CAST(simde_bool, vec_any_ne(a_.altivec_i32, vec_splats(0))); + #else + int_fast32_t ri = 0; + SIMDE_VECTORIZE_REDUCTION(|:ri) + for (size_t i = 0 ; i < (sizeof(a_.i32f) / sizeof(a_.i32f[0])) ; i++) { + ri |= (a_.i32f[i]); + } + r = !!ri; + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_any_true(a) simde_wasm_v128_any_true((a)) +#endif + +/* all_true */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i8x16_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi8(a_.sse_m128i, _mm_set1_epi8(INT8_C(0))), _mm_set1_epi8(~INT8_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_epi8(_mm_cmpeq_epi8(a_.sse_m128i, _mm_setzero_si128())) == 0; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return !vmaxvq_u8(vceqzq_u8(a_.neon_u8)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint8x16_t zeroes = vdupq_n_u8(0); + uint8x16_t false_set = vceqq_u8(a_.neon_u8, vdupq_n_u8(0)); + uint32x4_t d_all_true = vceqq_u32(vreinterpretq_u32_u8(false_set), vreinterpretq_u32_u8(zeroes)); + uint32x2_t q_all_true = vpmin_u32(vget_low_u32(d_all_true), vget_high_u32(d_all_true)); + + return !!( + vget_lane_u32(q_all_true, 0) & + vget_lane_u32(q_all_true, 1)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i8, vec_splats(HEDLEY_STATIC_CAST(signed char, 0)))); + #else + int8_t r = !INT8_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i8) / sizeof(a_.i8[0])) ; i++) { + r &= !!(a_.i8[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_all_true(a) simde_wasm_i8x16_all_true((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i16x8_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi16(a_.sse_m128i, _mm_setzero_si128()), _mm_set1_epi16(~INT16_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_epi8(_mm_cmpeq_epi16(a_.sse_m128i, _mm_setzero_si128())) == 0; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return !vmaxvq_u16(vceqzq_u16(a_.neon_u16)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint16x8_t zeroes = vdupq_n_u16(0); + uint16x8_t false_set = vceqq_u16(a_.neon_u16, vdupq_n_u16(0)); + uint32x4_t d_all_true = vceqq_u32(vreinterpretq_u32_u16(false_set), vreinterpretq_u32_u16(zeroes)); + uint32x2_t q_all_true = vpmin_u32(vget_low_u32(d_all_true), vget_high_u32(d_all_true)); + + return !!( + vget_lane_u32(q_all_true, 0) & + vget_lane_u32(q_all_true, 1)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i16, vec_splats(HEDLEY_STATIC_CAST(signed short, 0)))); + #else + int16_t r = !INT16_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i16) / sizeof(a_.i16[0])) ; i++) { + r &= !!(a_.i16[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_all_true(a) simde_wasm_i16x8_all_true((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i32x4_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi32(a_.sse_m128i, _mm_setzero_si128()), _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_ps(_mm_castsi128_ps(_mm_cmpeq_epi32(a_.sse_m128i, _mm_setzero_si128()))) == 0; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return !vmaxvq_u32(vceqzq_u32(a_.neon_u32)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint32x4_t d_all_true = vmvnq_u32(vceqq_u32(a_.neon_u32, vdupq_n_u32(0))); + uint32x2_t q_all_true = vpmin_u32(vget_low_u32(d_all_true), vget_high_u32(d_all_true)); + + return !!( + vget_lane_u32(q_all_true, 0) & + vget_lane_u32(q_all_true, 1)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i32, vec_splats(HEDLEY_STATIC_CAST(signed int, 0)))); + #else + int32_t r = !INT32_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i32) / sizeof(a_.i32[0])) ; i++) { + r &= !!(a_.i32[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_all_true(a) simde_wasm_i32x4_all_true((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i64x2_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) && defined(__wasm_unimplemented_simd128__) + return wasm_i64x2_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi64(a_.sse_m128i, _mm_setzero_si128()), _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_pd(_mm_cmpeq_pd(a_.sse_m128d, _mm_setzero_pd())) == 0; + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i64, HEDLEY_REINTERPRET_CAST(__typeof__(a_.altivec_i64), vec_splats(0)))); + #else + int64_t r = !INT32_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i64) / sizeof(a_.i64[0])) ; i++) { + r &= !!(a_.i64[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(__wasm_unimplemented_simd128__)) + #define wasm_i64x2_all_true(a) simde_wasm_i64x2_all_true((a)) +#endif + +/* shl */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vshlq_s8(a_.neon_i8, vdupq_n_s8(HEDLEY_STATIC_CAST(int8_t, count & 7))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_sl(a_.altivec_i8, vec_splats(HEDLEY_STATIC_CAST(unsigned char, count & 7))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i8 = a_.i8 << (count & 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = HEDLEY_STATIC_CAST(int8_t, a_.i8[i] << (count & 7)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_shl(a, count) simde_wasm_i8x16_shl((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sll_epi16(a_.sse_m128i, _mm_cvtsi32_si128(count & 15)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vshlq_s16(a_.neon_i16, vdupq_n_s16(HEDLEY_STATIC_CAST(int16_t, count & 15))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_sl(a_.altivec_i16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, count & 15))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i16 = a_.i16 << (count & 15); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i16[i] << (count & 15)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_shl(a, count) simde_wasm_i16x8_shl((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sll_epi32(a_.sse_m128i, _mm_cvtsi32_si128(count & 31)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vshlq_s32(a_.neon_i32, vdupq_n_s32(HEDLEY_STATIC_CAST(int32_t, count & 31))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_sl(a_.altivec_i32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, count & 31))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i32 = a_.i32 << (count & 31); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i32[i] << (count & 31)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_shl(a, count) simde_wasm_i32x4_shl((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + #if defined(SIMDE_BUG_CLANG_60655) + count = count & 63; + #endif + return wasm_i64x2_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sll_epi64(a_.sse_m128i, _mm_cvtsi32_si128(count & 63)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vshlq_s64(a_.neon_i64, vdupq_n_s64(HEDLEY_STATIC_CAST(int64_t, count & 63))); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_sl(a_.altivec_i64, vec_splats(HEDLEY_STATIC_CAST(unsigned long long, count & 63))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i64 = a_.i64 << (count & 63); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i64[i] << (count & 63)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_shl(a, count) simde_wasm_i64x2_shl((a), (count)) +#endif + +/* shr */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vshlq_s8(a_.neon_i8, vdupq_n_s8(-HEDLEY_STATIC_CAST(int8_t, count & 7))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_sra(a_.altivec_i8, vec_splats(HEDLEY_STATIC_CAST(unsigned char, count & 7))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i8 = a_.i8 >> (count & 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = HEDLEY_STATIC_CAST(int8_t, a_.i8[i] >> (count & 7)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_shr(a, count) simde_wasm_i8x16_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sra_epi16(a_.sse_m128i, _mm_cvtsi32_si128(count & 15)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vshlq_s16(a_.neon_i16, vdupq_n_s16(-HEDLEY_STATIC_CAST(int16_t, count & 15))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_sra(a_.altivec_i16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, count & 15))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i16 = a_.i16 >> (count & 15); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i16[i] >> (count & 15)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_shr(a, count) simde_wasm_i16x8_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_sra_epi32(a_.sse_m128i, _mm_cvtsi32_si128(count & 31)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vshlq_s32(a_.neon_i32, vdupq_n_s32(-HEDLEY_STATIC_CAST(int32_t, count & 31))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_sra(a_.altivec_i32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, count & 31))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i32 = a_.i32 >> (count & 31); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i32[i] >> (count & 31)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_shr(a, count) simde_wasm_i32x4_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + #if defined(SIMDE_BUG_CLANG_60655) + count = count & 63; + #endif + return wasm_i64x2_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + return _mm_sra_epi64(a_.sse_m128i, _mm_cvtsi32_si128(count & 63)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vshlq_s64(a_.neon_i64, vdupq_n_s64(-HEDLEY_STATIC_CAST(int64_t, count & 63))); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_sra(a_.altivec_i64, vec_splats(HEDLEY_STATIC_CAST(unsigned long long, count & 63))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i64 = a_.i64 >> (count & 63); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i64[i] >> (count & 63)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_shr(a, count) simde_wasm_i64x2_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vshlq_u8(a_.neon_u8, vdupq_n_s8(-HEDLEY_STATIC_CAST(int8_t, count & 7))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_sr(a_.altivec_u8, vec_splats(HEDLEY_STATIC_CAST(unsigned char, count & 7))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u8 = a_.u8 >> (count & 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = HEDLEY_STATIC_CAST(uint8_t, a_.u8[i] >> (count & 7)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_shr(a, count) simde_wasm_u8x16_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_srl_epi16(a_.sse_m128i, _mm_cvtsi32_si128(count & 15)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vshlq_u16(a_.neon_u16, vdupq_n_s16(-HEDLEY_STATIC_CAST(int16_t, count & 15))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_sr(a_.altivec_u16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, count & 15))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u16 = a_.u16 >> (count & 15); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u16[i] >> (count & 15)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_shr(a, count) simde_wasm_u16x8_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_srl_epi32(a_.sse_m128i, _mm_cvtsi32_si128(count & 31)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vshlq_u32(a_.neon_u32, vdupq_n_s32(-HEDLEY_STATIC_CAST(int32_t, count & 31))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u32 = vec_sr(a_.altivec_u32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, count & 31))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u32 = a_.u32 >> (count & 31); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u32[i] >> (count & 31)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_shr(a, count) simde_wasm_u32x4_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + #if defined(SIMDE_BUG_CLANG_60655) + count = count & 63; + #endif + return wasm_u64x2_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_srl_epi64(a_.sse_m128i, _mm_cvtsi32_si128(count & 63)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vshlq_u64(a_.neon_u64, vdupq_n_s64(-HEDLEY_STATIC_CAST(int64_t, count & 63))); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_u64 = vec_sr(a_.altivec_u64, vec_splats(HEDLEY_STATIC_CAST(unsigned long long, count & 63))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u64 = a_.u64 >> (count & 63); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, a_.u64[i] >> (count & 63)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_shr(a, count) simde_wasm_u64x2_shr((a), (count)) +#endif + +/* add */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = a_.i8 + b_.i8; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = a_.i8[i] + b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_add(a, b) simde_wasm_i8x16_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = a_.i16 + b_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a_.i16[i] + b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_add(a, b) simde_wasm_i16x8_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = a_.i32 + b_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a_.i32[i] + b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_add(a, b) simde_wasm_i32x4_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = a_.i64 + b_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a_.i64[i] + b_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_add(a, b) simde_wasm_i64x2_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_add_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 + b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] + b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_add(a, b) simde_wasm_f32x4_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_add_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 + b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] + b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_add(a, b) simde_wasm_f64x2_add((a), (b)) +#endif + +/* sub */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = a_.i8 - b_.i8; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = a_.i8[i] - b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_sub(a, b) simde_wasm_i8x16_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = a_.i16 - b_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a_.i16[i] - b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_sub(a, b) simde_wasm_i16x8_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = a_.i32 - b_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a_.i32[i] - b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_sub(a, b) simde_wasm_i32x4_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = a_.i64 - b_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a_.i64[i] - b_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_sub(a, b) simde_wasm_i64x2_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_sub_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 - b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] - b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_sub(a, b) simde_wasm_f32x4_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_sub_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 - b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] - b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_sub(a, b) simde_wasm_f64x2_sub((a), (b)) +#endif + +/* mul */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmulq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = a_.i16 * b_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a_.i16[i] * b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_mul(a, b) simde_wasm_i16x8_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_mullo_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = a_.i32 * b_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a_.i32[i] * b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_mul(a, b) simde_wasm_i32x4_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512DQ_NATIVE) + r_.sse_m128i = _mm_mullo_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = a_.i64 * b_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a_.i64[i] * b_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_mul(a, b) simde_wasm_i64x2_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_mul_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 * b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] * b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_mul(a, b) simde_wasm_f32x4_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_mul_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 * b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] * b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_mul(a, b) simde_wasm_f64x2_mul((a), (b)) +#endif + +/* q15mulr_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_q15mulr_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_q15mulr_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + /* https://github.com/WebAssembly/simd/pull/365 */ + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vqrdmulhq_s16(a_.neon_i16, b_.neon_i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + int32_t tmp = HEDLEY_STATIC_CAST(int32_t, a_.i16[i]) * HEDLEY_STATIC_CAST(int32_t, b_.i16[i]); + tmp += UINT32_C(0x4000); + tmp >>= 15; + r_.i16[i] = (tmp < INT16_MIN) ? INT16_MIN : ((tmp > INT16_MAX) ? (INT16_MAX) : HEDLEY_STATIC_CAST(int16_t, tmp)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_q15mulr_sat(a, b) simde_wasm_i16x8_q15mulr_sat((a), (b)) +#endif + +/* min */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmplt_epi8(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(m, a_.sse_m128i), + _mm_andnot_si128(m, b_.sse_m128i) + ); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vminq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_min(a_.altivec_i8, b_.altivec_i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] < b_.i8[i]) ? a_.i8[i] : b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_min(a, b) simde_wasm_i8x16_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_min_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vminq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_min(a_.altivec_i16, b_.altivec_i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] < b_.i16[i]) ? a_.i16[i] : b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_min(a, b) simde_wasm_i16x8_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmplt_epi32(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(m, a_.sse_m128i), + _mm_andnot_si128(m, b_.sse_m128i) + ); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vminq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_min(a_.altivec_i32, b_.altivec_i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] < b_.i32[i]) ? a_.i32[i] : b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_min(a, b) simde_wasm_i32x4_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_min_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vminq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_min(a_.altivec_u8, b_.altivec_u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] < b_.u8[i]) ? a_.u8[i] : b_.u8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_min(a, b) simde_wasm_u8x16_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/simd-everywhere/simde/issues/855#issuecomment-881656284 */ + r_.sse_m128i = _mm_sub_epi16(a, _mm_subs_epu16(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vminq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_min(a_.altivec_u16, b_.altivec_u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] < b_.u16[i]) ? a_.u16[i] : b_.u16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_min(a, b) simde_wasm_u16x8_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epu32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i i32_min = _mm_set1_epi32(INT32_MIN); + const __m128i difference = _mm_sub_epi32(a_.sse_m128i, b_.sse_m128i); + __m128i m = + _mm_cmpeq_epi32( + /* _mm_subs_epu32(a_.sse_m128i, b_.sse_m128i) */ + _mm_and_si128( + difference, + _mm_xor_si128( + _mm_cmpgt_epi32( + _mm_xor_si128(difference, i32_min), + _mm_xor_si128(a_.sse_m128i, i32_min) + ), + _mm_set1_epi32(~INT32_C(0)) + ) + ), + _mm_setzero_si128() + ); + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(m, a_.sse_m128i), + _mm_andnot_si128(m, b_.sse_m128i) + ); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vminq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u32 = vec_min(a_.altivec_u32, b_.altivec_u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] < b_.u32[i]) ? a_.u32[i] : b_.u32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_min(a, b) simde_wasm_u32x4_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L202 + simde_v128_private scratch; + scratch.sse_m128 = a_.sse_m128; + scratch.sse_m128 = _mm_min_ps(scratch.sse_m128, b_.sse_m128); + r_.sse_m128 = b_.sse_m128; + r_.sse_m128 = _mm_min_ps(r_.sse_m128, a_.sse_m128); + scratch.sse_m128 = _mm_or_ps(scratch.sse_m128, r_.sse_m128); + r_.sse_m128 = _mm_cmpunord_ps(r_.sse_m128, scratch.sse_m128); + scratch.sse_m128 = _mm_or_ps(scratch.sse_m128, r_.sse_m128); + r_.sse_m128i = _mm_srli_epi32(r_.sse_m128i, 10); + r_.sse_m128 = _mm_andnot_ps(r_.sse_m128, scratch.sse_m128); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = SIMDE_WASM_SIMD128_FMINF(a_.f32[i], b_.f32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_min(a, b) simde_wasm_f32x4_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L263 + simde_v128_private scratch; + scratch.sse_m128d = a_.sse_m128d; + scratch.sse_m128d = _mm_min_pd(scratch.sse_m128d, b_.sse_m128d); + r_.sse_m128d = b_.sse_m128d; + r_.sse_m128d = _mm_min_pd(r_.sse_m128d, a_.sse_m128d); + scratch.sse_m128d = _mm_or_pd(scratch.sse_m128d, r_.sse_m128d); + r_.sse_m128d = _mm_cmpunord_pd(r_.sse_m128d, scratch.sse_m128d); + scratch.sse_m128d = _mm_or_pd(scratch.sse_m128d, r_.sse_m128d); + r_.sse_m128i = _mm_srli_epi64(r_.sse_m128i, 13); + r_.sse_m128d = _mm_andnot_pd(r_.sse_m128d, scratch.sse_m128d); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = SIMDE_WASM_SIMD128_FMIN(a_.f64[i], b_.f64[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_min(a, b) simde_wasm_f64x2_min((a), (b)) +#endif + +/* max */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmpgt_epi8(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = _mm_or_si128(_mm_and_si128(m, a_.sse_m128i), _mm_andnot_si128(m, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vmaxq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i8 = vec_max(a_.altivec_i8, b_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i8) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 > b_.i8); + r_.i8 = (m & a_.i8) | (~m & b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] > b_.i8[i]) ? a_.i8[i] : b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_max(a, b) simde_wasm_i8x16_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_max_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmaxq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i16 = vec_max(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i16) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 > b_.i16); + r_.i16 = (m & a_.i16) | (~m & b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] > b_.i16[i]) ? a_.i16[i] : b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_max(a, b) simde_wasm_i16x8_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmpgt_epi32(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = _mm_or_si128(_mm_and_si128(m, a_.sse_m128i), _mm_andnot_si128(m, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmaxq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_max(a_.altivec_i32, b_.altivec_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i32) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 > b_.i32); + r_.i32 = (m & a_.i32) | (~m & b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] > b_.i32[i]) ? a_.i32[i] : b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_max(a, b) simde_wasm_i32x4_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_max_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vmaxq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u8 = vec_max(a_.altivec_u8, b_.altivec_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.u8) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 > b_.u8); + r_.u8 = (m & a_.u8) | (~m & b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] > b_.u8[i]) ? a_.u8[i] : b_.u8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_max(a, b) simde_wasm_u8x16_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/simd-everywhere/simde/issues/855#issuecomment-881656284 */ + r_.sse_m128i = _mm_add_epi16(b, _mm_subs_epu16(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmaxq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u16 = vec_max(a_.altivec_u16, b_.altivec_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.u16) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 > b_.u16); + r_.u16 = (m & a_.u16) | (~m & b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] > b_.u16[i]) ? a_.u16[i] : b_.u16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_max(a, b) simde_wasm_u16x8_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epu32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/simd-everywhere/simde/issues/855#issuecomment-886057227 */ + __m128i m = + _mm_xor_si128( + _mm_cmpgt_epi32(a_.sse_m128i, b_.sse_m128i), + _mm_srai_epi32(_mm_xor_si128(a_.sse_m128i, b_.sse_m128i), 31) + ); + r_.sse_m128i = _mm_or_si128(_mm_and_si128(m, a_.sse_m128i), _mm_andnot_si128(m, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmaxq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u32 = vec_max(a_.altivec_u32, b_.altivec_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.u32) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 > b_.u32); + r_.u32 = (m & a_.u32) | (~m & b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] > b_.u32[i]) ? a_.u32[i] : b_.u32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_max(a, b) simde_wasm_u32x4_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L231 + simde_v128_private scratch; + scratch.sse_m128 = a_.sse_m128; + scratch.sse_m128 = _mm_max_ps(scratch.sse_m128, b_.sse_m128); + r_.sse_m128 = b_.sse_m128; + r_.sse_m128 = _mm_max_ps(r_.sse_m128, a_.sse_m128); + r_.sse_m128 = _mm_xor_ps(r_.sse_m128, scratch.sse_m128); + scratch.sse_m128 = _mm_or_ps(scratch.sse_m128, r_.sse_m128); + scratch.sse_m128 = _mm_sub_ps(scratch.sse_m128, r_.sse_m128); + r_.sse_m128 = _mm_cmpunord_ps(r_.sse_m128, scratch.sse_m128); + r_.sse_m128i = _mm_srli_epi32(r_.sse_m128i, 10); + r_.sse_m128 = _mm_andnot_ps(r_.sse_m128, scratch.sse_m128); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = SIMDE_WASM_SIMD128_FMAXF(a_.f32[i], b_.f32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_max(a, b) simde_wasm_f32x4_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L301 + simde_v128_private scratch; + scratch.sse_m128d = a_.sse_m128d; + scratch.sse_m128d = _mm_max_pd(scratch.sse_m128d, b_.sse_m128d); + r_.sse_m128d = b_.sse_m128d; + r_.sse_m128d = _mm_max_pd(r_.sse_m128d, a_.sse_m128d); + r_.sse_m128d = _mm_xor_pd(r_.sse_m128d, scratch.sse_m128d); + scratch.sse_m128d = _mm_or_pd(scratch.sse_m128d, r_.sse_m128d); + scratch.sse_m128d = _mm_sub_pd(scratch.sse_m128d, r_.sse_m128d); + r_.sse_m128d = _mm_cmpunord_pd(r_.sse_m128d, scratch.sse_m128d); + r_.sse_m128i = _mm_srli_epi64(r_.sse_m128i, 13); + r_.sse_m128d = _mm_andnot_pd(r_.sse_m128d, scratch.sse_m128d); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = SIMDE_WASM_SIMD128_FMAX(a_.f64[i], b_.f64[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_max(a, b) simde_wasm_f64x2_max((a), (b)) +#endif + +/* add_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vqaddq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_adds(a_.altivec_i8, b_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + __typeof__(a_.u8) r1, r2, m; + r1 = a_.u8 + b_.u8; + r2 = (a_.u8 >> 7) + INT8_MAX; + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), (r2 ^ b_.u8) | ~(b_.u8 ^ r1)) < 0); + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), (r1 & m) | (r2 & ~m)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = simde_math_adds_i8(a_.i8[i], b_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_add_sat(a, b) simde_wasm_i8x16_add_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vqaddq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_adds(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + __typeof__(a_.u16) r1, r2, m; + r1 = a_.u16 + b_.u16; + r2 = (a_.u16 >> 15) + INT16_MAX; + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), (r2 ^ b_.u16) | ~(b_.u16 ^ r1)) < 0); + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), (r1 & m) | (r2 & ~m)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = simde_math_adds_i16(a_.i16[i], b_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_add_sat(a, b) simde_wasm_i16x8_add_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vqaddq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_adds(a_.altivec_u8, b_.altivec_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.u8 = a_.u8 + b_.u8; + r_.u8 |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), r_.u8 < a_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = simde_math_adds_u8(a_.u8[i], b_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_add_sat(a, b) simde_wasm_u8x16_add_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vqaddq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_adds(a_.altivec_u16, b_.altivec_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.u16 = a_.u16 + b_.u16; + r_.u16 |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), r_.u16 < a_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = simde_math_adds_u16(a_.u16[i], b_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_add_sat(a, b) simde_wasm_u16x8_add_sat((a), (b)) +#endif + +/* avgr */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_avgr (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_avgr(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_avg_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vrhaddq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u8 = vec_avg(a_.altivec_u8, b_.altivec_u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] + b_.u8[i] + 1) >> 1; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_avgr(a, b) simde_wasm_u8x16_avgr((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_avgr (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_avgr(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_avg_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vrhaddq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u16 = vec_avg(a_.altivec_u16, b_.altivec_u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] + b_.u16[i] + 1) >> 1; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_avgr(a, b) simde_wasm_u16x8_avgr((a), (b)) +#endif + +/* sub_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vqsubq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_subs(a_.altivec_i8, b_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + const __typeof__(r_.i8) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), (b_.i8 > a_.i8) ^ INT8_MAX); + const __typeof__(r_.i8) diff = a_.i8 - b_.i8; + const __typeof__(r_.i8) saturate = diff_sat ^ diff; + const __typeof__(r_.i8) m = saturate >> 7; + r_.i8 = (diff_sat & m) | (diff & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = simde_math_subs_i8(a_.i8[i], b_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_sub_sat(a, b) simde_wasm_i8x16_sub_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vqsubq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_subs(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + const __typeof__(r_.i16) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), (b_.i16 > a_.i16) ^ INT16_MAX); + const __typeof__(r_.i16) diff = a_.i16 - b_.i16; + const __typeof__(r_.i16) saturate = diff_sat ^ diff; + const __typeof__(r_.i16) m = saturate >> 15; + r_.i16 = (diff_sat & m) | (diff & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = simde_math_subs_i16(a_.i16[i], b_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_sub_sat(a, b) simde_wasm_i16x8_sub_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vqsubq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_subs(a_.altivec_u8, b_.altivec_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u8 = a_.u8 - b_.u8; + r_.u8 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), r_.u8 <= a_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = simde_math_subs_u8(a_.u8[i], b_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_sub_sat(a, b) simde_wasm_u8x16_sub_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vqsubq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_subs(a_.altivec_u16, b_.altivec_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u16 = a_.u16 - b_.u16; + r_.u16 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), r_.u16 <= a_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = simde_math_subs_u16(a_.u16[i], b_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_sub_sat(a, b) simde_wasm_u16x8_sub_sat((a), (b)) +#endif + +/* pmin */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_pmin (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_pmin(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_min_ps(b_.sse_m128, a_.sse_m128); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vminq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = vec_min(a_.altivec_f32, b_.altivec_f32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = + vbslq_f32( + vcltq_f32(b_.neon_f32, a_.neon_f32), + b_.neon_f32, + a_.neon_f32 + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = + vec_sel( + a_.altivec_f32, + b_.altivec_f32, + vec_cmpgt(a_.altivec_f32, b_.altivec_f32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = (b_.f32[i] < a_.f32[i]) ? b_.f32[i] : a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_pmin(a, b) simde_wasm_f32x4_pmin((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_pmin (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_pmin(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_min_pd(b_.sse_m128d, a_.sse_m128d); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f32 = vminq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_min(a_.altivec_f64, b_.altivec_f64); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = + vbslq_f64( + vcltq_f64(b_.neon_f64, a_.neon_f64), + b_.neon_f64, + a_.neon_f64 + ); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = + vec_sel( + a_.altivec_f64, + b_.altivec_f64, + vec_cmpgt(a_.altivec_f64, b_.altivec_f64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = (b_.f64[i] < a_.f64[i]) ? b_.f64[i] : a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_pmin(a, b) simde_wasm_f64x2_pmin((a), (b)) +#endif + +/* pmax */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_pmax (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_pmax(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE_NATIVE) + r_.sse_m128 = _mm_max_ps(b_.sse_m128, a_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vbslq_f32(vcltq_f32(a_.neon_f32, b_.neon_f32), b_.neon_f32, a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) + r_.altivec_f32 = vec_sel(a_.altivec_f32, b_.altivec_f32, vec_cmplt(a_.altivec_f32, b_.altivec_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + int32_t SIMDE_VECTOR(16) m = HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f32 < b_.f32); + r_.f32 = + HEDLEY_REINTERPRET_CAST( + __typeof__(r_.f32), + ( + ( m & HEDLEY_REINTERPRET_CAST(__typeof__(m), b_.f32)) | + (~m & HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f32)) + ) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = (a_.f32[i] < b_.f32[i]) ? b_.f32[i] : a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_pmax(a, b) simde_wasm_f32x4_pmax((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_pmax (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_pmax(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_max_pd(b_.sse_m128d, a_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vbslq_f64(vcltq_f64(a_.neon_f64, b_.neon_f64), b_.neon_f64, a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_f64 = vec_sel(a_.altivec_f64, b_.altivec_f64, vec_cmplt(a_.altivec_f64, b_.altivec_f64)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + int64_t SIMDE_VECTOR(16) m = HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f64 < b_.f64); + r_.f64 = + HEDLEY_REINTERPRET_CAST( + __typeof__(r_.f64), + ( + ( m & HEDLEY_REINTERPRET_CAST(__typeof__(m), b_.f64)) | + (~m & HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f64)) + ) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = (a_.f64[i] < b_.f64[i]) ? b_.f64[i] : a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_pmax(a, b) simde_wasm_f64x2_pmax((a), (b)) +#endif + +/* div */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_div (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_div(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_div_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 / b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] / b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_div(a, b) simde_wasm_f32x4_div((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_div (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_div(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_div_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 / b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] / b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_div(a, b) simde_wasm_f64x2_div((a), (b)) +#endif + +/* shuffle */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1, const int c2, const int c3, const int c4, const int c5, const int c6, const int c7, + const int c8, const int c9, const int c10, const int c11, const int c12, const int c13, const int c14, const int c15) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i8[ 0] = ( c0 < 16) ? a_.i8[ c0] : b_.i8[ c0 & 15]; + r_.i8[ 1] = ( c1 < 16) ? a_.i8[ c1] : b_.i8[ c1 & 15]; + r_.i8[ 2] = ( c2 < 16) ? a_.i8[ c2] : b_.i8[ c2 & 15]; + r_.i8[ 3] = ( c3 < 16) ? a_.i8[ c3] : b_.i8[ c3 & 15]; + r_.i8[ 4] = ( c4 < 16) ? a_.i8[ c4] : b_.i8[ c4 & 15]; + r_.i8[ 5] = ( c5 < 16) ? a_.i8[ c5] : b_.i8[ c5 & 15]; + r_.i8[ 6] = ( c6 < 16) ? a_.i8[ c6] : b_.i8[ c6 & 15]; + r_.i8[ 7] = ( c7 < 16) ? a_.i8[ c7] : b_.i8[ c7 & 15]; + r_.i8[ 8] = ( c8 < 16) ? a_.i8[ c8] : b_.i8[ c8 & 15]; + r_.i8[ 9] = ( c9 < 16) ? a_.i8[ c9] : b_.i8[ c9 & 15]; + r_.i8[10] = (c10 < 16) ? a_.i8[c10] : b_.i8[c10 & 15]; + r_.i8[11] = (c11 < 16) ? a_.i8[c11] : b_.i8[c11 & 15]; + r_.i8[12] = (c12 < 16) ? a_.i8[c12] : b_.i8[c12 & 15]; + r_.i8[13] = (c13 < 16) ? a_.i8[c13] : b_.i8[c13 & 15]; + r_.i8[14] = (c14 < 16) ? a_.i8[c14] : b_.i8[c14 & 15]; + r_.i8[15] = (c15 < 16) ? a_.i8[c15] : b_.i8[c15 & 15]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i8x16_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + wasm_i8x16_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i8x16_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(8, 16, \ + HEDLEY_REINTERPRET_CAST(int8_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int8_t SIMDE_VECTOR(16), b), \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i8x16_shuffle(a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_i8x16_shuffle((a), (b), \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1, const int c2, const int c3, const int c4, const int c5, const int c6, const int c7) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i16[ 0] = (c0 < 8) ? a_.i16[ c0] : b_.i16[ c0 & 7]; + r_.i16[ 1] = (c1 < 8) ? a_.i16[ c1] : b_.i16[ c1 & 7]; + r_.i16[ 2] = (c2 < 8) ? a_.i16[ c2] : b_.i16[ c2 & 7]; + r_.i16[ 3] = (c3 < 8) ? a_.i16[ c3] : b_.i16[ c3 & 7]; + r_.i16[ 4] = (c4 < 8) ? a_.i16[ c4] : b_.i16[ c4 & 7]; + r_.i16[ 5] = (c5 < 8) ? a_.i16[ c5] : b_.i16[ c5 & 7]; + r_.i16[ 6] = (c6 < 8) ? a_.i16[ c6] : b_.i16[ c6 & 7]; + r_.i16[ 7] = (c7 < 8) ? a_.i16[ c7] : b_.i16[ c7 & 7]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i16x8_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + wasm_i16x8_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i16x8_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(16, 16, \ + HEDLEY_REINTERPRET_CAST(int16_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int16_t SIMDE_VECTOR(16), b), \ + c0, c1, c2, c3, c4, c5, c6, c7)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i16x8_shuffle(a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_i16x8_shuffle((a), (b), \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1, const int c2, const int c3) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i32[ 0] = (c0 < 4) ? a_.i32[ c0] : b_.i32[ c0 & 3]; + r_.i32[ 1] = (c1 < 4) ? a_.i32[ c1] : b_.i32[ c1 & 3]; + r_.i32[ 2] = (c2 < 4) ? a_.i32[ c2] : b_.i32[ c2 & 3]; + r_.i32[ 3] = (c3 < 4) ? a_.i32[ c3] : b_.i32[ c3 & 3]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i32x4_shuffle( \ + a, b, \ + c0, c1, c2, c3) \ + wasm_i32x4_shuffle( \ + a, b, \ + c0, c1, c2, c3) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i32x4_shuffle( \ + a, b, \ + c0, c1, c2, c3) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(32, 16, \ + HEDLEY_REINTERPRET_CAST(int32_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int32_t SIMDE_VECTOR(16), b), \ + c0, c1, c2, c3)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i32x4_shuffle(a, b, \ + c0, c1, c2, c3) \ + simde_wasm_i32x4_shuffle((a), (b), \ + (c0), (c1), (c2), (c3)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i64[ 0] = (c0 < 2) ? a_.i64[ c0] : b_.i64[ c0 & 1]; + r_.i64[ 1] = (c1 < 2) ? a_.i64[ c1] : b_.i64[ c1 & 1]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i64x2_shuffle( \ + a, b, \ + c0, c1) \ + wasm_i64x2_shuffle( \ + a, b, \ + c0, c1) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i64x2_shuffle( \ + a, b, \ + c0, c1) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(64, 16, \ + HEDLEY_REINTERPRET_CAST(int64_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int64_t SIMDE_VECTOR(16), b), \ + c0, c1)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i64x2_shuffle(a, b, \ + c0, c1) \ + simde_wasm_i64x2_shuffle((a), (b), \ + (c0), (c1)) +#endif + +/* swizzle */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_swizzle (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_swizzle(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + int8x8x2_t tmp = { { vget_low_s8(a_.neon_i8), vget_high_s8(a_.neon_i8) } }; + r_.neon_i8 = vcombine_s8( + vtbl2_s8(tmp, vget_low_s8(b_.neon_i8)), + vtbl2_s8(tmp, vget_high_s8(b_.neon_i8)) + ); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + /* https://github.com/WebAssembly/simd/issues/68#issuecomment-470825324 */ + r_.sse_m128i = + _mm_shuffle_epi8( + a_.sse_m128i, + _mm_adds_epu8( + _mm_set1_epi8(0x70), + b_.sse_m128i)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_perm( + a_.altivec_i8, + a_.altivec_i8, + b_.altivec_u8 + ); + r_.altivec_i8 = vec_and(r_.altivec_i8, vec_cmple(b_.altivec_u8, vec_splat_u8(15))); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (b_.u8[i] > 15) ? INT8_C(0) : a_.i8[b_.u8[i]]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_swizzle(a, b) simde_wasm_i8x16_swizzle((a), (b)) +#endif + +/* narrow */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_narrow_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_narrow_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i8 = vqmovn_high_s16(vqmovn_s16(a_.neon_i16), b_.neon_i16); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vcombine_s8(vqmovn_s16(a_.neon_i16), vqmovn_s16(b_.neon_i16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_packs(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_packs_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + int16_t SIMDE_VECTOR(32) v = SIMDE_SHUFFLE_VECTOR_(16, 32, a_.i16, b_.i16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + const int16_t SIMDE_VECTOR(32) min = { INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN }; + const int16_t SIMDE_VECTOR(32) max = { INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX }; + + int16_t m SIMDE_VECTOR(32); + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), v < min); + v = (v & ~m) | (min & m); + + m = v > max; + v = (v & ~m) | (max & m); + + SIMDE_CONVERT_VECTOR_(r_.i8, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + int16_t v = (i < (sizeof(a_.i16) / sizeof(a_.i16[0]))) ? a_.i16[i] : b_.i16[i & 7]; + r_.i8[i] = (v < INT8_MIN) ? INT8_MIN : ((v > INT8_MAX) ? INT8_MAX : HEDLEY_STATIC_CAST(int8_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_narrow_i16x8(a, b) simde_wasm_i8x16_narrow_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_narrow_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_narrow_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i16 = vqmovn_high_s32(vqmovn_s32(a_.neon_i32), b_.neon_i32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vcombine_s16(vqmovn_s32(a_.neon_i32), vqmovn_s32(b_.neon_i32)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_packs(a_.altivec_i32, b_.altivec_i32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_packs_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + int32_t SIMDE_VECTOR(32) v = SIMDE_SHUFFLE_VECTOR_(32, 32, a_.i32, b_.i32, 0, 1, 2, 3, 4, 5, 6, 7); + const int32_t SIMDE_VECTOR(32) min = { INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN }; + const int32_t SIMDE_VECTOR(32) max = { INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX }; + + int32_t m SIMDE_VECTOR(32); + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), v < min); + v = (v & ~m) | (min & m); + + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), v > max); + v = (v & ~m) | (max & m); + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + int32_t v = (i < (sizeof(a_.i32) / sizeof(a_.i32[0]))) ? a_.i32[i] : b_.i32[i & 3]; + r_.i16[i] = (v < INT16_MIN) ? INT16_MIN : ((v > INT16_MAX) ? INT16_MAX : HEDLEY_STATIC_CAST(int16_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_narrow_i32x4(a, b) simde_wasm_i16x8_narrow_i32x4((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_narrow_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_narrow_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_BUG_CLANG_46840) + r_.neon_u8 = vqmovun_high_s16(vreinterpret_s8_u8(vqmovun_s16(a_.neon_i16)), b_.neon_i16); + #else + r_.neon_u8 = vqmovun_high_s16(vqmovun_s16(a_.neon_i16), b_.neon_i16); + #endif + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = + vcombine_u8( + vqmovun_s16(a_.neon_i16), + vqmovun_s16(b_.neon_i16) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_packus_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_packsu(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + int16_t v SIMDE_VECTOR(32) = SIMDE_SHUFFLE_VECTOR_(16, 32, a_.i16, b_.i16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + + v &= ~(v >> 15); + v |= HEDLEY_REINTERPRET_CAST(__typeof__(v), v > UINT8_MAX); + + SIMDE_CONVERT_VECTOR_(r_.i8, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + int16_t v = (i < (sizeof(a_.i16) / sizeof(a_.i16[0]))) ? a_.i16[i] : b_.i16[i & 7]; + r_.u8[i] = (v < 0) ? UINT8_C(0) : ((v > UINT8_MAX) ? UINT8_MAX : HEDLEY_STATIC_CAST(uint8_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_narrow_i16x8(a, b) simde_wasm_u8x16_narrow_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_narrow_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_narrow_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_BUG_CLANG_46840) + r_.neon_u16 = vqmovun_high_s32(vreinterpret_s16_u16(vqmovun_s32(a_.neon_i32)), b_.neon_i32); + #else + r_.neon_u16 = vqmovun_high_s32(vqmovun_s32(a_.neon_i32), b_.neon_i32); + #endif + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = + vcombine_u16( + vqmovun_s32(a_.neon_i32), + vqmovun_s32(b_.neon_i32) + ); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_packus_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i max = _mm_set1_epi32(UINT16_MAX); + const __m128i tmpa = _mm_andnot_si128(_mm_srai_epi32(a_.sse_m128i, 31), a_.sse_m128i); + const __m128i tmpb = _mm_andnot_si128(_mm_srai_epi32(b_.sse_m128i, 31), b_.sse_m128i); + r_.sse_m128i = + _mm_packs_epi32( + _mm_srai_epi32(_mm_slli_epi32(_mm_or_si128(tmpa, _mm_cmpgt_epi32(tmpa, max)), 16), 16), + _mm_srai_epi32(_mm_slli_epi32(_mm_or_si128(tmpb, _mm_cmpgt_epi32(tmpb, max)), 16), 16) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_packsu(a_.altivec_i32, b_.altivec_i32); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + int32_t v SIMDE_VECTOR(32) = SIMDE_SHUFFLE_VECTOR_(32, 32, a_.i32, b_.i32, 0, 1, 2, 3, 4, 5, 6, 7); + + v &= ~(v >> 31); + v |= HEDLEY_REINTERPRET_CAST(__typeof__(v), v > UINT16_MAX); + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + int32_t v = (i < (sizeof(a_.i32) / sizeof(a_.i32[0]))) ? a_.i32[i] : b_.i32[i & 3]; + r_.u16[i] = (v < 0) ? UINT16_C(0) : ((v > UINT16_MAX) ? UINT16_MAX : HEDLEY_STATIC_CAST(uint16_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_narrow_i32x4(a, b) simde_wasm_u16x8_narrow_i32x4((a), (b)) +#endif + +/* demote */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_demote_f64x2_zero (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_demote_f64x2_zero(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cvtpd_ps(a_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f32 = vcombine_f32(vcvt_f32_f64(a_.neon_f64), vdup_n_f32(0.0f)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f32 = vec_floate(a_.altivec_f64); + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_f32 = + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(float), + vec_pack( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), r_.altivec_f32), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_splat_s32(0)) + ) + ); + #else + const SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0x00, 0x01, 0x02, 0x03, /* 0 */ + 0x08, 0x09, 0x0a, 0x0b, /* 2 */ + 0x10, 0x11, 0x12, 0x13, /* 4 */ + 0x18, 0x19, 0x1a, 0x1b /* 6 */ + }; + r_.altivec_f32 = vec_perm(r_.altivec_f32, HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_splat_s32(0)), perm); + #endif + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + float __attribute__((__vector_size__(8))) z = { 0.0f, 0.0f }; + r_.f32 = __builtin_shufflevector(__builtin_convertvector(a_.f64, __typeof__(z)), z, 0, 1, 2, 3); + #else + r_.f32[0] = HEDLEY_STATIC_CAST(simde_float32, a_.f64[0]); + r_.f32[1] = HEDLEY_STATIC_CAST(simde_float32, a_.f64[1]); + r_.f32[2] = SIMDE_FLOAT32_C(0.0); + r_.f32[3] = SIMDE_FLOAT32_C(0.0); + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_demote_f64x2_zero(a) simde_wasm_f32x4_demote_f64x2_zero((a)) +#endif + +/* extend_low */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extend_low_i8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extend_low_i8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmovl_s8(vget_low_s8(a_.neon_i8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi8_epi16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi16(_mm_unpacklo_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = + vec_sra( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(short), vec_mergeh(a_.altivec_i8, a_.altivec_i8)), + vec_splats(HEDLEY_STATIC_CAST(unsigned short, 8) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int8_t v SIMDE_VECTOR(8) = { + a_.i8[0], a_.i8[1], a_.i8[2], a_.i8[3], + a_.i8[4], a_.i8[5], a_.i8[6], a_.i8[7] + }; + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extend_low_i8x16(a) simde_wasm_i16x8_extend_low_i8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extend_low_i16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extend_low_i16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmovl_s16(vget_low_s16(a_.neon_i16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi16_epi32(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi32(_mm_unpacklo_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(int), vec_mergeh(a_.altivec_i16, a_.altivec_i16)), + vec_splats(HEDLEY_STATIC_CAST(unsigned int, 16)) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int16_t v SIMDE_VECTOR(8) = { a_.i16[0], a_.i16[1], a_.i16[2], a_.i16[3] }; + + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extend_low_i16x8(a) simde_wasm_i32x4_extend_low_i16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extend_low_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extend_low_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmovl_s32(vget_low_s32(a_.neon_i32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi32_epi64(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_unpacklo_epi32(a_.sse_m128i, _mm_cmpgt_epi32(_mm_setzero_si128(), a_.sse_m128i)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_i64 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_mergeh(a_.altivec_i32, a_.altivec_i32)), + vec_splats(HEDLEY_STATIC_CAST(unsigned long long, 32)) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_mergeh( + a_.altivec_i32, + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(int), + vec_cmpgt(vec_splat_s32(0), a_.altivec_i32) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int32_t v SIMDE_VECTOR(8) = { a_.i32[0], a_.i32[1] }; + + SIMDE_CONVERT_VECTOR_(r_.i64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extend_low_i32x4(a) simde_wasm_i64x2_extend_low_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extend_low_u8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extend_low_u8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmovl_u8(vget_low_u8(a_.neon_u8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu8_epi16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi16(_mm_unpacklo_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_mergeh(a_.altivec_i8, vec_splat_s8(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint8_t v SIMDE_VECTOR(8) = { + a_.u8[0], a_.u8[1], a_.u8[2], a_.u8[3], + a_.u8[4], a_.u8[5], a_.u8[6], a_.u8[7] + }; + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extend_low_u8x16(a) simde_wasm_u16x8_extend_low_u8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extend_low_u16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extend_low_u16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmovl_u16(vget_low_u16(a_.neon_u16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu16_epi32(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi32(_mm_unpacklo_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_mergeh(a_.altivec_i16, vec_splat_s16(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint16_t v SIMDE_VECTOR(8) = { a_.u16[0], a_.u16[1], a_.u16[2], a_.u16[3] }; + + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extend_low_u16x8(a) simde_wasm_u32x4_extend_low_u16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extend_low_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extend_low_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmovl_u32(vget_low_u32(a_.neon_u32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu32_epi64(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i =_mm_unpacklo_epi32(a_.sse_m128i, _mm_setzero_si128()); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_mergeh(a_.altivec_i32, vec_splat_s32(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint32_t v SIMDE_VECTOR(8) = { a_.u32[0], a_.u32[1] }; + + SIMDE_CONVERT_VECTOR_(r_.u64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(int64_t, a_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extend_low_u32x4(a) simde_wasm_u64x2_extend_low_u32x4((a)) +#endif + +/* promote */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_promote_low_f32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_promote_low_f32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cvtps_pd(a_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vcvt_f64_f32(vget_low_f32(a_.neon_f32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_unpackh(a_.altivec_f32); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + r_.f64 = __builtin_convertvector(__builtin_shufflevector(a_.f32, a_.f32, 0, 1), __typeof__(r_.f64)); + #else + r_.f64[0] = HEDLEY_STATIC_CAST(simde_float64, a_.f32[0]); + r_.f64[1] = HEDLEY_STATIC_CAST(simde_float64, a_.f32[1]); + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_promote_low_f32x4(a) simde_wasm_f64x2_promote_low_f32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extend_high_i8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extend_high_i8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmovl_s8(vget_high_s8(a_.neon_i8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi8_epi16(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi16(_mm_unpackhi_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = + vec_sra( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(short), vec_mergel(a_.altivec_i8, a_.altivec_i8)), + vec_splats(HEDLEY_STATIC_CAST(unsigned short, 8) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int8_t v SIMDE_VECTOR(8) = { + a_.i8[ 8], a_.i8[ 9], a_.i8[10], a_.i8[11], + a_.i8[12], a_.i8[13], a_.i8[14], a_.i8[15] + }; + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extend_high_i8x16(a) simde_wasm_i16x8_extend_high_i8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extend_high_i16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extend_high_i16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmovl_s16(vget_high_s16(a_.neon_i16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi16_epi32(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi32(_mm_unpackhi_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(int), vec_mergel(a_.altivec_i16, a_.altivec_i16)), + vec_splats(HEDLEY_STATIC_CAST(unsigned int, 16)) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int16_t v SIMDE_VECTOR(8) = { a_.i16[4], a_.i16[5], a_.i16[6], a_.i16[7] }; + + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extend_high_i16x8(a) simde_wasm_i32x4_extend_high_i16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extend_high_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extend_high_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmovl_s32(vget_high_s32(a_.neon_i32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi32_epi64(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_unpackhi_epi32(a_.sse_m128i, _mm_cmpgt_epi32(_mm_setzero_si128(), a_.sse_m128i)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_i64 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_mergel(a_.altivec_i32, a_.altivec_i32)), + vec_splats(HEDLEY_STATIC_CAST(unsigned long long, 32)) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_mergel( + a_.altivec_i32, + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(int), + vec_cmpgt(vec_splat_s32(0), a_.altivec_i32) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int32_t v SIMDE_VECTOR(8) = { a_.i32[2], a_.i32[3] }; + + SIMDE_CONVERT_VECTOR_(r_.i64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extend_high_i32x4(a) simde_wasm_i64x2_extend_high_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extend_high_u8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extend_high_u8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmovl_u8(vget_high_u8(a_.neon_u8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu8_epi16(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi16(_mm_unpackhi_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_mergel(a_.altivec_i8, vec_splat_s8(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint8_t v SIMDE_VECTOR(8) = { + a_.u8[ 8], a_.u8[ 9], a_.u8[10], a_.u8[11], + a_.u8[12], a_.u8[13], a_.u8[14], a_.u8[15] + }; + + SIMDE_CONVERT_VECTOR_(r_.u16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extend_high_u8x16(a) simde_wasm_u16x8_extend_high_u8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extend_high_u16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extend_high_u16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmovl_u16(vget_high_u16(a_.neon_u16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu16_epi32(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi32(_mm_unpackhi_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_mergel(a_.altivec_i16, vec_splat_s16(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint16_t v SIMDE_VECTOR(8) = { a_.u16[4], a_.u16[5], a_.u16[6], a_.u16[7] }; + + SIMDE_CONVERT_VECTOR_(r_.u32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extend_high_u16x8(a) simde_wasm_u32x4_extend_high_u16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extend_high_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extend_high_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmovl_u32(vget_high_u32(a_.neon_u32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu32_epi64(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i =_mm_unpackhi_epi32(a_.sse_m128i, _mm_setzero_si128()); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_mergel(a_.altivec_i32, vec_splat_s32(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint32_t v SIMDE_VECTOR(8) = { a_.u32[2], a_.u32[3] }; + + SIMDE_CONVERT_VECTOR_(r_.u64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extend_high_u32x4(a) simde_wasm_u64x2_extend_high_u32x4((a)) +#endif + +/* extmul_low */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extmul_low_i8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extmul_low_i8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmull_s8(vget_low_s8(a_.neon_i8), vget_low_s8(b_.neon_i8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed char) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed char) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_i8, a_.altivec_i8); + bshuf = vec_mergeh(b_.altivec_i8, b_.altivec_i8); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 + }; + ashuf = vec_perm(a_.altivec_i8, a_.altivec_i8, perm); + bshuf = vec_perm(b_.altivec_i8, b_.altivec_i8, perm); + #endif + + r_.altivec_i16 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mullo_epi16( + _mm_srai_epi16(_mm_unpacklo_epi8(a_.sse_m128i, a_.sse_m128i), 8), + _mm_srai_epi16(_mm_unpacklo_epi8(b_.sse_m128i, b_.sse_m128i), 8) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i16 = + __builtin_convertvector( + __builtin_shufflevector(a_.i8, a_.i8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.i16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i8, b_.i8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.i16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i]) * HEDLEY_STATIC_CAST(int16_t, b_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extmul_low_i8x16(a, b) simde_wasm_i16x8_extmul_low_i8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extmul_low_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extmul_low_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmull_s16(vget_low_s16(a_.neon_i16), vget_low_s16(b_.neon_i16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed short) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed short) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_i16, a_.altivec_i16); + bshuf = vec_mergeh(b_.altivec_i16, b_.altivec_i16); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 0, 1, + 2, 3, 2, 3, + 4, 5, 4, 5, + 6, 7, 6, 7 + }; + ashuf = vec_perm(a_.altivec_i16, a_.altivec_i16, perm); + bshuf = vec_perm(b_.altivec_i16, b_.altivec_i16, perm); + #endif + + r_.altivec_i32 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpacklo_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epi16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i32 = + __builtin_convertvector( + __builtin_shufflevector(a_.i16, a_.i16, 0, 1, 2, 3), + __typeof__(r_.i32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i16, b_.i16, 0, 1, 2, 3), + __typeof__(r_.i32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i]) * HEDLEY_STATIC_CAST(int32_t, b_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extmul_low_i16x8(a, b) simde_wasm_i32x4_extmul_low_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extmul_low_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extmul_low_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmull_s32(vget_low_s32(a_.neon_i32), vget_low_s32(b_.neon_i32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed int) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed int) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_i32, a_.altivec_i32); + bshuf = vec_mergeh(b_.altivec_i32, b_.altivec_i32); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 2, 3, 0, 1, 2, 3, + 4, 5, 6, 7, 4, 5, 6, 7 + }; + ashuf = vec_perm(a_.altivec_i32, a_.altivec_i32, perm); + bshuf = vec_perm(b_.altivec_i32, b_.altivec_i32, perm); + #endif + + r_.altivec_i64 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = + _mm_mul_epi32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i64 = + __builtin_convertvector( + __builtin_shufflevector(a_.i32, a_.i32, 0, 1), + __typeof__(r_.i64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i32, b_.i32, 0, 1), + __typeof__(r_.i64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i]) * HEDLEY_STATIC_CAST(int64_t, b_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extmul_low_i32x4(a, b) simde_wasm_i64x2_extmul_low_i32x4((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extmul_low_u8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extmul_low_u8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmull_u8(vget_low_u8(a_.neon_u8), vget_low_u8(b_.neon_u8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_u8, a_.altivec_u8); + bshuf = vec_mergeh(b_.altivec_u8, b_.altivec_u8); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 + }; + ashuf = vec_perm(a_.altivec_u8, a_.altivec_u8, perm); + bshuf = vec_perm(b_.altivec_u8, b_.altivec_u8, perm); + #endif + + r_.altivec_u16 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u16 = + __builtin_convertvector( + __builtin_shufflevector(a_.u8, a_.u8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.u16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u8, b_.u8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.u16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[i]) * HEDLEY_STATIC_CAST(uint16_t, b_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extmul_low_u8x16(a, b) simde_wasm_u16x8_extmul_low_u8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extmul_low_u16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extmul_low_u16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmull_u16(vget_low_u16(a_.neon_u16), vget_low_u16(b_.neon_u16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_u16, a_.altivec_u16); + bshuf = vec_mergeh(b_.altivec_u16, b_.altivec_u16); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 0, 1, + 2, 3, 2, 3, + 4, 5, 4, 5, + 6, 7, 6, 7 + }; + ashuf = vec_perm(a_.altivec_u16, a_.altivec_u16, perm); + bshuf = vec_perm(b_.altivec_u16, b_.altivec_u16, perm); + #endif + + r_.altivec_u32 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpacklo_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epu16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u32 = + __builtin_convertvector( + __builtin_shufflevector(a_.u16, a_.u16, 0, 1, 2, 3), + __typeof__(r_.u32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u16, b_.u16, 0, 1, 2, 3), + __typeof__(r_.u32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[i]) * HEDLEY_STATIC_CAST(uint32_t, b_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extmul_low_u16x8(a, b) simde_wasm_u32x4_extmul_low_u16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extmul_low_u32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extmul_low_u32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmull_u32(vget_low_u32(a_.neon_u32), vget_low_u32(b_.neon_u32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_u32, a_.altivec_u32); + bshuf = vec_mergeh(b_.altivec_u32, b_.altivec_u32); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 2, 3, 0, 1, 2, 3, + 4, 5, 6, 7, 4, 5, 6, 7 + }; + ashuf = vec_perm(a_.altivec_u32, a_.altivec_u32, perm); + bshuf = vec_perm(b_.altivec_u32, b_.altivec_u32, perm); + #endif + + r_.altivec_u64 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mul_epu32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u64 = + __builtin_convertvector( + __builtin_shufflevector(a_.u32, a_.u32, 0, 1), + __typeof__(r_.u64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u32, b_.u32, 0, 1), + __typeof__(r_.u64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, a_.u32[i]) * HEDLEY_STATIC_CAST(uint64_t, b_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extmul_low_u32x4(a, b) simde_wasm_u64x2_extmul_low_u32x4((a), (b)) +#endif + +/* extmul_high */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extmul_high_i8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extmul_high_i8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i16 = vmull_high_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmull_s8(vget_high_s8(a_.neon_i8), vget_high_s8(b_.neon_i8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = + vec_mule( + vec_mergel(a_.altivec_i8, a_.altivec_i8), + vec_mergel(b_.altivec_i8, b_.altivec_i8) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mullo_epi16( + _mm_srai_epi16(_mm_unpackhi_epi8(a_.sse_m128i, a_.sse_m128i), 8), + _mm_srai_epi16(_mm_unpackhi_epi8(b_.sse_m128i, b_.sse_m128i), 8) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i16 = + __builtin_convertvector( + __builtin_shufflevector(a_.i8, a_.i8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.i16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i8, b_.i8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.i16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i + 8]) * HEDLEY_STATIC_CAST(int16_t, b_.i8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extmul_high_i8x16(a, b) simde_wasm_i16x8_extmul_high_i8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extmul_high_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extmul_high_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i32 = vmull_high_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmull_s16(vget_high_s16(a_.neon_i16), vget_high_s16(b_.neon_i16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_mule( + vec_mergel(a_.altivec_i16, a_.altivec_i16), + vec_mergel(b_.altivec_i16, b_.altivec_i16) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpackhi_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epi16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i32 = + __builtin_convertvector( + __builtin_shufflevector(a_.i16, a_.i16, 4, 5, 6, 7), + __typeof__(r_.i32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i16, b_.i16, 4, 5, 6, 7), + __typeof__(r_.i32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i + 4]) * HEDLEY_STATIC_CAST(int32_t, b_.i16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extmul_high_i16x8(a, b) simde_wasm_i32x4_extmul_high_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extmul_high_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extmul_high_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i64 = vmull_high_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmull_s32(vget_high_s32(a_.neon_i32), vget_high_s32(b_.neon_i32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed int) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed int) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergel(a_.altivec_i32, a_.altivec_i32); + bshuf = vec_mergel(b_.altivec_i32, b_.altivec_i32); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 8, 9, 10, 11, 8, 9, 10, 11, + 12, 13, 14, 15, 12, 13, 14, 15 + }; + ashuf = vec_perm(a_.altivec_i32, a_.altivec_i32, perm); + bshuf = vec_perm(b_.altivec_i32, b_.altivec_i32, perm); + #endif + + r_.altivec_i64 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = + _mm_mul_epi32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i64 = + __builtin_convertvector( + __builtin_shufflevector(a_.i32, a_.i32, 2, 3), + __typeof__(r_.i64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i32, b_.i32, 2, 3), + __typeof__(r_.i64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i + 2]) * HEDLEY_STATIC_CAST(int64_t, b_.i32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extmul_high_i32x4(a, b) simde_wasm_i64x2_extmul_high_i32x4((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extmul_high_u8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extmul_high_u8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u16 = vmull_high_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmull_u8(vget_high_u8(a_.neon_u8), vget_high_u8(b_.neon_u8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = + vec_mule( + vec_mergel(a_.altivec_u8, a_.altivec_u8), + vec_mergel(b_.altivec_u8, b_.altivec_u8) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u16 = + __builtin_convertvector( + __builtin_shufflevector(a_.u8, a_.u8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.u16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u8, b_.u8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.u16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[i + 8]) * HEDLEY_STATIC_CAST(uint16_t, b_.u8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extmul_high_u8x16(a, b) simde_wasm_u16x8_extmul_high_u8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extmul_high_u16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extmul_high_u16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vmull_high_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmull_u16(vget_high_u16(a_.neon_u16), vget_high_u16(b_.neon_u16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u32 = + vec_mule( + vec_mergel(a_.altivec_u16, a_.altivec_u16), + vec_mergel(b_.altivec_u16, b_.altivec_u16) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpackhi_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epu16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u32 = + __builtin_convertvector( + __builtin_shufflevector(a_.u16, a_.u16, 4, 5, 6, 7), + __typeof__(r_.u32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u16, b_.u16, 4, 5, 6, 7), + __typeof__(r_.u32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[i + 4]) * HEDLEY_STATIC_CAST(uint32_t, b_.u16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extmul_high_u16x8(a, b) simde_wasm_u32x4_extmul_high_u16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extmul_high_u32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extmul_high_u32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vmull_high_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmull_u32(vget_high_u32(a_.neon_u32), vget_high_u32(b_.neon_u32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_u64 = + vec_mule( + vec_mergel(a_.altivec_u32, a_.altivec_u32), + vec_mergel(b_.altivec_u32, b_.altivec_u32) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mul_epu32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u64 = + __builtin_convertvector( + __builtin_shufflevector(a_.u32, a_.u32, 2, 3), + __typeof__(r_.u64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u32, b_.u32, 2, 3), + __typeof__(r_.u64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, a_.u32[i + 2]) * HEDLEY_STATIC_CAST(uint64_t, b_.u32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extmul_high_u32x4(a, b) simde_wasm_u64x2_extmul_high_u32x4((a), (b)) +#endif + +/* extadd_pairwise */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extadd_pairwise_i8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extadd_pairwise_i8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vpaddlq_s8(a_.neon_i8); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddw_epi8(a_.sse_m128i); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + r_.sse_m128i = _mm_maddubs_epi16(_mm_set1_epi8(INT8_C(1)), a_.sse_m128i); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed char) one = vec_splat_s8(1); + r_.altivec_i16 = + vec_add( + vec_mule(a_.altivec_i8, one), + vec_mulo(a_.altivec_i8, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.i16 = + ((a_.i16 << 8) >> 8) + + ((a_.i16 >> 8) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[(i * 2)]) + HEDLEY_STATIC_CAST(int16_t, a_.i8[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extadd_pairwise_i8x16(a) simde_wasm_i16x8_extadd_pairwise_i8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extadd_pairwise_i16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extadd_pairwise_i16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vpaddlq_s16(a_.neon_i16); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddd_epi16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_madd_epi16(a_.sse_m128i, _mm_set1_epi16(INT8_C(1))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed short) one = vec_splat_s16(1); + r_.altivec_i32 = + vec_add( + vec_mule(a_.altivec_i16, one), + vec_mulo(a_.altivec_i16, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.i32 = + ((a_.i32 << 16) >> 16) + + ((a_.i32 >> 16) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[(i * 2)]) + HEDLEY_STATIC_CAST(int32_t, a_.i16[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extadd_pairwise_i16x8(a) simde_wasm_i32x4_extadd_pairwise_i16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extadd_pairwise_u8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extadd_pairwise_u8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vpaddlq_u8(a_.neon_u8); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddw_epu8(a_.sse_m128i); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + r_.sse_m128i = _mm_maddubs_epi16(a_.sse_m128i, _mm_set1_epi8(INT8_C(1))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) one = vec_splat_u8(1); + r_.altivec_u16 = + vec_add( + vec_mule(a_.altivec_u8, one), + vec_mulo(a_.altivec_u8, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u16 = + ((a_.u16 << 8) >> 8) + + ((a_.u16 >> 8) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[(i * 2)]) + HEDLEY_STATIC_CAST(uint16_t, a_.u8[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extadd_pairwise_u8x16(a) simde_wasm_u16x8_extadd_pairwise_u8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extadd_pairwise_u16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extadd_pairwise_u16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vpaddlq_u16(a_.neon_u16); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddd_epu16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_add_epi32( + _mm_srli_epi32(a_.sse_m128i, 16), + _mm_and_si128(a_.sse_m128i, _mm_set1_epi32(INT32_C(0x0000ffff))) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) one = vec_splat_u16(1); + r_.altivec_u32 = + vec_add( + vec_mule(a_.altivec_u16, one), + vec_mulo(a_.altivec_u16, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u32 = + ((a_.u32 << 16) >> 16) + + ((a_.u32 >> 16) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[(i * 2)]) + HEDLEY_STATIC_CAST(uint32_t, a_.u16[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extadd_pairwise_u16x8(a) simde_wasm_u32x4_extadd_pairwise_u16x8((a)) +#endif + +/* X_load_Y */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_load8x8 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_load8x8(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + int8_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_ALIGN_TO_16 int8_t v[8]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_load8x8(mem) simde_wasm_i16x8_load8x8((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_load16x4 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_load16x4(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + int16_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_ALIGN_TO_16 int16_t v[4]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_load16x4(mem) simde_wasm_i32x4_load16x4((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_load32x2 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_load32x2(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) && !defined(SIMDE_BUG_CLANG_50893) + int32_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.i64, v); + #else + SIMDE_ALIGN_TO_16 int32_t v[2]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_load32x2(mem) simde_wasm_i64x2_load32x2((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_load8x8 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_load8x8(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + uint8_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.u16, v); + #else + SIMDE_ALIGN_TO_16 uint8_t v[8]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_load8x8(mem) simde_wasm_u16x8_load8x8((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_load16x4 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_load16x4(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + uint16_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.u32, v); + #else + SIMDE_ALIGN_TO_16 uint16_t v[4]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_load16x4(mem) simde_wasm_u32x4_load16x4((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_load32x2 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_load32x2(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + uint32_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.u64, v); + #else + SIMDE_ALIGN_TO_16 uint32_t v[2]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_load32x2(mem) simde_wasm_u64x2_load32x2((mem)) +#endif + +/* load*_zero */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load32_zero (const void * a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load32_zero(a); + #else + simde_v128_private r_; + + int32_t a_; + simde_memcpy(&a_, a, sizeof(a_)); + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cvtsi32_si128(a_); + #else + r_.i32[0] = a_; + r_.i32[1] = 0; + r_.i32[2] = 0; + r_.i32[3] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load32_zero(a) simde_wasm_v128_load32_zero((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load64_zero (const void * a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load64_zero(a); + #else + simde_v128_private r_; + + int64_t a_; + simde_memcpy(&a_, a, sizeof(a_)); + + #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_ARCH_AMD64) + r_.sse_m128i = _mm_cvtsi64_si128(a_); + #else + r_.i64[0] = a_; + r_.i64[1] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load64_zero(a) simde_wasm_v128_load64_zero((a)) +#endif + +/* load*_lane */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load8_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 15) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + #if defined(SIMDE_BUG_CLANG_50901) + simde_v128_private r_ = simde_v128_to_private(vec); + r_.altivec_i8 = vec_insert(*HEDLEY_REINTERPRET_CAST(const signed char *, a), a_.altivec_i8, lane); + return simde_v128_from_private(r_); + #else + a_.i8[lane] = *HEDLEY_REINTERPRET_CAST(const int8_t *, a); + return simde_v128_from_private(a_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load8_lane(a, vec, lane) wasm_v128_load8_lane(HEDLEY_CONST_CAST(int8_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load8_lane(a, vec, lane) simde_wasm_v128_load8_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load16_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + int16_t tmp = 0; + simde_memcpy(&tmp, a, sizeof(int16_t)); + a_.i16[lane] = tmp; + + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load16_lane(a, vec, lane) wasm_v128_load16_lane(HEDLEY_CONST_CAST(int16_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load16_lane(a, vec, lane) simde_wasm_v128_load16_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load32_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + int32_t tmp = 0; + simde_memcpy(&tmp, a, sizeof(int32_t)); + a_.i32[lane] = tmp; + + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load32_lane(a, vec, lane) wasm_v128_load32_lane(HEDLEY_CONST_CAST(int32_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load32_lane(a, vec, lane) simde_wasm_v128_load32_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load64_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + int64_t tmp = 0; + simde_memcpy(&tmp, a, sizeof(int64_t)); + a_.i64[lane] = tmp; + + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load64_lane(a, vec, lane) wasm_v128_load64_lane(HEDLEY_CONST_CAST(int64_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load64_lane(a, vec, lane) simde_wasm_v128_load64_lane((a), (vec), (lane)) +#endif + +/* store*_lane */ + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store8_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 15) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int8_t tmp = vec_.i8[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store8_lane(a, vec, lane) wasm_v128_store8_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store8_lane(a, vec, lane) simde_wasm_v128_store8_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store16_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int16_t tmp = vec_.i16[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store16_lane(a, vec, lane) wasm_v128_store16_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store16_lane(a, vec, lane) simde_wasm_v128_store16_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store32_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int32_t tmp = vec_.i32[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store32_lane(a, vec, lane) wasm_v128_store32_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store32_lane(a, vec, lane) simde_wasm_v128_store32_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store64_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int64_t tmp = vec_.i64[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store64_lane(a, vec, lane) wasm_v128_store64_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store64_lane(a, vec, lane) simde_wasm_v128_store64_lane((a), (vec), (lane)) +#endif + +/* convert */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_convert_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_convert_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cvtepi32_ps(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7) + r_.neon_f32 = vcvtq_f32_s32(a_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + HEDLEY_DIAGNOSTIC_PUSH + #if HEDLEY_HAS_WARNING("-Wc11-extensions") + #pragma clang diagnostic ignored "-Wc11-extensions" + #endif + r_.altivec_f32 = vec_ctf(a_.altivec_i32, 0); + HEDLEY_DIAGNOSTIC_POP + #elif defined(SIMDE_CONVERT_VECTOR_) + SIMDE_CONVERT_VECTOR_(r_.f32, a_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = HEDLEY_STATIC_CAST(simde_float32, a_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_convert_i32x4(a) simde_wasm_f32x4_convert_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_convert_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_convert_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_CONVERT_VECTOR_) + SIMDE_CONVERT_VECTOR_(r_.f32, a_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = HEDLEY_STATIC_CAST(simde_float32, a_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_convert_u32x4(a) simde_wasm_f32x4_convert_u32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_convert_low_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_convert_low_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + r_.f64 = __builtin_convertvector(__builtin_shufflevector(a_.i32, a_.i32, 0, 1), __typeof__(r_.f64)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = HEDLEY_STATIC_CAST(simde_float64, a_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_convert_low_i32x4(a) simde_wasm_f64x2_convert_low_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_convert_low_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_convert_low_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + r_.f64 = __builtin_convertvector(__builtin_shufflevector(a_.u32, a_.u32, 0, 1), __typeof__(r_.f64)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = HEDLEY_STATIC_CAST(simde_float64, a_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_convert_low_u32x4(a) simde_wasm_f64x2_convert_low_u32x4((a)) +#endif + +/* trunc_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_trunc_sat_f32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_trunc_sat_f32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vcvtq_s32_f32(a_.neon_f32); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) + SIMDE_CONVERT_VECTOR_(r_.i32, a_.f32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i i32_max_mask = _mm_castps_si128(_mm_cmpgt_ps(a_.sse_m128, _mm_set1_ps(SIMDE_FLOAT32_C(2147483520.0)))); + const __m128 clamped = _mm_max_ps(a_.sse_m128, _mm_set1_ps(HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))); + r_.sse_m128i = _mm_cvttps_epi32(clamped); + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = + _mm_castps_si128( + _mm_blendv_ps( + _mm_castsi128_ps(r_.sse_m128i), + _mm_castsi128_ps(_mm_set1_epi32(INT32_MAX)), + _mm_castsi128_ps(i32_max_mask) + ) + ); + #else + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(i32_max_mask, _mm_set1_epi32(INT32_MAX)), + _mm_andnot_si128(i32_max_mask, r_.sse_m128i) + ); + #endif + r_.sse_m128i = _mm_and_si128(r_.sse_m128i, _mm_castps_si128(_mm_cmpord_ps(a_.sse_m128, a_.sse_m128))); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) && !defined(SIMDE_ARCH_POWER) + SIMDE_CONVERT_VECTOR_(r_.i32, a_.f32); + + const __typeof__(a_.f32) max_representable = { SIMDE_FLOAT32_C(2147483520.0), SIMDE_FLOAT32_C(2147483520.0), SIMDE_FLOAT32_C(2147483520.0), SIMDE_FLOAT32_C(2147483520.0) }; + __typeof__(r_.i32) max_mask = HEDLEY_REINTERPRET_CAST(__typeof__(max_mask), a_.f32 > max_representable); + __typeof__(r_.i32) max_i32 = { INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX }; + r_.i32 = (max_i32 & max_mask) | (r_.i32 & ~max_mask); + + const __typeof__(a_.f32) min_representable = { HEDLEY_STATIC_CAST(simde_float32, INT32_MIN), HEDLEY_STATIC_CAST(simde_float32, INT32_MIN), HEDLEY_STATIC_CAST(simde_float32, INT32_MIN), HEDLEY_STATIC_CAST(simde_float32, INT32_MIN) }; + __typeof__(r_.i32) min_mask = HEDLEY_REINTERPRET_CAST(__typeof__(min_mask), a_.f32 < min_representable); + __typeof__(r_.i32) min_i32 = { INT32_MIN, INT32_MIN, INT32_MIN, INT32_MIN }; + r_.i32 = (min_i32 & min_mask) | (r_.i32 & ~min_mask); + + r_.i32 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 == a_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + if (simde_math_isnanf(a_.f32[i])) { + r_.i32[i] = INT32_C(0); + } else if (a_.f32[i] < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN)) { + r_.i32[i] = INT32_MIN; + } else if (a_.f32[i] > HEDLEY_STATIC_CAST(simde_float32, INT32_MAX)) { + r_.i32[i] = INT32_MAX; + } else { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.f32[i]); + } + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_trunc_sat_f32x4(a) simde_wasm_i32x4_trunc_sat_f32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_trunc_sat_f32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_trunc_sat_f32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcvtq_u32_f32(a_.neon_f32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_cvttps_epu32(a_.sse_m128); + #else + __m128 first_oob_high = _mm_set1_ps(SIMDE_FLOAT32_C(4294967296.0)); + __m128 neg_zero_if_too_high = + _mm_castsi128_ps( + _mm_slli_epi32( + _mm_castps_si128(_mm_cmple_ps(first_oob_high, a_.sse_m128)), + 31 + ) + ); + r_.sse_m128i = + _mm_xor_si128( + _mm_cvttps_epi32( + _mm_sub_ps(a_.sse_m128, _mm_and_ps(neg_zero_if_too_high, first_oob_high)) + ), + _mm_castps_si128(neg_zero_if_too_high) + ); + #endif + + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sse_m128i = _mm_and_si128(r_.sse_m128i, _mm_castps_si128(_mm_cmpgt_ps(a_.sse_m128, _mm_set1_ps(SIMDE_FLOAT32_C(0.0))))); + r_.sse_m128i = _mm_or_si128 (r_.sse_m128i, _mm_castps_si128(_mm_cmpge_ps(a_.sse_m128, _mm_set1_ps(SIMDE_FLOAT32_C(4294967296.0))))); + #endif + + #if !defined(SIMDE_FAST_NANS) + r_.sse_m128i = _mm_and_si128(r_.sse_m128i, _mm_castps_si128(_mm_cmpord_ps(a_.sse_m128, a_.sse_m128))); + #endif + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) + SIMDE_CONVERT_VECTOR_(r_.u32, a_.f32); + + const __typeof__(a_.f32) max_representable = { SIMDE_FLOAT32_C(4294967040.0), SIMDE_FLOAT32_C(4294967040.0), SIMDE_FLOAT32_C(4294967040.0), SIMDE_FLOAT32_C(4294967040.0) }; + r_.u32 |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.f32 > max_representable); + + const __typeof__(a_.f32) min_representable = { SIMDE_FLOAT32_C(0.0), }; + r_.u32 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.f32 > min_representable); + + r_.u32 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.f32 == a_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + if (simde_math_isnan(a_.f32[i]) || + a_.f32[i] < SIMDE_FLOAT32_C(0.0)) { + r_.u32[i] = UINT32_C(0); + } else if (a_.f32[i] > HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX)) { + r_.u32[i] = UINT32_MAX; + } else { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.f32[i]); + } + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_trunc_sat_f32x4(a) simde_wasm_u32x4_trunc_sat_f32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_trunc_sat_f64x2_zero (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_trunc_sat_f64x2_zero(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i32 = vcombine_s32(vqmovn_s64(vcvtq_s64_f64(a_.neon_f64)), vdup_n_s32(INT32_C(0))); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(double) in_not_nan = + vec_and(a_.altivec_f64, vec_cmpeq(a_.altivec_f64, a_.altivec_f64)); + r_.altivec_i32 = vec_signede(in_not_nan); + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i32 = + vec_pack( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), r_.altivec_i32), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_splat_s32(0)) + ); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 2, 3, 4, 5, 6, 7, + 16, 17, 18, 19, 20, 21, 22, 23 + }; + r_.altivec_i32 = + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(signed int), + vec_perm( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), r_.altivec_i32), + vec_splat_s8(0), + perm + ) + ); + #endif + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(a_.f64) / sizeof(a_.f64[0])) ; i++) { + if (simde_math_isnan(a_.f64[i])) { + r_.i32[i] = INT32_C(0); + } else if (a_.f64[i] < HEDLEY_STATIC_CAST(simde_float64, INT32_MIN)) { + r_.i32[i] = INT32_MIN; + } else if (a_.f64[i] > HEDLEY_STATIC_CAST(simde_float64, INT32_MAX)) { + r_.i32[i] = INT32_MAX; + } else { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.f64[i]); + } + } + r_.i32[2] = 0; + r_.i32[3] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_trunc_sat_f64x2_zero(a) simde_wasm_i32x4_trunc_sat_f64x2_zero((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_trunc_sat_f64x2_zero (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_trunc_sat_f64x2_zero(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vcombine_u32(vqmovn_u64(vcvtq_u64_f64(a_.neon_f64)), vdup_n_u32(UINT32_C(0))); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(a_.f64) / sizeof(a_.f64[0])) ; i++) { + if (simde_math_isnanf(a_.f64[i]) || + a_.f64[i] < SIMDE_FLOAT64_C(0.0)) { + r_.u32[i] = UINT32_C(0); + } else if (a_.f64[i] > HEDLEY_STATIC_CAST(simde_float64, UINT32_MAX)) { + r_.u32[i] = UINT32_MAX; + } else { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.f64[i]); + } + } + r_.u32[2] = 0; + r_.u32[3] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_trunc_sat_f64x2_zero(a) simde_wasm_u32x4_trunc_sat_f64x2_zero((a)) +#endif + +/* popcnt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_popcnt (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_popcnt(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vcntq_s8(a_.neon_i8); + #elif defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512BITALG_NATIVE) + r_.sse_m128i = _mm_popcnt_epi8(a_.sse_m128i); + #elif defined(SIMDE_X86_AVX2_NATIVE) + __m128i tmp0 = _mm_set1_epi8(0x0f); + __m128i tmp1 = _mm_andnot_si128(tmp0, a_.sse_m128i); + __m128i y = _mm_and_si128(tmp0, a_.sse_m128i); + tmp0 = _mm_set_epi8(4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0); + tmp1 = _mm_srli_epi16(tmp1, 4); + y = _mm_shuffle_epi8(tmp0, y); + tmp1 = _mm_shuffle_epi8(tmp0, tmp1); + return _mm_add_epi8(y, tmp1); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + __m128i tmp0 = _mm_set1_epi8(0x0f); + __m128i tmp1 = _mm_and_si128(a_.sse_m128i, tmp0); + tmp0 = _mm_andnot_si128(tmp0, a_.sse_m128i); + __m128i y = _mm_set_epi8(4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0); + tmp0 = _mm_srli_epi16(tmp0, 4); + y = _mm_shuffle_epi8(y, tmp1); + tmp1 = _mm_set_epi8(4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0); + tmp1 = _mm_shuffle_epi8(tmp1, tmp0); + return _mm_add_epi8(y, tmp1); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i tmp0 = _mm_and_si128(_mm_srli_epi16(a_.sse_m128i, 1), _mm_set1_epi8(0x55)); + __m128i tmp1 = _mm_sub_epi8(a_.sse_m128i, tmp0); + tmp0 = tmp1; + tmp1 = _mm_and_si128(tmp1, _mm_set1_epi8(0x33)); + tmp0 = _mm_and_si128(_mm_srli_epi16(tmp0, 2), _mm_set1_epi8(0x33)); + tmp1 = _mm_add_epi8(tmp1, tmp0); + tmp0 = _mm_srli_epi16(tmp1, 4); + tmp1 = _mm_add_epi8(tmp1, tmp0); + r_.sse_m128i = _mm_and_si128(tmp1, _mm_set1_epi8(0x0f)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i8 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), vec_popcnt(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), a_.altivec_i8))); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + uint8_t v = HEDLEY_STATIC_CAST(uint8_t, a_.u8[i]); + v = v - ((v >> 1) & (85)); + v = (v & (51)) + ((v >> (2)) & (51)); + v = (v + (v >> (4))) & (15); + r_.u8[i] = v >> (sizeof(uint8_t) - 1) * CHAR_BIT; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_popcnt(a) simde_wasm_i8x16_popcnt((a)) +#endif + +/* dot */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_dot_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_dot_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_madd_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + int32x4_t pl = vmull_s16(vget_low_s16(a_.neon_i16), vget_low_s16(b_.neon_i16)); + int32x4_t ph = vmull_high_s16(a_.neon_i16, b_.neon_i16); + r_.neon_i32 = vpaddq_s32(pl, ph); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + int32x4_t pl = vmull_s16(vget_low_s16(a_.neon_i16), vget_low_s16(b_.neon_i16)); + int32x4_t ph = vmull_s16(vget_high_s16(a_.neon_i16), vget_high_s16(b_.neon_i16)); + int32x2_t rl = vpadd_s32(vget_low_s32(pl), vget_high_s32(pl)); + int32x2_t rh = vpadd_s32(vget_low_s32(ph), vget_high_s32(ph)); + r_.neon_i32 = vcombine_s32(rl, rh); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_msum(a_.altivec_i16, b_.altivec_i16, vec_splats(0)); + #elif defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_mule(a_.altivec_i16, b_.altivec_i16) + vec_mulo(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + int32_t SIMDE_VECTOR(32) a32, b32, p32; + SIMDE_CONVERT_VECTOR_(a32, a_.i16); + SIMDE_CONVERT_VECTOR_(b32, b_.i16); + p32 = a32 * b32; + r_.i32 = + __builtin_shufflevector(p32, p32, 0, 2, 4, 6) + + __builtin_shufflevector(p32, p32, 1, 3, 5, 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_.i16[0])) ; i += 2) { + r_.i32[i / 2] = (a_.i16[i] * b_.i16[i]) + (a_.i16[i + 1] * b_.i16[i + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_dot_i16x8(a, b) simde_wasm_i32x4_dot_i16x8((a), (b)) +#endif + +/* ceil */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_ceil (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_ceil(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128 = _mm_round_ps(a_.sse_m128, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/WebAssembly/simd/pull/232 */ + const __m128i input_as_i32 = _mm_cvttps_epi32(a_.sse_m128); + const __m128i i32_min = _mm_set1_epi32(INT32_MIN); + const __m128i input_is_out_of_range = _mm_or_si128(_mm_cmpeq_epi32(input_as_i32, i32_min), i32_min); + const __m128 truncated = + _mm_or_ps( + _mm_andnot_ps( + _mm_castsi128_ps(input_is_out_of_range), + _mm_cvtepi32_ps(input_as_i32) + ), + _mm_castsi128_ps( + _mm_castps_si128( + _mm_and_ps( + _mm_castsi128_ps(input_is_out_of_range), + a_.sse_m128 + ) + ) + ) + ); + + const __m128 trunc_is_ge_input = + _mm_or_ps( + _mm_cmple_ps(a_.sse_m128, truncated), + _mm_castsi128_ps(i32_min) + ); + r_.sse_m128 = + _mm_or_ps( + _mm_andnot_ps( + trunc_is_ge_input, + _mm_add_ps(truncated, _mm_set1_ps(SIMDE_FLOAT32_C(1.0))) + ), + _mm_and_ps(trunc_is_ge_input, truncated) + ); + #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) + r_.neon_f32 = vrndpq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = vec_ceil(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_ceilf(a_.f32[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_ceil(a) simde_wasm_f32x4_ceil((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_ceil (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_ceil(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128d = _mm_round_pd(a_.sse_m128d, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vrndpq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_ceil(a_.altivec_f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_ceil(a_.f64[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_ceil(a) simde_wasm_f64x2_ceil((a)) +#endif + +/* floor */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_floor (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_floor(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128 = _mm_floor_ps(a_.sse_m128); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i vint_min = _mm_set1_epi32(INT_MIN); + const __m128i input_as_int = _mm_cvttps_epi32(a_.sse_m128); + const __m128 input_truncated = _mm_cvtepi32_ps(input_as_int); + const __m128i oor_all_or_neg = _mm_or_si128(_mm_cmpeq_epi32(input_as_int, vint_min), vint_min); + const __m128 tmp = + _mm_castsi128_ps( + _mm_or_si128( + _mm_andnot_si128( + oor_all_or_neg, + _mm_castps_si128(input_truncated) + ), + _mm_and_si128( + oor_all_or_neg, + _mm_castps_si128(a_.sse_m128) + ) + ) + ); + r_.sse_m128 = + _mm_sub_ps( + tmp, + _mm_and_ps( + _mm_cmplt_ps( + a_.sse_m128, + tmp + ), + _mm_set1_ps(SIMDE_FLOAT32_C(1.0)) + ) + ); + #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) + r_.neon_f32 = vrndmq_f32(a_.neon_f32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + const int32x4_t input_as_int = vcvtq_s32_f32(a_.f32); + const float32x4_t input_truncated = vcvtq_f32_s32(input_as_int); + const float32x4_t tmp = + vbslq_f32( + vbicq_u32( + vcagtq_f32( + vreinterpretq_f32_u32(vdupq_n_u32(UINT32_C(0x4B000000))), + a_.f32 + ), + vdupq_n_u32(UINT32_C(0x80000000)) + ), + input_truncated, + a_.f32); + r_.neon_f32 = + vsubq_f32( + tmp, + vreinterpretq_f32_u32( + vandq_u32( + vcgtq_f32( + tmp, + a_.f32 + ), + vdupq_n_u32(UINT32_C(0x3F800000)) + ) + ) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) + r_.altivec_f32 = vec_floor(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_floorf(a_.f32[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_floor(a) simde_wasm_f32x4_floor((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_floor (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_floor(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_floor(a_.f64[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_floor(a) simde_wasm_f64x2_floor((a)) +#endif + +/* trunc */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_trunc (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_trunc(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_truncf(a_.f32[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_trunc(a) simde_wasm_f32x4_trunc((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_trunc (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_trunc(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_trunc(a_.f64[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_trunc(a) simde_wasm_f64x2_trunc((a)) +#endif + +/* nearest */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_nearest (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_nearest(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_nearbyintf(a_.f32[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_nearest(a) simde_wasm_f32x4_nearest((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_nearest (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_nearest(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_nearbyint(a_.f64[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_nearest(a) simde_wasm_f64x2_nearest((a)) +#endif + +/* sqrt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_sqrt (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_sqrt(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE_NATIVE) + r_.sse_m128 = _mm_sqrt_ps(a_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f32 = vsqrtq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f32 = vec_sqrt(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_sqrtf(a_.f32[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_sqrt(a) simde_wasm_f32x4_sqrt((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_sqrt (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_sqrt(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_sqrt_pd(a_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vsqrtq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_sqrt(a_.altivec_f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_sqrt(a_.f64[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_sqrt(a) simde_wasm_f64x2_sqrt((a)) +#endif + +SIMDE_END_DECLS_ + +HEDLEY_DIAGNOSTIC_POP + +#endif /* !defined(SIMDE_WASM_SIMD128_H) */ +/* :: End simde/wasm/simd128.h :: */ diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/text/StringConcatenateNumbers.h webkit2gtk-2.46.3/Source/WTF/wtf/text/StringConcatenateNumbers.h --- webkit2gtk-2.46.0/Source/WTF/wtf/text/StringConcatenateNumbers.h 2024-08-19 06:28:38.603295800 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/text/StringConcatenateNumbers.h 2024-09-30 08:15:01.104258500 +0000 @@ -80,7 +80,7 @@ template void writeTo(CharacterType* destination) const { StringImpl::copyCharacters(destination, span()); } private: - std::span span() const { return { byteCast(&m_buffer[0]), m_length }; } + std::span span() const { return spanReinterpretCast(std::span { m_buffer }).first(m_length); } NumberToStringBuffer m_buffer; unsigned m_length; @@ -107,7 +107,7 @@ unsigned length() const { return m_length; } const LChar* buffer() const { return byteCast(&m_buffer[0]); } - std::span span() const { return { buffer(), length() }; } + std::span span() const { return spanReinterpretCast(std::span { m_buffer }).first(m_length); } private: NumberToStringBuffer m_buffer; @@ -142,7 +142,7 @@ unsigned length() const { return m_length; } const LChar* buffer() const { return byteCast(&m_buffer[0]); } - std::span span() const { return { buffer(), length() }; } + std::span span() const { return spanReinterpretCast(std::span { m_buffer }).first(m_length); } private: NumberToCSSStringBuffer m_buffer; diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/text/StringImpl.h webkit2gtk-2.46.3/Source/WTF/wtf/text/StringImpl.h --- webkit2gtk-2.46.0/Source/WTF/wtf/text/StringImpl.h 2024-08-19 06:28:38.603295800 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/text/StringImpl.h 2024-10-30 09:22:36.506296900 +0000 @@ -830,7 +830,7 @@ , m_data8(data.data()) , m_hashAndFlags(hashAndFlags) { - ASSERT(data.size() <= std::numeric_limits::max()); + RELEASE_ASSERT(data.size() <= MaxLength); } inline StringImplShape::StringImplShape(unsigned refCount, std::span data, unsigned hashAndFlags) @@ -839,7 +839,7 @@ , m_data16(data.data()) , m_hashAndFlags(hashAndFlags) { - ASSERT(data.size() <= std::numeric_limits::max()); + RELEASE_ASSERT(data.size() <= MaxLength); } template constexpr StringImplShape::StringImplShape(unsigned refCount, unsigned length, const char (&characters)[characterCount], unsigned hashAndFlags, ConstructWithConstExprTag) @@ -848,6 +848,7 @@ , m_data8Char(characters) , m_hashAndFlags(hashAndFlags) { + RELEASE_ASSERT(length <= MaxLength); } template constexpr StringImplShape::StringImplShape(unsigned refCount, unsigned length, const char16_t (&characters)[characterCount], unsigned hashAndFlags, ConstructWithConstExprTag) @@ -856,6 +857,7 @@ , m_data16Char(characters) , m_hashAndFlags(hashAndFlags) { + RELEASE_ASSERT(length <= MaxLength); } inline Ref StringImpl::isolatedCopy() const @@ -1059,8 +1061,6 @@ auto length = vector.size(); if (!length) return *empty(); - if (length > MaxLength) - CRASH(); return adoptRef(*new StringImpl(vector.releaseBuffer(), length)); } else return create(vector.span()); diff -Nru webkit2gtk-2.46.0/Source/WTF/wtf/unix/UniStdExtrasUnix.cpp webkit2gtk-2.46.3/Source/WTF/wtf/unix/UniStdExtrasUnix.cpp --- webkit2gtk-2.46.0/Source/WTF/wtf/unix/UniStdExtrasUnix.cpp 2024-08-19 06:28:38.607295800 +0000 +++ webkit2gtk-2.46.3/Source/WTF/wtf/unix/UniStdExtrasUnix.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -47,7 +47,7 @@ int returnValue = -1; do { int flags = fcntl(fileDescriptor, F_GETFD); - if (flags == -1) + if (flags != -1) returnValue = fcntl(fileDescriptor, F_SETFD, flags & ~FD_CLOEXEC); } while (returnValue == -1 && errno == EINTR); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Headers.cmake webkit2gtk-2.46.3/Source/WebCore/Headers.cmake --- webkit2gtk-2.46.0/Source/WebCore/Headers.cmake 2024-09-17 07:38:07.953445000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Headers.cmake 2024-10-30 09:22:36.506296900 +0000 @@ -419,6 +419,7 @@ Modules/indexeddb/IDBKeyPath.h Modules/indexeddb/IDBKeyRange.h Modules/indexeddb/IDBKeyRangeData.h + Modules/indexeddb/IDBObjectStoreIdentifier.h Modules/indexeddb/IDBOpenDBRequest.h Modules/indexeddb/IDBRequest.h Modules/indexeddb/IDBTransaction.h diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/WebGPU/GPUDevice.h webkit2gtk-2.46.3/Source/WebCore/Modules/WebGPU/GPUDevice.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/WebGPU/GPUDevice.h 2024-08-19 06:28:38.627295000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/WebGPU/GPUDevice.h 2024-10-21 09:00:02.703246800 +0000 @@ -172,11 +172,12 @@ #if ENABLE(VIDEO) GPUExternalTexture* externalTextureForDescriptor(const GPUExternalTextureDescriptor&); -#endif WeakHashMap> m_videoElementToExternalTextureMap; std::pair, RefPtr> m_previouslyImportedExternalTexture; std::pair, RefPtr> m_lastCreatedExternalTextureBindGroup; +#endif + bool m_waitingForDeviceLostPromise { false }; }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/fetch/FormDataConsumer.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/fetch/FormDataConsumer.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/fetch/FormDataConsumer.cpp 2024-08-19 06:28:38.675293700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/fetch/FormDataConsumer.cpp 2024-10-30 09:22:36.506296900 +0000 @@ -117,9 +117,11 @@ if (!m_callback) return; - m_callback(WTFMove(content)); - if (!m_callback) - return; + if (!content.empty()) { + m_callback(WTFMove(content)); + if (!m_callback) + return; + } read(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBObjectStoreIdentifier.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBObjectStoreIdentifier.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBObjectStoreIdentifier.h 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBObjectStoreIdentifier.h 2024-10-30 09:22:36.506296900 +0000 @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2024 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#include + +namespace WebCore { + +enum class IDBObjectStoreIdentifierType { }; +using IDBObjectStoreIdentifier = LegacyNullableAtomicObjectIdentifier; + +} // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBRequest.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBRequest.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBRequest.cpp 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBRequest.cpp 2024-10-30 09:22:36.506296900 +0000 @@ -202,17 +202,17 @@ return m_shouldExposeTransactionToDOM ? m_transaction : nullptr; } -uint64_t IDBRequest::sourceObjectStoreIdentifier() const +std::optional IDBRequest::sourceObjectStoreIdentifier() const { ASSERT(canCurrentThreadAccessThreadLocalData(originThread())); if (!m_source) - return 0; + return std::nullopt; return WTF::switchOn(m_source.value(), - [] (const RefPtr& objectStore) -> uint64_t { return objectStore->info().identifier(); }, - [] (const RefPtr& index) -> uint64_t { return index->info().objectStoreIdentifier(); }, - [] (const RefPtr&) -> uint64_t { return 0; } + [] (const RefPtr& objectStore) -> std::optional { return objectStore->info().identifier(); }, + [] (const RefPtr& index) -> std::optional { return index->info().objectStoreIdentifier(); }, + [] (const RefPtr&) -> std::optional { return std::nullopt; } ); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBRequest.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBRequest.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBRequest.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBRequest.h 2024-10-30 09:22:36.506296900 +0000 @@ -32,11 +32,13 @@ #include "IDBGetAllResult.h" #include "IDBGetResult.h" #include "IDBKeyData.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "IDBValue.h" #include "IndexedDB.h" #include "JSValueInWrappedObject.h" #include +#include #include #include #include @@ -95,7 +97,7 @@ bool isDone() const { return m_readyState == ReadyState::Done; } - uint64_t sourceObjectStoreIdentifier() const; + std::optional sourceObjectStoreIdentifier() const; uint64_t sourceIndexIdentifier() const; IndexedDB::ObjectStoreRecordType requestedObjectStoreRecordType() const; IndexedDB::IndexRecordType requestedIndexRecordType() const; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp 2024-10-30 09:22:36.506296900 +0000 @@ -231,7 +231,7 @@ Locker locker { m_referencedObjectStoreLock }; auto& info = m_database->info(); - Vector identifiersToRemove; + Vector identifiersToRemove; Vector> objectStoresToDelete; for (auto& iterator : m_deletedObjectStores) { if (info.infoForExistingObjectStore(iterator.key)) { @@ -707,7 +707,7 @@ ASSERT(!m_referencedObjectStores.contains(newName)); ASSERT(m_referencedObjectStores.get(objectStore.info().name()) == &objectStore); - uint64_t objectStoreIdentifier = objectStore.info().identifier(); + auto objectStoreIdentifier = objectStore.info().identifier(); LOG(IndexedDBOperations, "IDB rename object store operation: %s to %s", objectStore.info().condensedLoggingString().utf8().data(), newName.utf8().data()); scheduleOperation(IDBClient::TransactionOperationImpl::create(*this, [protectedThis = Ref { *this }] (const auto& result) { @@ -719,7 +719,7 @@ m_referencedObjectStores.set(newName, m_referencedObjectStores.take(objectStore.info().name())); } -void IDBTransaction::renameObjectStoreOnServer(IDBClient::TransactionOperation& operation, const uint64_t& objectStoreIdentifier, const String& newName) +void IDBTransaction::renameObjectStoreOnServer(IDBClient::TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { LOG(IndexedDB, "IDBTransaction::renameObjectStoreOnServer"); ASSERT(canCurrentThreadAccessThreadLocalData(m_database->originThread())); @@ -795,10 +795,10 @@ index.objectStore().renameReferencedIndex(index, newName); - uint64_t objectStoreIdentifier = index.objectStore().info().identifier(); + auto objectStoreIdentifier = index.objectStore().info().identifier(); uint64_t indexIdentifier = index.info().identifier(); - LOG(IndexedDBOperations, "IDB rename index operation: %s to %s under object store %" PRIu64, index.info().condensedLoggingString().utf8().data(), newName.utf8().data(), index.info().objectStoreIdentifier()); + LOG(IndexedDBOperations, "IDB rename index operation: %s to %s under object store %" PRIu64, index.info().condensedLoggingString().utf8().data(), newName.utf8().data(), objectStoreIdentifier.toRawValue()); scheduleOperation(IDBClient::TransactionOperationImpl::create(*this, [protectedThis = Ref { *this }] (const auto& result) { protectedThis->didRenameIndexOnServer(result); }, [protectedThis = Ref { *this }, objectStoreIdentifier, indexIdentifier, newName = newName.isolatedCopy()] (auto& operation) { @@ -806,7 +806,7 @@ }), IsWriteOperation::Yes); } -void IDBTransaction::renameIndexOnServer(IDBClient::TransactionOperation& operation, const uint64_t& objectStoreIdentifier, const uint64_t& indexIdentifier, const String& newName) +void IDBTransaction::renameIndexOnServer(IDBClient::TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier, const uint64_t& indexIdentifier, const String& newName) { LOG(IndexedDB, "IDBTransaction::renameIndexOnServer"); ASSERT(canCurrentThreadAccessThreadLocalData(m_database->originThread())); @@ -1208,7 +1208,7 @@ auto request = IDBRequest::create(*scriptExecutionContext(), objectStore, *this); addRequest(request.get()); - uint64_t objectStoreIdentifier = objectStore.info().identifier(); + auto objectStoreIdentifier = objectStore.info().identifier(); LOG(IndexedDBOperations, "IDB clear object store operation: %s", objectStore.info().condensedLoggingString().utf8().data()); scheduleOperation(IDBClient::TransactionOperationImpl::create(*this, request.get(), [protectedThis = Ref { *this }, request] (const auto& result) { @@ -1220,7 +1220,7 @@ return request; } -void IDBTransaction::clearObjectStoreOnServer(IDBClient::TransactionOperation& operation, const uint64_t& objectStoreIdentifier) +void IDBTransaction::clearObjectStoreOnServer(IDBClient::TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier) { LOG(IndexedDB, "IDBTransaction::clearObjectStoreOnServer"); ASSERT(canCurrentThreadAccessThreadLocalData(m_database->originThread())); @@ -1360,13 +1360,13 @@ ASSERT_UNUSED(resultData, resultData.type() == IDBResultType::DeleteObjectStoreSuccess || resultData.type() == IDBResultType::Error); } -void IDBTransaction::deleteIndex(uint64_t objectStoreIdentifier, const String& indexName) +void IDBTransaction::deleteIndex(IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { LOG(IndexedDB, "IDBTransaction::deleteIndex"); ASSERT(canCurrentThreadAccessThreadLocalData(m_database->originThread())); ASSERT(isVersionChange()); - LOG(IndexedDBOperations, "IDB delete index operation: %s (%" PRIu64 ")", indexName.utf8().data(), objectStoreIdentifier); + LOG(IndexedDBOperations, "IDB delete index operation: %s (%" PRIu64 ")", indexName.utf8().data(), objectStoreIdentifier.toRawValue()); scheduleOperation(IDBClient::TransactionOperationImpl::create(*this, [protectedThis = Ref { *this }] (const auto& result) { protectedThis->didDeleteIndexOnServer(result); }, [protectedThis = Ref { *this }, objectStoreIdentifier, indexName = indexName.isolatedCopy()] (auto& operation) { @@ -1374,7 +1374,7 @@ }), IsWriteOperation::Yes); } -void IDBTransaction::deleteIndexOnServer(IDBClient::TransactionOperation& operation, const uint64_t& objectStoreIdentifier, const String& indexName) +void IDBTransaction::deleteIndexOnServer(IDBClient::TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { LOG(IndexedDB, "IDBTransaction::deleteIndexOnServer"); ASSERT(isVersionChange()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBTransaction.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBTransaction.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/IDBTransaction.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/IDBTransaction.h 2024-10-30 09:22:36.506296900 +0000 @@ -31,6 +31,7 @@ #include "IDBGetAllRecordsData.h" #include "IDBGetRecordData.h" #include "IDBKeyRangeData.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBOpenDBRequest.h" #include "IDBTransactionInfo.h" #include "IDBTransactionMode.h" @@ -124,7 +125,7 @@ void iterateCursor(IDBCursor&, const IDBIterateCursorData&); void deleteObjectStore(const String& objectStoreName); - void deleteIndex(uint64_t objectStoreIdentifier, const String& indexName); + void deleteIndex(IDBObjectStoreIdentifier, const String& indexName); void addRequest(IDBRequest&); void removeRequest(IDBRequest&); @@ -186,16 +187,16 @@ void createObjectStoreOnServer(IDBClient::TransactionOperation&, const IDBObjectStoreInfo&); void didCreateObjectStoreOnServer(const IDBResultData&); - void renameObjectStoreOnServer(IDBClient::TransactionOperation&, const uint64_t& objectStoreIdentifier, const String& newName); + void renameObjectStoreOnServer(IDBClient::TransactionOperation&, IDBObjectStoreIdentifier, const String& newName); void didRenameObjectStoreOnServer(const IDBResultData&); void createIndexOnServer(IDBClient::TransactionOperation&, const IDBIndexInfo&); void didCreateIndexOnServer(const IDBResultData&); - void renameIndexOnServer(IDBClient::TransactionOperation&, const uint64_t& objectStoreIdentifier, const uint64_t& indexIdentifier, const String& newName); + void renameIndexOnServer(IDBClient::TransactionOperation&, IDBObjectStoreIdentifier, const uint64_t& indexIdentifier, const String& newName); void didRenameIndexOnServer(const IDBResultData&); - void clearObjectStoreOnServer(IDBClient::TransactionOperation&, const uint64_t& objectStoreIdentifier); + void clearObjectStoreOnServer(IDBClient::TransactionOperation&, IDBObjectStoreIdentifier); void didClearObjectStoreOnServer(IDBRequest&, const IDBResultData&); void putOrAddOnServer(IDBClient::TransactionOperation&, RefPtr, RefPtr, const IndexedDB::ObjectStoreOverwriteMode&); @@ -216,7 +217,7 @@ void deleteObjectStoreOnServer(IDBClient::TransactionOperation&, const String& objectStoreName); void didDeleteObjectStoreOnServer(const IDBResultData&); - void deleteIndexOnServer(IDBClient::TransactionOperation&, const uint64_t& objectStoreIdentifier, const String& indexName); + void deleteIndexOnServer(IDBClient::TransactionOperation&, IDBObjectStoreIdentifier, const String& indexName); void didDeleteIndexOnServer(const IDBResultData&); Ref doRequestOpenCursor(Ref&&); @@ -256,7 +257,7 @@ mutable Lock m_referencedObjectStoreLock; HashMap> m_referencedObjectStores WTF_GUARDED_BY_LOCK(m_referencedObjectStoreLock); - HashMap> m_deletedObjectStores; + HashMap> m_deletedObjectStores; HashSet> m_openRequests; RefPtr m_currentlyCompletingRequest; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp 2024-10-30 09:22:36.506296900 +0000 @@ -143,7 +143,7 @@ callConnectionOnMainThread(&IDBConnectionToServer::createObjectStore, requestData, info); } -void IDBConnectionProxy::renameObjectStore(TransactionOperation& operation, uint64_t objectStoreIdentifier, const String& newName) +void IDBConnectionProxy::renameObjectStore(TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { const IDBRequestData requestData { operation }; saveOperation(operation); @@ -151,7 +151,7 @@ callConnectionOnMainThread(&IDBConnectionToServer::renameObjectStore, requestData, objectStoreIdentifier, newName); } -void IDBConnectionProxy::renameIndex(TransactionOperation& operation, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +void IDBConnectionProxy::renameIndex(TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { const IDBRequestData requestData { operation }; saveOperation(operation); @@ -167,7 +167,7 @@ callConnectionOnMainThread(&IDBConnectionToServer::deleteObjectStore, requestData, objectStoreName); } -void IDBConnectionProxy::clearObjectStore(TransactionOperation& operation, uint64_t objectStoreIdentifier) +void IDBConnectionProxy::clearObjectStore(TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier) { const IDBRequestData requestData { operation }; saveOperation(operation); @@ -183,7 +183,7 @@ callConnectionOnMainThread(&IDBConnectionToServer::createIndex, requestData, info); } -void IDBConnectionProxy::deleteIndex(TransactionOperation& operation, uint64_t objectStoreIdentifier, const String& indexName) +void IDBConnectionProxy::deleteIndex(TransactionOperation& operation, IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { const IDBRequestData requestData { operation }; saveOperation(operation); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h 2024-10-30 09:22:36.506296900 +0000 @@ -27,6 +27,7 @@ #include "IDBConnectionToServer.h" #include "IDBDatabaseNameAndVersionRequest.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "TransactionOperation.h" #include @@ -72,9 +73,9 @@ void createObjectStore(TransactionOperation&, const IDBObjectStoreInfo&); void deleteObjectStore(TransactionOperation&, const String& objectStoreName); - void clearObjectStore(TransactionOperation&, uint64_t objectStoreIdentifier); + void clearObjectStore(TransactionOperation&, IDBObjectStoreIdentifier); void createIndex(TransactionOperation&, const IDBIndexInfo&); - void deleteIndex(TransactionOperation&, uint64_t objectStoreIdentifier, const String& indexName); + void deleteIndex(TransactionOperation&, IDBObjectStoreIdentifier, const String& indexName); void putOrAdd(TransactionOperation&, IDBKeyData&&, const IDBValue&, const IndexedDB::ObjectStoreOverwriteMode); void getRecord(TransactionOperation&, const IDBGetRecordData&); void getAllRecords(TransactionOperation&, const IDBGetAllRecordsData&); @@ -82,8 +83,8 @@ void deleteRecord(TransactionOperation&, const IDBKeyRangeData&); void openCursor(TransactionOperation&, const IDBCursorInfo&); void iterateCursor(TransactionOperation&, const IDBIterateCursorData&); - void renameObjectStore(TransactionOperation&, uint64_t objectStoreIdentifier, const String& newName); - void renameIndex(TransactionOperation&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName); + void renameObjectStore(TransactionOperation&, IDBObjectStoreIdentifier, const String& newName); + void renameIndex(TransactionOperation&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName); void fireVersionChangeEvent(IDBDatabaseConnectionIdentifier, const IDBResourceIdentifier& requestIdentifier, uint64_t requestedVersion); void didFireVersionChangeEvent(IDBDatabaseConnectionIdentifier, const IDBResourceIdentifier& requestIdentifier, const IndexedDB::ConnectionClosedOnBehalfOfServer = IndexedDB::ConnectionClosedOnBehalfOfServer::No); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -141,7 +141,7 @@ m_proxy->completeOperation(resultData); } -void IDBConnectionToServer::renameObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& newName) +void IDBConnectionToServer::renameObjectStore(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { LOG(IndexedDB, "IDBConnectionToServer::renameObjectStore"); ASSERT(isMainThread()); @@ -158,7 +158,7 @@ m_proxy->completeOperation(resultData); } -void IDBConnectionToServer::clearObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier) +void IDBConnectionToServer::clearObjectStore(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier) { LOG(IndexedDB, "IDBConnectionToServer::clearObjectStore"); ASSERT(isMainThread()); @@ -192,7 +192,7 @@ m_proxy->completeOperation(resultData); } -void IDBConnectionToServer::deleteIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& indexName) +void IDBConnectionToServer::deleteIndex(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { LOG(IndexedDB, "IDBConnectionToServer::deleteIndex"); ASSERT(isMainThread()); @@ -209,7 +209,7 @@ m_proxy->completeOperation(resultData); } -void IDBConnectionToServer::renameIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +void IDBConnectionToServer::renameIndex(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { LOG(IndexedDB, "IDBConnectionToServer::renameIndex"); ASSERT(isMainThread()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h 2024-10-30 09:22:36.510297000 +0000 @@ -28,6 +28,7 @@ #include "IDBConnectionProxy.h" #include "IDBConnectionToServerDelegate.h" #include "IDBDatabaseConnectionIdentifier.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include #include @@ -74,19 +75,19 @@ void deleteObjectStore(const IDBRequestData&, const String& objectStoreName); WEBCORE_EXPORT void didDeleteObjectStore(const IDBResultData&); - void renameObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName); + void renameObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier, const String& newName); WEBCORE_EXPORT void didRenameObjectStore(const IDBResultData&); - void clearObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier); + void clearObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier); WEBCORE_EXPORT void didClearObjectStore(const IDBResultData&); void createIndex(const IDBRequestData&, const IDBIndexInfo&); WEBCORE_EXPORT void didCreateIndex(const IDBResultData&); - void deleteIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName); + void deleteIndex(const IDBRequestData&, IDBObjectStoreIdentifier, const String& indexName); WEBCORE_EXPORT void didDeleteIndex(const IDBResultData&); - void renameIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName); + void renameIndex(const IDBRequestData&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName); WEBCORE_EXPORT void didRenameIndex(const IDBResultData&); void putOrAdd(const IDBRequestData&, const IDBKeyData&, const IDBValue&, const IndexedDB::ObjectStoreOverwriteMode); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h 2024-10-30 09:22:36.510297000 +0000 @@ -26,6 +26,7 @@ #pragma once #include "IDBDatabaseConnectionIdentifier.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include #include @@ -79,11 +80,11 @@ virtual void didFinishHandlingVersionChangeTransaction(IDBDatabaseConnectionIdentifier, const IDBResourceIdentifier&) = 0; virtual void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&) = 0; virtual void deleteObjectStore(const IDBRequestData&, const String& objectStoreName) = 0; - virtual void renameObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName) = 0; - virtual void clearObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier) = 0; + virtual void renameObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier, const String& newName) = 0; + virtual void clearObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier) = 0; virtual void createIndex(const IDBRequestData&, const IDBIndexInfo&) = 0; - virtual void deleteIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName) = 0; - virtual void renameIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) = 0; + virtual void deleteIndex(const IDBRequestData&, IDBObjectStoreIdentifier, const String& indexName) = 0; + virtual void renameIndex(const IDBRequestData&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName) = 0; virtual void putOrAdd(const IDBRequestData&, const IDBKeyData&, const IDBValue&, const IndexedDB::ObjectStoreOverwriteMode) = 0; virtual void getRecord(const IDBRequestData&, const IDBGetRecordData&) = 0; virtual void getAllRecords(const IDBRequestData&, const IDBGetAllRecordsData&) = 0; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/TransactionOperation.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/TransactionOperation.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/client/TransactionOperation.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/client/TransactionOperation.h 2024-10-30 09:22:36.510297000 +0000 @@ -25,13 +25,16 @@ #pragma once +#include "IDBObjectStoreIdentifier.h" #include "IDBRequest.h" #include "IDBRequestData.h" #include "IDBResourceIdentifier.h" #include "IDBResultData.h" #include "IDBTransaction.h" +#include #include #include +#include #include namespace WebCore { @@ -125,7 +128,7 @@ Ref m_transaction; IDBResourceIdentifier m_identifier; - uint64_t m_objectStoreIdentifier { 0 }; + Markable m_objectStoreIdentifier; uint64_t m_indexIdentifier { 0 }; std::optional m_cursorIdentifier; IndexedDB::IndexRecordType m_indexRecordType { IndexedDB::IndexRecordType::Key }; @@ -134,7 +137,7 @@ private: IDBResourceIdentifier transactionIdentifier() const { return m_transaction->info().identifier(); } - uint64_t objectStoreIdentifier() const { return m_objectStoreIdentifier; } + std::optional objectStoreIdentifier() const { return m_objectStoreIdentifier; } uint64_t indexIdentifier() const { return m_indexIdentifier; } std::optional cursorIdentifier() const { return m_cursorIdentifier; } IDBTransaction& transaction() { return m_transaction.get(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h 2024-10-30 09:22:36.510297000 +0000 @@ -27,6 +27,7 @@ #include "IDBDatabaseInfo.h" #include "IDBError.h" +#include "IDBObjectStoreIdentifier.h" #include "IndexKey.h" #include @@ -67,26 +68,26 @@ virtual IDBError commitTransaction(const IDBResourceIdentifier& transactionIdentifier) = 0; virtual IDBError createObjectStore(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo&) = 0; - virtual IDBError deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) = 0; - virtual IDBError renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const String& newName) = 0; - virtual IDBError clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) = 0; + virtual IDBError deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier) = 0; + virtual IDBError renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const String& newName) = 0; + virtual IDBError clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier) = 0; virtual IDBError createIndex(const IDBResourceIdentifier& transactionIdentifier, const IDBIndexInfo&) = 0; - virtual IDBError deleteIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier) = 0; - virtual IDBError renameIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) = 0; - virtual IDBError keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyData&, bool& keyExists) = 0; - virtual IDBError deleteRange(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData&) = 0; + virtual IDBError deleteIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier) = 0; + virtual IDBError renameIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName) = 0; + virtual IDBError keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyData&, bool& keyExists) = 0; + virtual IDBError deleteRange(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyRangeData&) = 0; virtual IDBError addRecord(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo&, const IDBKeyData&, const IndexIDToIndexKeyMap&, const IDBValue&) = 0; - virtual IDBError getRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData&, IDBGetRecordDataType, IDBGetResult& outValue) = 0; + virtual IDBError getRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyRangeData&, IDBGetRecordDataType, IDBGetResult& outValue) = 0; virtual IDBError getAllRecords(const IDBResourceIdentifier& transactionIdentifier, const IDBGetAllRecordsData&, IDBGetAllResult& outValue) = 0; - virtual IDBError getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult& outValue) = 0; - virtual IDBError getCount(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, uint64_t& outCount) = 0; - virtual IDBError generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t& keyNumber) = 0; - virtual IDBError revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t keyNumber) = 0; - virtual IDBError maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, double newKeyNumber) = 0; + virtual IDBError getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult& outValue) = 0; + virtual IDBError getCount(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, uint64_t& outCount) = 0; + virtual IDBError generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t& keyNumber) = 0; + virtual IDBError revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t keyNumber) = 0; + virtual IDBError maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, double newKeyNumber) = 0; virtual IDBError openCursor(const IDBResourceIdentifier& transactionIdentifier, const IDBCursorInfo&, IDBGetResult& outResult) = 0; virtual IDBError iterateCursor(const IDBResourceIdentifier& transactionIdentifier, const IDBResourceIdentifier& cursorIdentifier, const IDBIterateCursorData&, IDBGetResult& outResult) = 0; - virtual IDBObjectStoreInfo* infoForObjectStore(uint64_t objectStoreIdentifier) = 0; + virtual IDBObjectStoreInfo* infoForObjectStore(IDBObjectStoreIdentifier) = 0; virtual void deleteBackingStore() = 0; virtual bool supportsSimultaneousReadWriteTransactions() = 0; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -220,7 +220,7 @@ transaction->deleteObjectStore(requestData, objectStoreName); } -void IDBServer::renameObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& newName) +void IDBServer::renameObjectStore(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { LOG(IndexedDB, "IDBServer::renameObjectStore"); ASSERT(!isMainThread()); @@ -234,7 +234,7 @@ transaction->renameObjectStore(requestData, objectStoreIdentifier, newName); } -void IDBServer::clearObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier) +void IDBServer::clearObjectStore(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier) { LOG(IndexedDB, "IDBServer::clearObjectStore"); ASSERT(!isMainThread()); @@ -261,7 +261,7 @@ transaction->createIndex(requestData, info); } -void IDBServer::deleteIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& indexName) +void IDBServer::deleteIndex(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { LOG(IndexedDB, "IDBServer::deleteIndex"); ASSERT(!isMainThread()); @@ -275,7 +275,7 @@ transaction->deleteIndex(requestData, objectStoreIdentifier, indexName); } -void IDBServer::renameIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +void IDBServer::renameIndex(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { LOG(IndexedDB, "IDBServer::renameIndex"); ASSERT(!isMainThread()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/IDBServer.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/IDBServer.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/IDBServer.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/IDBServer.h 2024-10-30 09:22:36.510297000 +0000 @@ -27,6 +27,7 @@ #include "IDBConnectionToClient.h" #include "IDBDatabaseIdentifier.h" +#include "IDBObjectStoreIdentifier.h" #include "UniqueIDBDatabase.h" #include "UniqueIDBDatabaseConnection.h" #include "UniqueIDBDatabaseManager.h" @@ -63,12 +64,12 @@ WEBCORE_EXPORT void commitTransaction(const IDBResourceIdentifier&, uint64_t handledRequestResultsCount); WEBCORE_EXPORT void didFinishHandlingVersionChangeTransaction(IDBDatabaseConnectionIdentifier, const IDBResourceIdentifier&); WEBCORE_EXPORT void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&); - WEBCORE_EXPORT void renameObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName); + WEBCORE_EXPORT void renameObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier, const String& newName); WEBCORE_EXPORT void deleteObjectStore(const IDBRequestData&, const String& objectStoreName); - WEBCORE_EXPORT void clearObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier); + WEBCORE_EXPORT void clearObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier); WEBCORE_EXPORT void createIndex(const IDBRequestData&, const IDBIndexInfo&); - WEBCORE_EXPORT void deleteIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName); - WEBCORE_EXPORT void renameIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName); + WEBCORE_EXPORT void deleteIndex(const IDBRequestData&, IDBObjectStoreIdentifier, const String& indexName); + WEBCORE_EXPORT void renameIndex(const IDBRequestData&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName); WEBCORE_EXPORT void putOrAdd(const IDBRequestData&, const IDBKeyData&, const IDBValue&, IndexedDB::ObjectStoreOverwriteMode); WEBCORE_EXPORT void getRecord(const IDBRequestData&, const IDBGetRecordData&); WEBCORE_EXPORT void getAllRecords(const IDBRequestData&, const IDBGetAllRecordsData&); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -126,7 +126,7 @@ IDBError MemoryIDBBackingStore::createObjectStore(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo& info) { - LOG(IndexedDB, "MemoryIDBBackingStore::createObjectStore - adding OS %s with ID %" PRIu64, info.name().utf8().data(), info.identifier()); + LOG(IndexedDB, "MemoryIDBBackingStore::createObjectStore - adding OS %s with ID %" PRIu64, info.name().utf8().data(), info.identifier().toRawValue()); ASSERT(m_databaseInfo); if (m_databaseInfo->hasObjectStore(info.name())) @@ -147,7 +147,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) +IDBError MemoryIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier) { LOG(IndexedDB, "MemoryIDBBackingStore::deleteObjectStore"); @@ -170,7 +170,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const String& newName) +IDBError MemoryIDBBackingStore::renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { LOG(IndexedDB, "MemoryIDBBackingStore::renameObjectStore"); @@ -199,7 +199,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) +IDBError MemoryIDBBackingStore::clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier) { LOG(IndexedDB, "MemoryIDBBackingStore::clearObjectStore"); ASSERT(objectStoreIdentifier); @@ -246,7 +246,7 @@ return error; } -IDBError MemoryIDBBackingStore::deleteIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier) +IDBError MemoryIDBBackingStore::deleteIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier) { LOG(IndexedDB, "MemoryIDBBackingStore::deleteIndex"); @@ -274,7 +274,7 @@ return error; } -IDBError MemoryIDBBackingStore::renameIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +IDBError MemoryIDBBackingStore::renameIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { LOG(IndexedDB, "MemoryIDBBackingStore::renameIndex"); @@ -339,7 +339,7 @@ registerObjectStore(WTFMove(objectStore)); } -IDBError MemoryIDBBackingStore::keyExistsInObjectStore(const IDBResourceIdentifier&, uint64_t objectStoreIdentifier, const IDBKeyData& keyData, bool& keyExists) +IDBError MemoryIDBBackingStore::keyExistsInObjectStore(const IDBResourceIdentifier&, IDBObjectStoreIdentifier objectStoreIdentifier, const IDBKeyData& keyData, bool& keyExists) { LOG(IndexedDB, "MemoryIDBBackingStore::keyExistsInObjectStore"); @@ -352,7 +352,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::deleteRange(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData& range) +IDBError MemoryIDBBackingStore::deleteRange(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, const IDBKeyRangeData& range) { LOG(IndexedDB, "MemoryIDBBackingStore::deleteRange"); @@ -386,7 +386,7 @@ return objectStore->addRecord(*transaction, keyData, indexKeys, value); } -IDBError MemoryIDBBackingStore::getRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData& range, IDBGetRecordDataType type, IDBGetResult& outValue) +IDBError MemoryIDBBackingStore::getRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, const IDBKeyRangeData& range, IDBGetRecordDataType type, IDBGetResult& outValue) { LOG(IndexedDB, "MemoryIDBBackingStore::getRecord"); @@ -438,7 +438,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType recordType, const IDBKeyRangeData& range, IDBGetResult& outValue) +IDBError MemoryIDBBackingStore::getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType recordType, const IDBKeyRangeData& range, IDBGetResult& outValue) { LOG(IndexedDB, "MemoryIDBBackingStore::getIndexRecord"); @@ -455,7 +455,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::getCount(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, uint64_t& outCount) +IDBError MemoryIDBBackingStore::getCount(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, uint64_t& outCount) { LOG(IndexedDB, "MemoryIDBBackingStore::getCount"); @@ -473,7 +473,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t& keyNumber) +IDBError MemoryIDBBackingStore::generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t& keyNumber) { LOG(IndexedDB, "MemoryIDBBackingStore::generateKeyNumber"); ASSERT(objectStoreIdentifier); @@ -492,10 +492,9 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t keyNumber) +IDBError MemoryIDBBackingStore::revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t keyNumber) { LOG(IndexedDB, "MemoryIDBBackingStore::revertGeneratedKeyNumber"); - ASSERT(objectStoreIdentifier); ASSERT_UNUSED(transactionIdentifier, m_transactions.contains(transactionIdentifier)); ASSERT_UNUSED(transactionIdentifier, m_transactions.get(transactionIdentifier)->isWriting()); @@ -507,7 +506,7 @@ return IDBError { }; } -IDBError MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, double newKeyNumber) +IDBError MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, double newKeyNumber) { LOG(IndexedDB, "MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber"); ASSERT(objectStoreIdentifier); @@ -547,7 +546,7 @@ switch (info.cursorSource()) { case IndexedDB::CursorSource::ObjectStore: { - auto* objectStore = m_objectStoresByIdentifier.get(info.sourceIdentifier()); + RefPtr objectStore = m_objectStoresByIdentifier.get(IDBObjectStoreIdentifier { info.sourceIdentifier() }); if (!objectStore) return IDBError { ExceptionCode::UnknownError, "No backing store object store found"_s }; @@ -613,9 +612,9 @@ m_objectStoresByIdentifier.remove(objectStore.info().identifier()); } -RefPtr MemoryIDBBackingStore::takeObjectStoreByIdentifier(uint64_t identifier) +RefPtr MemoryIDBBackingStore::takeObjectStoreByIdentifier(IDBObjectStoreIdentifier objectStoreIdentifier) { - auto objectStoreByIdentifier = m_objectStoresByIdentifier.take(identifier); + auto objectStoreByIdentifier = m_objectStoresByIdentifier.take(objectStoreIdentifier); if (!objectStoreByIdentifier) return nullptr; @@ -625,7 +624,7 @@ return objectStoreByIdentifier; } -IDBObjectStoreInfo* MemoryIDBBackingStore::infoForObjectStore(uint64_t objectStoreIdentifier) +IDBObjectStoreInfo* MemoryIDBBackingStore::infoForObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) { ASSERT(m_databaseInfo); return m_databaseInfo->infoForExistingObjectStore(objectStoreIdentifier); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h 2024-08-19 06:28:38.687293300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h 2024-10-30 09:22:36.510297000 +0000 @@ -27,6 +27,7 @@ #include "IDBBackingStore.h" #include "IDBDatabaseIdentifier.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "IndexKey.h" #include "MemoryBackingStoreTransaction.h" @@ -46,7 +47,7 @@ IDBError getOrEstablishDatabaseInfo(IDBDatabaseInfo&) final; uint64_t databaseVersion() final; void setDatabaseInfo(const IDBDatabaseInfo&); - bool hasObjectStore(uint64_t objectStoreIdentifier) { return !!infoForObjectStore(objectStoreIdentifier); } + bool hasObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) { return !!infoForObjectStore(objectStoreIdentifier); } void renameObjectStoreForVersionChangeAbort(MemoryObjectStore&, const String& oldName); void removeObjectStoreForVersionChangeAbort(MemoryObjectStore&); @@ -58,26 +59,26 @@ IDBError abortTransaction(const IDBResourceIdentifier& transactionIdentifier) final; IDBError commitTransaction(const IDBResourceIdentifier& transactionIdentifier) final; IDBError createObjectStore(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo&) final; - IDBError deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) final; - IDBError renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const String& newName) final; - IDBError clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) final; + IDBError deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier) final; + IDBError renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const String& newName) final; + IDBError clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier) final; IDBError createIndex(const IDBResourceIdentifier& transactionIdentifier, const IDBIndexInfo&) final; - IDBError deleteIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier) final; - IDBError renameIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final; - IDBError keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyData&, bool& keyExists) final; - IDBError deleteRange(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData&) final; + IDBError deleteIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier) final; + IDBError renameIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final; + IDBError keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyData&, bool& keyExists) final; + IDBError deleteRange(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyRangeData&) final; IDBError addRecord(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo&, const IDBKeyData&, const IndexIDToIndexKeyMap&, const IDBValue&) final; - IDBError getRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData&, IDBGetRecordDataType, IDBGetResult& outValue) final; + IDBError getRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyRangeData&, IDBGetRecordDataType, IDBGetResult& outValue) final; IDBError getAllRecords(const IDBResourceIdentifier& transactionIdentifier, const IDBGetAllRecordsData&, IDBGetAllResult& outValue) final; - IDBError getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult& outValue) final; - IDBError getCount(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, uint64_t& outCount) final; - IDBError generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t& keyNumber) final; - IDBError revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t keyNumber) final; - IDBError maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, double newKeyNumber) final; + IDBError getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult& outValue) final; + IDBError getCount(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, uint64_t& outCount) final; + IDBError generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t& keyNumber) final; + IDBError revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t keyNumber) final; + IDBError maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, double newKeyNumber) final; IDBError openCursor(const IDBResourceIdentifier& transactionIdentifier, const IDBCursorInfo&, IDBGetResult& outResult) final; IDBError iterateCursor(const IDBResourceIdentifier& transactionIdentifier, const IDBResourceIdentifier& cursorIdentifier, const IDBIterateCursorData&, IDBGetResult& outResult) final; - IDBObjectStoreInfo* infoForObjectStore(uint64_t objectStoreIdentifier) final; + IDBObjectStoreInfo* infoForObjectStore(IDBObjectStoreIdentifier) final; void deleteBackingStore() final; bool supportsSimultaneousReadWriteTransactions() final { return true; } @@ -86,7 +87,7 @@ bool hasTransaction(const IDBResourceIdentifier& identifier) const final { return m_transactions.contains(identifier); } - RefPtr takeObjectStoreByIdentifier(uint64_t identifier); + RefPtr takeObjectStoreByIdentifier(IDBObjectStoreIdentifier); void close() final; @@ -98,7 +99,7 @@ HashMap> m_transactions; - HashMap> m_objectStoresByIdentifier; + HashMap> m_objectStoresByIdentifier; HashMap> m_objectStoresByName; }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -524,7 +524,7 @@ return { IsSchemaUpgraded::Yes }; } -bool SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate(const HashMap, uint64_t>& indexIDMap) +bool SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate(const HashMap, uint64_t>& indexIDMap) { SQLiteDatabase& database = *m_sqliteDB; SQLiteTransaction transaction(database); @@ -546,7 +546,7 @@ while (result == SQLITE_ROW) { uint64_t id = statement->columnInt64(0); String name = statement->columnText(1); - uint64_t objectStoreID = statement->columnInt64(2); + IDBObjectStoreIdentifier objectStoreID { static_cast(statement->columnInt64(2)) }; uint64_t newID = indexIDMap.get({ objectStoreID, id }); auto keyPathBufferSpan = statement->columnBlobAsSpan(3); bool unique = statement->columnInt(4); @@ -556,7 +556,7 @@ if (!sql || sql->bindInt64(1, newID) != SQLITE_OK || sql->bindText(2, name) != SQLITE_OK - || sql->bindInt64(3, objectStoreID) != SQLITE_OK + || sql->bindInt64(3, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(4, keyPathBufferSpan) != SQLITE_OK || sql->bindInt(5, unique) != SQLITE_OK || sql->bindInt(6, multiEntry) != SQLITE_OK @@ -588,7 +588,7 @@ return true; } -bool SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate(const HashMap, uint64_t>& indexIDMap) +bool SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate(const HashMap, uint64_t>& indexIDMap) { SQLiteDatabase& database = *m_sqliteDB; SQLiteTransaction transaction(database); @@ -609,7 +609,7 @@ int result = statement->step(); while (result == SQLITE_ROW) { uint64_t id = statement->columnInt64(0); - uint64_t objectStoreID = statement->columnInt64(1); + IDBObjectStoreIdentifier objectStoreID { static_cast(statement->columnInt64(1)) }; uint64_t newID = indexIDMap.get({ objectStoreID, id }); auto keyBufferSpan = statement->columnBlobAsSpan(2); auto valueBufferSpan = statement->columnBlobAsSpan(3); @@ -618,7 +618,7 @@ auto sql = cachedStatement(SQL::PutTempIndexRecord, "INSERT INTO _Temp_IndexRecords VALUES (?, ?, CAST(? AS TEXT), CAST(? AS TEXT), ?);"_s); if (!sql || sql->bindInt64(1, newID) != SQLITE_OK - || sql->bindInt64(2, objectStoreID) != SQLITE_OK + || sql->bindInt64(2, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(3, keyBufferSpan) != SQLITE_OK || sql->bindBlob(4, valueBufferSpan) != SQLITE_OK || sql->bindInt64(5, recordID) != SQLITE_OK @@ -695,7 +695,7 @@ if (!sql || sql->bindInt64(1, info.identifier()) != SQLITE_OK || sql->bindText(2, info.name()) != SQLITE_OK - || sql->bindInt64(3, info.objectStoreIdentifier()) != SQLITE_OK + || sql->bindInt64(3, info.objectStoreIdentifier().toRawValue()) != SQLITE_OK || sql->bindBlob(4, keyPathBlob->span()) != SQLITE_OK || sql->bindInt(5, info.unique()) != SQLITE_OK || sql->bindInt(6, info.multiEntry()) != SQLITE_OK @@ -708,7 +708,7 @@ { auto sql = cachedStatement(SQL::GetObjectStoreRecords, "SELECT key, value, recordID FROM Records WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, info.objectStoreIdentifier()) != SQLITE_OK) { + || sql->bindInt64(1, info.objectStoreIdentifier().toRawValue()) != SQLITE_OK) { LOG_ERROR("Unable to prepare statement or bind values (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return false; } @@ -814,7 +814,7 @@ int result = sql->step(); while (result == SQLITE_ROW) { - uint64_t objectStoreID = sql->columnInt64(0); + IDBObjectStoreIdentifier objectStoreID { static_cast(sql->columnInt64(0)) }; String objectStoreName = sql->columnText(1); auto keyPathBufferSpan = sql->columnBlobAsSpan(2); @@ -838,7 +838,7 @@ } uint64_t maxIndexID = 0; - HashMap, uint64_t> indexIDMap; + HashMap, uint64_t> indexIDMap; HashMap> indexInfoMap; { auto sql = m_sqliteDB->prepareStatement("SELECT id, name, objectStoreID, keyPath, isUnique, multiEntry FROM IndexInfo;"_s); @@ -851,7 +851,7 @@ while (result == SQLITE_ROW) { uint64_t indexID = sql->columnInt64(0); String indexName = sql->columnText(1); - uint64_t objectStoreID = sql->columnInt64(2); + IDBObjectStoreIdentifier objectStoreID { static_cast(sql->columnInt64(2)) }; auto keyPathBufferSpan = sql->columnBlobAsSpan(3); std::optional indexKeyPath; @@ -1145,7 +1145,7 @@ IDBError SQLiteIDBBackingStore::createObjectStore(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo& info) { - LOG(IndexedDB, "SQLiteIDBBackingStore::createObjectStore - adding OS %s with ID %" PRIu64, info.name().utf8().data(), info.identifier()); + LOG(IndexedDB, "SQLiteIDBBackingStore::createObjectStore - adding OS %s with ID %" PRIu64, info.name().utf8().data(), info.identifier().toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1168,7 +1168,7 @@ { auto sql = cachedStatement(SQL::CreateObjectStoreInfo, "INSERT INTO ObjectStoreInfo VALUES (?, ?, ?, ?);"_s); if (!sql - || sql->bindInt64(1, info.identifier()) != SQLITE_OK + || sql->bindInt64(1, info.identifier().toRawValue()) != SQLITE_OK || sql->bindText(2, info.name()) != SQLITE_OK || sql->bindBlob(3, keyPathBlob->span()) != SQLITE_OK || sql->bindInt(4, info.autoIncrement()) != SQLITE_OK @@ -1181,7 +1181,7 @@ { auto sql = cachedStatement(SQL::CreateObjectStoreKeyGenerator, "INSERT INTO KeyGenerators VALUES (?, 0);"_s); if (!sql - || sql->bindInt64(1, info.identifier()) != SQLITE_OK + || sql->bindInt64(1, info.identifier().toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Could not seed initial key generator value for ObjectStoreInfo table (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not seed initial key generator value for object store"_s }; @@ -1193,9 +1193,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) +IDBError SQLiteIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier) { - LOG(IndexedDB, "SQLiteIDBBackingStore::deleteObjectStore - object store %" PRIu64, objectStoreIdentifier); + LOG(IndexedDB, "SQLiteIDBBackingStore::deleteObjectStore - object store %" PRIu64, objectStoreIdentifier.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1213,9 +1213,9 @@ { auto sql = cachedStatement(SQL::DeleteObjectStoreInfo, "DELETE FROM ObjectStoreInfo WHERE id = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(1, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete object store id %" PRIi64 " from ObjectStoreInfo table (%i) - %s", objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete object store id %" PRIi64 " from ObjectStoreInfo table (%i) - %s", objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not delete object store"_s }; } } @@ -1224,7 +1224,7 @@ { auto sql = cachedStatement(SQL::DeleteObjectStoreKeyGenerator, "DELETE FROM KeyGenerators WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(1, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Could not delete object store from KeyGenerators table (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not delete key generator for deleted object store"_s }; @@ -1235,9 +1235,9 @@ { auto sql = cachedStatement(SQL::DeleteObjectStoreRecords, "DELETE FROM Records WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(1, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete records for object store %" PRIi64 " (%i) - %s", objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete records for object store %" PRIi64 " (%i) - %s", objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not delete records for deleted object store"_s }; } } @@ -1246,7 +1246,7 @@ { auto sql = cachedStatement(SQL::DeleteObjectStoreIndexInfo, "DELETE FROM IndexInfo WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(1, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Could not delete index from IndexInfo table (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not delete IDBIndex for deleted object store"_s }; @@ -1257,7 +1257,7 @@ { auto sql = cachedStatement(SQL::DeleteObjectStoreIndexRecords, "DELETE FROM IndexRecords WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(1, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Could not delete index records(%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not delete IDBIndex records for deleted object store"_s }; @@ -1284,9 +1284,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const String& newName) +IDBError SQLiteIDBBackingStore::renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { - LOG(IndexedDB, "SQLiteIDBBackingStore::renameObjectStore - object store %" PRIu64, objectStoreIdentifier); + LOG(IndexedDB, "SQLiteIDBBackingStore::renameObjectStore - object store %" PRIu64, objectStoreIdentifier.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1304,9 +1304,9 @@ auto sql = cachedStatement(SQL::RenameObjectStore, "UPDATE ObjectStoreInfo SET name = ? WHERE id = ?;"_s); if (!sql || sql->bindText(1, newName) != SQLITE_OK - || sql->bindInt64(2, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(2, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not update name for object store id %" PRIi64 " in ObjectStoreInfo table (%i) - %s", objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not update name for object store id %" PRIi64 " in ObjectStoreInfo table (%i) - %s", objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not rename object store"_s }; } } @@ -1316,9 +1316,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID) +IDBError SQLiteIDBBackingStore::clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID) { - LOG(IndexedDB, "SQLiteIDBBackingStore::clearObjectStore - object store %" PRIu64, objectStoreID); + LOG(IndexedDB, "SQLiteIDBBackingStore::clearObjectStore - object store %" PRIu64, objectStoreID.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1335,9 +1335,9 @@ { auto sql = cachedStatement(SQL::ClearObjectStoreRecords, "DELETE FROM Records WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not clear records from object store id %" PRIi64 " (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not clear records from object store id %" PRIi64 " (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Unable to clear object store"_s }; } } @@ -1345,9 +1345,9 @@ { auto sql = cachedStatement(SQL::ClearObjectStoreIndexRecords, "DELETE FROM IndexRecords WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete records from index record store id %" PRIi64 " (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete records from index record store id %" PRIi64 " (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Unable to delete index records while clearing object store"_s }; } } @@ -1359,7 +1359,7 @@ IDBError SQLiteIDBBackingStore::createIndex(const IDBResourceIdentifier& transactionIdentifier, const IDBIndexInfo& info) { - LOG(IndexedDB, "SQLiteIDBBackingStore::createIndex - ObjectStore %" PRIu64 ", Index %" PRIu64, info.objectStoreIdentifier(), info.identifier()); + LOG(IndexedDB, "SQLiteIDBBackingStore::createIndex - ObjectStore %" PRIu64 ", Index %" PRIu64, info.objectStoreIdentifier().toRawValue(), info.identifier()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1383,7 +1383,7 @@ if (!sql || sql->bindInt64(1, info.identifier()) != SQLITE_OK || sql->bindText(2, info.name()) != SQLITE_OK - || sql->bindInt64(3, info.objectStoreIdentifier()) != SQLITE_OK + || sql->bindInt64(3, info.objectStoreIdentifier().toRawValue()) != SQLITE_OK || sql->bindBlob(4, keyPathBlob->span()) != SQLITE_OK || sql->bindInt(5, info.unique()) != SQLITE_OK || sql->bindInt(6, info.multiEntry()) != SQLITE_OK @@ -1416,7 +1416,7 @@ auto sql = cachedStatement(SQL::DeleteIndexInfo, "DELETE FROM IndexInfo WHERE id = ? AND objectStoreID = ?;"_s); if (!sql || sql->bindInt64(1, info.identifier()) != SQLITE_OK - || sql->bindInt64(2, info.objectStoreIdentifier()) != SQLITE_OK + || sql->bindInt64(2, info.objectStoreIdentifier().toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Index creation failed due to uniqueness constraint failure, but there was an error deleting the Index record from the database"); return IDBError { ExceptionCode::UnknownError, "Index creation failed due to uniqueness constraint failure, but there was an error deleting the Index record from the database"_s }; @@ -1514,7 +1514,7 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::uncheckedPutIndexRecord(int64_t objectStoreID, int64_t indexID, const WebCore::IDBKeyData& keyValue, const WebCore::IDBKeyData& indexKey, int64_t recordID) +IDBError SQLiteIDBBackingStore::uncheckedPutIndexRecord(IDBObjectStoreIdentifier objectStoreID, int64_t indexID, const WebCore::IDBKeyData& keyValue, const WebCore::IDBKeyData& indexKey, int64_t recordID) { LOG(IndexedDB, "SQLiteIDBBackingStore::uncheckedPutIndexRecord - %s, %s", keyValue.loggingString().utf8().data(), indexKey.loggingString().utf8().data()); @@ -1534,12 +1534,12 @@ auto sql = cachedStatement(SQL::PutIndexRecord, "INSERT INTO IndexRecords VALUES (?, ?, CAST(? AS TEXT), CAST(? AS TEXT), ?);"_s); if (!sql || sql->bindInt64(1, indexID) != SQLITE_OK - || sql->bindInt64(2, objectStoreID) != SQLITE_OK + || sql->bindInt64(2, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(3, indexKeyBuffer->span()) != SQLITE_OK || sql->bindBlob(4, valueBuffer->span()) != SQLITE_OK || sql->bindInt64(5, recordID) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not put index record for index %" PRIi64 " in object store %" PRIi64 " in Records table (%i) - %s", indexID, objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not put index record for index %" PRIi64 " in object store %" PRIi64 " in Records table (%i) - %s", indexID, objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Error putting index record into database"_s }; } } @@ -1548,9 +1548,9 @@ } -IDBError SQLiteIDBBackingStore::deleteIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier) +IDBError SQLiteIDBBackingStore::deleteIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier) { - LOG(IndexedDB, "SQLiteIDBBackingStore::deleteIndex - object store %" PRIu64, objectStoreIdentifier); + LOG(IndexedDB, "SQLiteIDBBackingStore::deleteIndex - object store %" PRIu64, objectStoreIdentifier.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1568,9 +1568,9 @@ auto sql = cachedStatement(SQL::DeleteIndexInfo, "DELETE FROM IndexInfo WHERE id = ? AND objectStoreID = ?;"_s); if (!sql || sql->bindInt64(1, indexIdentifier) != SQLITE_OK - || sql->bindInt64(2, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(2, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete index id %" PRIi64 " from IndexInfo table (%i) - %s", objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete index id %" PRIi64 " from IndexInfo table (%i) - %s", objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Error deleting index from database"_s }; } } @@ -1592,9 +1592,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::renameIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +IDBError SQLiteIDBBackingStore::renameIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { - LOG(IndexedDB, "SQLiteIDBBackingStore::renameIndex - object store %" PRIu64 ", index %" PRIu64, objectStoreIdentifier, indexIdentifier); + LOG(IndexedDB, "SQLiteIDBBackingStore::renameIndex - object store %" PRIu64 ", index %" PRIu64, objectStoreIdentifier.toRawValue(), indexIdentifier); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1620,10 +1620,10 @@ auto sql = cachedStatement(SQL::RenameIndex, "UPDATE IndexInfo SET name = ? WHERE objectStoreID = ? AND id = ?;"_s); if (!sql || sql->bindText(1, newName) != SQLITE_OK - || sql->bindInt64(2, objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(2, objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->bindInt64(3, indexIdentifier) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not update name for index id (%" PRIi64 ", %" PRIi64 ") in IndexInfo table (%i) - %s", objectStoreIdentifier, indexIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not update name for index id (%" PRIi64 ", %" PRIi64 ") in IndexInfo table (%i) - %s", objectStoreIdentifier.toRawValue(), indexIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Could not rename index"_s }; } } @@ -1633,9 +1633,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, const IDBKeyData& keyData, bool& keyExists) +IDBError SQLiteIDBBackingStore::keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, const IDBKeyData& keyData, bool& keyExists) { - LOG(IndexedDB, "SQLiteIDBBackingStore::keyExistsInObjectStore - key %s, object store %" PRIu64, keyData.loggingString().utf8().data(), objectStoreID); + LOG(IndexedDB, "SQLiteIDBBackingStore::keyExistsInObjectStore - key %s, object store %" PRIu64, keyData.loggingString().utf8().data(), objectStoreID.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1654,9 +1654,9 @@ auto sql = cachedStatement(SQL::KeyExistsInObjectStore, "SELECT key FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT) LIMIT 1;"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(2, keyBuffer->span()) != SQLITE_OK) { - LOG_ERROR("Could not get record from object store %" PRIi64 " from Records table (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not get record from object store %" PRIi64 " from Records table (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Unable to check for existence of IDBKey in object store"_s }; } @@ -1717,9 +1717,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::deleteRecord(SQLiteIDBTransaction& transaction, int64_t objectStoreID, const IDBKeyData& keyData) +IDBError SQLiteIDBBackingStore::deleteRecord(SQLiteIDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreID, const IDBKeyData& keyData) { - LOG(IndexedDB, "SQLiteIDBBackingStore::deleteRecord - key %s, object store %" PRIu64, keyData.loggingString().utf8().data(), objectStoreID); + LOG(IndexedDB, "SQLiteIDBBackingStore::deleteRecord - key %s, object store %" PRIu64, keyData.loggingString().utf8().data(), objectStoreID.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1740,9 +1740,9 @@ auto sql = cachedStatement(SQL::GetObjectStoreRecord, "SELECT recordID, value FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT);"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(2, keyBuffer->span()) != SQLITE_OK) { - LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to delete record from object store"_s }; } @@ -1753,7 +1753,7 @@ return IDBError { }; if (result != SQLITE_ROW) { - LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) (unable to fetch record ID) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) (unable to fetch record ID) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to delete record from object store"_s }; } @@ -1762,7 +1762,7 @@ } if (recordID < 1) { - LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) (record ID is invalid) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) (record ID is invalid) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to delete record from object store"_s }; } @@ -1773,7 +1773,7 @@ if (!sql || sql->bindInt64(1, recordID) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) (Could not delete BlobRecords records) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) (Could not delete BlobRecords records) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to delete record from object store"_s }; } } @@ -1787,10 +1787,10 @@ auto sql = cachedStatement(SQL::DeleteObjectStoreRecord, "DELETE FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT);"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(2, keyBuffer->span()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete record from object store %" PRIi64 " (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to delete record from object store"_s }; } } @@ -1800,10 +1800,10 @@ auto sql = cachedStatement(SQL::DeleteObjectStoreIndexRecord, "DELETE FROM IndexRecords WHERE objectStoreID = ? AND objectStoreRecordID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindInt64(2, recordID) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not delete record from indexes for object store %" PRIi64 " (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not delete record from indexes for object store %" PRIi64 " (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to delete index entries for object store record"_s }; } } @@ -1811,9 +1811,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::deleteRange(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, const IDBKeyRangeData& keyRange) +IDBError SQLiteIDBBackingStore::deleteRange(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, const IDBKeyRangeData& keyRange) { - LOG(IndexedDB, "SQLiteIDBBackingStore::deleteRange - range %s, object store %" PRIu64, keyRange.loggingString().utf8().data(), objectStoreID); + LOG(IndexedDB, "SQLiteIDBBackingStore::deleteRange - range %s, object store %" PRIu64, keyRange.loggingString().utf8().data(), objectStoreID.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1919,7 +1919,7 @@ auto sql = cachedStatement(SQL::DeleteObjectStoreIndexRecord, "DELETE FROM IndexRecords WHERE objectStoreID = ? AND objectStoreRecordID = ?;"_s); if (!sql - || sql->bindInt64(1, info.identifier()) != SQLITE_OK + || sql->bindInt64(1, info.identifier().toRawValue()) != SQLITE_OK || sql->bindInt64(2, recordID) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Adding one Index record failed, but failed to remove all others that previously succeeded"); @@ -1932,7 +1932,7 @@ IDBError SQLiteIDBBackingStore::addRecord(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo& objectStoreInfo, const IDBKeyData& keyData, const IndexIDToIndexKeyMap& indexKeys, const IDBValue& value) { - LOG(IndexedDB, "SQLiteIDBBackingStore::addRecord - key %s, object store %" PRIu64, keyData.loggingString().utf8().data(), objectStoreInfo.identifier()); + LOG(IndexedDB, "SQLiteIDBBackingStore::addRecord - key %s, object store %" PRIu64, keyData.loggingString().utf8().data(), objectStoreInfo.identifier().toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -1958,11 +1958,11 @@ { auto sql = cachedStatement(SQL::AddObjectStoreRecord, "INSERT INTO Records VALUES (?, CAST(? AS TEXT), ?, NULL);"_s); if (!sql - || sql->bindInt64(1, objectStoreInfo.identifier()) != SQLITE_OK + || sql->bindInt64(1, objectStoreInfo.identifier().toRawValue()) != SQLITE_OK || sql->bindBlob(2, keyBuffer->span()) != SQLITE_OK || sql->bindBlob(3, *value.data().data()) != SQLITE_OK || sql->step() != SQLITE_DONE) { - LOG_ERROR("Could not put record for object store %" PRIi64 " in Records table (%i) - %s", objectStoreInfo.identifier(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not put record for object store %" PRIi64 " in Records table (%i) - %s", objectStoreInfo.identifier().toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Unable to store record in object store"_s }; } @@ -1974,7 +1974,7 @@ if (!error.isNull()) { auto sql = cachedStatement(SQL::DeleteObjectStoreRecord, "DELETE FROM Records WHERE objectStoreID = ? AND key = CAST(? AS TEXT);"_s); if (!sql - || sql->bindInt64(1, objectStoreInfo.identifier()) != SQLITE_OK + || sql->bindInt64(1, objectStoreInfo.identifier().toRawValue()) != SQLITE_OK || sql->bindBlob(2, keyBuffer->span()) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Indexing new object store record failed, but unable to remove the object store record itself"); @@ -2092,9 +2092,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::getRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, const IDBKeyRangeData& keyRange, IDBGetRecordDataType type, IDBGetResult& resultValue) +IDBError SQLiteIDBBackingStore::getRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, const IDBKeyRangeData& keyRange, IDBGetRecordDataType type, IDBGetResult& resultValue) { - LOG(IndexedDB, "SQLiteIDBBackingStore::getRecord - key range %s, object store %" PRIu64, keyRange.loggingString().utf8().data(), objectStoreID); + LOG(IndexedDB, "SQLiteIDBBackingStore::getRecord - key range %s, object store %" PRIu64, keyRange.loggingString().utf8().data(), objectStoreID.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -2159,10 +2159,10 @@ } if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindBlob(2, lowerBuffer->span()) != SQLITE_OK || sql->bindBlob(3, upperBuffer->span()) != SQLITE_OK) { - LOG_ERROR("Could not get key range record from object store %" PRIi64 " from Records table (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not get key range record from object store %" PRIi64 " from Records table (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to look up record in object store by key range"_s }; } @@ -2174,7 +2174,7 @@ } if (sqlResult != SQLITE_ROW) { // There was an error fetching the record from the database. - LOG_ERROR("Could not get record from object store %" PRIi64 " from Records table (%i) - %s", objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not get record from object store %" PRIi64 " from Records table (%i) - %s", objectStoreID.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Error looking up record in object store by key range"_s }; } @@ -2276,10 +2276,10 @@ auto sql = cachedStatementForGetAllObjectStoreRecords(getAllRecordsData); if (!sql - || sql->bindInt64(1, getAllRecordsData.objectStoreIdentifier) != SQLITE_OK + || sql->bindInt64(1, getAllRecordsData.objectStoreIdentifier.toRawValue()) != SQLITE_OK || sql->bindBlob(2, lowerBuffer->span()) != SQLITE_OK || sql->bindBlob(3, upperBuffer->span()) != SQLITE_OK) { - LOG_ERROR("Could not get key range record from object store %" PRIi64 " from Records table (%i) - %s", getAllRecordsData.objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not get key range record from object store %" PRIi64 " from Records table (%i) - %s", getAllRecordsData.objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Failed to look up record in object store by key range"_s }; } @@ -2333,7 +2333,7 @@ } // There was an error fetching records from the database. - LOG_ERROR("Could not get record from object store %" PRIi64 " from Records table (%i) - %s", getAllRecordsData.objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not get record from object store %" PRIi64 " from Records table (%i) - %s", getAllRecordsData.objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Error looking up record in object store by key range"_s }; } @@ -2387,7 +2387,7 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, uint64_t indexID, IndexedDB::IndexRecordType type, const IDBKeyRangeData& range, IDBGetResult& getResult) +IDBError SQLiteIDBBackingStore::getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, uint64_t indexID, IndexedDB::IndexRecordType type, const IDBKeyRangeData& range, IDBGetResult& getResult) { LOG(IndexedDB, "SQLiteIDBBackingStore::getIndexRecord - %s", range.loggingString().utf8().data()); @@ -2427,7 +2427,7 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey(int64_t indexID, int64_t objectStoreID, IndexedDB::IndexRecordType type, const IDBKeyData& key, IDBGetResult& getResult) +IDBError SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey(int64_t indexID, IDBObjectStoreIdentifier objectStoreID, IndexedDB::IndexRecordType type, const IDBKeyData& key, IDBGetResult& getResult) { LOG(IndexedDB, "SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey"); @@ -2485,9 +2485,9 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::getCount(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, uint64_t& outCount) +IDBError SQLiteIDBBackingStore::getCount(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, uint64_t& outCount) { - LOG(IndexedDB, "SQLiteIDBBackingStore::getCount - object store %" PRIu64, objectStoreIdentifier); + LOG(IndexedDB, "SQLiteIDBBackingStore::getCount - object store %" PRIu64, objectStoreIdentifier.toRawValue()); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -2524,10 +2524,10 @@ statement = cachedStatement(SQL::CountRecordsLowerClosedUpperClosed, "SELECT COUNT(*) FROM Records WHERE objectStoreID = ? AND key >= CAST(? AS TEXT) AND key <= CAST(? AS TEXT);"_s); if (!statement - || statement->bindInt64(1, objectStoreIdentifier) != SQLITE_OK + || statement->bindInt64(1, objectStoreIdentifier.toRawValue()) != SQLITE_OK || statement->bindBlob(2, lowerBuffer->span()) != SQLITE_OK || statement->bindBlob(3, upperBuffer->span()) != SQLITE_OK) { - LOG_ERROR("Could not count records in object store %" PRIi64 " from Records table (%i) - %s", objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); + LOG_ERROR("Could not count records in object store %" PRIi64 " from Records table (%i) - %s", objectStoreIdentifier.toRawValue(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Unable to count records in object store due to binding failure"_s }; } } else { @@ -2556,11 +2556,11 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue(int64_t objectStoreID, uint64_t& outValue) +IDBError SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue(IDBObjectStoreIdentifier objectStoreID, uint64_t& outValue) { auto sql = cachedStatement(SQL::GetKeyGeneratorValue, "SELECT currentKey FROM KeyGenerators WHERE objectStoreID = ?;"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK) { + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK) { LOG_ERROR("Could not retrieve currentKey from KeyGenerators table (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); return IDBError { ExceptionCode::UnknownError, "Error getting current key generator value from database"_s }; } @@ -2578,11 +2578,11 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue(int64_t objectStoreID, uint64_t value) +IDBError SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue(IDBObjectStoreIdentifier objectStoreID, uint64_t value) { auto sql = cachedStatement(SQL::SetKeyGeneratorValue, "INSERT INTO KeyGenerators VALUES (?, ?);"_s); if (!sql - || sql->bindInt64(1, objectStoreID) != SQLITE_OK + || sql->bindInt64(1, objectStoreID.toRawValue()) != SQLITE_OK || sql->bindInt64(2, value) != SQLITE_OK || sql->step() != SQLITE_DONE) { LOG_ERROR("Could not update key generator value (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg()); @@ -2592,7 +2592,7 @@ return IDBError { }; } -IDBError SQLiteIDBBackingStore::generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, uint64_t& generatedKey) +IDBError SQLiteIDBBackingStore::generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, uint64_t& generatedKey) { LOG(IndexedDB, "SQLiteIDBBackingStore::generateKeyNumber"); @@ -2620,9 +2620,9 @@ return uncheckedSetKeyGeneratorValue(objectStoreID, generatedKey); } -IDBError SQLiteIDBBackingStore::revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, uint64_t newKeyNumber) +IDBError SQLiteIDBBackingStore::revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, uint64_t newKeyNumber) { - LOG(IndexedDB, "SQLiteIDBBackingStore::revertGeneratedKeyNumber - object store %" PRIu64 ", reverted number %" PRIu64, objectStoreID, newKeyNumber); + LOG(IndexedDB, "SQLiteIDBBackingStore::revertGeneratedKeyNumber - object store %" PRIu64 ", reverted number %" PRIu64, objectStoreID.toRawValue(), newKeyNumber); ASSERT(m_sqliteDB); ASSERT(m_sqliteDB->isOpen()); @@ -2640,7 +2640,7 @@ return uncheckedSetKeyGeneratorValue(objectStoreID, newKeyNumber - 1); } -IDBError SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreID, double newKeyNumber) +IDBError SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreID, double newKeyNumber) { LOG(IndexedDB, "SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber"); @@ -2741,7 +2741,7 @@ return IDBError { }; } -IDBObjectStoreInfo* SQLiteIDBBackingStore::infoForObjectStore(uint64_t objectStoreIdentifier) +IDBObjectStoreInfo* SQLiteIDBBackingStore::infoForObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) { ASSERT(m_databaseInfo); return m_databaseInfo->infoForExistingObjectStore(objectStoreIdentifier); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h 2024-10-30 09:22:36.510297000 +0000 @@ -29,6 +29,7 @@ #include "IDBDatabaseIdentifier.h" #include "IDBDatabaseInfo.h" #include "IDBDatabaseNameAndVersion.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "SQLiteIDBTransaction.h" #include "SQLiteStatementAutoResetScope.h" @@ -61,26 +62,26 @@ IDBError abortTransaction(const IDBResourceIdentifier& transactionIdentifier) final; IDBError commitTransaction(const IDBResourceIdentifier& transactionIdentifier) final; IDBError createObjectStore(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo&) final; - IDBError deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) final; - IDBError renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const String& newName) final; - IDBError clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) final; + IDBError deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier) final; + IDBError renameObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const String& newName) final; + IDBError clearObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier) final; IDBError createIndex(const IDBResourceIdentifier& transactionIdentifier, const IDBIndexInfo&) final; - IDBError deleteIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier) final; - IDBError renameIndex(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final; - IDBError keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyData&, bool& keyExists) final; - IDBError deleteRange(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData&) final; + IDBError deleteIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier) final; + IDBError renameIndex(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final; + IDBError keyExistsInObjectStore(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyData&, bool& keyExists) final; + IDBError deleteRange(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyRangeData&) final; IDBError addRecord(const IDBResourceIdentifier& transactionIdentifier, const IDBObjectStoreInfo&, const IDBKeyData&, const IndexIDToIndexKeyMap&, const IDBValue&) final; - IDBError getRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, const IDBKeyRangeData&, IDBGetRecordDataType, IDBGetResult& outValue) final; + IDBError getRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, const IDBKeyRangeData&, IDBGetRecordDataType, IDBGetResult& outValue) final; IDBError getAllRecords(const IDBResourceIdentifier& transactionIdentifier, const IDBGetAllRecordsData&, IDBGetAllResult& outValue) final; - IDBError getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult& outValue) final; - IDBError getCount(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, uint64_t& outCount) final; - IDBError generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t& keyNumber) final; - IDBError revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t keyNumber) final; - IDBError maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, double newKeyNumber) final; + IDBError getIndexRecord(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, const IDBKeyRangeData&, IDBGetResult& outValue) final; + IDBError getCount(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, uint64_t& outCount) final; + IDBError generateKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t& keyNumber) final; + IDBError revertGeneratedKeyNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, uint64_t keyNumber) final; + IDBError maybeUpdateKeyGeneratorNumber(const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier, double newKeyNumber) final; IDBError openCursor(const IDBResourceIdentifier& transactionIdentifier, const IDBCursorInfo&, IDBGetResult& outResult) final; IDBError iterateCursor(const IDBResourceIdentifier& transactionIdentifier, const IDBResourceIdentifier& cursorIdentifier, const IDBIterateCursorData&, IDBGetResult& outResult) final; - IDBObjectStoreInfo* infoForObjectStore(uint64_t objectStoreIdentifier) final; + IDBObjectStoreInfo* infoForObjectStore(IDBObjectStoreIdentifier) final; void deleteBackingStore() final; bool supportsSimultaneousReadWriteTransactions() final { return false; } @@ -112,16 +113,16 @@ std::unique_ptr createAndPopulateInitialDatabaseInfo(); std::unique_ptr extractExistingDatabaseInfo(); - IDBError deleteRecord(SQLiteIDBTransaction&, int64_t objectStoreID, const IDBKeyData&); - IDBError uncheckedGetKeyGeneratorValue(int64_t objectStoreID, uint64_t& outValue); - IDBError uncheckedSetKeyGeneratorValue(int64_t objectStoreID, uint64_t value); + IDBError deleteRecord(SQLiteIDBTransaction&, IDBObjectStoreIdentifier, const IDBKeyData&); + IDBError uncheckedGetKeyGeneratorValue(IDBObjectStoreIdentifier, uint64_t& outValue); + IDBError uncheckedSetKeyGeneratorValue(IDBObjectStoreIdentifier, uint64_t value); IDBError updateAllIndexesForAddRecord(const IDBObjectStoreInfo&, const IDBKeyData&, const IndexIDToIndexKeyMap&, int64_t recordID); IDBError updateOneIndexForAddRecord(IDBObjectStoreInfo&, const IDBIndexInfo&, const IDBKeyData&, const ThreadSafeDataBuffer& value, int64_t recordID); IDBError uncheckedPutIndexKey(const IDBIndexInfo&, const IDBKeyData& keyValue, const IndexKey&, int64_t recordID); - IDBError uncheckedPutIndexRecord(int64_t objectStoreID, int64_t indexID, const IDBKeyData& keyValue, const IDBKeyData& indexKey, int64_t recordID); + IDBError uncheckedPutIndexRecord(IDBObjectStoreIdentifier, int64_t indexID, const IDBKeyData& keyValue, const IDBKeyData& indexKey, int64_t recordID); IDBError uncheckedHasIndexRecord(const IDBIndexInfo&, const IDBKeyData&, bool& hasRecord); - IDBError uncheckedGetIndexRecordForOneKey(int64_t indexeID, int64_t objectStoreID, IndexedDB::IndexRecordType, const IDBKeyData&, IDBGetResult&); + IDBError uncheckedGetIndexRecordForOneKey(int64_t indexID, IDBObjectStoreIdentifier, IndexedDB::IndexRecordType, const IDBKeyData&, IDBGetResult&); IDBError deleteUnusedBlobFileRecords(SQLiteIDBTransaction&); @@ -131,8 +132,8 @@ void closeSQLiteDB(); void close() final; - bool migrateIndexInfoTableForIDUpdate(const HashMap, uint64_t>& indexIDMap); - bool migrateIndexRecordsTableForIDUpdate(const HashMap, uint64_t>& indexIDMap); + bool migrateIndexInfoTableForIDUpdate(const HashMap, uint64_t>& indexIDMap); + bool migrateIndexRecordsTableForIDUpdate(const HashMap, uint64_t>& indexIDMap); bool removeExistingIndex(uint64_t indexID); bool addExistingIndex(IDBObjectStoreInfo&, const IDBIndexInfo&); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -55,7 +55,7 @@ return cursor; } -std::unique_ptr SQLiteIDBCursor::maybeCreateBackingStoreCursor(SQLiteIDBTransaction& transaction, const uint64_t objectStoreID, const uint64_t indexID, const IDBKeyRangeData& range) +std::unique_ptr SQLiteIDBCursor::maybeCreateBackingStoreCursor(SQLiteIDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreID, const uint64_t indexID, const IDBKeyRangeData& range) { auto cursor = makeUnique(transaction, objectStoreID, indexID, range); @@ -77,10 +77,9 @@ , m_cursorType(info.cursorType()) , m_keyRange(info.range()) { - ASSERT(m_objectStoreID); } -SQLiteIDBCursor::SQLiteIDBCursor(SQLiteIDBTransaction& transaction, const uint64_t objectStoreID, const uint64_t indexID, const IDBKeyRangeData& range) +SQLiteIDBCursor::SQLiteIDBCursor(SQLiteIDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreID, const uint64_t indexID, const IDBKeyRangeData& range) : m_transaction(&transaction) , m_cursorIdentifier(transaction.transactionIdentifier()) , m_objectStoreID(objectStoreID) @@ -90,7 +89,6 @@ , m_keyRange(range) , m_backingStoreCursor(true) { - ASSERT(m_objectStoreID); } SQLiteIDBCursor::~SQLiteIDBCursor() @@ -172,7 +170,7 @@ m_boundID = m_indexID; } else { sql = buildObjectStoreStatement(m_keyRange, m_cursorDirection); - m_boundID = m_objectStoreID; + m_boundID = m_objectStoreID.toRawValue(); } m_currentLowerKey = m_keyRange.lowerKey.isNull() ? IDBKeyData::minimum() : m_keyRange.lowerKey; @@ -547,7 +545,7 @@ if (!m_cachedObjectStoreStatement || m_cachedObjectStoreStatement->bindBlob(1, keyData) != SQLITE_OK - || m_cachedObjectStoreStatement->bindInt64(2, m_objectStoreID) != SQLITE_OK) { + || m_cachedObjectStoreStatement->bindInt64(2, m_objectStoreID.toRawValue()) != SQLITE_OK) { LOG_ERROR("Could not create index cursor statement into object store records (%i) '%s'", database->lastError(), database->lastErrorMsg()); markAsErrored(record); return FetchResult::Failure; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h 2024-10-30 09:22:36.510297000 +0000 @@ -29,6 +29,7 @@ #include "IDBIndexInfo.h" #include "IDBKeyData.h" #include "IDBKeyRangeData.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "IDBValue.h" #include "SQLiteStatement.h" @@ -49,17 +50,17 @@ WTF_MAKE_NONCOPYABLE(SQLiteIDBCursor); public: static std::unique_ptr maybeCreate(SQLiteIDBTransaction&, const IDBCursorInfo&); - static std::unique_ptr maybeCreateBackingStoreCursor(SQLiteIDBTransaction&, const uint64_t objectStoreIdentifier, const uint64_t indexIdentifier, const IDBKeyRangeData&); + static std::unique_ptr maybeCreateBackingStoreCursor(SQLiteIDBTransaction&, IDBObjectStoreIdentifier, const uint64_t indexIdentifier, const IDBKeyRangeData&); SQLiteIDBCursor(SQLiteIDBTransaction&, const IDBCursorInfo&); - SQLiteIDBCursor(SQLiteIDBTransaction&, uint64_t objectStoreID, uint64_t indexID, const IDBKeyRangeData&); + SQLiteIDBCursor(SQLiteIDBTransaction&, IDBObjectStoreIdentifier, uint64_t indexID, const IDBKeyRangeData&); ~SQLiteIDBCursor(); const IDBResourceIdentifier& identifier() const { return m_cursorIdentifier; } SQLiteIDBTransaction* transaction() const { return m_transaction; } - int64_t objectStoreID() const { return m_objectStoreID; } + IDBObjectStoreIdentifier objectStoreID() const { return m_objectStoreID; } int64_t currentRecordRowID() const; const IDBKeyData& currentKey() const; @@ -113,7 +114,7 @@ SQLiteIDBTransaction* m_transaction; IDBResourceIdentifier m_cursorIdentifier; - int64_t m_objectStoreID; + IDBObjectStoreIdentifier m_objectStoreID; int64_t m_indexID { IDBIndexInfo::InvalidId }; IndexedDB::CursorDirection m_cursorDirection { IndexedDB::CursorDirection::Next }; IndexedDB::CursorType m_cursorType; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -155,7 +155,7 @@ ASSERT(m_blobTemporaryAndStoredFilenames.isEmpty()); } -std::unique_ptr SQLiteIDBTransaction::maybeOpenBackingStoreCursor(uint64_t objectStoreID, uint64_t indexID, const IDBKeyRangeData& range) +std::unique_ptr SQLiteIDBTransaction::maybeOpenBackingStoreCursor(IDBObjectStoreIdentifier objectStoreID, uint64_t indexID, const IDBKeyRangeData& range) { ASSERT(inProgressOrReadOnly()); @@ -198,7 +198,7 @@ m_cursors.remove(cursor.identifier()); } -void SQLiteIDBTransaction::notifyCursorsOfChanges(int64_t objectStoreID) +void SQLiteIDBTransaction::notifyCursorsOfChanges(IDBObjectStoreIdentifier objectStoreID) { ASSERT(!isReadOnly()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.h 2024-10-30 09:22:36.510297000 +0000 @@ -26,6 +26,7 @@ #pragma once #include "IDBError.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "IDBTransactionInfo.h" #include "IndexedDB.h" @@ -58,11 +59,11 @@ IDBError commit(); IDBError abort(); - std::unique_ptr maybeOpenBackingStoreCursor(uint64_t objectStoreID, uint64_t indexID, const IDBKeyRangeData&); + std::unique_ptr maybeOpenBackingStoreCursor(IDBObjectStoreIdentifier, uint64_t indexID, const IDBKeyRangeData&); SQLiteIDBCursor* maybeOpenCursor(const IDBCursorInfo&); void closeCursor(SQLiteIDBCursor&); - void notifyCursorsOfChanges(int64_t objectStoreID); + void notifyCursorsOfChanges(IDBObjectStoreIdentifier); IDBTransactionMode mode() const { return m_info.mode(); } IDBTransactionDurability durability() const { return m_info.durability(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -648,7 +648,7 @@ callback(error); } -void UniqueIDBDatabase::renameObjectStore(UniqueIDBDatabaseTransaction& transaction, uint64_t objectStoreIdentifier, const String& newName, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) +void UniqueIDBDatabase::renameObjectStore(UniqueIDBDatabaseTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) { ASSERT(!isMainThread()); LOG(IndexedDB, "UniqueIDBDatabase::renameObjectStore"); @@ -688,7 +688,7 @@ callback(error); } -void UniqueIDBDatabase::clearObjectStore(UniqueIDBDatabaseTransaction& transaction, uint64_t objectStoreIdentifier, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) +void UniqueIDBDatabase::clearObjectStore(UniqueIDBDatabaseTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) { ASSERT(!isMainThread()); LOG(IndexedDB, "UniqueIDBDatabase::clearObjectStore"); @@ -753,7 +753,7 @@ callback(error); } -void UniqueIDBDatabase::deleteIndex(UniqueIDBDatabaseTransaction& transaction, uint64_t objectStoreIdentifier, const String& indexName, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) +void UniqueIDBDatabase::deleteIndex(UniqueIDBDatabaseTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) { ASSERT(!isMainThread()); LOG(IndexedDB, "UniqueIDBDatabase::deleteIndex"); @@ -795,7 +795,7 @@ callback(error); } -void UniqueIDBDatabase::renameIndex(UniqueIDBDatabaseTransaction& transaction, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) +void UniqueIDBDatabase::renameIndex(UniqueIDBDatabaseTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName, ErrorCallback&& callback, SpaceCheckResult spaceCheckResult) { ASSERT(!isMainThread()); LOG(IndexedDB, "UniqueIDBDatabase::renameIndex"); @@ -1330,7 +1330,7 @@ transaction.didActivateInBackingStore(error); } -template bool scopesOverlap(const T& aScopes, const Vector& bScopes) +template bool scopesOverlap(const T& aScopes, const Vector& bScopes) { for (auto scope : bScopes) { if (aScopes.contains(scope)) @@ -1353,7 +1353,7 @@ Deque> deferredTransactions; RefPtr currentTransaction; - HashSet deferredReadWriteScopes; + HashSet deferredReadWriteScopes; while (!m_pendingTransactions.isEmpty()) { currentTransaction = m_pendingTransactions.takeFirst(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h 2024-10-30 09:22:36.510297000 +0000 @@ -30,6 +30,7 @@ #include "IDBDatabaseInfo.h" #include "IDBDatabaseNameAndVersion.h" #include "IDBGetResult.h" +#include "IDBObjectStoreIdentifier.h" #include "ServerOpenDBRequest.h" #include "UniqueIDBDatabaseTransaction.h" #include @@ -96,11 +97,11 @@ }; void createObjectStore(UniqueIDBDatabaseTransaction&, const IDBObjectStoreInfo&, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); void deleteObjectStore(UniqueIDBDatabaseTransaction&, const String& objectStoreName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); - void renameObjectStore(UniqueIDBDatabaseTransaction&, uint64_t objectStoreIdentifier, const String& newName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); - void clearObjectStore(UniqueIDBDatabaseTransaction&, uint64_t objectStoreIdentifier, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); + void renameObjectStore(UniqueIDBDatabaseTransaction&, IDBObjectStoreIdentifier, const String& newName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); + void clearObjectStore(UniqueIDBDatabaseTransaction&, IDBObjectStoreIdentifier, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); void createIndex(UniqueIDBDatabaseTransaction&, const IDBIndexInfo&, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); - void deleteIndex(UniqueIDBDatabaseTransaction&, uint64_t objectStoreIdentifier, const String& indexName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); - void renameIndex(UniqueIDBDatabaseTransaction&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); + void deleteIndex(UniqueIDBDatabaseTransaction&, IDBObjectStoreIdentifier, const String& indexName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); + void renameIndex(UniqueIDBDatabaseTransaction&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName, ErrorCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); void putOrAdd(const IDBRequestData&, const IDBKeyData&, const IDBValue&, IndexedDB::ObjectStoreOverwriteMode, KeyDataCallback&&); void putOrAddAfterSpaceCheck(const IDBRequestData&, const IDBKeyData&, const IDBValue&, IndexedDB::ObjectStoreOverwriteMode, KeyDataCallback&&, bool isKeyGenerated, const IndexIDToIndexKeyMap&, const IDBObjectStoreInfo&, SpaceCheckResult); void getRecord(const IDBRequestData&, const IDBGetRecordData&, GetResultCallback&&, SpaceCheckResult = SpaceCheckResult::Unknown); @@ -182,8 +183,8 @@ // The keys into these sets are the object store ID. // These sets help to decide which transactions can be started and which must be deferred. - HashCountedSet m_objectStoreTransactionCounts; - HashSet m_objectStoreWriteTransactions; + HashCountedSet m_objectStoreTransactionCounts; + HashSet m_objectStoreWriteTransactions; }; } // namespace IDBServer diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -196,7 +196,7 @@ }); } -void UniqueIDBDatabaseTransaction::renameObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& newName) +void UniqueIDBDatabaseTransaction::renameObjectStore(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { LOG(IndexedDB, "UniqueIDBDatabaseTransaction::renameObjectStore"); @@ -220,7 +220,7 @@ }); } -void UniqueIDBDatabaseTransaction::clearObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier) +void UniqueIDBDatabaseTransaction::clearObjectStore(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier) { LOG(IndexedDB, "UniqueIDBDatabaseTransaction::clearObjectStore"); @@ -269,7 +269,7 @@ }); } -void UniqueIDBDatabaseTransaction::deleteIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& indexName) +void UniqueIDBDatabaseTransaction::deleteIndex(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { LOG(IndexedDB, "UniqueIDBDatabaseTransaction::deleteIndex"); @@ -293,7 +293,7 @@ }); } -void UniqueIDBDatabaseTransaction::renameIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +void UniqueIDBDatabaseTransaction::renameIndex(const IDBRequestData& requestData, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { LOG(IndexedDB, "UniqueIDBDatabaseTransaction::renameIndex"); @@ -497,7 +497,7 @@ }); } -const Vector& UniqueIDBDatabaseTransaction::objectStoreIdentifiers() +const Vector& UniqueIDBDatabaseTransaction::objectStoreIdentifiers() { if (!m_objectStoreIdentifiers.isEmpty()) return m_objectStoreIdentifiers; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h 2024-10-30 09:22:36.510297000 +0000 @@ -26,6 +26,7 @@ #pragma once #include "IDBError.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBTransactionInfo.h" #include #include @@ -73,11 +74,11 @@ WEBCORE_EXPORT void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&); WEBCORE_EXPORT void deleteObjectStore(const IDBRequestData&, const String& objectStoreName); - WEBCORE_EXPORT void renameObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName); - WEBCORE_EXPORT void clearObjectStore(const IDBRequestData&, uint64_t objectStoreIdentifier); + WEBCORE_EXPORT void renameObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier, const String& newName); + WEBCORE_EXPORT void clearObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier); WEBCORE_EXPORT void createIndex(const IDBRequestData&, const IDBIndexInfo&); - WEBCORE_EXPORT void deleteIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName); - WEBCORE_EXPORT void renameIndex(const IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName); + WEBCORE_EXPORT void deleteIndex(const IDBRequestData&, IDBObjectStoreIdentifier, const String& indexName); + WEBCORE_EXPORT void renameIndex(const IDBRequestData&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName); WEBCORE_EXPORT void putOrAdd(const IDBRequestData&, const IDBKeyData&, const IDBValue&, IndexedDB::ObjectStoreOverwriteMode); WEBCORE_EXPORT void getRecord(const IDBRequestData&, const IDBGetRecordData&); WEBCORE_EXPORT void getAllRecords(const IDBRequestData&, const IDBGetAllRecordsData&); @@ -88,7 +89,7 @@ void didActivateInBackingStore(const IDBError&); - const Vector& objectStoreIdentifiers(); + const Vector& objectStoreIdentifiers(); void setSuspensionAbortResult(const IDBError& error) { m_suspensionAbortResult = { error }; } const std::optional& suspensionAbortResult() const { return m_suspensionAbortResult; } @@ -101,7 +102,7 @@ std::unique_ptr m_originalDatabaseInfo; - Vector m_objectStoreIdentifiers; + Vector m_objectStoreIdentifiers; std::optional m_suspensionAbortResult; Vector m_requestResults; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -33,12 +33,12 @@ namespace WebCore { -IDBCursorInfo IDBCursorInfo::objectStoreCursor(IDBTransaction& transaction, uint64_t objectStoreIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) +IDBCursorInfo IDBCursorInfo::objectStoreCursor(IDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) { return { transaction, objectStoreIdentifier, range, direction, type }; } -IDBCursorInfo IDBCursorInfo::indexCursor(IDBTransaction& transaction, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) +IDBCursorInfo IDBCursorInfo::indexCursor(IDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) { return { transaction, objectStoreIdentifier, indexIdentifier, range, direction, type }; } @@ -47,11 +47,11 @@ { } -IDBCursorInfo::IDBCursorInfo(IDBTransaction& transaction, uint64_t objectStoreIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) +IDBCursorInfo::IDBCursorInfo(IDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) : m_cursorIdentifier(transaction.database().connectionProxy()) , m_transactionIdentifier(transaction.info().identifier()) , m_objectStoreIdentifier(objectStoreIdentifier) - , m_sourceIdentifier(objectStoreIdentifier) + , m_sourceIdentifier(objectStoreIdentifier.toRawValue()) , m_range(range) , m_source(IndexedDB::CursorSource::ObjectStore) , m_direction(direction) @@ -59,7 +59,7 @@ { } -IDBCursorInfo::IDBCursorInfo(IDBTransaction& transaction, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) +IDBCursorInfo::IDBCursorInfo(IDBTransaction& transaction, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) : m_cursorIdentifier(transaction.database().connectionProxy()) , m_transactionIdentifier(transaction.info().identifier()) , m_objectStoreIdentifier(objectStoreIdentifier) @@ -71,7 +71,7 @@ { } -IDBCursorInfo::IDBCursorInfo(const IDBResourceIdentifier& cursorIdentifier, const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier, uint64_t sourceIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorSource source, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) +IDBCursorInfo::IDBCursorInfo(const IDBResourceIdentifier& cursorIdentifier, const IDBResourceIdentifier& transactionIdentifier, IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t sourceIdentifier, const IDBKeyRangeData& range, IndexedDB::CursorSource source, IndexedDB::CursorDirection direction, IndexedDB::CursorType type) : m_cursorIdentifier(cursorIdentifier) , m_transactionIdentifier(transactionIdentifier) , m_objectStoreIdentifier(objectStoreIdentifier) diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBCursorInfo.h 2024-10-30 09:22:36.510297000 +0000 @@ -26,6 +26,7 @@ #pragma once #include "IDBKeyRangeData.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include @@ -48,13 +49,13 @@ class IDBCursorInfo { public: - static IDBCursorInfo objectStoreCursor(IDBTransaction&, uint64_t objectStoreIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); - static IDBCursorInfo indexCursor(IDBTransaction&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); + static IDBCursorInfo objectStoreCursor(IDBTransaction&, IDBObjectStoreIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); + static IDBCursorInfo indexCursor(IDBTransaction&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); IDBResourceIdentifier identifier() const { return m_cursorIdentifier; } IDBResourceIdentifier transactionIdentifier() const { return m_transactionIdentifier; } uint64_t sourceIdentifier() const { return m_sourceIdentifier; } - uint64_t objectStoreIdentifier() const { return m_objectStoreIdentifier; } + IDBObjectStoreIdentifier objectStoreIdentifier() const { return m_objectStoreIdentifier; } IndexedDB::CursorSource cursorSource() const { return m_source; } IndexedDB::CursorDirection cursorDirection() const { return m_direction; } @@ -74,13 +75,13 @@ private: friend struct IPC::ArgumentCoder; - WEBCORE_EXPORT IDBCursorInfo(const IDBResourceIdentifier&, const IDBResourceIdentifier&, uint64_t, uint64_t, const IDBKeyRangeData&, IndexedDB::CursorSource, IndexedDB::CursorDirection, IndexedDB::CursorType); - IDBCursorInfo(IDBTransaction&, uint64_t objectStoreIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); - IDBCursorInfo(IDBTransaction&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); + WEBCORE_EXPORT IDBCursorInfo(const IDBResourceIdentifier&, const IDBResourceIdentifier&, IDBObjectStoreIdentifier, uint64_t, const IDBKeyRangeData&, IndexedDB::CursorSource, IndexedDB::CursorDirection, IndexedDB::CursorType); + IDBCursorInfo(IDBTransaction&, IDBObjectStoreIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); + IDBCursorInfo(IDBTransaction&, IDBObjectStoreIdentifier, uint64_t indexIdentifier, const IDBKeyRangeData&, IndexedDB::CursorDirection, IndexedDB::CursorType); IDBResourceIdentifier m_cursorIdentifier; IDBResourceIdentifier m_transactionIdentifier; - uint64_t m_objectStoreIdentifier { 0 }; + IDBObjectStoreIdentifier m_objectStoreIdentifier; uint64_t m_sourceIdentifier { 0 }; IDBKeyRangeData m_range; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -33,11 +33,10 @@ WTF_MAKE_TZONE_OR_ISO_ALLOCATED_IMPL(IDBDatabaseInfo); -IDBDatabaseInfo::IDBDatabaseInfo(const String& name, uint64_t version, uint64_t maxIndexID, uint64_t maxObjectStoreID, HashMap&& objectStoreMap) +IDBDatabaseInfo::IDBDatabaseInfo(const String& name, uint64_t version, uint64_t maxIndexID, HashMap&& objectStoreMap) : m_name(name) , m_version(version) , m_maxIndexID(maxIndexID) - , m_maxObjectStoreID(maxObjectStoreID) , m_objectStoreMap(WTFMove(objectStoreMap)) { } @@ -46,7 +45,6 @@ : m_name(other.m_name.isolatedCopy()) , m_version(other.m_version) , m_maxIndexID(other.m_maxIndexID) - , m_maxObjectStoreID(other.m_maxObjectStoreID) { for (const auto& entry : other.m_objectStoreMap) m_objectStoreMap.set(entry.key, entry.value.isolatedCopy()); @@ -69,7 +67,14 @@ IDBObjectStoreInfo IDBDatabaseInfo::createNewObjectStore(const String& name, std::optional&& keyPath, bool autoIncrement) { - IDBObjectStoreInfo info(++m_maxObjectStoreID, name, WTFMove(keyPath), autoIncrement); + // ObjectIdentifier generation begins anew from 1 each time the program is restarted. But the IDBObjectStores + // held in m_objectStoreMap and their identifiers are perisisted to disk. So we must ensure that newly created + // identifiers do not conflict with identifiers for pre-existing IDBObjectStores loaded from disk. + auto objectStoreIdentifier = IDBObjectStoreIdentifier::generate(); + while (m_objectStoreMap.contains(objectStoreIdentifier)) + objectStoreIdentifier = IDBObjectStoreIdentifier::generate(); + + IDBObjectStoreInfo info(objectStoreIdentifier, name, WTFMove(keyPath), autoIncrement); m_objectStoreMap.set(info.identifier(), info); return info; } @@ -77,14 +82,10 @@ void IDBDatabaseInfo::addExistingObjectStore(const IDBObjectStoreInfo& info) { ASSERT(!m_objectStoreMap.contains(info.identifier())); - - if (info.identifier() > m_maxObjectStoreID) - m_maxObjectStoreID = info.identifier(); - m_objectStoreMap.set(info.identifier(), info); } -IDBObjectStoreInfo* IDBDatabaseInfo::getInfoForExistingObjectStore(uint64_t objectStoreIdentifier) +IDBObjectStoreInfo* IDBDatabaseInfo::getInfoForExistingObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) { auto iterator = m_objectStoreMap.find(objectStoreIdentifier); if (iterator == m_objectStoreMap.end()) @@ -103,12 +104,12 @@ return nullptr; } -const IDBObjectStoreInfo* IDBDatabaseInfo::infoForExistingObjectStore(uint64_t objectStoreIdentifier) const +const IDBObjectStoreInfo* IDBDatabaseInfo::infoForExistingObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) const { return const_cast(this)->getInfoForExistingObjectStore(objectStoreIdentifier); } -IDBObjectStoreInfo* IDBDatabaseInfo::infoForExistingObjectStore(uint64_t objectStoreIdentifier) +IDBObjectStoreInfo* IDBDatabaseInfo::infoForExistingObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) { return getInfoForExistingObjectStore(objectStoreIdentifier); } @@ -123,7 +124,7 @@ return getInfoForExistingObjectStore(name); } -void IDBDatabaseInfo::renameObjectStore(uint64_t objectStoreIdentifier, const String& newName) +void IDBDatabaseInfo::renameObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { auto* info = infoForExistingObjectStore(objectStoreIdentifier); if (!info) @@ -148,7 +149,7 @@ m_objectStoreMap.remove(info->identifier()); } -void IDBDatabaseInfo::deleteObjectStore(uint64_t objectStoreIdentifier) +void IDBDatabaseInfo::deleteObjectStore(IDBObjectStoreIdentifier objectStoreIdentifier) { m_objectStoreMap.remove(objectStoreIdentifier); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h 2024-10-30 09:22:36.510297000 +0000 @@ -25,6 +25,7 @@ #pragma once +#include "IDBObjectStoreIdentifier.h" #include "IDBObjectStoreInfo.h" #include #include @@ -35,7 +36,7 @@ class IDBDatabaseInfo { WTF_MAKE_TZONE_OR_ISO_ALLOCATED_EXPORT(IDBDatabaseInfo, WEBCORE_EXPORT); public: - WEBCORE_EXPORT explicit IDBDatabaseInfo(const String& name, uint64_t version, uint64_t maxIndexID, uint64_t maxObjectStoreID = 0, HashMap&& objectStoreMap = { }); + WEBCORE_EXPORT explicit IDBDatabaseInfo(const String& name, uint64_t version, uint64_t maxIndexID, HashMap&& objectStoreMap = { }); IDBDatabaseInfo() = default; enum IsolatedCopyTag { IsolatedCopy }; @@ -51,18 +52,18 @@ bool hasObjectStore(const String& name) const; IDBObjectStoreInfo createNewObjectStore(const String& name, std::optional&&, bool autoIncrement); void addExistingObjectStore(const IDBObjectStoreInfo&); - IDBObjectStoreInfo* infoForExistingObjectStore(uint64_t objectStoreIdentifier); + IDBObjectStoreInfo* infoForExistingObjectStore(IDBObjectStoreIdentifier); IDBObjectStoreInfo* infoForExistingObjectStore(const String& objectStoreName); - const IDBObjectStoreInfo* infoForExistingObjectStore(uint64_t objectStoreIdentifier) const; + const IDBObjectStoreInfo* infoForExistingObjectStore(IDBObjectStoreIdentifier) const; const IDBObjectStoreInfo* infoForExistingObjectStore(const String& objectStoreName) const; - void renameObjectStore(uint64_t objectStoreIdentifier, const String& newName); + void renameObjectStore(IDBObjectStoreIdentifier, const String& newName); Vector objectStoreNames() const; - const HashMap& objectStoreMap() const { return m_objectStoreMap; } + const HashMap& objectStoreMap() const { return m_objectStoreMap; } void deleteObjectStore(const String& objectStoreName); - void deleteObjectStore(uint64_t objectStoreIdentifier); + void deleteObjectStore(IDBObjectStoreIdentifier); void setMaxIndexID(uint64_t maxIndexID); uint64_t generateNextIndexID() { return ++m_maxIndexID; } @@ -74,15 +75,13 @@ private: friend struct IPC::ArgumentCoder; IDBObjectStoreInfo* getInfoForExistingObjectStore(const String& objectStoreName); - IDBObjectStoreInfo* getInfoForExistingObjectStore(uint64_t objectStoreIdentifier); + IDBObjectStoreInfo* getInfoForExistingObjectStore(IDBObjectStoreIdentifier); String m_name; uint64_t m_version { 0 }; uint64_t m_maxIndexID { 0 }; - uint64_t m_maxObjectStoreID { 0 }; - - HashMap m_objectStoreMap; + HashMap m_objectStoreMap; }; } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBGetAllRecordsData.h 2024-10-30 09:22:36.510297000 +0000 @@ -26,6 +26,7 @@ #pragma once #include "IDBKeyRangeData.h" +#include "IDBObjectStoreIdentifier.h" namespace WebCore { @@ -37,7 +38,7 @@ IDBKeyRangeData keyRangeData; IndexedDB::GetAllType getAllType; std::optional count; - uint64_t objectStoreIdentifier; + IDBObjectStoreIdentifier objectStoreIdentifier; uint64_t indexIdentifier; WEBCORE_EXPORT IDBGetAllRecordsData isolatedCopy() const; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -31,11 +31,7 @@ namespace WebCore { -IDBIndexInfo::IDBIndexInfo() -{ -} - -IDBIndexInfo::IDBIndexInfo(uint64_t identifier, uint64_t objectStoreIdentifier, const String& name, IDBKeyPath&& keyPath, bool unique, bool multiEntry) +IDBIndexInfo::IDBIndexInfo(uint64_t identifier, IDBObjectStoreIdentifier objectStoreIdentifier, const String& name, IDBKeyPath&& keyPath, bool unique, bool multiEntry) : m_identifier(identifier) , m_objectStoreIdentifier(objectStoreIdentifier) , m_name(name) diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h 2024-10-30 09:22:36.510297000 +0000 @@ -26,20 +26,21 @@ #pragma once #include "IDBKeyPath.h" +#include "IDBObjectStoreIdentifier.h" +#include #include namespace WebCore { class IDBIndexInfo { public: - WEBCORE_EXPORT IDBIndexInfo(); - WEBCORE_EXPORT IDBIndexInfo(uint64_t identifier, uint64_t objectStoreIdentifier, const String& name, IDBKeyPath&&, bool unique, bool multiEntry); + WEBCORE_EXPORT IDBIndexInfo(uint64_t identifier, IDBObjectStoreIdentifier, const String& name, IDBKeyPath&&, bool unique, bool multiEntry); WEBCORE_EXPORT IDBIndexInfo isolatedCopy() const &; WEBCORE_EXPORT IDBIndexInfo isolatedCopy() &&; uint64_t identifier() const { return m_identifier; } - uint64_t objectStoreIdentifier() const { return m_objectStoreIdentifier; } + IDBObjectStoreIdentifier objectStoreIdentifier() const { return m_objectStoreIdentifier; } const String& name() const { return m_name; } const IDBKeyPath& keyPath() const { return m_keyPath; } bool unique() const { return m_unique; } @@ -58,7 +59,7 @@ void setIdentifier(uint64_t identifier) { m_identifier = identifier; } private: uint64_t m_identifier { 0 }; - uint64_t m_objectStoreIdentifier { 0 }; + IDBObjectStoreIdentifier m_objectStoreIdentifier; String m_name; IDBKeyPath m_keyPath; bool m_unique { true }; @@ -66,3 +67,15 @@ }; } // namespace WebCore + +namespace WTF { + +template<> struct HashTraits : GenericHashTraits { + static constexpr bool emptyValueIsZero = false; + static WebCore::IDBIndexInfo emptyValue() + { + return WebCore::IDBIndexInfo { { }, HashTraits::emptyValue(), { }, { }, false, false }; + } +}; + +} // namespace WTF diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.cpp 2024-10-30 09:22:36.510297000 +0000 @@ -32,11 +32,7 @@ namespace WebCore { -IDBObjectStoreInfo::IDBObjectStoreInfo() -{ -} - -IDBObjectStoreInfo::IDBObjectStoreInfo(uint64_t identifier, const String& name, std::optional&& keyPath, bool autoIncrement, HashMap&& indexMap) +IDBObjectStoreInfo::IDBObjectStoreInfo(IDBObjectStoreIdentifier identifier, const String& name, std::optional&& keyPath, bool autoIncrement, HashMap&& indexMap) : m_identifier(identifier) , m_name(name) , m_keyPath(WTFMove(keyPath)) diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBObjectStoreInfo.h 2024-10-30 09:22:36.510297000 +0000 @@ -27,6 +27,7 @@ #include "IDBIndexInfo.h" #include "IDBKeyPath.h" +#include "IDBObjectStoreIdentifier.h" #include #include @@ -34,10 +35,9 @@ class IDBObjectStoreInfo { public: - WEBCORE_EXPORT IDBObjectStoreInfo(); - WEBCORE_EXPORT IDBObjectStoreInfo(uint64_t identifier, const String& name, std::optional&&, bool autoIncrement, HashMap&& = { }); + WEBCORE_EXPORT IDBObjectStoreInfo(IDBObjectStoreIdentifier, const String& name, std::optional&&, bool autoIncrement, HashMap&& = { }); - uint64_t identifier() const { return m_identifier; } + IDBObjectStoreIdentifier identifier() const { return m_identifier; } const String& name() const { return m_name; } const std::optional& keyPath() const { return m_keyPath; } bool autoIncrement() const { return m_autoIncrement; } @@ -66,7 +66,7 @@ #endif private: - uint64_t m_identifier { 0 }; + IDBObjectStoreIdentifier m_identifier; String m_name; std::optional m_keyPath; bool m_autoIncrement { false }; @@ -75,3 +75,15 @@ }; } // namespace WebCore + +namespace WTF { + +template<> struct HashTraits : GenericHashTraits { + static constexpr bool emptyValueIsZero = false; + static WebCore::IDBObjectStoreInfo emptyValue() + { + return WebCore::IDBObjectStoreInfo { HashTraits::emptyValue(), { }, { }, false }; + } +}; + +} // namespace WTF diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.cpp 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.cpp 2024-10-30 09:22:36.514297000 +0000 @@ -46,7 +46,7 @@ m_cursorIdentifier = *operation.cursorIdentifier(); } -IDBRequestData::IDBRequestData(IDBConnectionIdentifier serverConnectionIdentifier, IDBResourceIdentifier requestIdentifier, IDBResourceIdentifier transactionIdentifier, std::optional&& cursorIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType indexRecordType, uint64_t requestedVersion, IndexedDB::RequestType requestType) +IDBRequestData::IDBRequestData(IDBConnectionIdentifier serverConnectionIdentifier, IDBResourceIdentifier requestIdentifier, IDBResourceIdentifier transactionIdentifier, std::optional&& cursorIdentifier, std::optional objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType indexRecordType, uint64_t requestedVersion, IndexedDB::RequestType requestType) : m_serverConnectionIdentifier(serverConnectionIdentifier) , m_requestIdentifier(requestIdentifier) , m_transactionIdentifier(transactionIdentifier) @@ -118,10 +118,10 @@ return *m_cursorIdentifier; } -uint64_t IDBRequestData::objectStoreIdentifier() const +IDBObjectStoreIdentifier IDBRequestData::objectStoreIdentifier() const { ASSERT(m_objectStoreIdentifier); - return m_objectStoreIdentifier; + return *m_objectStoreIdentifier; } uint64_t IDBRequestData::indexIdentifier() const diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h 2024-08-19 06:28:38.691293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h 2024-10-30 09:22:36.514297000 +0000 @@ -26,9 +26,12 @@ #pragma once #include "IDBDatabaseIdentifier.h" +#include "IDBObjectStoreIdentifier.h" #include "IDBResourceIdentifier.h" #include "IndexedDB.h" +#include #include +#include namespace WebCore { @@ -58,7 +61,7 @@ IDBConnectionIdentifier serverConnectionIdentifier() const; WEBCORE_EXPORT IDBResourceIdentifier requestIdentifier() const; WEBCORE_EXPORT IDBResourceIdentifier transactionIdentifier() const; - uint64_t objectStoreIdentifier() const; + IDBObjectStoreIdentifier objectStoreIdentifier() const; uint64_t indexIdentifier() const; IndexedDB::IndexRecordType indexRecordType() const; IDBResourceIdentifier cursorIdentifier() const; @@ -67,14 +70,14 @@ private: friend struct IPC::ArgumentCoder; - WEBCORE_EXPORT IDBRequestData(IDBConnectionIdentifier serverConnectionIdentifier, IDBResourceIdentifier requestIdentifier, IDBResourceIdentifier transactionIdentifier, std::optional&& cursorIdentifier, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, IndexedDB::IndexRecordType, uint64_t requestedVersion, IndexedDB::RequestType); + WEBCORE_EXPORT IDBRequestData(IDBConnectionIdentifier serverConnectionIdentifier, IDBResourceIdentifier requestIdentifier, IDBResourceIdentifier transactionIdentifier, std::optional&& cursorIdentifier, std::optional, uint64_t indexIdentifier, IndexedDB::IndexRecordType, uint64_t requestedVersion, IndexedDB::RequestType); static void isolatedCopy(const IDBRequestData& source, IDBRequestData& destination); IDBConnectionIdentifier m_serverConnectionIdentifier; IDBResourceIdentifier m_requestIdentifier; IDBResourceIdentifier m_transactionIdentifier; std::optional m_cursorIdentifier; - uint64_t m_objectStoreIdentifier { 0 }; + Markable m_objectStoreIdentifier; uint64_t m_indexIdentifier { 0 }; IndexedDB::IndexRecordType m_indexRecordType { IndexedDB::IndexRecordType::Key }; uint64_t m_requestedVersion { 0 }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasession/MediaSession.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediasession/MediaSession.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasession/MediaSession.cpp 2024-09-16 08:33:15.109030000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasession/MediaSession.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -461,6 +461,27 @@ notifyPositionStateObservers(); } +static Vector fallbackArtwork(DocumentLoader* loader) +{ + if (!loader) + return { }; + size_t size = 0; + for (const auto& icon : loader->linkIcons()) { + if (icon.url.protocolIsInHTTPFamily()) + size++; + } + if (!size) + return { }; + + Vector images; + images.reserveInitialCapacity(size); + for (const auto& icon : loader->linkIcons()) { + if (icon.url.protocolIsInHTTPFamily()) + images.append(icon.url); + }; + return images; +} + void MediaSession::updateNowPlayingInfo(NowPlayingInfo& info) { if (auto positionState = this->positionState()) { @@ -470,13 +491,10 @@ if (auto currentPosition = this->currentPosition()) info.currentTime = *currentPosition; - if (!m_defaultMetadata && (!m_metadata || m_metadata->artwork().isEmpty())) { - if (RefPtr loader = document() ? document()->loader() : nullptr; loader && loader->linkIcons().size()) { - Vector images { document()->loader()->linkIcons().size(), [&](size_t index) { - return loader->linkIcons()[index].url; - } }; + if (!m_defaultArtworkAttempted && (!m_metadata || m_metadata->artwork().isEmpty())) { + m_defaultArtworkAttempted = true; + if (auto images = fallbackArtwork(document() ? document()->loader() : nullptr); images.size()) m_defaultMetadata = MediaMetadata::create(*this, WTFMove(images)); - } } if (RefPtr metadataWithImage = m_metadata && m_metadata->artworkImage() ? m_metadata : (m_defaultMetadata && m_defaultMetadata->artworkImage() ? m_defaultMetadata : nullptr)) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasession/MediaSession.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediasession/MediaSession.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasession/MediaSession.h 2024-08-19 06:28:38.695293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasession/MediaSession.h 2024-09-30 08:15:01.104258500 +0000 @@ -179,6 +179,7 @@ Vector> m_playlist; #endif mutable Lock m_actionHandlersLock; + mutable bool m_defaultArtworkAttempted { false }; }; String convertEnumerationToString(MediaSessionPlaybackState); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -112,10 +112,12 @@ setStreaming(true); return; } - auto currentTime = this->currentTime(); ensurePrefsRead(); + auto currentTime = this->currentTime(); + ASSERT(currentTime.isValid()); + auto limitAhead = [&] (double upper) { MediaTime aheadTime = currentTime + MediaTime::createWithDouble(upper); return isEnded() ? std::min(duration(), aheadTime) : aheadTime; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSource.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSource.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSource.cpp 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSource.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -1155,6 +1155,14 @@ return readyState() == ReadyState::Ended; } +void MediaSource::elementIsShuttingDown() +{ + ALWAYS_LOG(LOGIDENTIFIER); + m_mediaElement = nullptr; + m_sourceopenPending = false; + detachFromElement(); +} + void MediaSource::detachFromElement() { ALWAYS_LOG(LOGIDENTIFIER); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSource.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSource.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSource.h 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSource.h 2024-10-21 09:00:02.703246800 +0000 @@ -110,6 +110,7 @@ void streamEndedWithError(std::optional); bool attachToElement(WeakPtr&&); + void elementIsShuttingDown(); void detachFromElement(); bool isSeeking() const { return !!m_pendingSeekTarget; } Ref seekable(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.cpp 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -88,6 +88,11 @@ m_mediaSource->detachFromElement(); } +void MediaSourceInterfaceMainThread::elementIsShuttingDown() +{ + m_mediaSource->elementIsShuttingDown(); +} + void MediaSourceInterfaceMainThread::openIfDeferredOpen() { m_mediaSource->openIfDeferredOpen(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.h 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceMainThread.h 2024-10-21 09:00:02.703246800 +0000 @@ -47,6 +47,7 @@ bool isStreamingContent() const final; bool attachToElement(WeakPtr&&) final; void detachFromElement() final; + void elementIsShuttingDown() final; void openIfDeferredOpen() final; bool isManaged() const final; void setAsSrcObject(bool) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceProxy.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceProxy.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceProxy.h 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceProxy.h 2024-10-21 09:00:02.703246800 +0000 @@ -54,6 +54,7 @@ virtual bool isStreamingContent() const = 0; virtual bool attachToElement(WeakPtr&&) = 0; virtual void detachFromElement() = 0; + virtual void elementIsShuttingDown() = 0; virtual void openIfDeferredOpen() = 0; virtual bool isManaged() const = 0; virtual void setAsSrcObject(bool) = 0; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.cpp 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -111,6 +111,14 @@ }); } +void MediaSourceInterfaceWorker::elementIsShuttingDown() +{ + ASSERT(m_handle->hasEverBeenAssignedAsSrcObject()); + m_handle->ensureOnDispatcher([](MediaSource& mediaSource) { + mediaSource.elementIsShuttingDown(); + }); +} + void MediaSourceInterfaceWorker::openIfDeferredOpen() { ASSERT(m_handle->hasEverBeenAssignedAsSrcObject()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.h 2024-08-19 06:28:38.699293000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediasource/MediaSourceInterfaceWorker.h 2024-10-21 09:00:02.703246800 +0000 @@ -47,6 +47,7 @@ bool isStreamingContent() const final; bool attachToElement(WeakPtr&&) final; void detachFromElement() final; + void elementIsShuttingDown() final; void openIfDeferredOpen() final; bool isManaged() const final; void setAsSrcObject(bool) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/MediaStreamTrackProcessor.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/MediaStreamTrackProcessor.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/MediaStreamTrackProcessor.cpp 2024-08-19 06:28:38.703292800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/MediaStreamTrackProcessor.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -27,10 +27,16 @@ #if ENABLE(MEDIA_STREAM) && ENABLE(WEB_CODECS) +#include "CSSStyleImageValue.h" #include "ContextDestructionObserverInlines.h" +#include "HTMLCanvasElement.h" +#include "HTMLImageElement.h" +#include "HTMLVideoElement.h" #include "JSWebCodecsVideoFrame.h" #include "Logging.h" +#include "OffscreenCanvas.h" #include "ReadableStream.h" +#include "SVGImageElement.h" #include #include diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2024-09-16 08:33:15.109030000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -499,7 +499,7 @@ if (server.credential.utf8().length() > MaxTurnUsernameLength || server.username.utf8().length() > MaxTurnUsernameLength) return Exception { ExceptionCode::TypeError, "TURN/TURNS username and/or credential are too long"_s }; } - } else if (!serverURL.protocolIs("stun"_s)) + } else if (!serverURL.protocolIs("stun"_s) && !serverURL.protocolIs("stuns"_s)) return Exception { ExceptionCode::SyntaxError, "ICE server protocol not supported"_s }; } if (serverURLs.size()) diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/RTCStatsReport.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/RTCStatsReport.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/RTCStatsReport.h 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/RTCStatsReport.h 2024-09-30 08:15:01.104258500 +0000 @@ -139,7 +139,7 @@ #if USE(LIBWEBRTC) InboundRtpStreamStats(const webrtc::RTCInboundRtpStreamStats&); #elif USE(GSTREAMER_WEBRTC) - InboundRtpStreamStats(const GstStructure*, const GstStructure* additionalStats); + InboundRtpStreamStats(const GstStructure*); #endif String trackIdentifier; @@ -240,7 +240,7 @@ #if USE(LIBWEBRTC) OutboundRtpStreamStats(const webrtc::RTCOutboundRtpStreamStats&); #elif USE(GSTREAMER_WEBRTC) - OutboundRtpStreamStats(const GstStructure*, const GstStructure* additionalStats); + OutboundRtpStreamStats(const GstStructure*); #endif String mid; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -255,12 +255,19 @@ GstWebRTCDataChannelState channelState; g_object_get(m_channel.get(), "ready-state", &channelState, nullptr); + if (!channelState) { + DC_DEBUG("Data-channel ready-state hasn't been set yet."); + return false; + } RTCDataChannelState state; switch (channelState) { #if !GST_CHECK_VERSION(1, 22, 0) - // Removed in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2099. + // Removed in https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2099. In + // GStreamer < 1.22 GST_WEBRTC_DATA_CHANNEL_STATE_NEW had the 0 value. We keep this case only to + // avoid adding a default case. case GST_WEBRTC_DATA_CHANNEL_STATE_NEW: + break; #endif case GST_WEBRTC_DATA_CHANNEL_STATE_CONNECTING: state = RTCDataChannelState::Connecting; @@ -344,8 +351,7 @@ void GStreamerDataChannelHandler::onMessageData(GBytes* bytes) { - auto size = g_bytes_get_size(bytes); - DC_DEBUG("Incoming data of size: %zu", size); + DC_DEBUG("Incoming data of size: %zu", g_bytes_get_size(bytes)); Locker locker { m_clientLock }; if (!m_client) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -41,6 +41,7 @@ #include "RTCIceCandidate.h" #include "RTCOfferOptions.h" #include "RTCPeerConnection.h" +#include "RTCRtpSender.h" #include "RTCSctpTransportBackend.h" #include "RTCSessionDescription.h" #include "RTCStatsReport.h" @@ -109,6 +110,11 @@ return false; auto rtpBin = adoptGRef(gst_bin_get_by_name(GST_BIN_CAST(m_webrtcBin.get()), "rtpbin")); + if (!rtpBin) { + GST_ERROR_OBJECT(m_webrtcBin.get(), "rtpbin not found. Please check that your GStreamer installation has the rtp and rtpmanager plugins."); + return false; + } + if (gstObjectHasProperty(rtpBin.get(), "add-reference-timestamp-meta")) g_object_set(rtpBin.get(), "add-reference-timestamp-meta", TRUE, nullptr); @@ -436,12 +442,15 @@ { GRefPtr receiver; GUniqueOutPtr mid; - GstWebRTCRTPTransceiverDirection currentDirection; + GstWebRTCRTPTransceiverDirection direction; guint mLineIndex; - g_object_get(transceiver, "receiver", &receiver.outPtr(), "current-direction", ¤tDirection, "mlineindex", &mLineIndex, "mid", &mid.outPtr(), nullptr); + // GstWebRTCRTPTransceiver doesn't have a fired-direction property, so use direction. Until + // GStreamer 1.26 direction and current-direction always had the same value. This was fixed by: + // https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/cafb999fb0cdf32803fcc3f85f2652212f05c2d0 + g_object_get(transceiver, "receiver", &receiver.outPtr(), "direction", &direction, "mlineindex", &mLineIndex, "mid", &mid.outPtr(), nullptr); #ifndef GST_DISABLE_GST_DEBUG - GUniquePtr desc(g_enum_to_string(GST_TYPE_WEBRTC_RTP_TRANSCEIVER_DIRECTION, currentDirection)); - GST_TRACE_OBJECT(webrtcBin, "Receiver = %" GST_PTR_FORMAT ", current-direction = %s, mlineindex = %u, mid = %s", receiver.get(), desc.get(), mLineIndex, GST_STR_NULL(mid.get())); + GUniquePtr desc(g_enum_to_string(GST_TYPE_WEBRTC_RTP_TRANSCEIVER_DIRECTION, direction)); + GST_TRACE_OBJECT(webrtcBin, "Receiver = %" GST_PTR_FORMAT ", direction = %s, mlineindex = %u, mid = %s", receiver.get(), desc.get(), mLineIndex, GST_STR_NULL(mid.get())); #endif GUniqueOutPtr localDescription, remoteDescription; @@ -461,14 +470,14 @@ Vector streamIds; if (remoteDescription && remoteDescription->sdp && mLineIndex < gst_sdp_message_medias_len(remoteDescription->sdp)) { const GstSDPMedia* media = gst_sdp_message_get_media(remoteDescription->sdp, mLineIndex); - if (isRecvDirection(currentDirection)) + if (isRecvDirection(direction)) streamIds = getMediaStreamIdsFromSDPMedia(*media); } if (UNLIKELY(!mid)) return { }; - return { { String::fromUTF8(mid.get()), WTFMove(streamIds), { toRTCRtpTransceiverDirection(currentDirection) } } }; + return { { String::fromUTF8(mid.get()), WTFMove(streamIds), { toRTCRtpTransceiverDirection(direction) } } }; } static Vector transceiverStatesFromWebRTCBin(GstElement* webrtcBin) @@ -1048,24 +1057,8 @@ }, holder, reinterpret_cast(destroyGStreamerMediaEndpointHolder))); } -void GStreamerMediaEndpoint::getStats(GstPad* pad, const GstStructure* additionalStats, Ref&& promise) +void GStreamerMediaEndpoint::getStats(const GRefPtr& pad, Ref&& promise) { - GUniquePtr aggregatedStats(additionalStats ? gst_structure_copy(additionalStats) : gst_structure_new_empty("stats")); - for (auto& processor : m_trackProcessors.values()) { - if (pad && pad != processor->pad()) - continue; - - const auto stats = processor->stats(); - if (!stats) - continue; - - gst_structure_foreach(stats, [](GQuark quark, const GValue* value, gpointer userData) -> gboolean { - auto resultStructure = static_cast(userData); - gst_structure_set_value(resultStructure, g_quark_to_string(quark), value); - return TRUE; - }, aggregatedStats.get()); - } - m_statsCollector->getStats([promise = WTFMove(promise), protectedThis = Ref(*this)](auto&& report) mutable { ASSERT(isMainThread()); if (protectedThis->isStopped() || !report) { @@ -1074,21 +1067,23 @@ } promise->resolve>(report.releaseNonNull()); - }, pad, aggregatedStats.get()); + }, pad, [weakThis = ThreadSafeWeakPtr { *this }, this](const auto& pad, const auto* stats) -> GUniquePtr { + RefPtr protectedThis = weakThis.get(); + if (!protectedThis) + return nullptr; + return preprocessStats(pad, stats); + }); } void GStreamerMediaEndpoint::getStats(RTCRtpReceiver& receiver, Ref&& promise) { GstElement* bin = nullptr; - const GstStructure* additionalStats = nullptr; auto& source = receiver.track().privateTrack().source(); - if (source.isIncomingAudioSource()) { + if (source.isIncomingAudioSource()) bin = static_cast(source).bin(); - } else if (source.isIncomingVideoSource()) { - auto& incomingVideoSource = static_cast(source); - bin = incomingVideoSource.bin(); - additionalStats = incomingVideoSource.stats(); - } else + else if (source.isIncomingVideoSource()) + bin = static_cast(source).bin(); + else RELEASE_ASSERT_NOT_REACHED(); if (!bin) { @@ -1099,7 +1094,7 @@ auto sinkPad = adoptGRef(gst_element_get_static_pad(bin, "sink")); if (!sinkPad) { // The incoming source bin is not linked yet, so look for a matching upstream track processor. - GstPad* pad = nullptr; + GRefPtr pad; const auto& trackId = receiver.track().id(); for (auto& processor : m_trackProcessors.values()) { if (processor->trackId() != trackId) @@ -1107,11 +1102,11 @@ pad = processor->pad(); break; } - getStats(pad, additionalStats, WTFMove(promise)); + getStats(pad, WTFMove(promise)); return; } auto srcPad = adoptGRef(gst_pad_get_peer(sinkPad.get())); - getStats(srcPad.get(), additionalStats, WTFMove(promise)); + getStats(srcPad, WTFMove(promise)); } MediaStream& GStreamerMediaEndpoint::mediaStreamFromRTCStream(String mediaStreamId) @@ -1802,7 +1797,10 @@ return; auto* holder = static_cast(userData); - holder->endPoint->onStatsDelivered(reply); + callOnMainThreadAndWait([holder, reply] { + auto stats = holder->endPoint->preprocessStats(nullptr, reply); + holder->endPoint->onStatsDelivered(WTFMove(stats)); + }); }, holder, reinterpret_cast(destroyGStreamerMediaEndpointHolder))); } @@ -1818,7 +1816,97 @@ const GstStructure* m_stats; }; -void GStreamerMediaEndpoint::processStats(const GValue* value) +GUniquePtr GStreamerMediaEndpoint::preprocessStats(const GRefPtr& pad, const GstStructure* stats) +{ + ASSERT(isMainThread()); + GUniquePtr additionalStats(gst_structure_new_empty("stats")); + auto mergeStructureInAdditionalStats = [&](const GstStructure* stats) { + gst_structure_foreach(stats, [](GQuark quark, const GValue* value, gpointer userData) -> gboolean { + auto* resultStructure = static_cast(userData); + gst_structure_set_value(resultStructure, g_quark_to_string(quark), value); + return TRUE; + }, additionalStats.get()); + }; + if (!pad) { + for (auto& sender : m_peerConnectionBackend.connection().getSenders()) { + auto& backend = m_peerConnectionBackend.backendFromRTPSender(sender); + const GstStructure* stats = nullptr; + if (auto* videoSource = backend.videoSource()) + stats = videoSource->stats(); + + if (!stats) + continue; + + mergeStructureInAdditionalStats(stats); + } + for (auto& receiver : m_peerConnectionBackend.connection().getReceivers()) { + auto& track = receiver.get().track(); + if (!is(track.source())) + continue; + + auto& source = static_cast(track.source()); + const auto* stats = source.stats(); + if (!stats) + continue; + + mergeStructureInAdditionalStats(stats); + } + } + + for (auto& processor : m_trackProcessors.values()) { + if (pad && pad != processor->pad()) + continue; + + const auto stats = processor->stats(); + if (!stats) + continue; + + mergeStructureInAdditionalStats(stats); + } + + GUniquePtr result(gst_structure_copy(stats)); + gst_structure_map_in_place(result.get(), [](GQuark, GValue* value, gpointer userData) -> gboolean { + if (!GST_VALUE_HOLDS_STRUCTURE(value)) + return TRUE; + + GUniquePtr structure(gst_structure_copy(gst_value_get_structure(value))); + GstWebRTCStatsType statsType; + if (!gst_structure_get(structure.get(), "type", GST_TYPE_WEBRTC_STATS_TYPE, &statsType, nullptr)) + return TRUE; + + auto additionalStats = GST_STRUCTURE_CAST(userData); + switch (statsType) { + case GST_WEBRTC_STATS_INBOUND_RTP: { + if (auto framesDecoded = gstStructureGet(additionalStats, "frames-decoded"_s)) + gst_structure_set(structure.get(), "frames-decoded", G_TYPE_UINT64, *framesDecoded, nullptr); + if (auto framesDropped = gstStructureGet(additionalStats, "frames-dropped"_s)) + gst_structure_set(structure.get(), "frames-dropped", G_TYPE_UINT64, *framesDropped, nullptr); + if (auto frameWidth = gstStructureGet(additionalStats, "frame-width"_s)) + gst_structure_set(structure.get(), "frame-width", G_TYPE_UINT, *frameWidth, nullptr); + if (auto frameHeight = gstStructureGet(additionalStats, "frame-height"_s)) + gst_structure_set(structure.get(), "frame-height", G_TYPE_UINT, *frameHeight, nullptr); + break; + } + case GST_WEBRTC_STATS_OUTBOUND_RTP: { + if (auto framesSent = gstStructureGet(additionalStats, "frames-sent"_s)) + gst_structure_set(structure.get(), "frames-sent", G_TYPE_UINT64, *framesSent, nullptr); + if (auto framesEncoded = gstStructureGet(additionalStats, "frames-encoded"_s)) + gst_structure_set(structure.get(), "frames-encoded", G_TYPE_UINT64, *framesEncoded, nullptr); + if (auto targetBitrate = gstStructureGet(additionalStats, "bitrate"_s)) + gst_structure_set(structure.get(), "target-bitrate", G_TYPE_DOUBLE, *targetBitrate, nullptr); + break; + } + default: + break; + }; + gst_value_set_structure(value, structure.get()); + return TRUE; + }, additionalStats.get()); + + return result; +} + +void GStreamerMediaEndpoint::processStatsItem(const GValue* value) { if (!GST_VALUE_HOLDS_STRUCTURE(value)) return; @@ -1853,13 +1941,12 @@ } } -void GStreamerMediaEndpoint::onStatsDelivered(const GstStructure* stats) +void GStreamerMediaEndpoint::onStatsDelivered(GUniquePtr&& stats) { - GUniquePtr statsCopy(gst_structure_copy(stats)); - callOnMainThread([protectedThis = Ref(*this), this, stats = WTFMove(statsCopy)] { + callOnMainThread([protectedThis = Ref(*this), this, stats = WTFMove(stats)] { gst_structure_foreach(stats.get(), static_cast([](GQuark, const GValue* value, gpointer userData) -> gboolean { auto* endPoint = reinterpret_cast(userData); - endPoint->processStats(value); + endPoint->processStatsItem(value); return TRUE; }), this); }); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h 2024-09-30 08:15:01.104258500 +0000 @@ -66,7 +66,7 @@ void doCreateOffer(const RTCOfferOptions&); void doCreateAnswer(); - void getStats(GstPad*, const GstStructure*, Ref&&); + void getStats(const GRefPtr&, Ref&&); void getStats(RTCRtpReceiver&, Ref&&); std::unique_ptr createDataChannel(const String&, const RTCDataChannelInit&); @@ -110,15 +110,16 @@ GstElement* webrtcBin() const { return m_webrtcBin.get(); } bool handleMessage(GstMessage*); + GUniquePtr preprocessStats(const GRefPtr&, const GstStructure*); #if !RELEASE_LOG_DISABLED - void processStats(const GValue*); + void processStatsItem(const GValue*); #endif void connectIncomingTrack(WebRTCTrackData&); protected: #if !RELEASE_LOG_DISABLED - void onStatsDelivered(const GstStructure*); + void onStatsDelivered(GUniquePtr&&); #endif private: diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -48,6 +48,7 @@ GST_DEBUG_CATEGORY(webkit_webrtc_pc_backend_debug); #define GST_CAT_DEFAULT webkit_webrtc_pc_backend_debug +#ifndef GST_DISABLE_GST_DEBUG class WebRTCLogObserver : public WebCoreLogObserver { public: GstDebugCategory* debugCategory() const final @@ -65,6 +66,7 @@ static NeverDestroyed sharedInstance; return sharedInstance; } +#endif // GST_DISABLE_GST_DEBUG static std::unique_ptr createGStreamerPeerConnectionBackend(RTCPeerConnection& peerConnection) { @@ -88,6 +90,7 @@ { disableICECandidateFiltering(); +#if !RELEASE_LOG_DISABLED && !defined(GST_DISABLE_GST_DEBUG) // PeerConnectionBackend relies on the Document logger, so to prevent duplicate messages in case // more than one PeerConnection is created, we register a single observer. auto& logObserver = webrtcLogObserverSingleton(); @@ -95,12 +98,15 @@ auto logIdentifier = makeString(hex(reinterpret_cast(this->logIdentifier()))); GST_INFO_OBJECT(m_endpoint->pipeline(), "WebCore logs identifier for this pipeline is: %s", logIdentifier.ascii().data()); +#endif } GStreamerPeerConnectionBackend::~GStreamerPeerConnectionBackend() { +#if !RELEASE_LOG_DISABLED && !defined(GST_DISABLE_GST_DEBUG) auto& logObserver = webrtcLogObserverSingleton(); logObserver.removeWatch(logger()); +#endif } void GStreamerPeerConnectionBackend::suspend() @@ -123,7 +129,7 @@ return m_endpoint->setConfiguration(configuration); } -static inline GStreamerRtpSenderBackend& backendFromRTPSender(RTCRtpSender& sender) +GStreamerRtpSenderBackend& GStreamerPeerConnectionBackend::backendFromRTPSender(RTCRtpSender& sender) { ASSERT(!sender.isStopped()); return static_cast(*sender.backend()); @@ -131,59 +137,24 @@ void GStreamerPeerConnectionBackend::getStats(Ref&& promise) { - GUniquePtr additionalStats(gst_structure_new_empty("stats")); - for (auto& sender : connection().getSenders()) { - auto& backend = backendFromRTPSender(sender); - const GstStructure* stats = nullptr; - if (auto* videoSource = backend.videoSource()) - stats = videoSource->stats(); - - if (!stats) - continue; - - gst_structure_foreach(stats, [](GQuark quark, const GValue* value, gpointer userData) -> gboolean { - auto* resultStructure = static_cast(userData); - gst_structure_set_value(resultStructure, g_quark_to_string(quark), value); - return TRUE; - }, additionalStats.get()); - } - for (auto& receiver : connection().getReceivers()) { - auto& track = receiver.get().track(); - if (!is(track.source())) - continue; - - auto& source = static_cast(track.source()); - const auto* stats = source.stats(); - if (!stats) - continue; - - gst_structure_foreach(stats, [](GQuark quark, const GValue* value, gpointer userData) -> gboolean { - auto* resultStructure = static_cast(userData); - gst_structure_set_value(resultStructure, g_quark_to_string(quark), value); - return TRUE; - }, additionalStats.get()); - } - m_endpoint->getStats(nullptr, additionalStats.get(), WTFMove(promise)); + m_endpoint->getStats(nullptr, WTFMove(promise)); } void GStreamerPeerConnectionBackend::getStats(RTCRtpSender& sender, Ref&& promise) { if (!sender.backend()) { - m_endpoint->getStats(nullptr, nullptr, WTFMove(promise)); + m_endpoint->getStats(nullptr, WTFMove(promise)); return; } auto& backend = backendFromRTPSender(sender); GRefPtr pad; - const GstStructure* additionalStats = nullptr; if (RealtimeOutgoingAudioSourceGStreamer* source = backend.audioSource()) pad = source->pad(); - else if (RealtimeOutgoingVideoSourceGStreamer* source = backend.videoSource()) { + else if (RealtimeOutgoingVideoSourceGStreamer* source = backend.videoSource()) pad = source->pad(); - additionalStats = source->stats(); - } - m_endpoint->getStats(pad.get(), additionalStats, WTFMove(promise)); + m_endpoint->getStats(pad.get(), WTFMove(promise)); } void GStreamerPeerConnectionBackend::getStats(RTCRtpReceiver& receiver, Ref&& promise) @@ -253,7 +224,7 @@ return m_endpoint->createDataChannel(label, options); } -static inline RefPtr findExistingSender(const Vector>& transceivers, GStreamerRtpSenderBackend& senderBackend) +RefPtr GStreamerPeerConnectionBackend::findExistingSender(const Vector>& transceivers, GStreamerRtpSenderBackend& senderBackend) { ASSERT(senderBackend.rtcSender()); for (auto& transceiver : transceivers) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h 2024-09-30 08:15:01.104258500 +0000 @@ -64,6 +64,9 @@ explicit GStreamerPeerConnectionBackend(RTCPeerConnection&); ~GStreamerPeerConnectionBackend(); + GStreamerRtpSenderBackend& backendFromRTPSender(RTCRtpSender&); + RefPtr findExistingSender(const Vector>&, GStreamerRtpSenderBackend&); + private: void close() final; void doCreateOffer(RTCOfferOptions&&) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp 2024-08-19 06:28:38.715292500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -148,19 +148,13 @@ switchOn(m_source, [&](Ref& source) { ASSERT(track->source().type() == RealtimeMediaSource::Type::Audio); - if (replace) { - source->stop(); - source->setSource(track->privateTrack()); - source->flush(); - } + if (replace) + source->replaceTrack(&track->privateTrack()); source->start(); }, [&](Ref& source) { ASSERT(track->source().type() == RealtimeMediaSource::Type::Video); - if (replace) { - source->stop(); - source->setSource(track->privateTrack()); - source->flush(); - } + if (replace) + source->replaceTrack(&track->privateTrack()); source->start(); }, [&](std::nullptr_t&) { GST_DEBUG_OBJECT(m_rtcSender.get(), "No outgoing source yet"); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp 2024-08-19 06:28:38.715292500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp 2024-09-30 08:15:01.104258500 +0000 @@ -124,14 +124,13 @@ gst_caps_set_simple(caps.get(), "channels", G_TYPE_INT, *codec.channels, nullptr); if (!codec.sdpFmtpLine.isEmpty()) { - // Forward each fmtp attribute as codec- in the caps so that the downstream + // Forward each fmtp attribute as in the caps so that the downstream // webkitvideoencoder can take those into account when configuring the encoder. For instance // VP9 profile 2 requires a 10bit pixel input format, so a conversion might be needed just // before encoding. This is taken care of in the webkitvideoencoder itself. for (auto& attribute : codec.sdpFmtpLine.split(';')) { auto components = attribute.split('='); - auto field = makeString(codecName.convertToASCIILowercase(), '-', components[0]); - gst_caps_set_simple(caps.get(), field.ascii().data(), G_TYPE_STRING, components[1].ascii().data(), nullptr); + gst_caps_set_simple(caps.get(), components[0].ascii().data(), G_TYPE_STRING, components[1].ascii().data(), nullptr); } } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp 2024-09-30 08:15:01.108258500 +0000 @@ -120,7 +120,7 @@ // stats.roundTripTimeMeasurements } -RTCStatsReport::InboundRtpStreamStats::InboundRtpStreamStats(const GstStructure* structure, const GstStructure* additionalStats) +RTCStatsReport::InboundRtpStreamStats::InboundRtpStreamStats(const GstStructure* structure) : ReceivedRtpStreamStats(Type::InboundRtp, structure) { bytesReceived = gstStructureGet(structure, "bytes-received"_s); @@ -132,13 +132,10 @@ decoderImplementation = "GStreamer"_s; - if (!additionalStats) - return; - - framesDecoded = gstStructureGet(additionalStats, "frames-decoded"_s); - framesDropped = gstStructureGet(additionalStats, "frames-dropped"_s); - frameWidth = gstStructureGet(additionalStats, "frame-width"_s); - frameHeight = gstStructureGet(additionalStats, "frame-height"_s); + framesDecoded = gstStructureGet(structure, "frames-decoded"_s); + framesDropped = gstStructureGet(structure, "frames-dropped"_s); + frameWidth = gstStructureGet(structure, "frame-width"_s); + frameHeight = gstStructureGet(structure, "frame-height"_s); // FIXME: // stats.fractionLost = @@ -152,7 +149,7 @@ // stats.gapDiscardRate = } -RTCStatsReport::OutboundRtpStreamStats::OutboundRtpStreamStats(const GstStructure* structure, const GstStructure* additionalStats) +RTCStatsReport::OutboundRtpStreamStats::OutboundRtpStreamStats(const GstStructure* structure) : SentRtpStreamStats(Type::OutboundRtp, structure) , remoteId(gstStructureGetString(structure, "remote-id"_s).toString()) { @@ -160,12 +157,9 @@ pliCount = gstStructureGet(structure, "pli-count"_s); nackCount = gstStructureGet(structure, "nack-count"_s); - if (!additionalStats) - return; - - framesSent = gstStructureGet(additionalStats, "frames-sent"_s); - framesEncoded = gstStructureGet(additionalStats, "frames-encoded"_s); - targetBitrate = gstStructureGet(additionalStats, "bitrate"_s); + framesSent = gstStructureGet(structure, "frames-sent"_s); + framesEncoded = gstStructureGet(structure, "frames-encoded"_s); + targetBitrate = gstStructureGet(structure, "target-bitrate"_s); } RTCStatsReport::PeerConnectionStats::PeerConnectionStats(const GstStructure* structure) @@ -255,12 +249,10 @@ WTF_MAKE_FAST_ALLOCATED; WTF_MAKE_NONCOPYABLE(ReportHolder); public: - ReportHolder(DOMMapAdapter* adapter, const GstStructure* additionalStats) - : adapter(adapter) - , additionalStats(additionalStats) { } + ReportHolder(DOMMapAdapter* adapter) + : adapter(adapter) { } DOMMapAdapter* adapter; - const GstStructure* additionalStats; }; static gboolean fillReportCallback(GQuark, const GValue* value, gpointer userData) @@ -275,7 +267,6 @@ auto* reportHolder = reinterpret_cast(userData); DOMMapAdapter& report = *reportHolder->adapter; - const auto* additionalStats = reportHolder->additionalStats; switch (statsType) { case GST_WEBRTC_STATS_CODEC: { @@ -284,12 +275,12 @@ break; } case GST_WEBRTC_STATS_INBOUND_RTP: { - RTCStatsReport::InboundRtpStreamStats stats(structure, additionalStats); + RTCStatsReport::InboundRtpStreamStats stats(structure); report.set>(stats.id, WTFMove(stats)); break; } case GST_WEBRTC_STATS_OUTBOUND_RTP: { - RTCStatsReport::OutboundRtpStreamStats stats(structure, additionalStats); + RTCStatsReport::OutboundRtpStreamStats stats(structure); report.set>(stats.id, WTFMove(stats)); break; } @@ -345,12 +336,13 @@ struct CallbackHolder { GStreamerStatsCollector::CollectorCallback callback; - GUniquePtr additionalStats; + GStreamerStatsCollector::PreprocessCallback preprocessCallback; + GRefPtr pad; }; WEBKIT_DEFINE_ASYNC_DATA_STRUCT(CallbackHolder) -void GStreamerStatsCollector::getStats(CollectorCallback&& callback, GstPad* pad, const GstStructure* additionalStats) +void GStreamerStatsCollector::getStats(CollectorCallback&& callback, const GRefPtr& pad, PreprocessCallback&& preprocessCallback) { if (!m_webrtcBin) { callback(nullptr); @@ -359,9 +351,9 @@ auto* holder = createCallbackHolder(); holder->callback = WTFMove(callback); - if (additionalStats) - holder->additionalStats.reset(gst_structure_copy(additionalStats)); - g_signal_emit_by_name(m_webrtcBin.get(), "get-stats", pad, gst_promise_new_with_change_func([](GstPromise* rawPromise, gpointer userData) { + holder->preprocessCallback = WTFMove(preprocessCallback); + holder->pad = pad; + g_signal_emit_by_name(m_webrtcBin.get(), "get-stats", pad.get(), gst_promise_new_with_change_func([](GstPromise* rawPromise, gpointer userData) mutable { auto promise = adoptGRef(rawPromise); auto* holder = static_cast(userData); if (gst_promise_wait(promise.get()) != GST_PROMISE_RESULT_REPLIED) { @@ -383,15 +375,13 @@ return; } - callOnMainThreadAndWait([promise = WTFMove(promise), holder] { - // Hold an additional ref to the promise because it is asynchronously used from the JS bindings. - GUniquePtr additionalStats; - if (holder->additionalStats) - additionalStats.reset(gst_structure_copy(holder->additionalStats.get())); - holder->callback(RTCStatsReport::create([promise = GRefPtr(promise.get()), additionalStats = WTFMove(additionalStats)](auto& mapAdapter) { - const auto* stats = gst_promise_get_reply(promise.get()); - auto holder = adoptRef(*new ReportHolder(&mapAdapter, additionalStats.get())); - gst_structure_foreach(stats, fillReportCallback, holder.ptr()); + callOnMainThreadAndWait([holder, stats] { + auto preprocessedStats = holder->preprocessCallback(holder->pad, stats); + if (!preprocessedStats) + return; + holder->callback(RTCStatsReport::create([stats = WTFMove(preprocessedStats)](auto& mapAdapter) mutable { + auto holder = adoptRef(*new ReportHolder(&mapAdapter)); + gst_structure_foreach(stats.get(), fillReportCallback, holder.ptr()); })); }); }, holder, reinterpret_cast(destroyCallbackHolder))); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h --- webkit2gtk-2.46.0/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.h 2024-09-30 08:15:01.108258500 +0000 @@ -26,6 +26,7 @@ #include #include #include +#include namespace WebCore { @@ -37,7 +38,8 @@ static Ref create() { return adoptRef(*new GStreamerStatsCollector()); } void setElement(GstElement* element) { m_webrtcBin = element; } - void getStats(CollectorCallback&&, GstPad*, const GstStructure*); + using PreprocessCallback = Function(const GRefPtr&, const GstStructure*)>; + void getStats(CollectorCallback&&, const GRefPtr&, PreprocessCallback&&); private: GRefPtr m_webrtcBin; diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/reporting/ReportingObserver.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/reporting/ReportingObserver.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/reporting/ReportingObserver.cpp 2024-08-19 06:28:38.739291700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/reporting/ReportingObserver.cpp 2024-09-30 08:15:01.108258500 +0000 @@ -130,19 +130,20 @@ if (m_queuedReports.size() > 1) return; - RefPtr context = m_callback->scriptExecutionContext(); - if (!context) - return; - - ASSERT(m_reportingScope && context == m_reportingScope->scriptExecutionContext()); + ASSERT(m_reportingScope && scriptExecutionContext() == m_reportingScope->scriptExecutionContext()); // Step 4.3.4: Queue a task to § 4.4 - context->eventLoop().queueTask(TaskSource::Reporting, [protectedThis = RefPtr { this }, protectedCallback = Ref { m_callback }, context]() mutable { + queueTaskKeepingObjectAlive(*this, TaskSource::Reporting, [protectedThis = Ref { *this }, protectedCallback = Ref { m_callback }] { + RefPtr context = protectedThis->scriptExecutionContext(); + ASSERT(context); + if (!context) + return; + // Step 4.4: Invoke reporting observers with notify list with a copy of global’s registered reporting observer list. auto reports = protectedThis->takeRecords(); InspectorInstrumentation::willFireObserverCallback(*context, "ReportingObserver"_s); - protectedCallback->handleEvent(reports, *protectedThis); + protectedCallback->handleEvent(reports, protectedThis); InspectorInstrumentation::didFireObserverCallback(*context); }); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp 2024-08-19 06:28:38.755291200 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp 2024-09-30 08:15:01.108258500 +0000 @@ -144,6 +144,10 @@ return nullptr; JSC::JSObject* jsConstructor = constructor->callbackData()->callback(); + ASSERT(jsConstructor); + if (!jsConstructor) + return nullptr; + auto* globalObject = constructor->callbackData()->globalObject(); JSC::VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp 2024-08-19 06:28:38.755291200 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp 2024-10-30 09:22:36.514297000 +0000 @@ -54,6 +54,15 @@ return bus.numberOfChannels(); } +template +static ArrayType* getArrayAtIndex(JSArray& jsArray, JSGlobalObject& globalObject, unsigned index) +{ + // We call getDirectIndex() instead of getIndex() since we only want to consider the values + // we populated the array with, not the ones the worklet might have set on the Array prototype. + auto item = jsArray.getDirectIndex(&globalObject, index); + return item ? jsDynamicCast(item) : nullptr; +} + static unsigned busChannelCount(const AudioBus* bus) { return bus ? busChannelCount(*bus) : 0; @@ -122,20 +131,20 @@ return array; } -static void copyDataFromJSArrayToBuses(JSGlobalObject& globalObject, const JSArray& jsArray, Vector>& buses) +static void copyDataFromJSArrayToBuses(JSGlobalObject& globalObject, JSArray& jsArray, Vector>& buses) { // We can safely make assumptions about the structure of the JSArray since we use frozen arrays. for (unsigned i = 0; i < buses.size(); ++i) { auto& bus = buses[i]; - auto* channelsArray = jsDynamicCast(jsArray.getIndex(&globalObject, i)); + auto* channelsArray = getArrayAtIndex(jsArray, globalObject, i); if (UNLIKELY(!channelsArray)) { bus->zero(); continue; } for (unsigned j = 0; j < bus->numberOfChannels(); ++j) { auto* channel = bus->channel(j); - auto* jsChannelData = jsDynamicCast(channelsArray->getIndex(&globalObject, j)); - if (LIKELY(jsChannelData && jsChannelData->length() == channel->length())) + auto* jsChannelData = getArrayAtIndex(*channelsArray, globalObject, j); + if (LIKELY(jsChannelData && !jsChannelData->isShared() && jsChannelData->length() == channel->length())) memcpy(channel->mutableData(), jsChannelData->typedVector(), sizeof(float) * channel->length()); else channel->zero(); @@ -150,14 +159,14 @@ for (size_t busIndex = 0; busIndex < buses.size(); ++busIndex) { auto& bus = buses[busIndex]; - auto* jsChannelsArray = jsDynamicCast(jsArray->getIndex(&globalObject, busIndex)); + auto* jsChannelsArray = getArrayAtIndex(*jsArray, globalObject, busIndex); unsigned numberOfChannels = busChannelCount(bus.get()); if (!jsChannelsArray || jsChannelsArray->length() != numberOfChannels) return false; for (unsigned channelIndex = 0; channelIndex < numberOfChannels; ++channelIndex) { auto* channel = bus->channel(channelIndex); - auto* jsChannelArray = jsDynamicCast(jsChannelsArray->getIndex(&globalObject, channelIndex)); - if (!jsChannelArray || jsChannelArray->length() != channel->length()) + auto* jsChannelArray = getArrayAtIndex(*jsChannelsArray, globalObject, channelIndex); + if (!jsChannelArray || jsChannelArray->isShared() || jsChannelArray->length() != channel->length()) return false; memcpy(jsChannelArray->typedVector(), channel->mutableData(), sizeof(float) * jsChannelArray->length()); } @@ -189,14 +198,14 @@ for (size_t busIndex = 0; busIndex < outputs.size(); ++busIndex) { auto& bus = outputs[busIndex]; - auto* jsChannelsArray = jsDynamicCast(jsArray->getIndex(&globalObject, busIndex)); + auto* jsChannelsArray = getArrayAtIndex(*jsArray, globalObject, busIndex); unsigned numberOfChannels = busChannelCount(bus.get()); if (!jsChannelsArray || jsChannelsArray->length() != numberOfChannels) return false; for (unsigned channelIndex = 0; channelIndex < numberOfChannels; ++channelIndex) { auto* channel = bus->channel(channelIndex); - auto* jsChannelArray = jsDynamicCast(jsChannelsArray->getIndex(&globalObject, channelIndex)); - if (!jsChannelArray || jsChannelArray->length() != channel->length()) + auto* jsChannelArray = getArrayAtIndex(*jsChannelsArray, globalObject, channelIndex); + if (!jsChannelArray || jsChannelArray->isShared() || jsChannelArray->length() != channel->length()) return false; memset(jsChannelArray->typedVector(), 0, sizeof(float) * jsChannelArray->length()); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp webkit2gtk-2.46.3/Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp --- webkit2gtk-2.46.0/Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp 2024-09-16 08:33:15.113030000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -28,12 +28,19 @@ #if ENABLE(WEB_CODECS) +#include "CSSStyleImageValue.h" #include "ContextDestructionObserverInlines.h" #include "DOMException.h" #include "Event.h" #include "EventNames.h" +#include "HTMLCanvasElement.h" +#include "HTMLImageElement.h" +#include "HTMLVideoElement.h" +#include "ImageBitmap.h" #include "JSDOMPromiseDeferred.h" #include "JSWebCodecsVideoDecoderSupport.h" +#include "OffscreenCanvas.h" +#include "SVGImageElement.h" #include "ScriptExecutionContext.h" #include "WebCodecsEncodedVideoChunk.h" #include "WebCodecsErrorCallback.h" diff -Nru webkit2gtk-2.46.0/Source/WebCore/Sources.txt webkit2gtk-2.46.3/Source/WebCore/Sources.txt --- webkit2gtk-2.46.0/Source/WebCore/Sources.txt 2024-08-21 10:00:57.909269600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/Sources.txt 2024-09-30 08:15:01.108258500 +0000 @@ -703,6 +703,7 @@ bindings/js/JSMessagePortCustom.cpp bindings/js/JSMutationObserverCustom.cpp bindings/js/JSMutationRecordCustom.cpp +bindings/js/JSNavigateEventCustom.cpp bindings/js/JSNavigatorCustom.cpp bindings/js/JSNodeCustom.cpp bindings/js/JSNodeIteratorCustom.cpp diff -Nru webkit2gtk-2.46.0/Source/WebCore/accessibility/AccessibilityRenderObject.cpp webkit2gtk-2.46.3/Source/WebCore/accessibility/AccessibilityRenderObject.cpp --- webkit2gtk-2.46.0/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2024-08-19 06:28:38.891287000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -2380,11 +2380,12 @@ return; // LocalFrameView's need to be inserted into the AX hierarchy when encountered. - Widget* widget = widgetForAttachmentView(); + RefPtr widget = widgetForAttachmentView(); if (!widget || !(widget->isLocalFrameView() || widget->isRemoteFrameView())) return; - addChild(axObjectCache()->getOrCreate(*widget)); + if (CheckedPtr cache = axObjectCache()) + addChild(cache->getOrCreate(*widget)); } #if PLATFORM(COCOA) diff -Nru webkit2gtk-2.46.0/Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp webkit2gtk-2.46.3/Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp --- webkit2gtk-2.46.0/Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp 2024-08-19 06:28:38.895286800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/accessibility/atspi/AccessibilityAtspi.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -51,11 +51,16 @@ m_cacheClearTimer.setPriority(RunLoopSourcePriority::ReleaseUnusedResourcesTimer); } -void AccessibilityAtspi::connect(const String& busAddress) +void AccessibilityAtspi::connect(const String& busAddress, const String& busName) { if (busAddress.isEmpty()) return; + RELEASE_ASSERT(g_dbus_is_name(busName.utf8().data())); + RELEASE_ASSERT(!g_dbus_is_unique_name(busName.utf8().data())); + + m_busName = busName; + m_isConnecting = true; g_dbus_connection_new_for_address(busAddress.utf8().data(), static_cast(G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION), nullptr, nullptr, @@ -70,10 +75,24 @@ void AccessibilityAtspi::didConnect(GRefPtr&& connection) { - m_isConnecting = false; m_connection = WTFMove(connection); - if (!m_connection) + if (!m_connection) { + m_isConnecting = false; return; + } + + RELEASE_ASSERT(g_dbus_is_name(m_busName.utf8().data())); + g_bus_own_name_on_connection(m_connection.get(), m_busName.utf8().data(), G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE, + [](GDBusConnection*, const char*, gpointer userData) { + auto& atspi = *static_cast(userData); + atspi.didOwnName(); + }, + nullptr, this, nullptr); +} + +void AccessibilityAtspi::didOwnName() +{ + m_isConnecting = false; for (auto& pendingRegistration : m_pendingRootRegistrations) registerRoot(pendingRegistration.root, WTFMove(pendingRegistration.interfaces), WTFMove(pendingRegistration.completionHandler)); @@ -294,7 +313,7 @@ return g_dbus_connection_register_object(m_connection.get(), path.utf8().data(), interface.first, interface.second, &rootObject, nullptr, nullptr); }); m_rootObjects.add(&rootObject, WTFMove(registeredObjects)); - String reference = makeString(span(uniqueName()), ':', path); + String reference = makeString(m_busName, ':', path); rootObject.setPath(WTFMove(path)); completionHandler(reference); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/accessibility/atspi/AccessibilityAtspi.h webkit2gtk-2.46.3/Source/WebCore/accessibility/atspi/AccessibilityAtspi.h --- webkit2gtk-2.46.0/Source/WebCore/accessibility/atspi/AccessibilityAtspi.h 2024-08-19 06:28:38.895286800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/accessibility/atspi/AccessibilityAtspi.h 2024-10-21 09:00:02.703246800 +0000 @@ -48,7 +48,7 @@ public: WEBCORE_EXPORT static AccessibilityAtspi& singleton(); - void connect(const String&); + void connect(const String&, const String&); const char* uniqueName() const; GVariant* nullReference() const; @@ -101,6 +101,7 @@ }; void didConnect(GRefPtr&&); + void didOwnName(); void initializeRegistry(); void addEventListener(const char* dbusName, const char* eventName); void removeEventListener(const char* dbusName, const char* eventName); @@ -128,6 +129,7 @@ static GDBusInterfaceVTable s_cacheFunctions; + String m_busName; bool m_isConnecting { false }; GRefPtr m_connection; GRefPtr m_registry; diff -Nru webkit2gtk-2.46.0/Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp webkit2gtk-2.46.3/Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp --- webkit2gtk-2.46.0/Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp 2024-08-19 06:28:38.899286700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -38,6 +38,7 @@ #include "TextIterator.h" #include "VisibleUnits.h" #include +#include #include namespace WebCore { @@ -763,9 +764,9 @@ if (!m_coreObject || !m_coreObject->renderer()) return { }; - auto accessibilityTextAttributes = [this](AXCoreObject* axObject, const HashMap& defaultAttributes) -> HashMap { + auto accessibilityTextAttributes = [this](AXCoreObject& axObject, const HashMap& defaultAttributes) -> HashMap { HashMap attributes; - auto& style = axObject->renderer()->style(); + auto& style = axObject.renderer()->style(); auto addAttributeIfNeeded = [&](const String& name, const String& value) { if (defaultAttributes.isEmpty() || defaultAttributes.get(name) != value) @@ -829,7 +830,7 @@ return attributes; }; - auto defaultAttributes = accessibilityTextAttributes(m_coreObject, { }); + auto defaultAttributes = accessibilityTextAttributes(*m_coreObject, { }); if (!utf16Offset) return { WTFMove(defaultAttributes), -1, -1 }; @@ -840,8 +841,11 @@ return { WTFMove(defaultAttributes), -1, -1 }; if (!*utf16Offset && m_hasListMarkerAtStart) { + auto* axObject = m_coreObject->children()[0].get(); + RELEASE_ASSERT(axObject); + // Always consider list marker an independent run. - auto attributes = accessibilityTextAttributes(m_coreObject->children()[0].get(), defaultAttributes); + auto attributes = accessibilityTextAttributes(*axObject, defaultAttributes); if (!includeDefault) return { WTFMove(attributes), 0, 1 }; @@ -863,7 +867,7 @@ if (!childAxObject || childAxObject == m_coreObject) return { WTFMove(defaultAttributes), -1, -1 }; - auto attributes = accessibilityTextAttributes(childAxObject, defaultAttributes); + auto attributes = accessibilityTextAttributes(*childAxObject, defaultAttributes); auto firstValidPosition = firstPositionInOrBeforeNode(m_coreObject->node()->firstDescendant()); auto lastValidPosition = lastPositionInOrAfterNode(m_coreObject->node()->lastDescendant()); @@ -873,7 +877,11 @@ if (r->firstChildSlow()) continue; - auto childAttributes = accessibilityTextAttributes(r->document().axObjectCache()->get(r), defaultAttributes); + auto* axObject = r->document().axObjectCache()->get(r); + if (!axObject) + continue; + + auto childAttributes = accessibilityTextAttributes(*axObject, defaultAttributes); if (childAttributes != attributes) break; @@ -887,7 +895,11 @@ if (r->firstChildSlow()) continue; - auto childAttributes = accessibilityTextAttributes(r->document().axObjectCache()->get(r), defaultAttributes); + auto* axObject = r->document().axObjectCache()->get(r); + if (!axObject) + continue; + + auto childAttributes = accessibilityTextAttributes(*axObject, defaultAttributes); if (childAttributes != attributes) break; diff -Nru webkit2gtk-2.46.0/Source/WebCore/bindings/js/JSAudioWorkletGlobalScopeCustom.cpp webkit2gtk-2.46.3/Source/WebCore/bindings/js/JSAudioWorkletGlobalScopeCustom.cpp --- webkit2gtk-2.46.0/Source/WebCore/bindings/js/JSAudioWorkletGlobalScopeCustom.cpp 2024-08-19 06:28:38.923286000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/bindings/js/JSAudioWorkletGlobalScopeCustom.cpp 2024-10-21 09:00:02.703246800 +0000 @@ -28,6 +28,7 @@ #include "AudioWorkletGlobalScope.h" #include "AudioWorkletProcessor.h" +#include "WebCoreOpaqueRootInlines.h" #if ENABLE(WEB_AUDIO) @@ -36,6 +37,8 @@ template void JSAudioWorkletGlobalScope::visitAdditionalChildren(Visitor& visitor) { + addWebCoreOpaqueRoot(visitor, static_cast(wrapped())); + wrapped().visitProcessors(visitor); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/bindings/js/JSDOMPromiseDeferred.h webkit2gtk-2.46.3/Source/WebCore/bindings/js/JSDOMPromiseDeferred.h --- webkit2gtk-2.46.0/Source/WebCore/bindings/js/JSDOMPromiseDeferred.h 2024-08-19 06:28:38.927286000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/bindings/js/JSDOMPromiseDeferred.h 2024-10-21 09:00:02.703246800 +0000 @@ -302,7 +302,7 @@ void resolve(typename IDLType::ParameterType value) { - m_promise->resolve(std::forward(value)); + m_promise->template resolve(std::forward(value)); } template diff -Nru webkit2gtk-2.46.0/Source/WebCore/bindings/js/JSNavigateEventCustom.cpp webkit2gtk-2.46.3/Source/WebCore/bindings/js/JSNavigateEventCustom.cpp --- webkit2gtk-2.46.0/Source/WebCore/bindings/js/JSNavigateEventCustom.cpp 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/bindings/js/JSNavigateEventCustom.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2024 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "JSNavigateEvent.h" + +namespace WebCore { + +template +void JSNavigateEvent::visitAdditionalChildren(Visitor& visitor) +{ + auto& event = wrapped(); + event.infoWrapper().visit(visitor); +} + +DEFINE_VISIT_ADDITIONAL_CHILDREN(JSNavigateEvent); + +} // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/bindings/js/SerializedScriptValue.cpp webkit2gtk-2.46.3/Source/WebCore/bindings/js/SerializedScriptValue.cpp --- webkit2gtk-2.46.0/Source/WebCore/bindings/js/SerializedScriptValue.cpp 2024-08-19 06:28:38.939285500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/bindings/js/SerializedScriptValue.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -1991,11 +1991,7 @@ if (arrayBuffer->isResizableOrGrowableShared()) { appendObjectPoolTag(ResizableArrayBufferTag); write(ResizableArrayBufferTag); - uint64_t byteLength = arrayBuffer->byteLength(); - write(byteLength); - uint64_t maxByteLength = arrayBuffer->maxByteLength().value_or(0); - write(maxByteLength); - write(arrayBuffer->span()); + writeResizableArrayBuffer(arrayBuffer->span(), arrayBuffer->maxByteLength().value_or(0)); return true; } @@ -2070,8 +2066,10 @@ rawKeySerializer.write(key); auto wrappedKey = wrapCryptoKey(m_lexicalGlobalObject, serializedKey); - if (!wrappedKey) - return false; + if (!wrappedKey) { + code = SerializationReturnCode::DataCloneError; + return true; + } write(*wrappedKey); return true; @@ -2677,6 +2675,13 @@ m_buffer.append(data); } + void writeResizableArrayBuffer(std::span data, size_t maxByteLength) + { + write(static_cast(data.size())); + write(static_cast(maxByteLength)); + write(data); + } + Vector& m_buffer; Vector& m_blobHandles; ObjectPoolMap m_objectPoolMap; @@ -4568,8 +4573,11 @@ return JSValue(); Vector fingerprints; - if (!fingerprints.tryReserveInitialCapacity(size)) + if (!fingerprints.tryReserveInitialCapacity(size)) { + SERIALIZE_TRACE("FAIL deserialize"); + fail(); return JSValue(); + } for (unsigned i = 0; i < size; i++) { CachedStringRef algorithm; if (!readStringData(algorithm)) diff -Nru webkit2gtk-2.46.0/Source/WebCore/css/CSSPseudoSelectors.json webkit2gtk-2.46.3/Source/WebCore/css/CSSPseudoSelectors.json --- webkit2gtk-2.46.0/Source/WebCore/css/CSSPseudoSelectors.json 2024-08-19 06:28:38.987284200 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/css/CSSPseudoSelectors.json 2024-10-21 09:00:02.703246800 +0000 @@ -47,7 +47,7 @@ }, "-internal-html-document": {}, "-internal-in-window-fullscreen": { - "conditional": "ENABLE(FULLSCREEN_API)" + "conditional": "ENABLE(FULLSCREEN_API) && ENABLE(VIDEO)" }, "-internal-media-document": {}, "-webkit-any": { diff -Nru webkit2gtk-2.46.0/Source/WebCore/css/FontFace.cpp webkit2gtk-2.46.3/Source/WebCore/css/FontFace.cpp --- webkit2gtk-2.46.0/Source/WebCore/css/FontFace.cpp 2024-08-19 06:28:38.995283800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/css/FontFace.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -62,7 +62,7 @@ auto result = adoptRef(*new FontFace(*context.cssFontSelector())); result->suspendIfNeeded(); -#if COMPILER(GCC) && CPU(ARM64) +#if COMPILER(GCC) && (CPU(ARM) || CPU(ARM64)) // FIXME: Workaround for GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115033 // that is related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115135 as well. volatile diff -Nru webkit2gtk-2.46.0/Source/WebCore/cssjit/SelectorCompiler.cpp webkit2gtk-2.46.3/Source/WebCore/cssjit/SelectorCompiler.cpp --- webkit2gtk-2.46.0/Source/WebCore/cssjit/SelectorCompiler.cpp 2024-08-19 06:28:39.027283000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/cssjit/SelectorCompiler.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -1343,6 +1343,9 @@ selectorFragments = &matchesList.last(); } + if (subselector.matchesPseudoElement()) + return FunctionType::CannotCompile; + VisitedMode ignoreVisitedMode = VisitedMode::None; FunctionType localFunctionType = constructFragments(&subselector, selectorContext, *selectorFragments, FragmentsLevel::InFunctionalPseudoType, positionInRootFragments, visitedMatchEnabled, ignoreVisitedMode, pseudoElementMatchingBehavior); ASSERT_WITH_MESSAGE(ignoreVisitedMode == VisitedMode::None, ":visited is disabled in the functional pseudo classes"); @@ -1354,10 +1357,6 @@ if (localFunctionType == FunctionType::CannotCompile) return FunctionType::CannotCompile; - // FIXME: Currently pseudo elements inside :is()/:matches() are supported in non-JIT code. - if (selectorFragments->first().pseudoElementSelector) - return FunctionType::CannotCompile; - functionType = mostRestrictiveFunctionType(functionType, localFunctionType); selectorFragments = nullptr; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/BoundaryPoint.h webkit2gtk-2.46.3/Source/WebCore/dom/BoundaryPoint.h --- webkit2gtk-2.46.0/Source/WebCore/dom/BoundaryPoint.h 2024-08-19 06:28:39.027283000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/BoundaryPoint.h 2024-10-30 11:47:03.973011300 +0000 @@ -79,4 +79,17 @@ return { node, node.length() }; } +struct WeakBoundaryPoint { + WeakPtr container; + unsigned offset { 0 }; + + WeakBoundaryPoint(WeakPtr&&, unsigned); +}; + +inline WeakBoundaryPoint::WeakBoundaryPoint(WeakPtr&& container, unsigned offset) + : container(WTFMove(container)) + , offset(offset) +{ +} + } diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/Document.cpp webkit2gtk-2.46.3/Source/WebCore/dom/Document.cpp --- webkit2gtk-2.46.0/Source/WebCore/dom/Document.cpp 2024-09-17 07:38:07.969444800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/Document.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -3223,11 +3223,11 @@ commonTeardown(); #if ENABLE(TOUCH_EVENTS) - if (m_touchEventTargets && m_touchEventTargets->computeSize() && parentDocument()) + if (m_touchEventTargets && m_touchEventTargets->size() && parentDocument()) protectedParentDocument()->didRemoveEventTargetNode(*this); #endif - if (m_wheelEventTargets && m_wheelEventTargets->computeSize() && parentDocument()) + if (m_wheelEventTargets && m_wheelEventTargets->size() && parentDocument()) protectedParentDocument()->didRemoveEventTargetNode(*this); if (RefPtr mediaQueryMatcher = m_mediaQueryMatcher) @@ -8405,7 +8405,7 @@ UNUSED_PARAM(node); #endif - bool haveHandlers = m_wheelEventTargets && !m_wheelEventTargets->isEmptyIgnoringNullReferences(); + bool haveHandlers = m_wheelEventTargets && !m_wheelEventTargets->isEmpty(); page->chrome().client().wheelEventHandlersChanged(haveHandlers); } @@ -8414,7 +8414,7 @@ if (!m_wheelEventTargets) m_wheelEventTargets = makeUnique(); - m_wheelEventTargets->add(node); + m_wheelEventTargets->add(&node); wheelEventHandlersChanged(&node); if (RefPtr frame = this->frame()) @@ -8425,9 +8425,9 @@ { switch (removal) { case EventHandlerRemoval::One: - return handlerSet.remove(node); + return handlerSet.remove(&node); case EventHandlerRemoval::All: - return handlerSet.removeAll(node); + return handlerSet.removeAll(&node); } return false; } @@ -8464,7 +8464,7 @@ if (!m_touchEventTargets) m_touchEventTargets = makeUnique(); - m_touchEventTargets->add(handler); + m_touchEventTargets->add(&handler); if (RefPtr parent = parentDocument()) { parent->didAddTouchEventHandler(*this); @@ -8495,15 +8495,15 @@ { #if ENABLE(TOUCH_EVENTS) if (m_touchEventTargets) { - m_touchEventTargets->removeAll(handler); - if ((&handler == this || m_touchEventTargets->isEmptyIgnoringNullReferences()) && parentDocument()) + m_touchEventTargets->removeAll(&handler); + if ((&handler == this || m_touchEventTargets->isEmpty()) && parentDocument()) protectedParentDocument()->didRemoveEventTargetNode(*this); } #endif if (m_wheelEventTargets) { - m_wheelEventTargets->removeAll(handler); - if ((&handler == this || m_wheelEventTargets->isEmptyIgnoringNullReferences()) && parentDocument()) + m_wheelEventTargets->removeAll(&handler); + if ((&handler == this || m_wheelEventTargets->isEmpty()) && parentDocument()) protectedParentDocument()->didRemoveEventTargetNode(*this); } } @@ -8588,7 +8588,7 @@ bool insideFixedPosition = false; for (auto keyValuePair : *targets) { - Ref node = keyValuePair.key; + Ref node = *keyValuePair.key; auto targetRegionFixedPair = absoluteEventRegionForNode(node); targetRegion.unite(targetRegionFixedPair.first); insideFixedPosition |= targetRegionFixedPair.second; @@ -8692,9 +8692,11 @@ if (!document) return nullptr; #if ENABLE(FULLSCREEN_API) +#if ENABLE(VIDEO) if (CheckedPtr fullscreenManager = document->fullscreenManagerIfExists(); fullscreenManager && fullscreenManager->isFullscreen() && is(fullscreenManager->currentFullscreenElement())) return fullscreenManager->currentFullscreenElement(); #endif +#endif Element* element = document->focusedElement(); if (!element) { if (auto* pluginDocument = dynamicDowncast(*document)) diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/Document.h webkit2gtk-2.46.3/Source/WebCore/dom/Document.h --- webkit2gtk-2.46.0/Source/WebCore/dom/Document.h 2024-08-19 06:28:39.039282600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/Document.h 2024-10-21 09:00:02.707246500 +0000 @@ -357,7 +357,9 @@ const auto numNodeListInvalidationTypes = enumToUnderlyingType(NodeListInvalidationType::InvalidateOnAnyAttrChange) + 1; enum class EventHandlerRemoval : bool { One, All }; -using EventTargetSet = WeakHashCountedSet; + +// Not using a WeakHashCountedSet for performance reasons (rdar://136905905). +using EventTargetSet = HashCountedSet>; enum class DocumentCompatibilityMode : uint8_t { NoQuirksMode = 1, @@ -1483,8 +1485,8 @@ WEBCORE_EXPORT unsigned styleRecalcCount() const; #if ENABLE(TOUCH_EVENTS) - bool hasTouchEventHandlers() const { return m_touchEventTargets && m_touchEventTargets->computeSize(); } - bool touchEventTargetsContain(Node& node) const { return m_touchEventTargets && m_touchEventTargets->contains(node); } + bool hasTouchEventHandlers() const { return m_touchEventTargets && m_touchEventTargets->size(); } + bool touchEventTargetsContain(Node& node) const { return m_touchEventTargets && m_touchEventTargets->contains(&node); } #else bool hasTouchEventHandlers() const { return false; } bool touchEventTargetsContain(Node&) const { return false; } @@ -1518,7 +1520,7 @@ #endif } - bool hasWheelEventHandlers() const { return m_wheelEventTargets && m_wheelEventTargets->computeSize(); } + bool hasWheelEventHandlers() const { return m_wheelEventTargets && m_wheelEventTargets->size(); } const EventTargetSet* wheelEventTargets() const { return m_wheelEventTargets.get(); } using RegionFixedPair = std::pair; diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/FullscreenManager.cpp webkit2gtk-2.46.3/Source/WebCore/dom/FullscreenManager.cpp --- webkit2gtk-2.46.0/Source/WebCore/dom/FullscreenManager.cpp 2024-08-19 06:28:39.051282200 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/FullscreenManager.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -459,6 +459,10 @@ bool FullscreenManager::willEnterFullscreen(Element& element, HTMLMediaElementEnums::VideoFullscreenMode mode) { +#if !ENABLE(VIDEO) + UNUSED_PARAM(mode); +#endif + if (backForwardCacheState() != Document::NotInBackForwardCache) { ERROR_LOG(LOGIDENTIFIER, "Document in the BackForwardCache; bailing"); return false; diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/SimpleRange.cpp webkit2gtk-2.46.3/Source/WebCore/dom/SimpleRange.cpp --- webkit2gtk-2.46.0/Source/WebCore/dom/SimpleRange.cpp 2024-08-19 06:28:39.067281700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/SimpleRange.cpp 2024-10-30 11:47:03.973011300 +0000 @@ -46,6 +46,18 @@ { } +WeakSimpleRange::WeakSimpleRange(const WeakBoundaryPoint& start, const WeakBoundaryPoint& end) + : start(start) + , end(end) +{ +} + +WeakSimpleRange::WeakSimpleRange(WeakBoundaryPoint&& start, WeakBoundaryPoint&& end) + : start(WTFMove(start)) + , end(WTFMove(end)) +{ +} + std::optional makeRangeSelectingNode(Node& node) { RefPtr parent = node.parentNode(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/SimpleRange.h webkit2gtk-2.46.3/Source/WebCore/dom/SimpleRange.h --- webkit2gtk-2.46.0/Source/WebCore/dom/SimpleRange.h 2024-08-19 06:28:39.067281700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/SimpleRange.h 2024-10-30 11:47:03.973011300 +0000 @@ -29,6 +29,15 @@ namespace WebCore { +struct WeakSimpleRange { + WeakBoundaryPoint start; + WeakBoundaryPoint end; + + WeakSimpleRange(const WeakBoundaryPoint&, const WeakBoundaryPoint&); + WeakSimpleRange(WeakBoundaryPoint&&, WeakBoundaryPoint&&); + WeakSimpleRange(const BoundaryPoint&&, const BoundaryPoint&&); +}; + struct SimpleRange { BoundaryPoint start; BoundaryPoint end; @@ -39,6 +48,7 @@ Node& endContainer() const { return end.container.get(); } Ref protectedEndContainer() const { return end.container.copyRef(); } unsigned endOffset() const { return end.offset; } + WeakSimpleRange makeWeakSimpleRange() const { return { WeakBoundaryPoint(start.container.get(), start.offset), WeakBoundaryPoint(end.container.get(), end.offset) }; } bool collapsed() const { return start == end; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/StyledElement.cpp webkit2gtk-2.46.3/Source/WebCore/dom/StyledElement.cpp --- webkit2gtk-2.46.0/Source/WebCore/dom/StyledElement.cpp 2024-08-19 06:28:39.067281700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/StyledElement.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -165,7 +165,7 @@ { elementData()->setStyleAttributeIsDirty(true); - if (styleResolver().ruleSets().hasSelectorsForStyleAttribute()) { + if (styleResolver().ruleSets().selectorsForStyleAttribute() != Style::SelectorsForStyleAttribute::None) { if (auto* inlineStyle = this->inlineStyle()) { elementData()->setStyleAttributeIsDirty(false); auto newValue = inlineStyle->asTextAtom(); @@ -184,10 +184,15 @@ elementData()->setStyleAttributeIsDirty(true); - Node::invalidateStyle(Style::Validity::InlineStyleInvalid); + // Inline style invalidation optimization does not work if there are selectors targeting the style attribute + // as some rule may start or stop matching. + auto selectorsForStyleAttribute = styleResolver().ruleSets().selectorsForStyleAttribute(); + auto validity = selectorsForStyleAttribute == Style::SelectorsForStyleAttribute::None ? Style::Validity::InlineStyleInvalid : Style::Validity::ElementInvalid; + + Node::invalidateStyle(validity); // In the rare case of selectors like "[style] ~ div" we need to synchronize immediately to invalidate. - if (styleResolver().ruleSets().hasComplexSelectorsForStyleAttribute()) { + if (selectorsForStyleAttribute == Style::SelectorsForStyleAttribute::NonSubjectPosition) { if (auto* inlineStyle = this->inlineStyle()) { elementData()->setStyleAttributeIsDirty(false); auto newValue = inlineStyle->asTextAtom(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/dom/ViewTransition.cpp webkit2gtk-2.46.3/Source/WebCore/dom/ViewTransition.cpp --- webkit2gtk-2.46.0/Source/WebCore/dom/ViewTransition.cpp 2024-08-19 06:28:39.075281400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/dom/ViewTransition.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -187,6 +187,9 @@ } m_updateCallbackDone.first->whenSettled([this, protectedThis = Ref { *this }] { + if (isContextStopped()) + return; + switch (m_updateCallbackDone.first->status()) { case DOMPromise::Status::Fulfilled: m_finished.second->resolve(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/editing/DeleteSelectionCommand.cpp webkit2gtk-2.46.3/Source/WebCore/editing/DeleteSelectionCommand.cpp --- webkit2gtk-2.46.0/Source/WebCore/editing/DeleteSelectionCommand.cpp 2024-08-19 06:28:39.083281300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/editing/DeleteSelectionCommand.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -694,23 +694,30 @@ if (firstPositionInOrBeforeNode(node.get()) >= m_downstreamEnd) { // NodeTraversal::nextSkippingChildren just blew past the end position, so stop deleting node = nullptr; - } else if (!m_downstreamEnd.deprecatedNode()->isDescendantOf(*node)) { - RefPtr nextNode = NodeTraversal::nextSkippingChildren(*node); - // if we just removed a node from the end container, update end position so the - // check above will work - updatePositionForNodeRemoval(m_downstreamEnd, *node); - removeNode(*node); - node = nextNode.get(); - } else { - RefPtr lastDescendant { node->lastDescendant() }; - if (m_downstreamEnd.deprecatedNode() == lastDescendant && m_downstreamEnd.deprecatedEditingOffset() >= caretMaxOffset(*lastDescendant)) { + continue; + } + + if (!m_downstreamEnd.deprecatedNode()->isDescendantOf(*node)) { + RefPtr parentNode = node->parentNode(); + if (!parentNode || canHaveChildrenForEditing(*parentNode)) { + RefPtr nextNode = NodeTraversal::nextSkippingChildren(*node); + // if we just removed a node from the end container, update end position so the + // check above will work + updatePositionForNodeRemoval(m_downstreamEnd, *node); removeNode(*node); - node = nullptr; - } else - node = NodeTraversal::next(*node); + node = nextNode.get(); + continue; + } } + + RefPtr lastDescendant { node->lastDescendant() }; + if (m_downstreamEnd.deprecatedNode() == lastDescendant && m_downstreamEnd.deprecatedEditingOffset() >= caretMaxOffset(*lastDescendant)) { + removeNode(*node); + node = nullptr; + } else + node = NodeTraversal::next(*node); } - + if (!m_downstreamEnd.isNull() && !m_downstreamEnd.isOrphan() && m_downstreamEnd.deprecatedNode() != startNode && !m_upstreamStart.deprecatedNode()->isDescendantOf(m_downstreamEnd.deprecatedNode()) && m_downstreamEnd.deprecatedEditingOffset() >= caretMinOffset(*m_downstreamEnd.deprecatedNode())) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/fileapi/FileReaderLoader.cpp webkit2gtk-2.46.3/Source/WebCore/fileapi/FileReaderLoader.cpp --- webkit2gtk-2.46.0/Source/WebCore/fileapi/FileReaderLoader.cpp 2024-08-19 06:28:39.103280500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/fileapi/FileReaderLoader.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -34,6 +34,7 @@ #include "Blob.h" #include "BlobURL.h" +#include "ContentSecurityPolicy.h" #include "ExceptionCode.h" #include "FileReaderLoaderClient.h" #include "HTTPHeaderNames.h" @@ -89,6 +90,11 @@ failed(ExceptionCode::SecurityError); return; } + + CheckedPtr contentSecurityPolicy = scriptExecutionContext->contentSecurityPolicy(); + if (!contentSecurityPolicy) + return; + ThreadableBlobRegistry::registerBlobURL(scriptExecutionContext->securityOrigin(), scriptExecutionContext->policyContainer(), m_urlForReading, blobURL); // Construct and load the request. diff -Nru webkit2gtk-2.46.0/Source/WebCore/html/HTMLMediaElement.cpp webkit2gtk-2.46.3/Source/WebCore/html/HTMLMediaElement.cpp --- webkit2gtk-2.46.0/Source/WebCore/html/HTMLMediaElement.cpp 2024-08-19 06:28:39.123280000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/html/HTMLMediaElement.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -729,7 +729,8 @@ } #if ENABLE(MEDIA_SOURCE) - detachMediaSource(); + if (RefPtr mediaSource = std::exchange(m_mediaSource, { })) + mediaSource->elementIsShuttingDown(); #endif #if ENABLE(LEGACY_ENCRYPTED_MEDIA) @@ -7747,8 +7748,10 @@ bool HTMLMediaElement::shouldForceControlsDisplay() const { +#if PLATFORM(APPLETV) if (isFullscreen() && videoUsesElementFullscreen()) return true; +#endif // Always create controls for autoplay video that requires user gesture due to being in low power mode. return isVideo() && autoplay() && mediaSession().hasBehaviorRestriction(MediaElementSession::RequireUserGestureForVideoDueToLowPowerMode); @@ -9709,6 +9712,11 @@ return { }; } +bool HTMLMediaElement::isActiveNowPlayingSession() const +{ + return m_mediaSession && m_mediaSession->isActiveNowPlayingSession(); +} + void HTMLMediaElement::isActiveNowPlayingSessionChanged() { if (RefPtr page = protectedDocument()->protectedPage()) diff -Nru webkit2gtk-2.46.0/Source/WebCore/html/HTMLMediaElement.h webkit2gtk-2.46.3/Source/WebCore/html/HTMLMediaElement.h --- webkit2gtk-2.46.0/Source/WebCore/html/HTMLMediaElement.h 2024-08-19 06:28:39.123280000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/html/HTMLMediaElement.h 2024-10-21 09:00:02.707246500 +0000 @@ -245,6 +245,7 @@ MediaSessionGroupIdentifier mediaSessionGroupIdentifier() const final; + WEBCORE_EXPORT bool isActiveNowPlayingSession() const; void isActiveNowPlayingSessionChanged() final; // DOM API diff -Nru webkit2gtk-2.46.0/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp webkit2gtk-2.46.3/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp --- webkit2gtk-2.46.0/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp 2024-08-19 06:28:39.139279600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp 2024-09-30 08:15:01.120258300 +0000 @@ -2804,12 +2804,14 @@ void CanvasRenderingContext2DBase::drawTextUnchecked(const TextRun& textRun, double x, double y, bool fill, std::optional maxWidth) { - auto& fontProxy = *this->fontProxy(); - const auto& fontMetrics = fontProxy.metricsOfPrimaryFont(); + auto measureTextRun = [&](const TextRun& textRun) -> std::tuple { + auto& fontProxy = *this->fontProxy(); - // FIXME: Need to turn off font smoothing. + // FIXME: Need to turn off font smoothing. + return { fontProxy.width(textRun), fontProxy.metricsOfPrimaryFont() }; + }; - float fontWidth = fontProxy.width(textRun); + auto [fontWidth, fontMetrics] = measureTextRun(textRun); bool useMaxWidth = maxWidth && maxWidth.value() < fontWidth; float width = useMaxWidth ? maxWidth.value() : fontWidth; FloatPoint location(x, y); @@ -2823,7 +2825,10 @@ auto targetSwitcher = CanvasFilterContextSwitcher::create(*this, textRect); + // FIXME: Need to refetch fontProxy. CanvasFilterContextSwitcher might have called save(). + // https://bugs.webkit.org/show_bug.cgi?id=193077. auto* c = effectiveDrawingContext(); + auto& fontProxy = *this->fontProxy(); #if USE(CG) const CanvasStyle& drawStyle = fill ? state().fillStyle : state().strokeStyle; diff -Nru webkit2gtk-2.46.0/Source/WebCore/inspector/InspectorStyleSheet.cpp webkit2gtk-2.46.3/Source/WebCore/inspector/InspectorStyleSheet.cpp --- webkit2gtk-2.46.0/Source/WebCore/inspector/InspectorStyleSheet.cpp 2024-08-19 06:28:39.167278500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/inspector/InspectorStyleSheet.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -1474,59 +1474,28 @@ return character != ' ' && character != '\t'; } -ExceptionOr InspectorStyleSheet::setRuleStyleText(const InspectorCSSId& id, const String& newText, String* oldText, IsUndo isUndo) +// A CSS rule's body can contain a mix of property declarations and nested child rules. +// This function formats a rule's body text by putting the `ruleStyleDeclarationText` +// at the start, followed by the nested child rules scraped from the full `styleSheetText`, +// and returns the patched rule body text. +// +// Canonicalizing is useful for generating the new style sheet text after some style edit; +// it'd be hard to compute the replacement text if property declarations were scattered. +static String computeCanonicalRuleText(const String& styleSheetText, const String& ruleStyleDeclarationText, const CSSRuleSourceData& logicalContainingRuleSourceData) { - auto* cssRule = ruleForId(id); - if (!cssRule) - return Exception { ExceptionCode::NotFoundError }; - - RefPtr sourceData = ruleSourceDataFor(cssRule); - if (!sourceData) - return Exception { ExceptionCode::NotFoundError }; - - RefPtr logicalContainingRuleSourceData = sourceData->isImplicitlyNested ? ruleSourceDataFor(cssRule->parentRule()) : sourceData; - if (!logicalContainingRuleSourceData) - return Exception { ExceptionCode::NotFoundError }; - - unsigned bodyStart = logicalContainingRuleSourceData->ruleBodyRange.start; - unsigned bodyEnd = logicalContainingRuleSourceData->ruleBodyRange.end; - ASSERT(bodyStart <= bodyEnd); - - String styleSheetText = m_parsedStyleSheet->text(); - RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(bodyEnd <= styleSheetText.length()); - - if (oldText) { - // In order to perform a faithful undo, text has to be restored to its non-canonicalized form. - *oldText = styleSheetText.substring(bodyStart, bodyEnd - bodyStart); - } - - auto setPatchedStyleSheetText = [&](String& patchedStyleSheetText) { - setText(patchedStyleSheetText); - reparseStyleSheet(patchedStyleSheetText); - }; - - if (isUndo == IsUndo::Yes) { - // Undo operations will be performed with complete style text, including nested rules. - auto patchedStyleSheetText = makeStringByReplacing(styleSheetText, bodyStart, bodyEnd - bodyStart , newText); - setPatchedStyleSheetText(patchedStyleSheetText); - return { }; - } - auto indentation = emptyString(); - auto startOfSecondLine = newText.find('\n'); + auto startOfSecondLine = ruleStyleDeclarationText.find('\n'); if (startOfSecondLine != notFound) { ++startOfSecondLine; - auto endOfSecondLineWhitespace = newText.find(isNotSpaceOrTab, startOfSecondLine); + auto endOfSecondLineWhitespace = ruleStyleDeclarationText.find(isNotSpaceOrTab, startOfSecondLine); if (endOfSecondLineWhitespace != notFound) - indentation = newText.substring(startOfSecondLine, endOfSecondLineWhitespace - startOfSecondLine); + indentation = ruleStyleDeclarationText.substring(startOfSecondLine, endOfSecondLineWhitespace - startOfSecondLine); } - // Because style declarations can contain a mix of property declarations and nested rules, we canonicalize the order - // so that all property declarations occurs before child rules. - StringBuilder replacementBodyText; - replacementBodyText.append(newText); + StringBuilder canonicalRuleText; + canonicalRuleText.append(ruleStyleDeclarationText); - for (auto& childRuleSourceData : logicalContainingRuleSourceData->childRules) { + for (auto& childRuleSourceData : logicalContainingRuleSourceData.childRules) { if (childRuleSourceData->isImplicitlyNested) continue; @@ -1535,22 +1504,66 @@ ASSERT(childStart <= childEnd); RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(childEnd <= styleSheetText.length()); - replacementBodyText.append('\n', indentation); + canonicalRuleText.append('\n', indentation); // Non-style rules don't include the `@rule` prelude in their header range. if (childRuleSourceData->type != StyleRuleType::Style) - replacementBodyText.append(atRuleIdentifierForType(childRuleSourceData->type)); + canonicalRuleText.append(atRuleIdentifierForType(childRuleSourceData->type)); - replacementBodyText.appendSubstring(styleSheetText, childStart, childEnd - childStart); - replacementBodyText.append("}\n"_s); + canonicalRuleText.appendSubstring(styleSheetText, childStart, childEnd - childStart); + canonicalRuleText.append("}\n"_s); } - auto closingIndentationLineStart = newText.reverseFind('\n'); + auto closingIndentationLineStart = ruleStyleDeclarationText.reverseFind('\n'); if (closingIndentationLineStart != notFound) - replacementBodyText.appendSubstring(newText, closingIndentationLineStart); + canonicalRuleText.appendSubstring(ruleStyleDeclarationText, closingIndentationLineStart); + + return canonicalRuleText.toString(); +} + +// This function updates the style declaration text of the rule given by `id`. +// The original style declaration text and rule text will be stored in the `out` arguments, if given. +// If `newRuleText` is null, the canonicalized rule text will be computed and used to patch the +// full style sheet text. +ExceptionOr InspectorStyleSheet::setRuleStyleText(const InspectorCSSId& id, const String& newStyleDeclarationText, String* outOldStyleDeclarationText, const String* newRuleText, String* outOldRuleText) +{ + auto* cssStyleDeclaration = styleForId(id); + if (!cssStyleDeclaration) + return Exception { ExceptionCode::NotFoundError }; - auto patchedStyleSheetText = makeStringByReplacing(styleSheetText, bodyStart, bodyEnd - bodyStart , replacementBodyText); - setPatchedStyleSheetText(patchedStyleSheetText); + auto* cssRule = ruleForId(id); + if (!cssRule) + return Exception { ExceptionCode::NotFoundError }; + + RefPtr sourceData = ruleSourceDataFor(cssRule); + if (!sourceData) + return Exception { ExceptionCode::NotFoundError }; + + RefPtr logicalContainingRuleSourceData = sourceData->isImplicitlyNested ? ruleSourceDataFor(cssRule->parentRule()) : sourceData; + if (!logicalContainingRuleSourceData) + return Exception { ExceptionCode::NotFoundError }; + + unsigned bodyStart = logicalContainingRuleSourceData->ruleBodyRange.start; + unsigned bodyEnd = logicalContainingRuleSourceData->ruleBodyRange.end; + ASSERT(bodyStart <= bodyEnd); + + const String& styleSheetText = m_parsedStyleSheet->text(); + RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(bodyEnd <= styleSheetText.length()); + + if (outOldStyleDeclarationText) + *outOldStyleDeclarationText = cssStyleDeclaration->cssText(); + + if (outOldRuleText) + *outOldRuleText = styleSheetText.substring(bodyStart, bodyEnd - bodyStart); + + cssStyleDeclaration->setCssText(newStyleDeclarationText); + + // Don't canonicalize the rule text if a `newRuleText` is provided, to allow for faithful undoing. + String replacementBodyText = newRuleText ? *newRuleText : computeCanonicalRuleText(styleSheetText, newStyleDeclarationText, *logicalContainingRuleSourceData); + + m_parsedStyleSheet->setText(makeStringByReplacing(styleSheetText, bodyStart, bodyEnd - bodyStart, replacementBodyText)); + m_pageStyleSheet->clearHadRulesMutation(); + fireStyleSheetChanged(); return { }; } @@ -1703,26 +1716,6 @@ collectFlatRules(asCSSRuleList(pageStyleSheet()), &m_flatRules); } -bool InspectorStyleSheet::styleSheetTextWithChangedStyle(CSSStyleDeclaration* style, const String& newStyleText, String* result) -{ - if (!style) - return false; - - if (!ensureParsedDataReady()) - return false; - - RefPtr sourceData = ruleSourceDataFor(style); - unsigned bodyStart = sourceData->ruleBodyRange.start; - unsigned bodyEnd = sourceData->ruleBodyRange.end; - ASSERT(bodyStart <= bodyEnd); - - String text = m_parsedStyleSheet->text(); - ASSERT_WITH_SECURITY_IMPLICATION(bodyEnd <= text.length()); // bodyEnd is exclusive - - *result = makeStringByReplacing(text, bodyStart, bodyEnd - bodyStart, newStyleText); - return true; -} - bool InspectorStyleSheet::originalStyleSheetText(String* result) const { if (!m_pageStyleSheet || m_origin == Inspector::Protocol::CSS::StyleSheetOrigin::UserAgent) @@ -1846,17 +1839,21 @@ return String { m_styleText }; } -ExceptionOr InspectorStyleSheetForInlineStyle::setRuleStyleText(const InspectorCSSId&, const String& text, String* oldText, IsUndo) +ExceptionOr InspectorStyleSheetForInlineStyle::setRuleStyleText(const InspectorCSSId& id, const String& newStyleDeclarationText, String* outOldStyleDeclarationText, const String* newRuleText, String* outOldRuleText) { - if (oldText) - *oldText = m_styleText; + UNUSED_PARAM(id); + UNUSED_PARAM(newRuleText); + UNUSED_PARAM(outOldRuleText); + + if (outOldStyleDeclarationText) + *outOldStyleDeclarationText = m_styleText; { InspectorCSSAgent::InlineStyleOverrideScope overrideScope(m_element->document()); - m_element->setAttribute(HTMLNames::styleAttr, AtomString { text }); + m_element->setAttribute(HTMLNames::styleAttr, AtomString { newStyleDeclarationText }); } - m_styleText = text; + m_styleText = newStyleDeclarationText; m_isStyleTextValid = true; m_ruleSourceData = nullptr; diff -Nru webkit2gtk-2.46.0/Source/WebCore/inspector/InspectorStyleSheet.h webkit2gtk-2.46.3/Source/WebCore/inspector/InspectorStyleSheet.h --- webkit2gtk-2.46.0/Source/WebCore/inspector/InspectorStyleSheet.h 2024-08-19 06:28:39.167278500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/inspector/InspectorStyleSheet.h 2024-09-30 08:15:01.120258300 +0000 @@ -179,8 +179,7 @@ Ref buildObjectForStyle(CSSStyleDeclaration*); RefPtr buildObjectForGrouping(CSSRule*); - enum class IsUndo : bool { No, Yes }; - virtual ExceptionOr setRuleStyleText(const InspectorCSSId&, const String& newText, String* oldText, IsUndo = IsUndo::No); + virtual ExceptionOr setRuleStyleText(const InspectorCSSId&, const String& newStyleDeclarationText, String* outOldStyleDeclarationText, const String* newRuleText, String* outOldRuleText); virtual ExceptionOr text() const; virtual CSSStyleDeclaration* styleForId(const InspectorCSSId&) const; @@ -211,7 +210,6 @@ bool ensureText() const; bool ensureSourceData(); void ensureFlatRules() const; - bool styleSheetTextWithChangedStyle(CSSStyleDeclaration*, const String& newStyleText, String* result); bool originalStyleSheetText(String* result) const; bool resourceStyleSheetText(String* result) const; bool inlineStyleSheetText(String* result) const; @@ -241,7 +239,7 @@ void didModifyElementAttribute(); ExceptionOr text() const final; CSSStyleDeclaration* styleForId(const InspectorCSSId& id) const final { ASSERT_UNUSED(id, !id.ordinal()); return &inlineStyle(); } - ExceptionOr setRuleStyleText(const InspectorCSSId&, const String& newText, String* oldText, InspectorStyleSheet::IsUndo = InspectorStyleSheet::IsUndo::No) final; + ExceptionOr setRuleStyleText(const InspectorCSSId&, const String& newStyleDeclarationText, String* outOldStyleDeclarationText, const String* newRuleText, String* outOldRuleText); private: InspectorStyleSheetForInlineStyle(InspectorPageAgent*, const String& id, Ref&&, Inspector::Protocol::CSS::StyleSheetOrigin, Listener*); diff -Nru webkit2gtk-2.46.0/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp webkit2gtk-2.46.3/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp --- webkit2gtk-2.46.0/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp 2024-08-19 06:28:39.171278500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -154,7 +154,7 @@ SetStyleTextAction(InspectorStyleSheet* styleSheet, const InspectorCSSId& cssId, const String& text) : InspectorCSSAgent::StyleSheetAction(styleSheet) , m_cssId(cssId) - , m_text(text) + , m_newStyleDeclarationText(text) { } @@ -165,12 +165,22 @@ ExceptionOr undo() override { - return m_styleSheet->setRuleStyleText(m_cssId, m_oldText, nullptr, InspectorStyleSheet::IsUndo::Yes); + return m_styleSheet->setRuleStyleText( + m_cssId, + m_oldStyleDeclarationText, + nullptr, /* outOldStyleDeclarationText */ + &m_oldRuleText, + nullptr /* outOldRuleText */); } ExceptionOr redo() override { - return m_styleSheet->setRuleStyleText(m_cssId, m_text, &m_oldText); + return m_styleSheet->setRuleStyleText( + m_cssId, + m_newStyleDeclarationText, + &m_oldStyleDeclarationText, + nullptr, /* newRuleText */ + &m_oldRuleText); } String mergeId() override @@ -184,13 +194,14 @@ ASSERT(action->mergeId() == mergeId()); SetStyleTextAction* other = static_cast(action.get()); - m_text = other->m_text; + m_newStyleDeclarationText = other->m_newStyleDeclarationText; } private: InspectorCSSId m_cssId; - String m_text; - String m_oldText; + String m_newStyleDeclarationText; + String m_oldStyleDeclarationText; + String m_oldRuleText; }; class InspectorCSSAgent::SetRuleHeaderTextAction final : public InspectorCSSAgent::StyleSheetAction { diff -Nru webkit2gtk-2.46.0/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp webkit2gtk-2.46.3/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp --- webkit2gtk-2.46.0/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp 2024-08-19 06:28:39.171278500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -36,7 +36,9 @@ #include "EventTarget.h" #include "InspectorDOMAgent.h" #include "InstrumentingAgents.h" +#include "JSDOMGlobalObject.h" #include "JSEvent.h" +#include "JSEventListener.h" #include "RegisteredEventListener.h" #include "ResourceRequest.h" #include "ScriptDisallowedScope.h" @@ -247,12 +249,22 @@ return makeUnexpected("Not supported"_s); } +static JSC::JSGlobalObject* globalObjectFor(ScriptExecutionContext& scriptExecutionContext, EventListener& eventListener) +{ + if (auto* jsEventListener = dynamicDowncast(eventListener)) { + if (auto* isolatedWorld = jsEventListener->isolatedWorld()) + return toJSDOMGlobalObject(scriptExecutionContext, *isolatedWorld); + } + + return scriptExecutionContext.globalObject(); +} + void InspectorDOMDebuggerAgent::willHandleEvent(ScriptExecutionContext& scriptExecutionContext, Event& event, const RegisteredEventListener& registeredEventListener) { // `event.target()->scriptExecutionContext()` can change between `willHandleEvent` and `didHandleEvent`. The passed // `scriptExecutionContext` parameter will always match in companion calls to `willHandleEvent` and // `didHandleEvent`, and will not be null. - auto state = scriptExecutionContext.globalObject(); + auto state = globalObjectFor(scriptExecutionContext, registeredEventListener.callback()); auto injectedScript = m_injectedScriptManager.injectedScriptFor(state); if (injectedScript.hasNoValue()) return; @@ -300,7 +312,7 @@ // `event.target()->scriptExecutionContext()` can change between `willHandleEvent` and `didHandleEvent`. Here it // could also be nullptr. The passed `scriptExecutionContext` parameter here will always match in companion calls to // `willHandleEvent` and `didHandleEvent`, and will not be null. - auto state = scriptExecutionContext.globalObject(); + auto state = globalObjectFor(scriptExecutionContext, registeredEventListener.callback()); auto injectedScript = m_injectedScriptManager.injectedScriptFor(state); if (injectedScript.hasNoValue()) return; diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginAccessControl.cpp webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginAccessControl.cpp --- webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginAccessControl.cpp 2024-08-19 06:28:39.195277700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginAccessControl.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -293,7 +293,7 @@ return { }; } -Expected validatePreflightResponse(PAL::SessionID sessionID, const ResourceRequest& request, const ResourceResponse& response, StoredCredentialsPolicy storedCredentialsPolicy, const SecurityOrigin& securityOrigin, const CrossOriginAccessControlCheckDisabler* checkDisabler) +Expected validatePreflightResponse(PAL::SessionID sessionID, const ResourceRequest& request, const ResourceResponse& response, StoredCredentialsPolicy storedCredentialsPolicy, const SecurityOrigin& topOrigin, const SecurityOrigin& securityOrigin, const CrossOriginAccessControlCheckDisabler* checkDisabler) { if (!response.isSuccessful()) return makeUnexpected(makeString("Preflight response is not successful. Status code: "_s, response.httpStatusCode())); @@ -308,7 +308,7 @@ auto entry = WTFMove(result.value()); auto errorDescription = entry->validateMethodAndHeaders(request.httpMethod(), request.httpHeaderFields()); - CrossOriginPreflightResultCache::singleton().appendEntry(sessionID, securityOrigin.toString(), request.url(), entry.moveToUniquePtr()); + CrossOriginPreflightResultCache::singleton().appendEntry(sessionID, { topOrigin.data(), securityOrigin.data(), }, request.url(), entry.moveToUniquePtr()); if (errorDescription) return makeUnexpected(WTFMove(*errorDescription)); diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginAccessControl.h webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginAccessControl.h --- webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginAccessControl.h 2024-08-19 06:28:39.195277700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginAccessControl.h 2024-10-30 09:22:36.526296900 +0000 @@ -88,7 +88,7 @@ }; WEBCORE_EXPORT Expected passesAccessControlCheck(const ResourceResponse&, StoredCredentialsPolicy, const SecurityOrigin&, const CrossOriginAccessControlCheckDisabler*); -WEBCORE_EXPORT Expected validatePreflightResponse(PAL::SessionID, const ResourceRequest&, const ResourceResponse&, StoredCredentialsPolicy, const SecurityOrigin&, const CrossOriginAccessControlCheckDisabler*); +WEBCORE_EXPORT Expected validatePreflightResponse(PAL::SessionID, const ResourceRequest&, const ResourceResponse&, StoredCredentialsPolicy, const SecurityOrigin& topOrigin, const SecurityOrigin& securityOrigin, const CrossOriginAccessControlCheckDisabler*); enum class ForNavigation : bool { No, Yes }; WEBCORE_EXPORT std::optional validateCrossOriginResourcePolicy(CrossOriginEmbedderPolicyValue, const SecurityOrigin&, const URL&, const ResourceResponse&, ForNavigation, const OriginAccessPatterns&); diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginPreflightChecker.cpp webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginPreflightChecker.cpp --- webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginPreflightChecker.cpp 2024-08-19 06:28:39.195277700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginPreflightChecker.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -76,7 +76,7 @@ return; } - auto result = WebCore::validatePreflightResponse(page->sessionID(), request, response, loader.options().storedCredentialsPolicy, loader.securityOrigin(), &CrossOriginAccessControlCheckDisabler::singleton()); + auto result = WebCore::validatePreflightResponse(page->sessionID(), request, response, loader.options().storedCredentialsPolicy, loader.topOrigin(), loader.securityOrigin(), &CrossOriginAccessControlCheckDisabler::singleton()); if (!result) { loader.document().addConsoleMessage(MessageSource::Security, MessageLevel::Error, result.error()); loader.preflightFailure(identifier, ResourceError(errorDomainWebKitInternal, 0, request.url(), result.error(), ResourceError::Type::AccessControl)); diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp --- webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp 2024-08-19 06:28:39.195277700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginPreflightResultCache.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -122,13 +122,13 @@ return cache; } -void CrossOriginPreflightResultCache::appendEntry(PAL::SessionID sessionID, const String& origin, const URL& url, std::unique_ptr preflightResult) +void CrossOriginPreflightResultCache::appendEntry(PAL::SessionID sessionID, const ClientOrigin& origin, const URL& url, std::unique_ptr preflightResult) { ASSERT(isMainThread()); m_preflightHashMap.set(std::make_tuple(sessionID, origin, url), WTFMove(preflightResult)); } -bool CrossOriginPreflightResultCache::canSkipPreflight(PAL::SessionID sessionID, const String& origin, const URL& url, StoredCredentialsPolicy storedCredentialsPolicy, const String& method, const HTTPHeaderMap& requestHeaders) +bool CrossOriginPreflightResultCache::canSkipPreflight(PAL::SessionID sessionID, const ClientOrigin& origin, const URL& url, StoredCredentialsPolicy storedCredentialsPolicy, const String& method, const HTTPHeaderMap& requestHeaders) { ASSERT(isMainThread()); auto it = m_preflightHashMap.find(std::make_tuple(sessionID, origin, url)); diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginPreflightResultCache.h webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginPreflightResultCache.h --- webkit2gtk-2.46.0/Source/WebCore/loader/CrossOriginPreflightResultCache.h 2024-08-19 06:28:39.195277700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/CrossOriginPreflightResultCache.h 2024-10-30 09:22:36.526296900 +0000 @@ -26,6 +26,7 @@ #pragma once +#include "ClientOrigin.h" #include "LoaderMalloc.h" #include "StoredCredentialsPolicy.h" #include @@ -68,15 +69,15 @@ WTF_MAKE_NONCOPYABLE(CrossOriginPreflightResultCache); WTF_MAKE_FAST_ALLOCATED_WITH_HEAP_IDENTIFIER(Loader); public: WEBCORE_EXPORT static CrossOriginPreflightResultCache& singleton(); - WEBCORE_EXPORT void appendEntry(PAL::SessionID, const String& origin, const URL&, std::unique_ptr); - WEBCORE_EXPORT bool canSkipPreflight(PAL::SessionID, const String& origin, const URL&, StoredCredentialsPolicy, const String& method, const HTTPHeaderMap& requestHeaders); + WEBCORE_EXPORT void appendEntry(PAL::SessionID, const ClientOrigin&, const URL&, std::unique_ptr); + WEBCORE_EXPORT bool canSkipPreflight(PAL::SessionID, const ClientOrigin&, const URL&, StoredCredentialsPolicy, const String& method, const HTTPHeaderMap& requestHeaders); WEBCORE_EXPORT void clear(); private: friend NeverDestroyed; CrossOriginPreflightResultCache(); - HashMap, std::unique_ptr> m_preflightHashMap; + HashMap, std::unique_ptr> m_preflightHashMap; }; inline CrossOriginPreflightResultCacheItem::CrossOriginPreflightResultCacheItem(MonotonicTime absoluteExpiryTime, StoredCredentialsPolicy storedCredentialsPolicy, HashSet&& methods, HashSet&& headers) diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/DocumentThreadableLoader.cpp webkit2gtk-2.46.3/Source/WebCore/loader/DocumentThreadableLoader.cpp --- webkit2gtk-2.46.0/Source/WebCore/loader/DocumentThreadableLoader.cpp 2024-08-19 06:28:39.199277600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/DocumentThreadableLoader.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -224,7 +224,7 @@ return; m_simpleRequest = false; - if (RefPtr page = document().page(); page && CrossOriginPreflightResultCache::singleton().canSkipPreflight(page->sessionID(), securityOrigin().toString(), request.url(), m_options.storedCredentialsPolicy, request.httpMethod(), request.httpHeaderFields())) + if (RefPtr page = document().page(); page && CrossOriginPreflightResultCache::singleton().canSkipPreflight(page->sessionID(), document().clientOrigin(), request.url(), m_options.storedCredentialsPolicy, request.httpMethod(), request.httpHeaderFields())) preflightSuccess(WTFMove(request)); else makeCrossOriginAccessRequestWithPreflight(WTFMove(request)); @@ -729,6 +729,11 @@ return m_origin ? *m_origin : m_document->securityOrigin(); } +Ref DocumentThreadableLoader::topOrigin() const +{ + return m_document->topOrigin(); +} + Ref DocumentThreadableLoader::protectedSecurityOrigin() const { return securityOrigin(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/DocumentThreadableLoader.h webkit2gtk-2.46.3/Source/WebCore/loader/DocumentThreadableLoader.h --- webkit2gtk-2.46.0/Source/WebCore/loader/DocumentThreadableLoader.h 2024-08-19 06:28:39.199277600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/DocumentThreadableLoader.h 2024-10-30 09:22:36.526296900 +0000 @@ -109,6 +109,7 @@ bool isAllowedByContentSecurityPolicy(const URL&, ContentSecurityPolicy::RedirectResponseReceived, const URL& preRedirectURL = URL()); bool isResponseAllowedByContentSecurityPolicy(const ResourceResponse&); + Ref topOrigin() const; SecurityOrigin& securityOrigin() const; Ref protectedSecurityOrigin() const; const ContentSecurityPolicy& contentSecurityPolicy() const; diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/EmptyClients.cpp webkit2gtk-2.46.3/Source/WebCore/loader/EmptyClients.cpp --- webkit2gtk-2.46.0/Source/WebCore/loader/EmptyClients.cpp 2024-09-17 07:38:07.969444800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/EmptyClients.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -58,6 +58,7 @@ #include "HTMLFormElement.h" #include "HistoryItem.h" #include "IDBConnectionToServer.h" +#include "IDBObjectStoreIdentifier.h" #include "InspectorClient.h" #include "LocalFrame.h" #include "LocalFrameLoaderClient.h" @@ -194,11 +195,11 @@ void didFinishHandlingVersionChangeTransaction(IDBDatabaseConnectionIdentifier, const IDBResourceIdentifier&) final { } void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&) final { } void deleteObjectStore(const IDBRequestData&, const String&) final { } - void renameObjectStore(const IDBRequestData&, uint64_t, const String&) final { } - void clearObjectStore(const IDBRequestData&, uint64_t) final { } + void renameObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier, const String&) final { } + void clearObjectStore(const IDBRequestData&, IDBObjectStoreIdentifier) final { } void createIndex(const IDBRequestData&, const IDBIndexInfo&) final { } - void deleteIndex(const IDBRequestData&, uint64_t, const String&) final { } - void renameIndex(const IDBRequestData&, uint64_t, uint64_t, const String&) final { } + void deleteIndex(const IDBRequestData&, IDBObjectStoreIdentifier, const String&) final { } + void renameIndex(const IDBRequestData&, IDBObjectStoreIdentifier, uint64_t, const String&) final { } void putOrAdd(const IDBRequestData&, const IDBKeyData&, const IDBValue&, const IndexedDB::ObjectStoreOverwriteMode) final { } void getRecord(const IDBRequestData&, const IDBGetRecordData&) final { } void getAllRecords(const IDBRequestData&, const IDBGetAllRecordsData&) final { } diff -Nru webkit2gtk-2.46.0/Source/WebCore/loader/PingLoader.cpp webkit2gtk-2.46.3/Source/WebCore/loader/PingLoader.cpp --- webkit2gtk-2.46.0/Source/WebCore/loader/PingLoader.cpp 2024-08-19 06:28:39.207277500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/loader/PingLoader.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -134,6 +134,8 @@ #endif Ref document = *frame.document(); + if (!document->checkedContentSecurityPolicy()->allowConnectToSource(pingURL)) + return; document->checkedContentSecurityPolicy()->upgradeInsecureRequestIfNeeded(request, ContentSecurityPolicy::InsecureRequestType::Load); request.setHTTPMethod("POST"_s); diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/DiagnosticLoggingKeys.cpp webkit2gtk-2.46.3/Source/WebCore/page/DiagnosticLoggingKeys.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/DiagnosticLoggingKeys.cpp 2024-08-19 06:28:39.227276800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/DiagnosticLoggingKeys.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -791,30 +791,5 @@ return "audioCodec"_s; } -String DiagnosticLoggingKeys::mediaElementSourceTypeDiagnosticLoggingKey(HTMLMediaElementSourceType sourceType) -{ - switch (sourceType) { - case HTMLMediaElementSourceType::File: - return "file"_s; - case HTMLMediaElementSourceType::HLS: - return "hls"_s; - case HTMLMediaElementSourceType::MediaSource: - return "mediaSource"_s; - case HTMLMediaElementSourceType::ManagedMediaSource: - return "managedMediaSource"_s; - case HTMLMediaElementSourceType::MediaStream: - return "mediaStream"_s; - case HTMLMediaElementSourceType::LiveStream: - return "liveStream"_s; - case HTMLMediaElementSourceType::StoredStream: - return "storedStream"_s; - } - - ASSERT_NOT_REACHED(); - return nullString(); -} - - - } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/DiagnosticLoggingKeys.h webkit2gtk-2.46.3/Source/WebCore/page/DiagnosticLoggingKeys.h --- webkit2gtk-2.46.0/Source/WebCore/page/DiagnosticLoggingKeys.h 2024-08-19 06:28:39.227276800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/DiagnosticLoggingKeys.h 2024-10-21 09:00:02.707246500 +0000 @@ -181,8 +181,6 @@ WEBCORE_EXPORT static String memoryUsageToDiagnosticLoggingKey(uint64_t memoryUsage); WEBCORE_EXPORT static String foregroundCPUUsageToDiagnosticLoggingKey(double cpuUsage); WEBCORE_EXPORT static String backgroundCPUUsageToDiagnosticLoggingKey(double cpuUsage); - - static String mediaElementSourceTypeDiagnosticLoggingKey(HTMLMediaElementSourceType); }; } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/ElementTargetingController.cpp webkit2gtk-2.46.3/Source/WebCore/page/ElementTargetingController.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/ElementTargetingController.cpp 2024-08-19 06:28:39.227276800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/ElementTargetingController.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -616,6 +616,7 @@ static bool hasAudibleMedia(const Element& element) { +#if ENABLE(VIDEO) if (RefPtr media = dynamicDowncast(element)) return media->isAudible(); @@ -628,6 +629,9 @@ if (hasAudibleMedia(documentElement)) return true; } +#else + UNUSED_PARAM(element); +#endif return false; } @@ -640,8 +644,10 @@ if (RefPtr image = dynamicDowncast(element)) return image->currentURL(); +#if ENABLE(VIDEO) if (RefPtr media = dynamicDowncast(element)) return media->currentSrc(); +#endif if (CheckedPtr renderer = element.renderer()) { if (auto& style = renderer->style(); style.hasBackgroundImage()) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/EventHandler.cpp webkit2gtk-2.46.3/Source/WebCore/page/EventHandler.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/EventHandler.cpp 2024-08-19 06:28:39.231276800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/EventHandler.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -546,7 +546,7 @@ if (selection.isRange()) { m_selectionInitiationState = ExtendedSelection; #if ENABLE(DRAG_SUPPORT) - m_dragStartSelection = selection.range(); + m_dragStartSelection = getWeakSimpleRangeFromSelection(selection); #endif } else { granularity = TextGranularity::CharacterGranularity; @@ -655,7 +655,7 @@ // from setting caret selection. m_selectionInitiationState = ExtendedSelection; #if ENABLE(DRAG_SUPPORT) - m_dragStartSelection = m_frame->selection().selection().range(); + m_dragStartSelection = getWeakSimpleRangeFromSelection(m_frame->selection().selection()); #endif } else if (mouseDownMayStartSelect()) selectClosestWordFromHitTestResult(event.hitTestResult(), shouldAppendTrailingWhitespace(event, protectedFrame())); @@ -1092,8 +1092,8 @@ newSelection.expandUsingGranularity(m_frame->selection().granularity()); if (!newSelection.isBaseFirst() && !oldSelection.isBaseFirst() && oldSelection.end() < newSelection.end()) newSelection.setBase(oldSelection.end()); - else if (newSelection.isBaseFirst() && !oldSelection.isBaseFirst() && oldSelection.start() < newSelection.start() && m_dragStartSelection) { - VisibleSelection dragStartSelection { *m_dragStartSelection }; + else if (newSelection.isBaseFirst() && !oldSelection.isBaseFirst() && oldSelection.start() < newSelection.start() && m_dragStartSelection && m_dragStartSelection->start.container && m_dragStartSelection->end.container) { + VisibleSelection dragStartSelection { createSimpleRangeFromDragStartSelection() }; dragStartSelection.expandUsingGranularity(m_frame->selection().granularity()); if (!dragStartSelection.isNoneOrOrphaned()) newSelection.setBase(dragStartSelection.start()); @@ -1101,7 +1101,7 @@ } if (shouldSetDragStartSelection) - m_dragStartSelection = newSelection.range(); + m_dragStartSelection = getWeakSimpleRangeFromSelection(newSelection); m_frame->selection().setSelectionByMouseIfDifferent(newSelection, m_frame->selection().granularity(), FrameSelection::EndPointsAdjustmentMode::AdjustAtBidiBoundary); @@ -1109,6 +1109,19 @@ if (oldSelection != newSelection && ImageOverlay::isOverlayText(newSelection.start().protectedContainerNode().get()) && ImageOverlay::isOverlayText(newSelection.end().protectedContainerNode().get())) invalidateClick(); } + +SimpleRange EventHandler::createSimpleRangeFromDragStartSelection() const +{ + const WeakSimpleRange& range = m_dragStartSelection.value(); + return { BoundaryPoint(*(range.start.container), range.start.offset), BoundaryPoint(*(range.end.container), range.end.offset) }; +} + +std::optional EventHandler::getWeakSimpleRangeFromSelection(const VisibleSelection& selection) const +{ + if (auto range = selection.range()) + return range->makeWeakSimpleRange(); + return std::nullopt; +} #endif // ENABLE(DRAG_SUPPORT) void EventHandler::lostMouseCapture() diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/EventHandler.h webkit2gtk-2.46.3/Source/WebCore/page/EventHandler.h --- webkit2gtk-2.46.0/Source/WebCore/page/EventHandler.h 2024-08-19 06:28:39.231276800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/EventHandler.h 2024-10-30 11:47:03.977011200 +0000 @@ -383,6 +383,8 @@ #if ENABLE(DRAG_SUPPORT) static DragState& dragState(); static const Seconds TextDragDelay; + SimpleRange createSimpleRangeFromDragStartSelection() const; + std::optional getWeakSimpleRangeFromSelection(const VisibleSelection&) const; #endif bool eventActivatedView(const PlatformMouseEvent&) const; @@ -671,7 +673,7 @@ #if ENABLE(DRAG_SUPPORT) LayoutPoint m_dragStartPosition; - std::optional m_dragStartSelection; + std::optional m_dragStartSelection; RefPtr m_dragTarget; bool m_mouseDownMayStartDrag { false }; bool m_dragMayStartSelectionInstead { false }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/NavigateEvent.h webkit2gtk-2.46.3/Source/WebCore/page/NavigateEvent.h --- webkit2gtk-2.46.0/Source/WebCore/page/NavigateEvent.h 2024-08-19 06:28:39.235276500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/NavigateEvent.h 2024-09-30 08:15:01.124258300 +0000 @@ -30,6 +30,7 @@ #include "DOMFormData.h" #include "Event.h" #include "EventInit.h" +#include "JSValueInWrappedObject.h" #include "LocalDOMWindowProperty.h" #include "NavigationDestination.h" #include "NavigationInterceptHandler.h" @@ -79,27 +80,28 @@ static Ref create(const AtomString& type, const Init&); static Ref create(const AtomString& type, const Init&, AbortController*); - NavigationNavigationType navigationType() const { return m_navigationType; }; - bool canIntercept() const { return m_canIntercept; }; - bool userInitiated() const { return m_userInitiated; }; - bool hashChange() const { return m_hashChange; }; - bool hasUAVisualTransition() const { return m_hasUAVisualTransition; }; - NavigationDestination* destination() { return m_destination.get(); }; - AbortSignal* signal() { return m_signal.get(); }; - DOMFormData* formData() { return m_formData.get(); }; - String downloadRequest() { return m_downloadRequest; }; - JSC::JSValue info() { return m_info; }; + NavigationNavigationType navigationType() const { return m_navigationType; } + bool canIntercept() const { return m_canIntercept; } + bool userInitiated() const { return m_userInitiated; } + bool hashChange() const { return m_hashChange; } + bool hasUAVisualTransition() const { return m_hasUAVisualTransition; } + NavigationDestination* destination() { return m_destination.get(); } + AbortSignal* signal() { return m_signal.get(); } + DOMFormData* formData() { return m_formData.get(); } + String downloadRequest() { return m_downloadRequest; } + JSC::JSValue info() { return m_info.getValue(); } + JSValueInWrappedObject& infoWrapper() { return m_info; } ExceptionOr intercept(Document&, NavigationInterceptOptions&&); ExceptionOr scroll(Document&); - bool wasIntercepted() const { return m_interceptionState.has_value(); }; - void setCanIntercept(bool canIntercept) { m_canIntercept = canIntercept; }; - void setInterceptionState(InterceptionState interceptionState) { m_interceptionState = interceptionState; }; + bool wasIntercepted() const { return m_interceptionState.has_value(); } + void setCanIntercept(bool canIntercept) { m_canIntercept = canIntercept; } + void setInterceptionState(InterceptionState interceptionState) { m_interceptionState = interceptionState; } void finish(); - Vector>& handlers() { return m_handlers; }; + Vector>& handlers() { return m_handlers; } private: NavigateEvent(const AtomString& type, const Init&, AbortController*); @@ -112,7 +114,7 @@ RefPtr m_formData; String m_downloadRequest; Vector> m_handlers; - JSC::JSValue m_info; + JSValueInWrappedObject m_info; bool m_canIntercept { false }; bool m_userInitiated { false }; bool m_hashChange { false }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/NavigateEvent.idl webkit2gtk-2.46.3/Source/WebCore/page/NavigateEvent.idl --- webkit2gtk-2.46.0/Source/WebCore/page/NavigateEvent.idl 2024-08-19 06:28:39.235276500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/NavigateEvent.idl 2024-09-30 08:15:01.124258300 +0000 @@ -1,4 +1,5 @@ [ + JSCustomMarkFunction, EnabledBySetting=NavigationAPIEnabled, Exposed=Window ] interface NavigateEvent : Event { diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/Page.cpp webkit2gtk-2.46.3/Source/WebCore/page/Page.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/Page.cpp 2024-09-17 07:38:07.969444800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/Page.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -429,7 +429,9 @@ #if ENABLE(WRITING_TOOLS) , m_writingToolsController(makeUniqueRef(*this)) #endif +#if ENABLE(MEDIA_SESSION) , m_activeNowPlayingSessionUpdateTimer(*this, &Page::activeNowPlayingSessionUpdateTimerFired) +#endif { updateTimerThrottlingState(); @@ -4982,6 +4984,7 @@ } #endif +#if ENABLE(MEDIA_SESSION) void Page::hasActiveNowPlayingSessionChanged() { if (!m_activeNowPlayingSessionUpdateTimer.isActive()) @@ -4997,5 +5000,6 @@ m_hasActiveNowPlayingSession = hasActiveNowPlayingSession; chrome().client().hasActiveNowPlayingSessionChanged(hasActiveNowPlayingSession); } +#endif } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/Page.h webkit2gtk-2.46.3/Source/WebCore/page/Page.h --- webkit2gtk-2.46.0/Source/WebCore/page/Page.h 2024-09-17 07:38:07.969444800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/Page.h 2024-10-21 09:00:02.707246500 +0000 @@ -1188,9 +1188,11 @@ WEBCORE_EXPORT void showSelectionForActiveWritingToolsSession() const; #endif +#if ENABLE(MEDIA_SESSION) bool hasActiveNowPlayingSession() const { return m_hasActiveNowPlayingSession; } void hasActiveNowPlayingSessionChanged(); void activeNowPlayingSessionUpdateTimerFired(); +#endif #if PLATFORM(IOS_FAMILY) bool canShowWhileLocked() const { return m_canShowWhileLocked; } @@ -1614,8 +1616,10 @@ UniqueRef m_writingToolsController; #endif +#if ENABLE(MEDIA_SESSION) bool m_hasActiveNowPlayingSession { false }; Timer m_activeNowPlayingSessionUpdateTimer; +#endif }; // class Page inline Page* Frame::page() const diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/Quirks.cpp webkit2gtk-2.46.3/Source/WebCore/page/Quirks.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/Quirks.cpp 2024-08-19 06:28:39.247276300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/Quirks.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -744,6 +744,18 @@ #endif } +// youtube.com rdar://135886305 +bool Quirks::needsYouTubeDarkModeQuirk() const +{ + if (!needsQuirks()) + return false; + + if (!m_needsYouTubeDarkModeQuirk) + m_needsYouTubeDarkModeQuirk = isDomain("youtube.com"_s); + + return *m_needsYouTubeDarkModeQuirk; +} + // gizmodo.com rdar://102227302 bool Quirks::needsFullscreenDisplayNoneQuirk() const { diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/Quirks.h webkit2gtk-2.46.3/Source/WebCore/page/Quirks.h --- webkit2gtk-2.46.0/Source/WebCore/page/Quirks.h 2024-08-19 06:28:39.247276300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/Quirks.h 2024-09-30 08:15:01.124258300 +0000 @@ -118,6 +118,8 @@ bool needsFullscreenObjectFitQuirk() const; bool needsWeChatScrollingQuirk() const; + bool needsYouTubeDarkModeQuirk() const; + bool shouldOpenAsAboutBlank(const String&) const; bool needsPreloadAutoQuirk() const; @@ -278,6 +280,7 @@ mutable std::optional m_shouldDisableElementFullscreen; mutable std::optional m_shouldIgnorePlaysInlineRequirementQuirk; mutable std::optional m_needsRelaxedCorsMixedContentCheckQuirk; + mutable std::optional m_needsYouTubeDarkModeQuirk; Vector m_subFrameDomainsForStorageAccessQuirk; }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp webkit2gtk-2.46.3/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp 2024-08-19 06:28:39.259276000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/csp/ContentSecurityPolicyDirectiveList.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -611,8 +611,10 @@ auto begin = buffer.position(); if (skipExactlyIgnoringASCIICase(buffer, "'script'"_s)) m_requireTrustedTypesForScript = true; - else + else { policy().reportInvalidTrustedTypesSinkGroup(String({ begin, buffer.position() })); + return; + } ASSERT(buffer.atEnd() || isUnicodeCompatibleASCIIWhitespace(*buffer)); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/page/csp/ContentSecurityPolicyTrustedTypesDirective.cpp webkit2gtk-2.46.3/Source/WebCore/page/csp/ContentSecurityPolicyTrustedTypesDirective.cpp --- webkit2gtk-2.46.0/Source/WebCore/page/csp/ContentSecurityPolicyTrustedTypesDirective.cpp 2024-08-19 06:28:39.259276000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/page/csp/ContentSecurityPolicyTrustedTypesDirective.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -123,6 +123,7 @@ } else { auto policy = String({ beginPolicy, buffer.position() }); directiveList().policy().reportInvalidTrustedTypesPolicy(policy); + return; } ASSERT(buffer.atEnd() || isASCIIWhitespace(*buffer)); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/SourcesGStreamer.txt webkit2gtk-2.46.3/Source/WebCore/platform/SourcesGStreamer.txt --- webkit2gtk-2.46.0/Source/WebCore/platform/SourcesGStreamer.txt 2024-08-19 06:28:39.295274700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/SourcesGStreamer.txt 2024-09-30 08:15:01.124258300 +0000 @@ -105,6 +105,7 @@ platform/gstreamer/GStreamerQuirkAmLogic.cpp platform/gstreamer/GStreamerQuirkBcmNexus.cpp platform/gstreamer/GStreamerQuirkBroadcom.cpp +platform/gstreamer/GStreamerQuirkBroadcomBase.cpp platform/gstreamer/GStreamerQuirkRealtek.cpp platform/gstreamer/GStreamerQuirkRialto.cpp platform/gstreamer/GStreamerQuirkWesteros.cpp diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/SourcesSkia.txt webkit2gtk-2.46.3/Source/WebCore/platform/SourcesSkia.txt --- webkit2gtk-2.46.0/Source/WebCore/platform/SourcesSkia.txt 2024-08-19 06:28:39.295274700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/SourcesSkia.txt 2024-10-21 09:00:02.707246500 +0000 @@ -53,6 +53,7 @@ platform/graphics/skia/ImageBufferSkiaSurfaceBackend.cpp platform/graphics/skia/ImageBufferSkiaUnacceleratedBackend.cpp platform/graphics/skia/ImageBufferUtilitiesSkia.cpp +platform/graphics/skia/IntRectSkia.cpp platform/graphics/skia/NativeImageSkia.cpp platform/graphics/skia/PathSkia.cpp platform/graphics/skia/PatternSkia.cpp diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/Timer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/Timer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/Timer.cpp 2024-08-19 06:28:39.295274700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/Timer.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -285,7 +285,7 @@ TimerBase::TimerBase() { #if USE(WEB_THREAD) - RELEASE_ASSERT(WebThreadIsLockedOrDisabled()); + RELEASE_ASSERT(WebThreadIsLockedOrDisabledInMainOrWebThread()); #endif } @@ -507,7 +507,7 @@ void TimerBase::setNextFireTime(MonotonicTime newTime) { #if USE(WEB_THREAD) - RELEASE_ASSERT(WebThreadIsLockedOrDisabled()); + RELEASE_ASSERT(WebThreadIsLockedOrDisabledInMainOrWebThread()); #endif ASSERT(canCurrentThreadAccessThreadLocalData(m_thread)); RELEASE_ASSERT(canCurrentThreadAccessThreadLocalData(m_thread) || shouldSuppressThreadSafetyCheck()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp webkit2gtk-2.46.3/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp 2024-08-19 06:28:39.303274400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -37,8 +37,6 @@ namespace WebCore { -#if ENABLE(VIDEO) || ENABLE(WEB_AUDIO) - #if ENABLE(WEBM_FORMAT_READER) bool PlatformMediaSessionManager::m_webMFormatReaderEnabled; #endif @@ -144,12 +142,16 @@ bool PlatformMediaSessionManager::activeAudioSessionRequired() const { +#if ENABLE(VIDEO) || ENABLE(WEB_AUDIO) if (anyOfSessions([] (auto& session) { return session.activeAudioSessionRequired(); })) return true; return WTF::anyOf(m_audioCaptureSources, [](auto& source) { return source.isCapturingAudio(); }); +#else + return false; +#endif } bool PlatformMediaSessionManager::hasActiveAudioSession() const @@ -199,9 +201,11 @@ ALWAYS_LOG(LOGIDENTIFIER); m_currentInterruption = type; +#if ENABLE(VIDEO) || ENABLE(WEB_AUDIO) forEachSession([type] (auto& session) { session.beginInterruption(type); }); +#endif scheduleUpdateSessionState(); } @@ -210,17 +214,21 @@ ALWAYS_LOG(LOGIDENTIFIER); m_currentInterruption = { }; +#if ENABLE(VIDEO) || ENABLE(WEB_AUDIO) forEachSession([flags] (auto& session) { session.endInterruption(flags); }); +#endif } void PlatformMediaSessionManager::addSession(PlatformMediaSession& session) { ALWAYS_LOG(LOGIDENTIFIER, session.logIdentifier()); m_sessions.append(session); +#if ENABLE(VIDEO) || ENABLE(WEB_AUDIO) if (m_currentInterruption) session.beginInterruption(*m_currentInterruption); +#endif #if !RELEASE_LOG_DISABLED m_logger->addLogger(session.logger()); @@ -273,6 +281,7 @@ { setCurrentSession(session); +#if ENABLE(VIDEO) || ENABLE(WEB_AUDIO) auto sessionType = session.mediaType(); auto restrictions = this->restrictions(sessionType); if (session.state() == PlatformMediaSession::State::Interrupted && restrictions & InterruptedPlaybackNotPermitted) { @@ -299,6 +308,9 @@ } ALWAYS_LOG(LOGIDENTIFIER, session.logIdentifier(), " returning true"); return true; +#else + return false; +#endif } void PlatformMediaSessionManager::sessionWillEndPlayback(PlatformMediaSession& session, DelayCallingUpdateNowPlaying) @@ -835,15 +847,6 @@ } #endif // ENABLE(VP9) -#else // ENABLE(VIDEO) || ENABLE(WEB_AUDIO) - -void PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary() -{ - -} - -#endif // ENABLE(VIDEO) || ENABLE(WEB_AUDIO) - #if ENABLE(EXTENSION_CAPABILITIES) bool PlatformMediaSessionManager::mediaCapabilityGrantsEnabled() { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/audio/gstreamer/AudioDecoderGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/audio/gstreamer/AudioDecoderGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/audio/gstreamer/AudioDecoderGStreamer.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/audio/gstreamer/AudioDecoderGStreamer.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -42,8 +42,7 @@ return queue.get(); } -class GStreamerInternalAudioDecoder : public ThreadSafeRefCounted - , public CanMakeWeakPtr { +class GStreamerInternalAudioDecoder : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr { WTF_MAKE_FAST_ALLOCATED; public: @@ -257,8 +256,9 @@ } else harnessedElement = WTFMove(element); - m_harness = GStreamerElementHarness::create(WTFMove(harnessedElement), [weakThis = WeakPtr { *this }, this](auto&, GRefPtr&& outputSample) { - if (!weakThis) + m_harness = GStreamerElementHarness::create(WTFMove(harnessedElement), [weakThis = ThreadSafeWeakPtr { *this }, this](auto&, GRefPtr&& outputSample) { + RefPtr protectedThis = weakThis.get(); + if (!protectedThis) return; if (m_isClosed) return; @@ -278,8 +278,8 @@ GST_TRACE_OBJECT(m_harness->element(), "Got frame with PTS: %" GST_TIME_FORMAT, GST_TIME_ARGS(GST_BUFFER_PTS(outputBuffer))); auto data = PlatformRawAudioDataGStreamer::create(WTFMove(outputSample)); - m_postTaskCallback([weakThis = WeakPtr { *this }, this, data = WTFMove(data)]() mutable { - if (!weakThis) + m_postTaskCallback([weakThis = ThreadSafeWeakPtr { *this }, this, data = WTFMove(data)]() mutable { + if (!weakThis.get()) return; if (!m_isClosed) m_outputCallback(AudioDecoder::DecodedData { WTFMove(data) }); @@ -287,14 +287,14 @@ }); } -void GStreamerInternalAudioDecoder::decode(std::span frameData, bool isKeyFrame, int64_t timestamp, std::optional duration, AudioDecoder::DecodeCallback&& callback) +void GStreamerInternalAudioDecoder::decode(std::span frameData, [[maybe_unused]] bool isKeyFrame, int64_t timestamp, std::optional duration, AudioDecoder::DecodeCallback&& callback) { GST_DEBUG_OBJECT(m_harness->element(), "Decoding%s frame", isKeyFrame ? " key" : ""); auto encodedData = wrapSpanData(frameData); if (!encodedData) { - m_postTaskCallback([weakThis = WeakPtr { *this }, this, callback = WTFMove(callback)]() mutable { - if (!weakThis) + m_postTaskCallback([weakThis = ThreadSafeWeakPtr { *this }, this, callback = WTFMove(callback)]() mutable { + if (!weakThis.get()) return; if (m_isClosed) return; @@ -321,8 +321,8 @@ GST_BUFFER_DURATION(encodedData.get()) = *duration; auto result = m_harness->pushSample(adoptGRef(gst_sample_new(encodedData.get(), m_inputCaps.get(), &segment, nullptr))); - m_postTaskCallback([weakThis = WeakPtr { *this }, this, callback = WTFMove(callback), result]() mutable { - if (!weakThis) + m_postTaskCallback([weakThis = ThreadSafeWeakPtr { *this }, this, callback = WTFMove(callback), result]() mutable { + if (!weakThis.get()) return; if (m_isClosed) return; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -256,6 +256,9 @@ notifyIsPlaying(true); callOnMainThreadAndWait([this, completionHandler = WTFMove(m_startupCompletionHandler), success]() mutable { +#ifdef GST_DISABLE_GST_DEBUG + UNUSED_VARIABLE(this); +#endif GST_DEBUG_OBJECT(m_pipeline.get(), "Has start completion handler: %s", boolForPrinting(!!completionHandler)); if (completionHandler) completionHandler(success); @@ -268,6 +271,9 @@ notifyIsPlaying(false); callOnMainThreadAndWait([this, completionHandler = WTFMove(m_stopCompletionHandler), success]() mutable { +#ifdef GST_DISABLE_GST_DEBUG + UNUSED_VARIABLE(this); +#endif GST_DEBUG_OBJECT(m_pipeline.get(), "Has stop completion handler: %s", boolForPrinting(!!completionHandler)); if (completionHandler) completionHandler(success); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/audio/gstreamer/PlatformRawAudioDataGStreamer.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -189,13 +189,15 @@ { auto& self = *reinterpret_cast(this); - auto [sourceFormat, sourceLayout] = convertAudioSampleFormatToGStreamerFormat(self.format()); + [[maybe_unused]] auto [sourceFormat, sourceLayout] = convertAudioSampleFormatToGStreamerFormat(self.format()); auto [destinationFormat, destinationLayout] = convertAudioSampleFormatToGStreamerFormat(format); - auto sourceOffset = frameOffset.value_or(0); - const char* destinationFormatDescription = gst_audio_format_to_string(destinationFormat); +#ifndef GST_DISABLE_GST_DEBUG + const char* destinationFormatDescription = gst_audio_format_to_string(destinationFormat); GST_TRACE("Copying %s data at planeIndex %zu, destination format is %s, source offset: %zu", gst_audio_format_to_string(sourceFormat), planeIndex, destinationFormatDescription, sourceOffset); +#endif + GST_TRACE("Input caps: %" GST_PTR_FORMAT, gst_sample_get_caps(self.sample())); GstMappedAudioBuffer mappedBuffer(self.sample(), GST_MAP_READ); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/glib/UserAgentQuirks.cpp webkit2gtk-2.46.3/Source/WebCore/platform/glib/UserAgentQuirks.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/glib/UserAgentQuirks.cpp 2024-09-16 08:33:15.137029600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/glib/UserAgentQuirks.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -133,7 +133,7 @@ if (domain == "www.sspa.juntadeandalucia.es"_s) return true; - // Atlassian Confluence discrimates against WebKitGTK's standard user agent + // Atlassian Confluence discriminates against WebKitGTK's standard user agent // by completely blocking access to the application. It runs on different // subdomains for each Atlassian customer so the quirk must apply broadly. if (baseDomain == "atlassian.net"_s) @@ -144,6 +144,11 @@ if (domain == "totale.rosettastone.com"_s) return true; + // DuckDuckGo discriminates against WebKitGTK's standard user agent by + // returning an HTTP 400 Bad Request error when loading every search result. + if (domain == "duckduckgo.com"_s) + return true; + return false; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/BitmapImageDescriptor.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/BitmapImageDescriptor.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/BitmapImageDescriptor.cpp 2024-08-19 06:28:39.331273600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/BitmapImageDescriptor.cpp 2024-10-21 09:00:02.707246500 +0000 @@ -206,7 +206,8 @@ auto level = SubsamplingLevel::First; for (; level < SubsamplingLevel::Last; ++level) { - if (m_source.frameSizeAtIndex(0, level).area() < maximumImageAreaBeforeSubsampling) + auto area = m_source.frameSizeAtIndex(0, level).unclampedArea(); + if (area < maximumImageAreaBeforeSubsampling) break; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/BitmapImageSource.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/BitmapImageSource.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/BitmapImageSource.cpp 2024-09-16 08:33:15.137029600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/BitmapImageSource.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -271,11 +271,6 @@ if (!frameAnimator) return false; - // Handle the case where the current frame has to be decoded synchronously - // but the next frame can be decoded asynchronously. - if (options.decodingMode() == DecodingMode::Synchronous && isLargeForDecoding()) - return frameAnimator->startAnimation(subsamplingLevel, { DecodingMode::Asynchronous, options.sizeForDrawing() }); - return frameAnimator->startAnimation(subsamplingLevel, options); } @@ -325,7 +320,7 @@ bool BitmapImageSource::isLargeForDecoding() const { - size_t sizeInBytes = size(ImageOrientation::Orientation::None).area() * sizeof(uint32_t); + auto sizeInBytes = size(ImageOrientation::Orientation::None).unclampedArea() * sizeof(uint32_t); return sizeInBytes > (isAnimated() ? 100 * KB : 500 * KB); } @@ -426,8 +421,8 @@ { ASSERT(index < m_frames.size()); - if (!nativeImage) { - LOG(Images, "BitmapImageSource::%s - %p - url: %s. Frame at index = %d has been failed.", __FUNCTION__, this, sourceUTF8(), index); + if (!nativeImage || !m_decoder) { + LOG(Images, "BitmapImageSource::%s - %p - url: %s. Frame at index = %d has failed.", __FUNCTION__, this, sourceUTF8(), index); destroyNativeImageAtIndex(index); imageFrameDecodeAtIndexHasFinished(index, animatingState, DecodingStatus::Invalid); @@ -435,6 +430,10 @@ LOG(Images, "BitmapImageSource::%s - %p - url: %s. Frame at index = %d has been decoded.", __FUNCTION__, this, sourceUTF8(), index); cacheNativeImageAtIndex(index, subsamplingLevel, options, nativeImage.releaseNonNull()); + + if (frameAtIndex(index).isComplete()) + ++m_decodeCountForTesting; + imageFrameDecodeAtIndexHasFinished(index, animatingState, frameDecodingStatusAtIndex(index)); } @@ -465,13 +464,15 @@ void BitmapImageSource::cacheNativeImageAtIndex(unsigned index, SubsamplingLevel subsamplingLevel, const DecodingOptions& options, Ref&& nativeImage) { + ASSERT(m_decoder); + if (index >= m_frames.size()) return; destroyNativeImageAtIndex(index); // Do not cache NativeImage if adding its frameByes to MemoryCache will cause numerical overflow. - size_t frameBytes = nativeImage->size().unclampedArea() * sizeof(uint32_t); + auto frameBytes = nativeImage->size().unclampedArea() * sizeof(uint32_t); if (!isInBounds(frameBytes + m_decodedSize)) return; @@ -480,9 +481,6 @@ cacheMetadataAtIndex(index, subsamplingLevel, options); decodedSizeIncreased(frame.frameBytes()); - - if (frameAtIndex(index).isComplete()) - ++m_decodeCountForTesting; } const ImageFrame& BitmapImageSource::frameAtIndex(unsigned index) const @@ -609,7 +607,15 @@ Expected, DecodingStatus> BitmapImageSource::currentNativeImageForDrawing(SubsamplingLevel subsamplingLevel, const DecodingOptions& options) { startAnimation(subsamplingLevel, options); - return nativeImageAtIndexForDrawing(currentFrameIndex(), subsamplingLevel, options); + + auto effectiveOptions = options; + + // If frame0 is displayed for the first time, startAnimation() has to request decoding frame1 + // asynchronously. A flicker will occur if we request decoding frame0 also asynchronously. + if (options.decodingMode() == DecodingMode::Asynchronous && isAnimated() && !hasEverAnimated()) + effectiveOptions = { DecodingMode::Synchronous, options.sizeForDrawing() }; + + return nativeImageAtIndexForDrawing(currentFrameIndex(), subsamplingLevel, effectiveOptions); } RefPtr BitmapImageSource::nativeImageAtIndex(unsigned index) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/FontRenderOptions.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/FontRenderOptions.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/FontRenderOptions.h 2024-08-19 06:28:39.339273500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/FontRenderOptions.h 2024-10-21 09:00:02.711246500 +0000 @@ -75,9 +75,12 @@ SkFontHinting hinting() const { return m_hinting; } SkFont::Edging antialias() const { return m_antialias; } SkPixelGeometry subpixelOrder() const { return m_subpixelOrder; } + void setUseSubpixelPositioning(bool enable) { m_useSubpixelPositioning = enable; } + bool useSubpixelPositioning() const { return m_useSubpixelPositioning; } #endif WEBCORE_EXPORT void disableHintingForTesting(); + bool isHintingDisabledForTesting() const { return m_isHintingDisabledForTesting; } private: FontRenderOptions(); @@ -89,6 +92,7 @@ SkFontHinting m_hinting { SkFontHinting::kNormal }; SkFont::Edging m_antialias { SkFont::Edging::kAntiAlias }; SkPixelGeometry m_subpixelOrder { kUnknown_SkPixelGeometry }; + bool m_useSubpixelPositioning { false }; #endif bool m_isHintingDisabledForTesting { false }; }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp 2024-08-19 06:28:39.347273000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/ImageBufferContextSwitcher.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -80,8 +80,8 @@ void ImageBufferContextSwitcher::endDrawSourceImage(GraphicsContext& destinationContext, const DestinationColorSpace& colorSpace) { if (!m_filter) { - ASSERT(m_sourceImage); - destinationContext.drawImageBuffer(*m_sourceImage, m_sourceImageRect, { destinationContext.compositeOperation(), destinationContext.blendMode() }); + if (m_sourceImage) + destinationContext.drawImageBuffer(*m_sourceImage, m_sourceImageRect, { destinationContext.compositeOperation(), destinationContext.blendMode() }); return; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/IntRect.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/IntRect.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/IntRect.h 2024-08-19 06:28:39.347273000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/IntRect.h 2024-10-21 09:00:02.711246500 +0000 @@ -46,6 +46,10 @@ #endif #endif +#if USE(SKIA) +struct SkIRect; +#endif + #if PLATFORM(WIN) typedef struct tagRECT RECT; #endif @@ -221,6 +225,11 @@ WEBCORE_EXPORT operator NSRect() const; #endif +#if USE(SKIA) + IntRect(const SkIRect&); + operator SkIRect() const; +#endif + private: IntPoint m_location; IntSize m_size; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/MediaSourcePrivate.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/MediaSourcePrivate.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/MediaSourcePrivate.cpp 2024-08-19 06:28:39.351273000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/MediaSourcePrivate.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -33,6 +33,7 @@ #include "MediaSourcePrivateClient.h" #include "PlatformTimeRanges.h" #include "SourceBufferPrivate.h" +#include namespace WebCore { @@ -143,7 +144,7 @@ bool MediaSourcePrivate::hasAudio() const { - assertIsCurrent(m_dispatcher); + ASSERT(m_dispatcher->isCurrent() || Thread::mayBeGCThread()); return std::any_of(m_activeSourceBuffers.begin(), m_activeSourceBuffers.end(), [] (SourceBufferPrivate* sourceBuffer) { return sourceBuffer->hasAudio(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/angle/PlatformDisplayANGLE.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/angle/PlatformDisplayANGLE.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/angle/PlatformDisplayANGLE.cpp 2024-08-19 06:28:39.359272700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/angle/PlatformDisplayANGLE.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -44,8 +44,10 @@ Vector displayAttributes { EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, +#if !defined(__ANDROID__) && !defined(ANDROID) EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE, EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE, m_anglePlatform.value(), +#endif EGL_NONE, }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp 2024-08-19 06:28:39.371272600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/cairo/CairoOperations.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -872,13 +872,21 @@ // When the source rectangle is outside the source image, the source rectangle must be clipped // to the source image and the destination rectangle must be clipped in the same proportion. auto calc1d = [](float& dest1, float& destSize, float& src1, float& srcSize, float surfaceWidth, float& padding) -> std::tuple { - ASSERT(destSize > 0); - ASSERT(srcSize > 0); + ASSERT(destSize); + ASSERT(srcSize); ASSERT(surfaceWidth > 0); // Cairo subsurfaces don't support floating point boundaries well, so we expand the rectangle. int expanded1, expanded2; float dest2 = dest1 + destSize; + if (destSize < 0) { + destSize = -destSize; + std::swap(dest1, dest2); + } float src2 = src1 + srcSize; + if (srcSize < 0) { + srcSize = -srcSize; + std::swap(src1, src2); + } if (src2 <= 0 || src1 >= surfaceWidth) return { }; if (src1 < 0) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp 2024-08-19 06:28:39.391271800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -520,8 +520,9 @@ void FELightingNeonParallelApplier::applyPlatformParallel(const LightingData& data, const LightSource::PaintingData& paintingData) const { alignas(16) FloatArguments floatArguments; + auto bytes = data.pixels->bytes(); ApplyParameters neonData = { - data.pixels->bytes(), + bytes.data(), 1, data.width - 2, data.height - 2, diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp 2024-08-21 10:00:57.925269100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/displaylists/DisplayListItem.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -53,14 +53,15 @@ template inline static std::optional applyFilteredImageBufferItem(GraphicsContext& context, const ResourceHeap& resourceHeap, const T& item) { - RELEASE_ASSERT(item.sourceImageIdentifier().has_value()); - auto resourceIdentifier = item.sourceImageIdentifier().value(); - if (auto* sourceImage = resourceHeap.getImageBuffer(resourceIdentifier)) { - FilterResults results; - item.apply(context, sourceImage, results); - return std::nullopt; + ImageBuffer* sourceImage = nullptr; + if (auto resourceIdentifier = item.sourceImageIdentifier(); resourceIdentifier.has_value()) { + if (sourceImage = resourceHeap.getImageBuffer(resourceIdentifier.value()); !sourceImage) + return resourceIdentifier; } - return resourceIdentifier; + + FilterResults results; + item.apply(context, sourceImage, results); + return std::nullopt; } template diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp 2024-08-19 06:28:39.399271500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp 2024-09-30 08:15:01.124258300 +0000 @@ -175,22 +175,22 @@ bool webKitDMABufVideoSinkIsEnabled() { - static bool s_disabled = false; + static bool s_enabled = false; #if USE(GBM) static std::once_flag s_flag; std::call_once(s_flag, [&] { - const char* value = g_getenv("WEBKIT_GST_DMABUF_SINK_DISABLED"); + const char* value = g_getenv("WEBKIT_GST_DMABUF_SINK_ENABLED"); auto valueSpan = span(value); - s_disabled = value && (equalLettersIgnoringASCIICase(valueSpan, "true"_s) || equalLettersIgnoringASCIICase(valueSpan, "1"_s)); - if (!s_disabled && !DRMDeviceManager::singleton().mainGBMDeviceNode(DRMDeviceManager::NodeType::Render)) { + s_enabled = value && (equalLettersIgnoringASCIICase(valueSpan, "true"_s) || equalLettersIgnoringASCIICase(valueSpan, "1"_s)); + if (s_enabled && !DRMDeviceManager::singleton().mainGBMDeviceNode(DRMDeviceManager::NodeType::Render)) { WTFLogAlways("Unable to access the GBM device, disabling DMABuf video sink."); - s_disabled = true; + s_enabled = false; } }); #else - s_disabled = true; + s_enabled = false; #endif - return !s_disabled; + return s_enabled; } bool webKitDMABufVideoSinkProbePlatform() diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp 2024-08-19 06:28:39.399271500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -92,15 +92,24 @@ g_object_set(src, "channel", GST_ELEMENT_NAME(interaudioSink), nullptr); g_object_set(interaudioSink, "channel", GST_ELEMENT_NAME(interaudioSink), nullptr); - GstElement* audioResample = makeGStreamerElement("audioresample", nullptr); + auto bin = gst_bin_new(nullptr); + auto audioResample = makeGStreamerElement("audioresample", nullptr); auto audioConvert = makeGStreamerElement("audioconvert", nullptr); - gst_bin_add_many(GST_BIN_CAST(m_pipeline.get()), src, audioResample, audioConvert, nullptr); - gst_element_link_many(src, audioConvert, audioResample, nullptr); + gst_bin_add_many(GST_BIN_CAST(bin), audioResample, audioConvert, nullptr); + gst_element_link(audioConvert, audioResample); + + if (auto pad = adoptGRef(gst_bin_find_unlinked_pad(GST_BIN_CAST(bin), GST_PAD_SRC))) + gst_element_add_pad(GST_ELEMENT_CAST(bin), gst_ghost_pad_new("src", pad.get())); + if (auto pad = adoptGRef(gst_bin_find_unlinked_pad(GST_BIN_CAST(bin), GST_PAD_SINK))) + gst_element_add_pad(GST_ELEMENT_CAST(bin), gst_ghost_pad_new("sink", pad.get())); + + gst_bin_add_many(GST_BIN_CAST(m_pipeline.get()), src, bin, nullptr); + gst_element_link(src, bin); bool shouldStart = !m_mixer->numsinkpads; auto mixerPad = adoptGRef(gst_element_request_pad_simple(m_mixer.get(), "sink_%u")); - auto srcPad = adoptGRef(gst_element_get_static_pad(audioResample, "src")); + auto srcPad = adoptGRef(gst_element_get_static_pad(bin, "src")); gst_pad_link(srcPad.get(), mixerPad.get()); if (shouldStart) @@ -118,22 +127,22 @@ GST_DEBUG_OBJECT(m_pipeline.get(), "Unregistering audio producer %" GST_PTR_FORMAT, mixerPad.get()); auto peer = adoptGRef(gst_pad_get_peer(mixerPad.get())); - auto audioResample = adoptGRef(gst_pad_get_parent_element(peer.get())); - auto resamplePeerPad = adoptGRef(gst_element_get_static_pad(audioResample.get(), "sink")); - auto resamplePeer = adoptGRef(gst_pad_get_peer(resamplePeerPad.get())); - auto interaudioSrc = adoptGRef(gst_pad_get_parent_element(resamplePeer.get())); + auto bin = adoptGRef(gst_pad_get_parent_element(peer.get())); + auto sinkPad = adoptGRef(gst_element_get_static_pad(bin.get(), "sink")); + auto srcPad = adoptGRef(gst_pad_get_peer(sinkPad.get())); + auto interaudioSrc = adoptGRef(gst_pad_get_parent_element(srcPad.get())); GST_LOG_OBJECT(m_pipeline.get(), "interaudiosrc: %" GST_PTR_FORMAT, interaudioSrc.get()); gst_element_set_locked_state(interaudioSrc.get(), true); gst_element_set_state(interaudioSrc.get(), GST_STATE_NULL); - gst_element_set_state(audioResample.get(), GST_STATE_NULL); + gst_element_set_state(bin.get(), GST_STATE_NULL); gst_pad_unlink(peer.get(), mixerPad.get()); - gst_element_unlink(interaudioSrc.get(), audioResample.get()); + gst_element_unlink(interaudioSrc.get(), bin.get()); gst_element_release_request_pad(m_mixer.get(), mixerPad.get()); - gst_bin_remove_many(GST_BIN_CAST(m_pipeline.get()), interaudioSrc.get(), audioResample.get(), nullptr); + gst_bin_remove_many(GST_BIN_CAST(m_pipeline.get()), interaudioSrc.get(), bin.get(), nullptr); if (!m_mixer->numsinkpads) gst_element_set_state(m_pipeline.get(), GST_STATE_NULL); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -915,9 +915,14 @@ auto cleanup = makeScopeExit([bus = GRefPtr(bus), pipeline, targetState] { gst_bus_disable_sync_message_emission(bus.get()); +#ifdef GST_DISABLE_GST_DEBUG + UNUSED_VARIABLE(pipeline); + UNUSED_VARIABLE(targetState); +#else GstState currentState; auto result = gst_element_get_state(pipeline, ¤tState, nullptr, 0); GST_DEBUG_OBJECT(pipeline, "Task finished, result: %s, target state reached: %s", gst_element_state_change_return_get_name(result), boolForPrinting(currentState == targetState)); +#endif }); result = gst_element_set_state(pipeline, targetState); @@ -1019,6 +1024,11 @@ template std::optional gstStructureGet(const GstStructure* structure, StringView key) { + if (!structure) { + ASSERT_NOT_REACHED_WITH_MESSAGE("tried to access a field of a null GstStructure"); + return std::nullopt; + } + T value; auto strKey = key.toStringWithoutCopying(); if constexpr(std::is_same_v) { @@ -1063,19 +1073,66 @@ StringView gstStructureGetString(const GstStructure* structure, ASCIILiteral key) { + if (!structure) { + ASSERT_NOT_REACHED_WITH_MESSAGE("tried to access a field of a null GstStructure"); + return { }; + } + return gstStructureGetString(structure, StringView { key }); } StringView gstStructureGetString(const GstStructure* structure, StringView key) { + if (!structure) { + ASSERT_NOT_REACHED_WITH_MESSAGE("tried to access a field of a null GstStructure"); + return { }; + } + return StringView::fromLatin1(gst_structure_get_string(structure, static_cast(key.rawCharacters()))); } StringView gstStructureGetName(const GstStructure* structure) { + if (!structure) { + ASSERT_NOT_REACHED_WITH_MESSAGE("tried to access a field of a null GstStructure"); + return { }; + } + return StringView::fromLatin1(gst_structure_get_name(structure)); } +template +Vector gstStructureGetArray(const GstStructure* structure, ASCIILiteral key) +{ + static_assert(std::is_same_v || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v || std::is_same_v); + Vector result; + if (!structure) + return result; + const GValue* array = gst_structure_get_value(structure, key.characters()); + if (!GST_VALUE_HOLDS_ARRAY (array)) + return result; + unsigned size = gst_value_array_get_size(array); + for (unsigned i = 0; i < size; i++) { + const GValue* item = gst_value_array_get_value(array, i); + if constexpr(std::is_same_v) + result.append(g_value_get_int(item)); + else if constexpr(std::is_same_v) + result.append(g_value_get_int64(item)); + else if constexpr(std::is_same_v) + result.append(g_value_get_uint(item)); + else if constexpr(std::is_same_v) + result.append(g_value_get_uint64(item)); + else if constexpr(std::is_same_v) + result.append(g_value_get_double(item)); + else if constexpr(std::is_same_v) + result.append(gst_value_get_structure(item)); + } + return result; +} + +template Vector gstStructureGetArray(const GstStructure*, ASCIILiteral key); + static RefPtr gstStructureToJSON(const GstStructure*); static std::optional> gstStructureValueToJSON(const GValue* value) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h 2024-08-19 06:28:39.403271400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h 2024-09-30 08:15:01.128258500 +0000 @@ -282,6 +282,9 @@ StringView gstStructureGetName(const GstStructure*); +template +Vector gstStructureGetArray(const GstStructure*, ASCIILiteral key); + String gstStructureToJSONString(const GstStructure*); GstClockTime webkitGstInitTime(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -765,8 +765,10 @@ } } - const char* configLogString = configurationNameForLogging(configuration); - GST_LOG("Checked %s %s codec \"%s\" supported %s", shouldCheckForHardwareUse ? "hardware" : "software", configLogString, codecName.utf8().data(), boolForPrinting(result.isSupported)); +#ifndef GST_DISABLE_GST_DEBUG + ASCIILiteral configLogString = configurationNameForLogging(configuration); + GST_LOG("Checked %s %s codec \"%s\" supported %s", shouldCheckForHardwareUse ? "hardware" : "software", configLogString.characters(), codecName.utf8().data(), boolForPrinting(result.isSupported)); +#endif return result; } @@ -960,33 +962,33 @@ return areCapsSupported(configuration, h264Caps, shouldCheckForHardwareUse); } -const char* GStreamerRegistryScanner::configurationNameForLogging(Configuration configuration) const +ASCIILiteral GStreamerRegistryScanner::configurationNameForLogging(Configuration configuration) const { - const char* configLogString = ""; - switch (configuration) { case Configuration::Encoding: - configLogString = "encoding"; - break; + return "encoding"_s; case Configuration::Decoding: - configLogString = "decoding"; - break; + return "decoding"_s; } - return configLogString; + return ""_s; } GStreamerRegistryScanner::RegistryLookupResult GStreamerRegistryScanner::isConfigurationSupported(Configuration configuration, const MediaConfiguration& mediaConfiguration) const { bool isSupported = false; bool isUsingHardware = false; - const char* configLogString = configurationNameForLogging(configuration); +#ifndef GST_DISABLE_GST_DEBUG + ASCIILiteral configLogString = configurationNameForLogging(configuration); +#endif if (mediaConfiguration.video) { auto& videoConfiguration = mediaConfiguration.video.value(); - GST_DEBUG("Checking %s support for video configuration: \"%s\" size: %ux%u bitrate: %" G_GUINT64_FORMAT " framerate: %f", configLogString, +#ifndef GST_DISABLE_GST_DEBUG + GST_DEBUG("Checking %s support for video configuration: \"%s\" size: %ux%u bitrate: %" G_GUINT64_FORMAT " framerate: %f", configLogString.characters(), videoConfiguration.contentType.utf8().data(), videoConfiguration.width, videoConfiguration.height, videoConfiguration.bitrate, videoConfiguration.framerate); +#endif auto contentType = ContentType(videoConfiguration.contentType); isSupported = isContainerTypeSupported(configuration, contentType.containerType()); @@ -997,9 +999,11 @@ if (mediaConfiguration.audio) { auto& audioConfiguration = mediaConfiguration.audio.value(); - GST_DEBUG("Checking %s support for audio configuration: \"%s\" %s channels, bitrate: %" G_GUINT64_FORMAT " samplerate: %u", configLogString, +#ifndef GST_DISABLE_GST_DEBUG + GST_DEBUG("Checking %s support for audio configuration: \"%s\" %s channels, bitrate: %" G_GUINT64_FORMAT " samplerate: %u", configLogString.characters(), audioConfiguration.contentType.utf8().data(), audioConfiguration.channels.utf8().data(), audioConfiguration.bitrate.value_or(0), audioConfiguration.samplerate.value_or(0)); +#endif auto contentType = ContentType(audioConfiguration.contentType); isSupported = isContainerTypeSupported(configuration, contentType.containerType()); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.h 2024-09-30 08:15:01.128258500 +0000 @@ -173,7 +173,7 @@ CodecLookupResult isAVC1CodecSupported(Configuration, const String& codec, bool shouldCheckForHardwareUse) const; CodecLookupResult isHEVCCodecSupported(Configuration, const String& codec, bool shouldCheckForHardwareUse) const; - const char* configurationNameForLogging(Configuration) const; + ASCIILiteral configurationNameForLogging(Configuration) const; bool supportsFeatures(const String& features) const; #if USE(GSTREAMER_WEBRTC) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -268,7 +268,7 @@ GRefPtr caps = adoptGRef(gst_pad_get_current_caps(pad)); GST_DEBUG_OBJECT(pad, "Sending stored pad caps to appsink: %" GST_PTR_FORMAT, caps.get()); // This will cause a recursive call to appsinkWorkaroundProbe() which will also set `needsResendCaps` to false. - bool wereCapsSent = gst_pad_send_event(pad, gst_event_new_caps(caps.get())); + [[maybe_unused]] bool wereCapsSent = gst_pad_send_event(pad, gst_event_new_caps(caps.get())); GST_DEBUG_OBJECT(pad, "wereCapsSent = %s. Returning from the probe so that the buffer is sent: %" GST_PTR_FORMAT, boolForPrinting(wereCapsSent), info->data); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp 2024-09-16 08:59:12.750527900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -43,7 +43,7 @@ delete static_cast(userData); } - static GstPadProbeReturn doProbe(GstPad* pad, GstPadProbeInfo* info, gpointer userData) + static GstPadProbeReturn doProbe([[maybe_unused]] GstPad* pad, GstPadProbeInfo* info, gpointer userData) { auto* self = static_cast(userData); auto* player = self->m_player; @@ -143,15 +143,19 @@ g_signal_connect(appSink, "new-sample", G_CALLBACK(+[](GstElement* sink, MediaPlayerPrivateGStreamer* player) -> GstFlowReturn { GRefPtr sample = adoptGRef(gst_app_sink_pull_sample(GST_APP_SINK(sink))); +#ifndef GST_DISABLE_GST_DEBUG GstBuffer* buffer = gst_sample_get_buffer(sample.get()); GST_TRACE_OBJECT(sink, "new-sample with PTS=%" GST_TIME_FORMAT, GST_TIME_ARGS(GST_BUFFER_PTS(buffer))); +#endif player->triggerRepaint(WTFMove(sample)); return GST_FLOW_OK; }), player); g_signal_connect(appSink, "new-preroll", G_CALLBACK(+[](GstElement* sink, MediaPlayerPrivateGStreamer* player) -> GstFlowReturn { GRefPtr sample = adoptGRef(gst_app_sink_pull_preroll(GST_APP_SINK(sink))); +#ifndef GST_DISABLE_GST_DEBUG GstBuffer* buffer = gst_sample_get_buffer(sample.get()); GST_DEBUG_OBJECT(sink, "new-preroll with PTS=%" GST_TIME_FORMAT, GST_TIME_ARGS(GST_BUFFER_PTS(buffer))); +#endif player->triggerRepaint(WTFMove(sample)); return GST_FLOW_OK; }), player); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2024-09-16 08:59:12.754527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -136,10 +136,12 @@ #define GST_CAT_DEFAULT webkit_media_player_debug namespace WebCore { -using namespace std; static const FloatSize s_holePunchDefaultFrameSize(1280, 720); +bool isMediaDiskCacheDisabled(); + +#ifndef GST_DISABLE_GST_DEBUG class MediaLogObserver : public WebCoreLogObserver { public: GstDebugCategory* debugCategory() const final @@ -157,6 +159,7 @@ static NeverDestroyed sharedInstance; return sharedInstance; } +#endif // GST_DISABLE_GST_DEBUG MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer(MediaPlayer* player) : m_notifier(MainThreadNotifier::create()) @@ -183,7 +186,7 @@ , m_loader(player->createResourceLoader()) { -#if !RELEASE_LOG_DISABLED +#if !RELEASE_LOG_DISABLED && !defined(GST_DISABLE_GST_DEBUG) // MediaPlayer relies on the Document logger, so to prevent duplicate messages in case // more than one MediaPlayer is created, we register a single observer. if (auto player = m_player.get()) { @@ -343,7 +346,7 @@ void MediaPlayerPrivateGStreamer::mediaPlayerWillBeDestroyed() { GST_DEBUG_OBJECT(m_pipeline.get(), "Parent MediaPlayer is about to be destroyed"); -#if !RELEASE_LOG_DISABLED +#if !RELEASE_LOG_DISABLED && !defined(GST_DISABLE_GST_DEBUG) if (auto player = m_player.get()) { auto& logObserver = mediaLogObserverSingleton(); logObserver.removeWatch(player->mediaPlayerLogger()); @@ -458,13 +461,14 @@ void MediaPlayerPrivateGStreamer::play() { if (isMediaStreamPlayer()) { - m_pausedTime = MediaTime::invalidTime(); + m_pausedTime.reset(); if (m_startTime.isInvalid()) m_startTime = MediaTime::createWithDouble(MonotonicTime::now().secondsSinceEpoch().value()); } if (!m_playbackRate) { - if (m_playbackRatePausedState == PlaybackRatePausedState::ManuallyPaused) + if (m_playbackRatePausedState == PlaybackRatePausedState::InitiallyPaused + || m_playbackRatePausedState == PlaybackRatePausedState::ManuallyPaused) m_playbackRatePausedState = PlaybackRatePausedState::RatePaused; return; } @@ -583,6 +587,21 @@ return true; } + // Stream mode. Seek will automatically deplete buffer level, so we always want to pause the pipeline and wait until the + // buffer is replenished. But we don't want this behaviour on immediate seeks that only change the playback rate. + // We restrict this behaviour to protocols that use NetworkProcess. + if (!m_downloadBuffer && !m_isChangingRate && m_url.protocolIsInHTTPFamily() && currentTime() != startTime) { + GST_DEBUG_OBJECT(pipeline(), "[Buffering] Pausing pipeline, resetting buffering level to 0 and forcing m_isBuffering true before seeking on stream mode"); + + auto& quirksManager = GStreamerQuirksManager::singleton(); + if (quirksManager.isEnabled()) + quirksManager.resetBufferingPercentage(this, 0); + + // Make sure that m_isBuffering is set to true, so that when buffering completes it's set to false again and playback resumes. + updateBufferingStatus(GST_BUFFERING_STREAM, 0.0, true); + changePipelineState(GST_STATE_PAUSED); + } + auto seekStart = toGstClockTime(startTime); auto seekStop = toGstClockTime(endTime); GST_DEBUG_OBJECT(pipeline(), "[Seek] Performing actual seek to %" GST_TIMEP_FORMAT " (endTime: %" GST_TIMEP_FORMAT ") at rate %f", &seekStart, &seekStop, rate); @@ -718,13 +737,13 @@ { if (isMediaStreamPlayer()) { if (m_pausedTime) - return m_pausedTime; + return *m_pausedTime; return MediaTime::createWithDouble(MonotonicTime::now().secondsSinceEpoch().value()) - m_startTime; } if (!m_pipeline || m_didErrorOccur) - return MediaTime::invalidTime(); + return MediaTime::zeroTime(); GST_TRACE_OBJECT(pipeline(), "seeking: %s, seekTarget: %s", boolForPrinting(m_isSeeking), m_seekTarget.toString().utf8().data()); if (m_isSeeking) @@ -1323,6 +1342,59 @@ updateStates(); } +std::optional MediaPlayerPrivateGStreamer::queryBufferingPercentage() +{ + GRefPtr query = adoptGRef(gst_query_new_buffering(GST_FORMAT_PERCENT)); + + bool isQueryOk = false; + ASCIILiteral elementName = nullptr; + + auto& quirksManager = GStreamerQuirksManager::singleton(); + if (!isQueryOk && quirksManager.isEnabled()) { + elementName = quirksManager.queryBufferingPercentage(this, query); + isQueryOk = elementName; + } + + if (!isQueryOk) { + isQueryOk = m_audioSink && gst_element_query(m_audioSink.get(), query.get()); + if (isQueryOk) + elementName = "audiosink"_s; + } + if (!isQueryOk) { + isQueryOk = m_videoSink && gst_element_query(m_videoSink.get(), query.get()); + if (isQueryOk) + elementName = "videosink"_s; + } + if (!isQueryOk) { + isQueryOk = gst_element_query(m_pipeline.get(), query.get()); + if (isQueryOk) + elementName = "pipeline"_s; + } + if (!isQueryOk) + return std::nullopt; + + int percentage = 0; + GstBufferingMode mode; + gst_query_parse_buffering_percent(query.get(), nullptr, &percentage); + gst_query_parse_buffering_stats(query.get(), &mode, nullptr, nullptr, nullptr); + + if (elementName.isNull()) + elementName = ""_s; + GST_TRACE_OBJECT(pipeline(), "[Buffering] %s reports %d buffering", elementName.characters(), percentage); + + // Normally, the fillTimer only works with buffering download (GstDownloadBuffer present), but for some + // protocols, such as mediastream or file, that element isn't present and que query works in buffering + // stream mode. When buffering has reached 100%, we stop the fillTimer because it won't ever go down. + if (mode != GST_BUFFERING_DOWNLOAD && percentage >= 100.0) { + m_fillTimer.stop(); + GST_DEBUG_OBJECT(pipeline(), "[Buffering] fillTimer not in GST_BUFFERING_DOWNLOAD mode and buffer level 100%%, disabling fillTimer."); + return percentage; + } + + return percentage; +} + +// This method is only called when doing on-disk buffering. No need to apply any of the extra corrections done for Broadcom when stream buffering. void MediaPlayerPrivateGStreamer::fillTimerFired() { if (m_didErrorOccur) { @@ -1331,16 +1403,11 @@ return; } - GRefPtr query = adoptGRef(gst_query_new_buffering(GST_FORMAT_PERCENT)); double fillStatus = 100.0; - GstBufferingMode mode = GST_BUFFERING_DOWNLOAD; + std::optional percentage = queryBufferingPercentage(); - if (gst_element_query(pipeline(), query.get())) { - gst_query_parse_buffering_stats(query.get(), &mode, nullptr, nullptr, nullptr); - - int percentage; - gst_query_parse_buffering_percent(query.get(), nullptr, &percentage); - fillStatus = percentage; + if (percentage.has_value()) { + fillStatus = percentage.value(); } else if (m_httpResponseTotalSize) { GST_DEBUG_OBJECT(pipeline(), "[Buffering] Query failed, falling back to network read position estimation"); fillStatus = 100.0 * (static_cast(m_networkReadPosition) / static_cast(m_httpResponseTotalSize)); @@ -1349,7 +1416,7 @@ return; } - updateBufferingStatus(mode, fillStatus); + updateBufferingStatus(GST_BUFFERING_DOWNLOAD, fillStatus); } void MediaPlayerPrivateGStreamer::loadStateChanged() @@ -1576,7 +1643,7 @@ g_list_free_full(streams, reinterpret_cast(g_free)); } -void MediaPlayerPrivateGStreamer::updateTracks(const GRefPtr& collectionOwner) +void MediaPlayerPrivateGStreamer::updateTracks([[maybe_unused]] const GRefPtr& collectionOwner) { ASSERT(!m_isLegacyPlaybin); @@ -1964,7 +2031,6 @@ // all. If that's the case, it's considered to be one of those spureous EOS and is ignored. // Live streams (infinite duration) are special and we still have to detect legitimate EOS there, so // this message bailout isn't done in those cases. - MediaTime playbackPosition = MediaTime::invalidTime(); MediaTime duration = this->duration(); GstClockTime gstreamerPosition = gstreamerPositionFromSinks(); bool eosFlagIsSetInSink = false; @@ -1978,9 +2044,8 @@ eosFlagIsSetInSink = sinkPad && GST_PAD_IS_EOS(sinkPad.get()); } - if (GST_CLOCK_TIME_IS_VALID(gstreamerPosition)) - playbackPosition = MediaTime(gstreamerPosition, GST_SECOND); - if (!player->isLooping() && !eosFlagIsSetInSink && playbackPosition.isValid() && duration.isValid() + MediaTime playbackPosition = GST_CLOCK_TIME_IS_VALID(gstreamerPosition)? MediaTime(gstreamerPosition, GST_SECOND) : MediaTime::zeroTime(); + if (!player->isLooping() && !eosFlagIsSetInSink && duration.isValid() && ((m_playbackRate >= 0 && playbackPosition < duration && duration.isFinite()) || (m_playbackRate < 0 && playbackPosition > MediaTime::zeroTime()))) { GST_DEBUG_OBJECT(pipeline(), "EOS received but position %s is still in the finite playable limits [%s, %s], ignoring it", @@ -2033,6 +2098,9 @@ } } + if (quirksManager.isEnabled() && quirksManager.needsBufferingPercentageCorrection()) + quirksManager.setupBufferingPercentageCorrection(this, currentState, newState, GRefPtr(GST_ELEMENT(GST_MESSAGE_SRC(message)))); + if (!messageSourceIsPlaybin || m_isDelayingLoad) break; @@ -2162,7 +2230,7 @@ if (m_isLegacyPlaybin) break; -#ifndef GST_DISABLE_DEBUG +#ifndef GST_DISABLE_GST_DEBUG GST_DEBUG_OBJECT(m_pipeline.get(), "Received STREAMS_SELECTED message selecting the following streams:"); unsigned numStreams = gst_message_streams_selected_get_size(message); for (unsigned i = 0; i < numStreams; i++) { @@ -2210,7 +2278,11 @@ int percentage; gst_message_parse_buffering(message, &percentage); - updateBufferingStatus(mode, percentage); + auto& quirksManager = GStreamerQuirksManager::singleton(); + if (quirksManager.isEnabled() && quirksManager.needsBufferingPercentageCorrection()) + percentage = quirksManager.correctBufferingPercentage(this, percentage, mode); + + updateBufferingStatus(mode, static_cast(percentage)); } void MediaPlayerPrivateGStreamer::updateMaxTimeLoaded(double percentage) @@ -2223,44 +2295,75 @@ GST_DEBUG_OBJECT(pipeline(), "[Buffering] Updated maxTimeLoaded: %s", toString(m_maxTimeLoaded).utf8().data()); } -void MediaPlayerPrivateGStreamer::updateBufferingStatus(GstBufferingMode mode, double percentage) +void MediaPlayerPrivateGStreamer::updateBufferingStatus(GstBufferingMode mode, double percentage, bool resetHistory) { - bool wasBuffering = m_isBuffering; + m_wasBuffering = m_isBuffering; + m_previousBufferingPercentage = m_bufferingPercentage; #ifndef GST_DISABLE_GST_DEBUG GUniquePtr modeString(g_enum_to_string(GST_TYPE_BUFFERING_MODE, mode)); GST_DEBUG_OBJECT(pipeline(), "[Buffering] mode: %s, status: %f%%", modeString.get(), percentage); #endif - m_didDownloadFinish = percentage == 100; + double highWatermark = 100.0; + double lowWatermark = 100.0; + if (mode == GST_BUFFERING_STREAM && m_isLegacyPlaybin) { + highWatermark = 80.0; + lowWatermark = 20.0; + } - if (!m_didDownloadFinish) + // Hysteresis for m_didDownloadFinish. + if (m_didDownloadFinish && percentage < lowWatermark) { + GST_TRACE("[Buffering] m_didDownloadFinish: %s, percentage: %f, lowWatermark: %f. Setting m_didDownloadFinish to false", + boolForPrinting(m_didDownloadFinish), percentage, lowWatermark); + m_didDownloadFinish = false; + } else if (!m_didDownloadFinish && percentage >= highWatermark) { + GST_TRACE("[Buffering] m_didDownloadFinish: %s, percentage: %f, highWatermark: %f. Setting m_didDownloadFinish to true", + boolForPrinting(m_didDownloadFinish), percentage, highWatermark); + m_didDownloadFinish = true; + } else { + GST_TRACE("[Buffering] m_didDownloadFinish remains %s, lowWatermark: %f, percentage: %f, highWatermark: %f", + boolForPrinting(m_didDownloadFinish), lowWatermark, percentage, highWatermark); + } + + // Hysteresis for m_isBuffering. + if (!m_isBuffering && percentage < lowWatermark) { + GST_TRACE("[Buffering] m_isBuffering: %s, percentage: %f, lowWatermark: %f. Setting m_isBuffering to true", + boolForPrinting(m_isBuffering), percentage, lowWatermark); m_isBuffering = true; - else + } else if (m_isBuffering && percentage >= highWatermark) { + GST_TRACE("[Buffering] m_isBuffering: %s, percentage: %f, highWatermark: %f. Setting m_isBuffering to false", + boolForPrinting(m_isBuffering), percentage, highWatermark); + m_isBuffering = false; + } else { + GST_TRACE("[Buffering] m_isBuffering remains %s, lowWatermark: %f, percentage: %f, highWatermark: %f", + boolForPrinting(m_isBuffering), lowWatermark, percentage, highWatermark); + } + + if (m_didDownloadFinish) m_fillTimer.stop(); + else if (!m_isLiveStream.value_or(false) && m_preload == MediaPlayer::Preload::Auto + && !isMediaDiskCacheDisabled()) { + // Should download, so restart the timer. + m_fillTimer.startRepeating(200_ms); + } m_bufferingPercentage = percentage; - switch (mode) { - case GST_BUFFERING_STREAM: { - updateMaxTimeLoaded(percentage); - - m_bufferingPercentage = percentage; - if (m_didDownloadFinish || !wasBuffering) - updateStates(); - break; - } - case GST_BUFFERING_DOWNLOAD: { - updateMaxTimeLoaded(percentage); - updateStates(); - break; - } - default: -#ifndef GST_DISABLE_GST_DEBUG - GST_DEBUG_OBJECT(pipeline(), "Unhandled buffering mode: %s", modeString.get()); -#endif - break; + // resetHistory is used to forget about the past values and set them like the new ones. This is useful when resetting + // the percentage to 0 before a seek, in order to prevent that setting to be undone by chance in updateStates() if + // the pipeline is in GST_STATE_CHANGE_ASYNC. We want to make sure that we start from an m_isBuffering true state, so + // that the change to m_isBuffering false is detected. We want to prevent updateStates() undoing a change to true and + // keeping m_isBuffering to false, delay it, and when the buffering percentage reaches the high watermark it's ignored + // because of m_isBuffering being false because of the delay. + if (resetHistory) { + m_wasBuffering = m_isBuffering; + m_previousBufferingPercentage = m_bufferingPercentage; } + updateMaxTimeLoaded(percentage); + updateStates(); + GST_TRACE("[Buffering] Settled results: m_wasBuffering: %s, m_isBuffering: %s, m_previousBufferingPercentage: %d, m_bufferingPercentage: %d", + boolForPrinting(m_wasBuffering), boolForPrinting(m_isBuffering), m_previousBufferingPercentage, m_bufferingPercentage); } #if USE(GSTREAMER_MPEGTS) @@ -2545,6 +2648,9 @@ stateReallyChanged = true; } + // updateBufferingStatus() must have been called at some point before updateStates() and have set m_wasBuffering, m_isBuffering, + // m_previousBufferingPercentage and m_bufferingPercentage. We take decisions here based on their values. + bool shouldUpdatePlaybackState = false; switch (getStateResult) { case GST_STATE_CHANGE_SUCCESS: { @@ -2557,8 +2663,6 @@ m_shouldResetPipeline = m_currentState <= GST_STATE_READY; - bool didBuffering = m_isBuffering; - // Update ready and network states. switch (m_currentState) { case GST_STATE_NULL: @@ -2573,18 +2677,8 @@ FALLTHROUGH; case GST_STATE_PLAYING: { bool isLooping = player && player->isLooping(); - if (m_isBuffering) { - GRefPtr query = adoptGRef(gst_query_new_buffering(GST_FORMAT_PERCENT)); - - m_isBuffering = m_bufferingPercentage < 100; - if ((m_audioSink && gst_element_query(m_audioSink.get(), query.get())) - || (m_videoSink && gst_element_query(m_videoSink.get(), query.get())) - || gst_element_query(m_pipeline.get(), query.get())) { - gboolean isBuffering = m_isBuffering; - gst_query_parse_buffering_percent(query.get(), &isBuffering, nullptr); - GST_TRACE_OBJECT(pipeline(), "[Buffering] m_isBuffering forcefully updated from %d to %d", m_isBuffering, isBuffering); - m_isBuffering = isBuffering; - } + if (m_wasBuffering) { + GST_TRACE("[Buffering] m_isBuffering: %s --> %s", boolForPrinting(m_wasBuffering), boolForPrinting(m_isBuffering)); if (!m_isBuffering) { GST_INFO_OBJECT(pipeline(), "[Buffering] Complete."); @@ -2618,7 +2712,7 @@ m_areVolumeAndMuteInitialized = true; } - if ((didBuffering && !m_isBuffering && !m_isPaused && m_playbackRate) + if ((m_wasBuffering && !m_isBuffering && !m_isPaused && m_playbackRatePausedState != PlaybackRatePausedState::ManuallyPaused && m_playbackRate) || m_playbackRatePausedState == PlaybackRatePausedState::ShouldMoveToPlaying) { m_playbackRatePausedState = PlaybackRatePausedState::Playing; GST_INFO_OBJECT(pipeline(), "[Buffering] Restarting playback (because of buffering or resuming from zero playback rate)"); @@ -2627,7 +2721,7 @@ } else if (m_currentState == GST_STATE_PLAYING) { m_isPaused = false; - shouldPauseForBuffering = (m_isBuffering && !m_isLiveStream.value_or(false)); + shouldPauseForBuffering = (!m_wasBuffering && m_isBuffering && !m_isLiveStream.value_or(false)); if (shouldPauseForBuffering || !m_playbackRate) { GST_INFO_OBJECT(pipeline(), "[Buffering] Pausing stream for buffering or because of zero playback rate."); changePipelineState(GST_STATE_PAUSED); @@ -2656,6 +2750,15 @@ case GST_STATE_CHANGE_ASYNC: GST_DEBUG_OBJECT(pipeline(), "Async: State: %s, pending: %s", gst_element_state_get_name(m_currentState), gst_element_state_get_name(pending)); // Change in progress. + + // Delay the m_isBuffering change by returning it to its previous value. Without this, the false --> true change + // would go unnoticed by the code that should trigger a pause. + if (m_wasBuffering != m_isBuffering && !m_isPaused && m_playbackRate) { + GST_TRACE_OBJECT(pipeline(), "[Buffering] Delaying m_isBuffering %s --> %s to force the proper change from not buffering to buffering when the async state change completes.", boolForPrinting(m_wasBuffering), boolForPrinting(m_isBuffering)); + m_isBuffering = m_wasBuffering; + m_bufferingPercentage = m_previousBufferingPercentage; + } + break; case GST_STATE_CHANGE_FAILURE: GST_DEBUG_OBJECT(pipeline(), "Failure: State: %s, pending: %s", gst_element_state_get_name(m_currentState), gst_element_state_get_name(pending)); @@ -3117,6 +3220,12 @@ g_object_set(m_pipeline.get(), "mute", static_cast(player->muted()), nullptr); + // From GStreamer 1.22.0, uridecodebin3 is created in playbin3's _init(), so "element-setup" isn't called with it. + if (!m_isLegacyPlaybin && webkitGstCheckVersion(1, 22, 0)) { + if (auto uriDecodeBin3 = adoptGRef(gst_bin_get_by_name(GST_BIN_CAST(m_pipeline.get()), "uridecodebin3"))) + configureElement(uriDecodeBin3.get()); + } + g_signal_connect(GST_BIN_CAST(m_pipeline.get()), "element-setup", G_CALLBACK(+[](GstBin*, GstElement* element, MediaPlayerPrivateGStreamer* player) { player->configureElement(element); }), this); @@ -3297,7 +3406,7 @@ // Ignore the cases when the time isn't marching on or the position is unknown. MediaTime currentTime = playbackPosition(); - if (!m_pipeline || m_didErrorOccur || m_isSeeking || m_isPaused || !m_playbackRate || !currentTime.isValid()) + if (!m_pipeline || m_didErrorOccur || m_isSeeking || m_isPaused || !m_playbackRate) return false; std::optional> taskToSchedule; @@ -3650,7 +3759,7 @@ m_videoSize = m_videoSize.transposedSize(); GST_DEBUG_OBJECT(pipeline(), "Enqueuing and waiting for main-thread task to call sizeChanged()..."); - bool sizeChangedProcessed = m_sinkTaskQueue.enqueueTaskAndWait([weakThis = ThreadSafeWeakPtr { *this }, this] { + [[maybe_unused]] bool sizeChangedProcessed = m_sinkTaskQueue.enqueueTaskAndWait([weakThis = ThreadSafeWeakPtr { *this }, this] { RefPtr self = weakThis.get(); if (!self) return AbortableTaskQueue::Void(); @@ -4295,6 +4404,9 @@ GUniqueOutPtr stats; g_object_get(m_videoSink.get(), "stats", &stats.outPtr(), nullptr); + if (!stats) + return false; + auto totalVideoFrames = gstStructureGet(stats.get(), "rendered"_s); auto droppedVideoFrames = gstStructureGet(stats.get(), "dropped"_s); @@ -4458,7 +4570,7 @@ gst_element_set_context(GST_ELEMENT(m_pipeline.get()), context.get()); } -void MediaPlayerPrivateGStreamer::attemptToDecryptWithInstance(CDMInstance& instance) +void MediaPlayerPrivateGStreamer::attemptToDecryptWithInstance([[maybe_unused]] CDMInstance& instance) { ASSERT(m_cdmInstance == &instance); GST_TRACE("instance %p, current stored %p", &instance, m_cdmInstance.get()); @@ -4467,7 +4579,7 @@ void MediaPlayerPrivateGStreamer::attemptToDecryptWithLocalInstance() { - bool wasEventHandled = gst_element_send_event(pipeline(), gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM_OOB, gst_structure_new_empty("attempt-to-decrypt"))); + [[maybe_unused]] bool wasEventHandled = gst_element_send_event(pipeline(), gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM_OOB, gst_structure_new_empty("attempt-to-decrypt"))); GST_DEBUG("attempting to decrypt, event handled %s", boolForPrinting(wasEventHandled)); } @@ -4496,7 +4608,7 @@ } #endif -bool MediaPlayerPrivateGStreamer::supportsKeySystem(const String& keySystem, const String& mimeType) +bool MediaPlayerPrivateGStreamer::supportsKeySystem(const String& keySystem, [[maybe_unused]] const String& mimeType) { bool result = false; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h 2024-08-19 06:28:39.403271400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h 2024-09-30 08:15:01.128258500 +0000 @@ -244,6 +244,19 @@ AbortableTaskQueue& sinkTaskQueue() { return m_sinkTaskQueue; } String codecForStreamId(const String& streamId); + bool shouldDownload() { return m_fillTimer.isActive(); } + + void setQuirkState(const GStreamerQuirk* owner, std::unique_ptr&& state) + { + m_quirkStates.set(owner, WTFMove(state)); + } + + GStreamerQuirkBase::GStreamerQuirkState* quirkState(const GStreamerQuirk* owner) + { + if (!m_quirkStates.contains(owner)) + return nullptr; + return m_quirkStates.get(owner); + } protected: enum MainThreadNotification { @@ -257,13 +270,20 @@ }; enum class PlaybackRatePausedState { - ManuallyPaused, // Initialization or user explicitly paused. This takes preference over RatePaused. You don't - // transition from Manually to Rate Paused unless there is a play while rate == 0. - RatePaused, // Pipeline was playing and rate was set to zero. - ShouldMoveToPlaying, // Pipeline was paused because of zero rate and it should be playing. This is not a - // definitive state, just an operational transition from RatePaused to Playing to keep the - // pipeline state changes contained in updateStates. - Playing, // Pipeline is playing and it should be. + // Initialization. This takes preference over RatePaused. You don't + // transition from Initially to Rate Paused unless there is a play while rate == 0. + InitiallyPaused, + // User explicitly paused. This takes preference over RatePaused. You don't + // transition from Manually to Rate Paused unless there is a play while rate == 0. + ManuallyPaused, + // Pipeline was playing and rate was set to zero. + RatePaused, + // Pipeline was paused because of zero rate and it should be playing. This is not a + // definitive state, just an operational transition from RatePaused to Playing to keep the + // pipeline state changes contained in updateStates. + ShouldMoveToPlaying, + // Pipeline is playing and it should be. + Playing, }; enum class ChangePipelineStateResult { @@ -373,7 +393,7 @@ // https://bugs.webkit.org/show_bug.cgi?id=260385 bool m_isPaused { true }; float m_playbackRate { 1 }; - PlaybackRatePausedState m_playbackRatePausedState { PlaybackRatePausedState::ManuallyPaused }; + PlaybackRatePausedState m_playbackRatePausedState { PlaybackRatePausedState::InitiallyPaused }; GstState m_currentState { GST_STATE_NULL }; GstState m_oldState { GST_STATE_NULL }; GstState m_requestedState { GST_STATE_VOID_PENDING }; @@ -495,7 +515,7 @@ virtual void updateDownloadBufferingFlag(); void processBufferingStats(GstMessage*); - void updateBufferingStatus(GstBufferingMode, double percentage); + void updateBufferingStatus(GstBufferingMode, double percentage, bool resetHistory = false); void updateMaxTimeLoaded(double percentage); #if USE(GSTREAMER_MPEGTS) @@ -519,6 +539,8 @@ void configureElementPlatformQuirks(GstElement*); + std::optional queryBufferingPercentage(); + void setPlaybinURL(const URL& urlString); void updateTracks(const GRefPtr& collectionOwner); @@ -565,8 +587,14 @@ RefPtr m_platformLayerProxy; #endif #endif + + // These attributes can ONLY be changed from updateBufferingStatus() in order to keep the + // hysteresis level detection consistent between buffer percentage update cycles. + bool m_wasBuffering { false }; bool m_isBuffering { false }; + int m_previousBufferingPercentage { 0 }; int m_bufferingPercentage { 0 }; + bool m_hasWebKitWebSrcSentEOS { false }; mutable unsigned long long m_totalBytes { 0 }; URL m_url; @@ -643,7 +671,7 @@ // Specific to MediaStream playback. MediaTime m_startTime; - MediaTime m_pausedTime; + std::optional m_pausedTime; void setupCodecProbe(GstElement*); Lock m_codecsLock; @@ -654,6 +682,7 @@ Ref m_loader; RefPtr m_quirksManagerForTesting; + HashMap> m_quirkStates; }; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp 2024-08-19 06:28:39.403271400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -40,8 +40,7 @@ return queue.get(); } -class GStreamerInternalVideoDecoder : public ThreadSafeRefCounted - , public CanMakeWeakPtr { +class GStreamerInternalVideoDecoder : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr { WTF_MAKE_FAST_ALLOCATED; public: @@ -213,10 +212,10 @@ } else harnessedElement = WTFMove(element); - m_harness = GStreamerElementHarness::create(WTFMove(harnessedElement), [weakThis = WeakPtr { *this }, this](auto& stream, GRefPtr&& outputSample) { - if (!weakThis) + m_harness = GStreamerElementHarness::create(WTFMove(harnessedElement), [weakThis = ThreadSafeWeakPtr { *this }, this](auto& stream, GRefPtr&& outputSample) { + RefPtr protectedThis = weakThis.get(); + if (!protectedThis) return; - if (m_isClosed) return; @@ -228,8 +227,8 @@ if (m_presentationSize.isEmpty()) m_presentationSize = getVideoResolutionFromCaps(stream.outputCaps().get()).value_or(FloatSize { 0, 0 }); - m_postTaskCallback([weakThis = WeakPtr { *this }, this, outputSample = WTFMove(outputSample)]() mutable { - if (!weakThis) + m_postTaskCallback([weakThis = ThreadSafeWeakPtr { *this }, this, outputSample = WTFMove(outputSample)]() mutable { + if (!weakThis.get()) return; if (m_isClosed) @@ -253,8 +252,8 @@ GST_DEBUG_OBJECT(m_harness->element(), "Decoding%s frame", isKeyFrame ? " key" : ""); auto buffer = wrapSpanData(frameData); if (!buffer) { - m_postTaskCallback([weakThis = WeakPtr { *this }, this, callback = WTFMove(callback)]() mutable { - if (!weakThis) + m_postTaskCallback([weakThis = ThreadSafeWeakPtr { *this }, this, callback = WTFMove(callback)]() mutable { + if (!weakThis.get()) return; if (m_isClosed) @@ -280,11 +279,11 @@ auto result = m_harness->pushSample(adoptGRef(gst_sample_new(buffer.get(), m_inputCaps.get(), nullptr, nullptr))); if (result) m_harness->processOutputSamples(); - m_postTaskCallback([weakThis = WeakPtr { *this }, this, callback = WTFMove(callback), result]() mutable { - if (!weakThis) + m_postTaskCallback([weakThis = ThreadSafeWeakPtr { *this }, this, callback = WTFMove(callback), result]() mutable { + if (!weakThis.get()) return; - if (weakThis->m_isClosed) + if (m_isClosed) return; if (!result) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp 2024-09-16 08:59:12.754527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -187,9 +187,11 @@ GST_TRACE("Looking-up layer id in %" GST_PTR_FORMAT, metaStructure); return gstStructureGet(metaStructure, "layer-id"_s); } +#ifndef GST_DISABLE_GST_DEBUG auto name = gstStructureGetName(structure); GST_TRACE("Retrieval of temporal index from encoded format %s is not yet supported.", reinterpret_cast(name.rawCharacters())); #endif +#endif return { }; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2024-09-16 08:59:12.754527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -260,7 +260,7 @@ Hard }; -static void webkitWebSrcReset(WebKitWebSrc* src, DataMutexLocker& members, ResetType resetType) +static void webkitWebSrcReset([[maybe_unused]] WebKitWebSrc* src, DataMutexLocker& members, ResetType resetType) { GST_DEBUG_OBJECT(src, "Resetting internal state"); gst_adapter_clear(members->adapter.get()); @@ -418,7 +418,7 @@ } -static void stopLoaderIfNeeded(WebKitWebSrc* src, DataMutexLocker& members) +static void stopLoaderIfNeeded([[maybe_unused]] WebKitWebSrc* src, DataMutexLocker& members) { ASSERT(isMainThread()); @@ -1163,9 +1163,11 @@ // sending time from the receiving time, it is better to ignore it. if (!members->downloadStartTime.isNaN()) { members->totalDownloadedBytes += data.size(); +#ifndef GST_DISABLE_GST_DEBUG double timeSinceStart = (WallTime::now() - members->downloadStartTime).seconds(); GST_TRACE_OBJECT(src.get(), "R%u: downloaded %" G_GUINT64_FORMAT " bytes in %f seconds =~ %1.0f bytes/second", m_requestNumber, members->totalDownloadedBytes, timeSinceStart , timeSinceStart ? members->totalDownloadedBytes / timeSinceStart : 0); +#endif } else { members->downloadStartTime = WallTime::now(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -253,7 +253,7 @@ }); } -void AppendPipeline::handleErrorSyncMessage(GstMessage* message) +void AppendPipeline::handleErrorSyncMessage([[maybe_unused]] GstMessage* message) { ASSERT(!isMainThread()); GST_WARNING_OBJECT(pipeline(), "Demuxing error: %" GST_PTR_FORMAT, message); @@ -553,7 +553,7 @@ ASSERT(isMainThread()); GRefPtr sample; - int batchedSampleCount = 0; + [[maybe_unused]] int batchedSampleCount = 0; for (std::unique_ptr& track : m_tracks) { while ((sample = adoptGRef(gst_app_sink_try_pull_sample(GST_APP_SINK(track->appsink.get()), 0)))) { appsinkNewSample(*track, WTFMove(sample)); @@ -680,7 +680,7 @@ } } -GRefPtr createOptionalParserForFormat(GstBin* bin, const AtomString& trackStringId, const GstCaps* caps) +GRefPtr createOptionalParserForFormat([[maybe_unused]] GstBin* bin, const AtomString& trackStringId, const GstCaps* caps) { // Parser elements have either or both of two functions: // @@ -1065,7 +1065,7 @@ #endif #if ENABLE(ENCRYPTED_MEDIA) -static GstPadProbeReturn appendPipelineAppsinkPadEventProbe(GstPad* pad, GstPadProbeInfo* info, struct PadProbeInformation *padProbeInformation) +static GstPadProbeReturn appendPipelineAppsinkPadEventProbe([[maybe_unused]] GstPad* pad, GstPadProbeInfo* info, struct PadProbeInformation *padProbeInformation) { ASSERT(GST_PAD_PROBE_INFO_TYPE(info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM); GstEvent* event = gst_pad_probe_info_get_event(info); @@ -1085,11 +1085,13 @@ } #endif -static GstPadProbeReturn appendPipelineDemuxerBlackHolePadProbe(GstPad* pad, GstPadProbeInfo* info, gpointer) +static GstPadProbeReturn appendPipelineDemuxerBlackHolePadProbe([[maybe_unused]] GstPad* pad, [[maybe_unused]] GstPadProbeInfo* info, gpointer) { ASSERT(GST_PAD_PROBE_INFO_TYPE(info) & GST_PAD_PROBE_TYPE_BUFFER); +#ifndef GST_DISABLE_GST_DEBUG GstBuffer* buffer = GST_PAD_PROBE_INFO_BUFFER(info); GST_TRACE_OBJECT(pad, "buffer of size %" G_GSIZE_FORMAT " ignored", gst_buffer_get_size(buffer)); +#endif return GST_PAD_PROBE_DROP; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -59,6 +59,7 @@ #include #include +#ifndef GST_DISABLE_GST_DEBUG static const char* dumpReadyState(WebCore::MediaPlayer::ReadyState readyState) { switch (readyState) { @@ -70,6 +71,7 @@ default: return "(unknown)"; } } +#endif // GST_DISABLE_GST_DEBUG GST_DEBUG_CATEGORY(webkit_mse_debug); #define GST_CAT_DEFAULT webkit_mse_debug @@ -199,7 +201,7 @@ } } -#ifndef GST_DISABLE_DEBUG +#ifndef GST_DISABLE_GST_DEBUG void MediaPlayerPrivateGStreamerMSE::setShouldDisableSleep(bool shouldDisableSleep) { // This method is useful only for logging purpose. The actual sleep disabler is managed by HTMLMediaElement. @@ -212,7 +214,7 @@ if (UNLIKELY(!m_pipeline || m_didErrorOccur)) return MediaTime(); - return m_mediaTimeDuration; + return m_mediaTimeDuration.isValid() ? m_mediaTimeDuration : MediaTime::zeroTime(); } void MediaPlayerPrivateGStreamerMSE::seekToTarget(const SeekTarget& target) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h 2024-09-30 08:15:01.128258500 +0000 @@ -89,7 +89,7 @@ #endif void checkPlayingConsistency() final; -#ifndef GST_DISABLE_DEBUG +#ifndef GST_DISABLE_GST_DEBUG void setShouldDisableSleep(bool) final; #endif diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -212,12 +212,9 @@ } #endif // GST_DISABLE_GST_DEBUG -static void dumpPipeline(ASCIILiteral description, const RefPtr& stream) +static void dumpPipeline([[maybe_unused]] ASCIILiteral description, [[maybe_unused]] const RefPtr& stream) { -#ifdef GST_DISABLE_GST_DEBUG - [[maybe_unused]] description; - [[maybe_unused]] stream; -#else +#ifndef GST_DISABLE_GST_DEBUG auto pipeline = findPipeline(GRefPtr(GST_ELEMENT(stream->source))); auto fileName = makeString(span(GST_OBJECT_NAME(pipeline.get())), '-', stream->track->stringId(), '-', description); GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN_CAST(pipeline.get()), GST_DEBUG_GRAPH_SHOW_ALL, fileName.utf8().data()); @@ -399,7 +396,7 @@ source->priv->streams.remove(name); } -static gboolean webKitMediaSrcActivateMode(GstPad* pad, GstObject* source, GstPadMode mode, gboolean active) +static gboolean webKitMediaSrcActivateMode(GstPad* pad, [[maybe_unused]] GstObject* source, GstPadMode mode, gboolean active) { if (mode != GST_PAD_MODE_PUSH) { GST_ERROR_OBJECT(source, "Unexpected pad mode in WebKitMediaSrc"); @@ -493,7 +490,7 @@ if (!streamingMembers->hasPushedStreamCollectionEvent) { GST_DEBUG_OBJECT(pad, "Pushing STREAM_COLLECTION event."); - bool wasStreamCollectionSent = gst_pad_push_event(stream->pad.get(), gst_event_new_stream_collection(stream->source->priv->collection.get())); + [[maybe_unused]] bool wasStreamCollectionSent = gst_pad_push_event(stream->pad.get(), gst_event_new_stream_collection(stream->source->priv->collection.get())); streamingMembers->hasPushedStreamCollectionEvent = true; GST_DEBUG_OBJECT(pad, "STREAM_COLLECTION event has been pushed, %s was returned.", boolForPrinting(wasStreamCollectionSent)); // Initial events like this must go through, flushes (including tearing down the element) is not allowed until @@ -518,7 +515,7 @@ GRefPtr event = adoptGRef(gst_event_new_caps(streamingMembers->pendingInitialCaps.get())); GST_DEBUG_OBJECT(pad, "Pushing initial CAPS event: %" GST_PTR_FORMAT, streamingMembers->pendingInitialCaps.get()); - bool wasCapsEventSent = gst_pad_push_event(pad, event.leakRef()); + [[maybe_unused]] bool wasCapsEventSent = gst_pad_push_event(pad, event.leakRef()); GST_DEBUG_OBJECT(pad, "Pushed initial CAPS event, %s was returned.", boolForPrinting(wasCapsEventSent)); streamingMembers->previousCaps = WTFMove(streamingMembers->pendingInitialCaps); @@ -565,7 +562,7 @@ // omit the flush (see webKitMediaSrcFlush) we actually emit the updated, correct segment. if (streamingMembers->doesNeedSegmentEvent) { GST_DEBUG_OBJECT(pad, "Need new SEGMENT event, pushing it: %" GST_SEGMENT_FORMAT, &streamingMembers->segment); - bool result = gst_pad_push_event(pad, gst_event_new_segment(&streamingMembers->segment)); + [[maybe_unused]] bool result = gst_pad_push_event(pad, gst_event_new_segment(&streamingMembers->segment)); GST_DEBUG_OBJECT(pad, "SEGMENT event pushed, result = %s.", boolForPrinting(result)); ASSERT(result); streamingMembers->doesNeedSegmentEvent = false; @@ -579,8 +576,11 @@ streamingMembers->previousCaps = gst_sample_get_caps(sample.get()); // This CAPS event may block, so we release the lock and reevaluate later if there's been a flush in the meantime. streamingMembers.runUnlocked([&stream, &sample, &pad]() { +#ifdef GST_DISABLE_GST_DEBUG + UNUSED_VARIABLE(pad); +#endif GST_DEBUG_OBJECT(pad, "Pushing new CAPS event: %" GST_PTR_FORMAT, gst_sample_get_caps(sample.get())); - bool result = gst_pad_push_event(stream->pad.get(), gst_event_new_caps(gst_sample_get_caps(sample.get()))); + [[maybe_unused]] bool result = gst_pad_push_event(stream->pad.get(), gst_event_new_caps(gst_sample_get_caps(sample.get()))); GST_DEBUG_OBJECT(pad, "CAPS event pushed, result = %s.", boolForPrinting(result)); ASSERT(result); }); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp 2024-08-19 06:28:39.415271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/FontCacheSkia.cpp 2024-10-30 09:22:36.526296900 +0000 @@ -29,7 +29,11 @@ #include "Font.h" #include "FontDescription.h" #include "StyleFontSizeFunctions.h" +#if defined(__ANDROID__) || defined(ANDROID) +#include +#else #include +#endif #include #include #include @@ -47,8 +51,13 @@ SkFontMgr& FontCache::fontManager() const { - if (!m_fontManager) + if (!m_fontManager) { +#if defined(__ANDROID__) || defined(ANDROID) + m_fontManager = SkFontMgr_New_Android(nullptr); +#else m_fontManager = SkFontMgr_New_FontConfig(FcConfigReference(nullptr)); +#endif + } RELEASE_ASSERT(m_fontManager); return *m_fontManager.get(); } @@ -135,13 +144,19 @@ Ref FontCache::lastResortFallbackFont(const FontDescription& fontDescription) { - // We want to return a fallback font here, otherwise the logic preventing FontConfig - // matches for non-fallback fonts might return 0. See isFallbackFontAllowed. if (RefPtr font = fontForFamily(fontDescription, "serif"_s)) return font.releaseNonNull(); - // This could be reached due to improperly-installed or misconfigured fontconfig. - RELEASE_ASSERT_NOT_REACHED(); + // Passing nullptr as family name makes Skia use a weak match. + auto typeface = fontManager().matchFamilyStyle(nullptr, skiaFontStyle(fontDescription)); + if (!typeface) { + // LastResort is guaranteed to be non-null, so fallback to empty font with not glyphs. + typeface = SkTypeface::MakeEmpty(); + } + + FontPlatformData platformData(WTFMove(typeface), fontDescription.computedSize(), false /* syntheticBold */, false /* syntheticOblique */, + fontDescription.orientation(), fontDescription.widthVariant(), fontDescription.textRenderingMode(), computeFeatures(fontDescription, { })); + return fontForPlatformData(platformData); } Vector FontCache::getFontSelectionCapabilitiesInFamily(const AtomString&, AllowUserInstalledFonts) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/FontPlatformDataSkia.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/FontPlatformDataSkia.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/FontPlatformDataSkia.cpp 2024-08-19 06:28:39.419271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/FontPlatformDataSkia.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -46,8 +46,24 @@ m_font = SkFont(typeface, m_size); m_font.setEmbolden(m_syntheticBold); m_font.setSkewX(m_syntheticOblique ? -SK_Scalar1 / 4 : 0); + + bool useSubpixelPositioning = FontRenderOptions::singleton().useSubpixelPositioning(); + m_font.setEdging(FontRenderOptions::singleton().antialias()); - m_font.setHinting(FontRenderOptions::singleton().hinting()); + if (m_font.getEdging() == SkFont::Edging::kAlias) { + // Force full hinting when antialiasing is disabled like Cairo does. + m_font.setHinting(SkFontHinting::kFull); + } else if (useSubpixelPositioning) { + // Disable hinting when subpixel positioning is enabled. + m_font.setHinting(SkFontHinting::kNone); + } else + m_font.setHinting(FontRenderOptions::singleton().hinting()); + + // Force subpixel positioning when not running tests and full hinting was not requested. + bool forceSubpixel = !FontRenderOptions::singleton().isHintingDisabledForTesting() && m_font.getHinting() != SkFontHinting::kFull; + m_font.setSubpixel(forceSubpixel || useSubpixelPositioning); + + m_font.setLinearMetrics(useSubpixelPositioning); m_hbFont = SkiaHarfBuzzFont::getOrCreate(*m_font.getTypeface()); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp 2024-08-19 06:28:39.419271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -152,18 +152,60 @@ void ImageBufferSkiaAcceleratedBackend::putPixelBuffer(const PixelBuffer& pixelBuffer, const IntRect& srcRect, const IntPoint& destPoint, AlphaPremultiplication destFormat) { + UNUSED_PARAM(destFormat); + if (!PlatformDisplay::sharedDisplay().skiaGLContext()->makeContextCurrent()) return; - auto info = m_surface->imageInfo(); - auto data = SkData::MakeUninitialized(info.computeMinByteSize()); - auto* pixels = static_cast(data->writable_data()); - ImageBufferBackend::putPixelBuffer(pixelBuffer, srcRect, destPoint, destFormat, pixels); - - // Create a SkImageInfo so the writePixels call will transform the pixels from BGRA to RGBA when painting. - SkImageInfo imageInfo = SkImageInfo::Make(info.width(), info.height(), SkColorType::kBGRA_8888_SkColorType, SkAlphaType::kPremul_SkAlphaType, colorSpace().platformColorSpace()); - SkPixmap pixmap(imageInfo, pixels, info.minRowBytes64()); - m_surface->writePixels(pixmap, 0, 0); + ASSERT(IntRect({ 0, 0 }, pixelBuffer.size()).contains(srcRect)); + ASSERT(pixelBuffer.format().pixelFormat == PixelFormat::RGBA8 || pixelBuffer.format().pixelFormat == PixelFormat::BGRA8); + ASSERT(pixelBuffer.format().alphaFormat == AlphaPremultiplication::Premultiplied || pixelBuffer.format().alphaFormat == AlphaPremultiplication::Unpremultiplied); + + const auto colorType = (pixelBuffer.format().pixelFormat == PixelFormat::RGBA8) + ? SkColorType::kRGBA_8888_SkColorType : SkColorType::kBGRA_8888_SkColorType; + + const auto alphaType = (pixelBuffer.format().alphaFormat == AlphaPremultiplication::Premultiplied) + ? SkAlphaType::kPremul_SkAlphaType : SkAlphaType::kUnpremul_SkAlphaType; + + const IntRect backendRect { { }, size() }; + auto sourceRectClipped = intersection({ IntPoint::zero(), pixelBuffer.size() }, srcRect); + auto destinationRect = sourceRectClipped; + destinationRect.moveBy(destPoint); + + if (srcRect.x() < 0) + destinationRect.setX(destinationRect.x() - srcRect.x()); + if (srcRect.y() < 0) + destinationRect.setY(destinationRect.y() - srcRect.y()); + + destinationRect.intersect(backendRect); + sourceRectClipped.setSize(destinationRect.size()); + + auto pixelBufferInfo = SkImageInfo::Make(pixelBuffer.size().width(), pixelBuffer.size().height(), + colorType, alphaType, pixelBuffer.format().colorSpace.platformColorSpace()); + SkPixmap pixmap(pixelBufferInfo, pixelBuffer.bytes().data(), pixelBuffer.size().width() * 4); + + SkPixmap srcPixmap; + if (UNLIKELY(!pixmap.extractSubset(&srcPixmap, sourceRectClipped))) + return; + + const auto destAlphaType = (destFormat == AlphaPremultiplication::Premultiplied) + ? SkAlphaType::kPremul_SkAlphaType : SkAlphaType::kUnpremul_SkAlphaType; + + // If all the pixels in the source rectangle are opaque, it does not matter which kind + // of alpha is involved: the destination pixels will be replaced by the source ones. + if (m_surface->imageInfo().alphaType() == destAlphaType || srcPixmap.computeIsOpaque()) { + m_surface->writePixels(srcPixmap, destinationRect.x(), destinationRect.y()); + return; + } + + // Fall back to converting, but only the part covered by sourceRectClipped/srcPixmap. + auto data = SkData::MakeUninitialized(srcPixmap.computeByteSize()); + ImageBufferBackend::putPixelBuffer(pixelBuffer, sourceRectClipped, IntPoint::zero(), destFormat, + static_cast(data->writable_data())); + auto convertedSrcInfo = SkImageInfo::Make(srcPixmap.dimensions(), SkColorType::kBGRA_8888_SkColorType, + SkAlphaType::kPremul_SkAlphaType, colorSpace().platformColorSpace()); + SkPixmap convertedSrcPixmap(convertedSrcInfo, data->writable_data(), convertedSrcInfo.minRowBytes64()); + m_surface->writePixels(convertedSrcPixmap, destinationRect.x(), destinationRect.y()); } #if USE(NICOSIA) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/IntRectSkia.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/IntRectSkia.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/skia/IntRectSkia.cpp 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/skia/IntRectSkia.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2024 Igalia S.L. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "IntRect.h" + +#if USE(SKIA) +#include + +namespace WebCore { + +IntRect::IntRect(const SkIRect& r) + : m_location(r.left(), r.top()) + , m_size(r.width(), r.height()) +{ +} + +IntRect::operator SkIRect() const +{ + return { x(), y(), maxX(), maxY() }; +} + +} // namespace WebCore + +#endif // USE(SKIA) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapper.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapper.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapper.cpp 2024-08-19 06:28:39.419271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapper.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -1335,6 +1335,11 @@ updateProjectionMatrix(); } +std::pair TextureMapper::depthRange() const +{ + return { data().zNear, data().zFar }; +} + void TextureMapper::updateProjectionMatrix() { bool flipY; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapper.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapper.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapper.h 2024-08-19 06:28:39.419271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapper.h 2024-10-30 11:47:03.977011200 +0000 @@ -82,6 +82,7 @@ IntRect clipBounds(); IntSize maxTextureSize() const { return IntSize(2000, 2000); } void setDepthRange(double zNear, double zFar); + std::pair depthRange() const; void setMaskMode(bool m) { m_isMaskMode = m; } void setWrapMode(WrapMode m) { m_wrapMode = m; } void setPatternTransform(const TransformationMatrix& p) { m_patternTransform = p; } @@ -118,7 +119,7 @@ bool beginRoundedRectClip(const TransformationMatrix&, const FloatRoundedRect&); void bindDefaultSurface(); ClipStack& clipStack(); - TextureMapperGLData& data() { return *m_data; } + TextureMapperGLData& data() const { return *m_data; } void updateProjectionMatrix(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp 2024-08-19 06:28:39.419271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -60,6 +60,82 @@ } }; +class TextureMapperFlattenedLayer final { + WTF_MAKE_FAST_ALLOCATED; +public: + explicit TextureMapperFlattenedLayer(const IntRect& rect, double zNear, double zFar) + : m_rect(rect) + , m_zNear(zNear) + , m_zFar(zFar) + { } + + IntRect layerRect() const { return m_rect; } + + bool needsUpdate() const { return m_textures.isEmpty(); } + + void update(TextureMapperPaintOptions& options, const std::function& paintFunction) + { + auto [prevZNear, prevZFar] = options.textureMapper.depthRange(); + options.textureMapper.setDepthRange(m_zNear, m_zFar); + + m_textures.clear(); + + auto maxTextureSize = options.textureMapper.maxTextureSize(); + forEachTile(maxTextureSize, [&](const IntRect& tileRect) { + RefPtr surface = options.textureMapper.acquireTextureFromPool(tileRect.size(), { BitmapTexture::Flags::SupportsAlpha }); + { + SetForScope scopedSurface(options.surface, surface); + SetForScope scopedOffset(options.offset, -toIntSize(tileRect.location())); + SetForScope scopedOpacity(options.opacity, 1); + + options.textureMapper.bindSurface(options.surface.get()); + paintFunction(options); + + // If paintFunction applies filters to flattened surface then surface object might have + // changed to new intermediate filter surface and it needs to be stored for painting. + ASSERT(options.surface); + surface = options.surface; + } + m_textures.append(WTFMove(surface)); + }); + + options.textureMapper.bindSurface(options.surface.get()); + options.textureMapper.setDepthRange(prevZNear, prevZFar); + } + + void paintToTextureMapper(TextureMapper& textureMapper, const FloatRect& targetRect, TransformationMatrix& modelViewMatrix, float opacity) + { + auto maxTextureSize = textureMapper.maxTextureSize(); + auto allEdgesExposed = m_rect.width() <= maxTextureSize.width() && m_rect.height() <= maxTextureSize.height() + ? TextureMapper::AllEdgesExposed::Yes + : TextureMapper::AllEdgesExposed::No; + TransformationMatrix adjustedTransform = modelViewMatrix * TransformationMatrix::rectToRect(m_rect, targetRect); + + size_t textureIndex = 0; + forEachTile(maxTextureSize, [&](const IntRect& tileRect) { + ASSERT(textureIndex < m_textures.size()); + textureMapper.drawTexture(*m_textures[textureIndex++], tileRect, adjustedTransform, opacity, allEdgesExposed); + }); + } + +private: + void forEachTile(const IntSize& maxTextureSize, const std::function& tileAction) + { + for (int x = m_rect.x(); x < m_rect.maxX(); x += maxTextureSize.width()) { + for (int y = m_rect.y(); y < m_rect.maxY(); y += maxTextureSize.height()) { + IntRect tileRect({ x, y }, maxTextureSize); + tileRect.intersect(m_rect); + tileAction(tileRect); + } + } + } + + IntRect m_rect; + double m_zNear; + double m_zFar; + Vector> m_textures; +}; + TextureMapperLayer::TextureMapperLayer(Damage::ShouldPropagate propagateDamage) : m_propagateDamage(propagateDamage) { @@ -73,6 +149,89 @@ removeFromParent(); } +void TextureMapperLayer::processDescendantLayersFlatteningRequirements() +{ + // Traverse all children in depth first, post-order + for (auto* child : m_children) { + child->processDescendantLayersFlatteningRequirements(); + + if (child->flattensAsLeafOf3DSceneOr3DPerspective()) + child->processFlatteningRequirements(); + } +} + +void TextureMapperLayer::processFlatteningRequirements() +{ + m_flattenedLayer = nullptr; + + // Reset transformations as this layer is root 2D + SetForScope scopedLocalTransform(m_layerTransforms.localTransform, TransformationMatrix::identity); + m_layerTransforms.combined = { }; + m_layerTransforms.combinedForChildren = { }; +#if USE(COORDINATED_GRAPHICS) + SetForScope scopedFutureLocalTransform(m_layerTransforms.futureLocalTransform, TransformationMatrix::identity); + m_layerTransforms.futureLocalTransform = { }; + m_layerTransforms.futureCombined = { }; + m_layerTransforms.futureCombinedForChildren = { }; +#endif + ComputeTransformData data; + if (m_state.maskLayer) + m_state.maskLayer->computeTransformsRecursive(data); + if (m_state.replicaLayer) + m_state.replicaLayer->computeTransformsRecursive(data); + if (m_state.backdropLayer) + m_state.backdropLayer->computeTransformsRecursive(data); + for (auto* child : m_children) + child->computeTransformsRecursive(data); + + Region layerRegion; + computeFlattenedRegion(layerRegion, true); + + if (layerRegion.isEmpty()) + return; + + m_flattenedLayer = makeUnique(layerRegion.bounds(), data.zNear, data.zFar); +} + +void TextureMapperLayer::computeFlattenedRegion(Region& region, bool layerIsFlatteningRoot) +{ + auto rect = isFlattened() ? m_flattenedLayer->layerRect() : layerRect(); + + bool shouldExpand = m_currentFilters.hasOutsets() && !m_state.masksToBounds && !m_state.maskLayer; + if (shouldExpand && !layerIsFlatteningRoot) { + auto outsets = m_currentFilters.outsets(); + rect.move(-outsets.left(), -outsets.top()); + rect.expand(outsets.left() + outsets.right(), outsets.top() + outsets.bottom()); + } + + region.unite(enclosingIntRect(m_layerTransforms.combined.mapRect(rect))); + + if (!m_state.masksToBounds && !m_state.maskLayer) { + if (m_state.replicaLayer) + region.unite(enclosingIntRect(m_state.replicaLayer->m_layerTransforms.combined.mapRect(m_state.replicaLayer->layerRect()))); + + for (auto* child : m_children) + child->computeFlattenedRegion(region, false); + } + + if (shouldExpand && layerIsFlatteningRoot) { + auto bounds = region.bounds(); + auto outsets = m_currentFilters.outsets(); + bounds.move(-outsets.left(), -outsets.top()); + bounds.expand(outsets.left() + outsets.right(), outsets.top() + outsets.bottom()); + region = bounds; + } +} + +void TextureMapperLayer::destroyFlattenedDescendantLayers() +{ + if (m_flattenedLayer) + m_flattenedLayer = nullptr; + + for (auto* child : m_children) + child->destroyFlattenedDescendantLayers(); +} + void TextureMapperLayer::computeTransformsRecursive(ComputeTransformData& data) { if (m_state.size.isEmpty() && m_state.masksToBounds) @@ -101,7 +260,7 @@ m_layerTransforms.combined.translate(-m_state.pos.x(), -m_state.pos.y()); if (!m_state.preserves3D) - m_layerTransforms.combinedForChildren = m_layerTransforms.combinedForChildren.to2dTransform(); + m_layerTransforms.combinedForChildren.flatten(); m_layerTransforms.combinedForChildren.multiply(m_state.childrenTransform); m_layerTransforms.combinedForChildren.translate3d(-originX, -originY, -m_state.anchorPoint.z()); @@ -122,7 +281,7 @@ m_layerTransforms.futureCombined.translate3d(-originX, -originY, -m_state.anchorPoint.z()); if (!m_state.preserves3D) - m_layerTransforms.futureCombinedForChildren = m_layerTransforms.futureCombinedForChildren.to2dTransform(); + m_layerTransforms.futureCombinedForChildren.flatten(); m_layerTransforms.futureCombinedForChildren.multiply(m_state.childrenTransform); m_layerTransforms.futureCombinedForChildren.translate3d(-originX, -originY, -m_state.anchorPoint.z()); #endif @@ -144,23 +303,28 @@ return z / w; }; - data.updateDepthRange(calculateZ(0, 0)); - data.updateDepthRange(calculateZ(m_state.size.width(), 0)); - data.updateDepthRange(calculateZ(0, m_state.size.height())); - data.updateDepthRange(calculateZ(m_state.size.width(), m_state.size.height())); + auto rect = isFlattened() ? m_flattenedLayer->layerRect() : layerRect(); + + data.updateDepthRange(calculateZ(rect.x(), rect.y())); + data.updateDepthRange(calculateZ(rect.x() + rect.width(), rect.y())); + data.updateDepthRange(calculateZ(rect.x(), rect.y() + rect.height())); + data.updateDepthRange(calculateZ(rect.x() + rect.width(), rect.y() + rect.height())); if (m_parent && m_parent->m_state.preserves3D) - m_centerZ = calculateZ(m_state.size.width() / 2, m_state.size.height() / 2); + m_centerZ = calculateZ(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2); - if (m_state.maskLayer) - m_state.maskLayer->computeTransformsRecursive(data); - if (m_state.replicaLayer) - m_state.replicaLayer->computeTransformsRecursive(data); if (m_state.backdropLayer) m_state.backdropLayer->computeTransformsRecursive(data); - for (auto* child : m_children) { - ASSERT(child->m_parent == this); - child->computeTransformsRecursive(data); + + if (!isFlattened()) { + if (m_state.maskLayer) + m_state.maskLayer->computeTransformsRecursive(data); + if (m_state.replicaLayer) + m_state.replicaLayer->computeTransformsRecursive(data); + for (auto* child : m_children) { + ASSERT(child->m_parent == this); + child->computeTransformsRecursive(data); + } } // Reorder children if needed on the way back up. @@ -175,6 +339,8 @@ void TextureMapperLayer::paint(TextureMapper& textureMapper) { + processDescendantLayersFlatteningRequirements(); + ComputeTransformData data; computeTransformsRecursive(data); textureMapper.setDepthRange(data.zNear, data.zFar); @@ -182,6 +348,8 @@ TextureMapperPaintOptions options(textureMapper); options.surface = textureMapper.currentSurface(); paintRecursive(options); + + destroyFlattenedDescendantLayers(); } void TextureMapperLayer::paintSelf(TextureMapperPaintOptions& options) @@ -198,6 +366,11 @@ transform.multiply(options.transform); transform.multiply(m_layerTransforms.combined); + if (isFlattened() && !m_flattenedLayer->needsUpdate()) { + m_flattenedLayer->paintToTextureMapper(options.textureMapper, m_flattenedLayer->layerRect(), transform, options.opacity); + return; + } + TextureMapperSolidColorLayer solidColorLayer; TextureMapperBackingStore* backingStore = m_backingStore; if (m_state.backgroundColor.isValid()) { @@ -298,20 +471,24 @@ }); } +void TextureMapperLayer::paintBackdrop(TextureMapperPaintOptions& options) +{ + TransformationMatrix clipTransform; + clipTransform.translate(options.offset.width(), options.offset.height()); + clipTransform.multiply(options.transform); + clipTransform.multiply(m_layerTransforms.combined); + options.textureMapper.beginClip(clipTransform, m_state.backdropFiltersRect); + m_state.backdropLayer->paintRecursive(options); + options.textureMapper.endClip(); +} + void TextureMapperLayer::paintSelfAndChildren(TextureMapperPaintOptions& options) { if (m_state.backdropLayer && m_state.backdropLayer == options.backdropLayer) return; - if (m_state.backdropLayer && !options.backdropLayer) { - TransformationMatrix clipTransform; - clipTransform.translate(options.offset.width(), options.offset.height()); - clipTransform.multiply(options.transform); - clipTransform.multiply(m_layerTransforms.combined); - options.textureMapper.beginClip(clipTransform, m_state.backdropFiltersRect); - m_state.backdropLayer->paintRecursive(options); - options.textureMapper.endClip(); - } + if (m_state.backdropLayer && !options.backdropLayer) + paintBackdrop(options); paintSelf(options); @@ -340,8 +517,10 @@ } } - for (auto* child : m_children) - child->paintRecursive(options); + if (!isFlattened() || m_flattenedLayer->needsUpdate()) { + for (auto* child : m_children) + child->paintRecursive(options); + } if (shouldClip) options.textureMapper.endClip(); @@ -355,6 +534,16 @@ return m_currentOpacity < 1; } +bool TextureMapperLayer::flattensAsLeafOf3DSceneOr3DPerspective() const +{ + bool isLeafOf3DScene = !m_state.preserves3D && (m_parent && m_parent->preserves3D()); + bool hasPerspective = m_layerTransforms.localTransform.hasPerspective() && m_layerTransforms.localTransform.m34() != -1.f; + if ((isLeafOf3DScene || hasPerspective) && !m_children.isEmpty() && !m_layerTransforms.localTransform.isAffine()) + return true; + + return false; +} + bool TextureMapperLayer::isVisible() const { if (m_state.size.isEmpty() && (m_state.masksToBounds || m_state.maskLayer || m_children.isEmpty())) @@ -576,7 +765,9 @@ return; FloatRect localBoundingRect; - if (m_backingStore || m_state.masksToBounds || m_state.maskLayer || hasFilters()) + if (isFlattened() && !m_isBackdrop) + localBoundingRect = m_flattenedLayer->layerRect(); + else if (m_backingStore || m_state.masksToBounds || m_state.maskLayer || hasFilters()) localBoundingRect = layerRect(); else if (m_contentsLayer || m_state.solidColor.isVisible()) localBoundingRect = m_state.contentsRect; @@ -608,7 +799,7 @@ computeOverlapRegions(data, newReplicaTransform, false); } - if (!m_state.masksToBounds && data.mode != ComputeOverlapRegionMode::Mask) { + if (!m_state.masksToBounds && data.mode != ComputeOverlapRegionMode::Mask && !isFlattened()) { for (auto* child : m_children) child->computeOverlapRegions(data, accumulatedReplicaTransform); } @@ -719,6 +910,7 @@ SetForScope scopedTransform(options.transform, TransformationMatrix()); SetForScope scopedReplicaLayer(options.replicaLayer, nullptr); SetForScope scopedBackdropLayer(options.backdropLayer, this); + rootLayer().paintSelfAndChildren(options); } else paintSelfAndChildren(options); @@ -802,14 +994,40 @@ SetForScope scopedOpacity(options.opacity, options.opacity * m_currentOpacity); - if (m_state.preserves3D) + if (preserves3D()) paintWith3DRenderingContext(options); + else if (isFlattened()) + paintFlattened(options); else if (shouldBlend()) paintUsingOverlapRegions(options); else paintSelfChildrenReplicaFilterAndMask(options); } +void TextureMapperLayer::paintFlattened(TextureMapperPaintOptions& options) +{ + // If painting a backdrop for a flattened layer, processing should stop here. + // Only the elements up to the flattened layer need to be painted into the backdrop buffer. + if (m_state.backdropLayer && m_state.backdropLayer == options.backdropLayer) + return; + + if (m_state.backdropLayer && !options.backdropLayer) + paintBackdrop(options); + + if (m_flattenedLayer->needsUpdate()) { + SetForScope scopedOffset(options.offset, IntSize()); + SetForScope scopedTransform(options.transform, TransformationMatrix()); + SetForScope scopedCombinedTransform(m_layerTransforms.combined, TransformationMatrix()); + SetForScope scopedBackdropLayer(m_state.backdropLayer, nullptr); + + m_flattenedLayer->update(options, [&](TextureMapperPaintOptions& options) { + paintIntoSurface(options); + }); + } + + paintSelf(options); +} + void TextureMapperLayer::paintWith3DRenderingContext(TextureMapperPaintOptions& options) { if (options.preserves3D) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h 2024-08-19 06:28:39.419271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h 2024-10-30 11:47:03.977011200 +0000 @@ -41,6 +41,7 @@ namespace WebCore { class TextureMapper; +class TextureMapperFlattenedLayer; class TextureMapperPaintOptions; class TextureMapperPlatformLayer; @@ -135,11 +136,19 @@ { if (m_effectTarget) return m_effectTarget->rootLayer(); - if (m_parent) + if (m_parent) { + if (m_parent->flattensAsLeafOf3DSceneOr3DPerspective()) + return *m_parent; return m_parent->rootLayer(); + } return const_cast(*this); } + void processDescendantLayersFlatteningRequirements(); + void processFlatteningRequirements(); + void computeFlattenedRegion(Region&, bool); + void destroyFlattenedDescendantLayers(); + struct ComputeTransformData; void computeTransformsRecursive(ComputeTransformData&); @@ -163,6 +172,7 @@ void computeOverlapRegions(ComputeOverlapRegionData&, const TransformationMatrix&, bool includesReplica = true); void paintRecursive(TextureMapperPaintOptions&); + void paintFlattened(TextureMapperPaintOptions&); void paintWith3DRenderingContext(TextureMapperPaintOptions&); void paintSelfChildrenReplicaFilterAndMask(TextureMapperPaintOptions&); void paintUsingOverlapRegions(TextureMapperPaintOptions&); @@ -173,6 +183,7 @@ void paintSelf(TextureMapperPaintOptions&); void paintSelfAndChildren(TextureMapperPaintOptions&); void paintSelfAndChildrenWithReplica(TextureMapperPaintOptions&); + void paintBackdrop(TextureMapperPaintOptions&); void applyMask(TextureMapperPaintOptions&); void recordDamage(const FloatRect&, const TransformationMatrix&, const TextureMapperPaintOptions&); @@ -180,6 +191,11 @@ bool shouldBlend() const; + bool flattensAsLeafOf3DSceneOr3DPerspective() const; + + bool preserves3D() const { return m_state.preserves3D; } + bool isFlattened() const { return !!m_flattenedLayer; } + inline FloatRect layerRect() const { return FloatRect(FloatPoint::zero(), m_state.size); @@ -190,6 +206,7 @@ WeakPtr m_effectTarget; TextureMapperBackingStore* m_backingStore { nullptr }; TextureMapperPlatformLayer* m_contentsLayer { nullptr }; + std::unique_ptr m_flattenedLayer; float m_currentOpacity { 1.0 }; FilterOperations m_currentFilters; float m_centerZ { 0 }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp 2024-08-19 06:28:39.423271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -151,6 +151,9 @@ GLSL_DIRECTIVE(ifdef ENABLE_TextureExternalOES) \ GLSL_DIRECTIVE(extension GL_OES_EGL_image_external : require) \ GLSL_DIRECTIVE(define SamplerExternalOESType samplerExternalOES) \ + STRINGIFY( \ + precision mediump samplerExternalOES;\n \ + ) \ GLSL_DIRECTIVE(else) \ GLSL_DIRECTIVE(define SamplerExternalOESType sampler2D) \ GLSL_DIRECTIVE(endif) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp 2024-08-19 06:28:39.423271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp 2024-09-30 08:15:01.128258500 +0000 @@ -25,6 +25,7 @@ #include "BitmapTexture.h" #include "GraphicsLayer.h" #include "TextureMapper.h" +#include namespace WebCore { @@ -36,10 +37,18 @@ void CoordinatedBackingStoreTile::swapBuffers(TextureMapper& textureMapper) { auto updates = WTFMove(m_updates); - for (auto& update : updates) { + auto updatesCount = updates.size(); + if (!updatesCount) + return; + + WTFBeginSignpost(this, CoordinatedSwapBuffers, "%lu updates", updatesCount); + for (unsigned updateIndex = 0; updateIndex < updates.size(); ++updateIndex) { + auto& update = updates[updateIndex]; if (!update.buffer) continue; + WTFBeginSignpost(this, CoordinatedSwapBuffer, "%u/%lu, rect %ix%i+%i+%i", updateIndex + 1, updatesCount, update.tileRect.x(), update.tileRect.y(), update.tileRect.width(), update.tileRect.height()); + ASSERT(textureMapper.maxTextureSize().width() >= update.tileRect.size().width()); ASSERT(textureMapper.maxTextureSize().height() >= update.tileRect.size().height()); @@ -50,28 +59,40 @@ if (update.buffer->supportsAlpha()) flags.add(BitmapTexture::Flags::SupportsAlpha); + WTFBeginSignpost(this, AcquireTexture); if (!m_texture || unscaledTileRect != rect()) { setRect(unscaledTileRect); m_texture = textureMapper.acquireTextureFromPool(update.tileRect.size(), flags); } else if (update.buffer->supportsAlpha() == m_texture->isOpaque()) m_texture->reset(update.tileRect.size(), flags); + WTFEndSignpost(this, AcquireTexture); + WTFBeginSignpost(this, WaitPaintingCompletion); update.buffer->waitUntilPaintingComplete(); + WTFEndSignpost(this, WaitPaintingCompletion); #if USE(SKIA) if (update.buffer->isBackedByOpenGL()) { + WTFBeginSignpost(this, CopyTextureGPUToGPU); auto& buffer = static_cast(*update.buffer); m_texture->copyFromExternalTexture(buffer.textureID(), update.sourceRect, toIntSize(update.bufferOffset)); update.buffer = nullptr; + WTFEndSignpost(this, CopyTextureGPUToGPU); + WTFEndSignpost(this, CoordinatedSwapBuffer); continue; } #endif + WTFBeginSignpost(this, CopyTextureCPUToGPU); ASSERT(!update.buffer->isBackedByOpenGL()); auto& buffer = static_cast(*update.buffer); m_texture->updateContents(buffer.data(), update.sourceRect, update.bufferOffset, buffer.stride()); update.buffer = nullptr; + WTFEndSignpost(this, CopyTextureCPUToGPU); + + WTFEndSignpost(this, CoordinatedSwapBuffer); } + WTFEndSignpost(this, CoordinatedSwapBuffers); } void CoordinatedBackingStore::createTile(uint32_t id, float scale) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2024-09-16 08:33:15.141029600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -1120,6 +1120,18 @@ return enclosingIntRect(rect); } +IntRect CoordinatedGraphicsLayer::transformedVisibleRectIncludingFuture() +{ + auto visibleRectIncludingFuture = transformedVisibleRect(); + if (m_cachedInverseTransform != m_cachedFutureInverseTransform) { + FloatRect rect = m_cachedFutureInverseTransform.clampedBoundsOfProjectedQuad(FloatQuad(m_coordinator->visibleContentsRect())); + clampToContentsRectIfRectIsInfinite(rect, size()); + visibleRectIncludingFuture.unite(enclosingIntRect(rect)); + } + + return visibleRectIncludingFuture; +} + void CoordinatedGraphicsLayer::requestBackingStoreUpdate() { setNeedsVisibleRectAdjustment(); @@ -1211,7 +1223,7 @@ if (m_pendingVisibleRectAdjustment) { m_pendingVisibleRectAdjustment = false; - layerState.mainBackingStore->createTilesIfNeeded(transformedVisibleRect(), IntRect(0, 0, m_size.width(), m_size.height())); + layerState.mainBackingStore->createTilesIfNeeded(transformedVisibleRectIncludingFuture(), IntRect(0, 0, m_size.width(), m_size.height())); } if (is(m_nicosia.animatedBackingStoreClient)) { @@ -1405,8 +1417,13 @@ m_shouldUpdateVisibleRect = false; TransformationMatrix currentTransform = transform(); - if (m_movingVisibleRect) + TransformationMatrix futureTransform = currentTransform; + if (m_movingVisibleRect) { client().getCurrentTransform(this, currentTransform); + Nicosia::Animation::ApplicationResult futureApplicationResults; + m_animations.apply(futureApplicationResults, MonotonicTime::now() + 50_ms, Nicosia::Animation::KeepInternalState::Yes); + futureTransform = futureApplicationResults.transform.value_or(currentTransform); + } m_layerTransform.setLocalTransform(currentTransform); m_layerTransform.setAnchorPoint(m_adjustedAnchorPoint); @@ -1420,6 +1437,17 @@ m_cachedCombinedTransform = m_layerTransform.combined(); m_cachedInverseTransform = m_cachedCombinedTransform.inverse().value_or(TransformationMatrix()); + m_layerFutureTransform = m_layerTransform; + m_cachedFutureInverseTransform = m_cachedInverseTransform; + + CoordinatedGraphicsLayer* parentLayer = downcast(parent()); + + if (currentTransform != futureTransform || (parentLayer && parentLayer->m_layerTransform.combinedForChildren() != parentLayer->m_layerFutureTransform.combinedForChildren())) { + m_layerFutureTransform.setLocalTransform(futureTransform); + m_layerFutureTransform.combineTransforms(parentLayer ? parentLayer->m_layerFutureTransform.combinedForChildren() : TransformationMatrix()); + m_cachedFutureInverseTransform = m_layerFutureTransform.combined().inverse().value_or(TransformationMatrix()); + } + // The combined transform will be used in tiledBackingStoreVisibleRect. setNeedsVisibleRectAdjustment(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 2024-08-19 06:28:39.423271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h 2024-10-21 09:00:02.711246500 +0000 @@ -149,6 +149,7 @@ void computePixelAlignment(FloatPoint& position, FloatSize&, FloatPoint3D& anchorPoint, FloatSize& alignmentOffset); IntRect transformedVisibleRect(); + IntRect transformedVisibleRectIncludingFuture(); void invalidateCoordinator(); void setCoordinatorIncludingSubLayersIfNeeded(CoordinatedGraphicsLayerClient*); @@ -235,7 +236,9 @@ Nicosia::PlatformLayer::LayerID m_id; GraphicsLayerTransform m_layerTransform; + GraphicsLayerTransform m_layerFutureTransform; TransformationMatrix m_cachedInverseTransform; + TransformationMatrix m_cachedFutureInverseTransform; TransformationMatrix m_cachedCombinedTransform; FloatSize m_pixelAlignmentOffset; FloatSize m_adjustedSize; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp 2024-09-16 08:33:15.141029600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -103,7 +103,7 @@ auto recordingContext = makeUnique(tileRect.size()); paintIntoGraphicsContext(recordingContext->context()); - workerPool->postTask([buffer = Ref { buffer }, recordingContext = WTFMove(recordingContext), tileRect] { + workerPool->postTask([buffer = Ref { buffer }, recordingContext = WTFMove(recordingContext), tileRect] mutable { RELEASE_ASSERT(buffer->surface()); if (auto* canvas = buffer->surface()->getCanvas()) { WTFBeginSignpost(canvas, PaintTile, "Skia unaccelerated multithread, dirty region %ix%i+%i+%i", tileRect.x(), tileRect.y(), tileRect.width(), tileRect.height()); @@ -114,6 +114,11 @@ WTFEndSignpost(canvas, PaintTile); } buffer->completePainting(); + + // Destruct display list on main thread. + ensureOnMainThread([recordingContext = WTFMove(recordingContext)]() mutable { + recordingContext = nullptr; + }); }); WTFEndSignpost(this, RecordTile); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp webkit2gtk-2.46.3/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp 2024-08-19 06:28:39.423271000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/graphics/transforms/RotateTransformOperation.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -77,8 +77,9 @@ // angle is used or (0, 0, 1) if both angles are zero. auto normalizedVector = [](const RotateTransformOperation& op) -> FloatPoint3D { - auto length = std::hypot(op.m_x, op.m_y, op.m_z); - return { static_cast(op.m_x / length), static_cast(op.m_y / length), static_cast(op.m_z / length) }; + if (auto length = std::hypot(op.m_x, op.m_y, op.m_z)) + return { static_cast(op.m_x / length), static_cast(op.m_y / length), static_cast(op.m_z / length) }; + return { }; }; double fromAngle = fromOp ? fromOp->m_angle : 0.0; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -75,10 +75,11 @@ static std::pair, GRefPtr> h264CapsFromCodecString(const String& codecString) { auto outputCaps = adoptGRef(gst_caps_new_empty_simple("video/x-h264")); - // FIXME: Set level on caps too? - auto [gstProfile, _] = GStreamerCodecUtilities::parseH264ProfileAndLevel(codecString); + auto [gstProfile, level] = GStreamerCodecUtilities::parseH264ProfileAndLevel(codecString); if (gstProfile) gst_caps_set_simple(outputCaps.get(), "profile", G_TYPE_STRING, gstProfile, nullptr); + if (level) + gst_caps_set_simple(outputCaps.get(), "level", G_TYPE_STRING, level, nullptr); StringBuilder formatBuilder; auto profile = StringView::fromLatin1(gstProfile); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -111,7 +111,7 @@ if (hasSometimesSrcPad) { GST_DEBUG_OBJECT(m_element.get(), "Expecting output buffers on sometimes src pad(s)."); - g_signal_connect(m_element.get(), "pad-added", reinterpret_cast(+[](GstElement* element, GstPad* pad, gpointer userData) { + g_signal_connect(m_element.get(), "pad-added", reinterpret_cast(+[]([[maybe_unused]] GstElement* element, GstPad* pad, gpointer userData) { GST_DEBUG_OBJECT(element, "Pad added: %" GST_PTR_FORMAT, pad); auto& harness = *reinterpret_cast(userData); RefPtr downstreamHarness; @@ -128,7 +128,7 @@ harness.dumpGraph("pad-added"_s); }), this); - g_signal_connect(m_element.get(), "pad-removed", reinterpret_cast(+[](GstElement* element, GstPad* pad, gpointer userData) { + g_signal_connect(m_element.get(), "pad-removed", reinterpret_cast(+[]([[maybe_unused]] GstElement* element, GstPad* pad, gpointer userData) { GST_DEBUG_OBJECT(element, "Pad removed: %" GST_PTR_FORMAT, pad); auto& harness = *reinterpret_cast(userData); harness.m_outputStreams.removeAllMatching([pad = GRefPtr(pad)](auto& item) -> bool { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.h 2024-09-30 08:15:01.132258400 +0000 @@ -28,7 +28,7 @@ class GStreamerHolePunchQuirkBcmNexus final : public GStreamerHolePunchQuirk { public: - const char* identifier() final { return "BcmNexusHolePunch"; } + const ASCIILiteral identifier() const final { return "BcmNexusHolePunch"_s; } // NOTE: We don't override createHolePunchVideoSink here because autovideosink takes care of // auto-plugging the right sink. diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkFake.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkFake.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkFake.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkFake.h 2024-09-30 08:15:01.132258400 +0000 @@ -29,7 +29,7 @@ class GStreamerHolePunchQuirkFake final : public GStreamerHolePunchQuirk { public: - const char* identifier() final { return "FakeHolePunch"; } + const ASCIILiteral identifier() const final { return "FakeHolePunch"_s; } GstElement* createHolePunchVideoSink(bool, const MediaPlayer*) final { return makeGStreamerElement("fakevideosink", nullptr); } bool setHolePunchVideoRectangle(GstElement*, const IntRect&) final { return true; } }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkRialto.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkRialto.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkRialto.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkRialto.h 2024-09-30 08:15:01.132258400 +0000 @@ -33,7 +33,7 @@ class GStreamerHolePunchQuirkRialto final : public GStreamerHolePunchQuirk { public: - const char* identifier() final { return "RialtoHolePunch"; } + const ASCIILiteral identifier() const final { return "RialtoHolePunch"_s; } GstElement* createHolePunchVideoSink(bool, const MediaPlayer*) final; bool setHolePunchVideoRectangle(GstElement*, const IntRect&) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.h 2024-09-30 08:15:01.132258400 +0000 @@ -28,7 +28,7 @@ class GStreamerHolePunchQuirkWesteros final : public GStreamerHolePunchQuirk { public: - const char* identifier() final { return "WesterosHolePunch"; } + const ASCIILiteral identifier() const final { return "WesterosHolePunch"_s; } GstElement* createHolePunchVideoSink(bool, const MediaPlayer*) final; bool setHolePunchVideoRectangle(GstElement*, const IntRect&) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h 2024-09-30 08:15:01.132258400 +0000 @@ -29,7 +29,7 @@ class GStreamerQuirkAmLogic final : public GStreamerQuirk { public: GStreamerQuirkAmLogic(); - const char* identifier() final { return "AmLogic"; } + const ASCIILiteral identifier() const final { return "AmLogic"_s; } GstElement* createWebAudioSink() final; void configureElement(GstElement*, const OptionSet&) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h 2024-09-30 08:15:01.132258400 +0000 @@ -22,14 +22,15 @@ #if USE(GSTREAMER) +#include "GStreamerQuirkBroadcomBase.h" #include "GStreamerQuirks.h" namespace WebCore { -class GStreamerQuirkBcmNexus final : public GStreamerQuirk { +class GStreamerQuirkBcmNexus final : public GStreamerQuirkBroadcomBase { public: GStreamerQuirkBcmNexus(); - const char* identifier() final { return "BcmNexus"; } + const ASCIILiteral identifier() const final { return "BcmNexus"_s; } std::optional isHardwareAccelerated(GstElementFactory*) final; std::optional audioVideoDecoderFactoryListType() const final { return GST_ELEMENT_FACTORY_TYPE_PARSER; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h 2024-09-30 08:15:01.132258400 +0000 @@ -23,14 +23,15 @@ #if USE(GSTREAMER) #include "GStreamerCommon.h" +#include "GStreamerQuirkBroadcomBase.h" #include "GStreamerQuirks.h" namespace WebCore { -class GStreamerQuirkBroadcom final : public GStreamerQuirk { +class GStreamerQuirkBroadcom final : public GStreamerQuirkBroadcomBase { public: GStreamerQuirkBroadcom(); - const char* identifier() final { return "Broadcom"; } + const ASCIILiteral identifier() const final { return "Broadcom"_s; } void configureElement(GstElement*, const OptionSet&) final; std::optional isHardwareAccelerated(GstElementFactory*) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.cpp webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.cpp 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -0,0 +1,192 @@ +/* + * Copyright (C) 2024 Igalia S.L + * Copyright (C) 2024 Metrological Group B.V. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * aint with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "config.h" +#include "GStreamerQuirkBroadcomBase.h" + +#include + +#if USE(GSTREAMER) + +#include "GStreamerCommon.h" + +namespace WebCore { + +GST_DEBUG_CATEGORY_STATIC(webkit_broadcom_base_quirks_debug); +#define GST_CAT_DEFAULT webkit_broadcom_base_quirks_debug + +GStreamerQuirkBroadcomBase::GStreamerQuirkBroadcomBase() +{ + GST_DEBUG_CATEGORY_INIT(webkit_broadcom_base_quirks_debug, "webkitquirksbroadcombase", 0, "WebKit Broadcom Base Quirks"); +} + +ASCIILiteral GStreamerQuirkBroadcomBase::queryBufferingPercentage(MediaPlayerPrivateGStreamer* playerPrivate, const GRefPtr& query) const +{ + auto& state = ensureState(playerPrivate); + + if (playerPrivate->shouldDownload() || !state.m_queue2 + || !gst_element_query(state.m_queue2.get(), query.get())) + return nullptr; + return "queue2"_s; +} + +int GStreamerQuirkBroadcomBase::correctBufferingPercentage(MediaPlayerPrivateGStreamer* playerPrivate, int originalBufferingPercentage, GstBufferingMode mode) const +{ + auto& state = ensureState(playerPrivate); + + // The Nexus playpump buffers a lot of data. Let's add it as if it had been buffered by the GstQueue2 + // (only when using in-memory buffering), so we get more realistic percentages. + if (mode != GST_BUFFERING_STREAM || !(state.m_vidfilter || state.m_audfilter)) + return originalBufferingPercentage; + + // The Nexus playpump buffers a lot of data. Let's add it as if it had been buffered by the GstQueue2 + // (only when using in-memory buffering), so we get more realistic percentages. + int correctedBufferingPercentage1 = originalBufferingPercentage; + int correctedBufferingPercentage2 = originalBufferingPercentage; + unsigned maxSizeBytes = 0; + + // We don't trust the buffering percentage when it's 0, better rely on current-level-bytes and compute a new buffer level accordingly. + g_object_get(state.m_queue2.get(), "max-size-bytes", &maxSizeBytes, nullptr); + if (!originalBufferingPercentage && state.m_queue2) { + unsigned currentLevelBytes = 0; + g_object_get(state.m_queue2.get(), "current-level-bytes", ¤tLevelBytes, nullptr); + correctedBufferingPercentage1 = currentLevelBytes > maxSizeBytes ? 100 : static_cast(currentLevelBytes * 100 / maxSizeBytes); + } + + unsigned playpumpBufferedBytes = 0; + + // We believe that the playpump stats are common for audio and video, so only asking the vidfilter or the audfilter + // would be enough. Both of them expose the buffered_bytes property (yes, with an underscore!). + GstElement* filter = state.m_vidfilter ? state.m_vidfilter.get() : state.m_audfilter.get(); + if (filter) + g_object_get(GST_OBJECT(filter), "buffered_bytes", &playpumpBufferedBytes, nullptr); + + unsigned multiqueueBufferedBytes = 0; + if (state.m_multiqueue) { + GUniqueOutPtr stats; + g_object_get(state.m_multiqueue.get(), "stats", &stats.outPtr(), nullptr); + for (const auto& queue : gstStructureGetArray(stats.get(), "queues"_s)) + multiqueueBufferedBytes += gstStructureGet(queue, "bytes"_s).value_or(0); + } + + // Current-level-bytes seems to be inacurate, so we compute its value from the buffering percentage. + size_t currentLevelBytes = static_cast(maxSizeBytes) * static_cast(originalBufferingPercentage) / static_cast(100) + + static_cast(playpumpBufferedBytes) + static_cast(multiqueueBufferedBytes); + correctedBufferingPercentage2 = currentLevelBytes > maxSizeBytes ? 100 : static_cast(currentLevelBytes * 100 / maxSizeBytes); + + if (correctedBufferingPercentage2 >= 100) + state.m_streamBufferingLevelMovingAverage.reset(100); + int averagedBufferingPercentage = state.m_streamBufferingLevelMovingAverage.accumulate(correctedBufferingPercentage2); + + const char* extraElements = state.m_multiqueue ? "playpump and multiqueue" : "playpump"; + if (!originalBufferingPercentage) { + GST_DEBUG("[Buffering] Buffering: mode: GST_BUFFERING_STREAM, status: %d%% (corrected to %d%% with current-level-bytes, " + "to %d%% with %s content, and to %d%% with moving average).", originalBufferingPercentage, correctedBufferingPercentage1, + correctedBufferingPercentage2, extraElements, averagedBufferingPercentage); + } else { + GST_DEBUG("[Buffering] Buffering: mode: GST_BUFFERING_STREAM, status: %d%% (corrected to %d%% with %s content and " + "to %d%% with moving average).", originalBufferingPercentage, correctedBufferingPercentage2, extraElements, + averagedBufferingPercentage); + } + + return averagedBufferingPercentage; +} + +void GStreamerQuirkBroadcomBase::resetBufferingPercentage(MediaPlayerPrivateGStreamer* playerPrivate, int bufferingPercentage) const +{ + auto& state = ensureState(playerPrivate); + state.m_streamBufferingLevelMovingAverage.reset(bufferingPercentage); +} + +void GStreamerQuirkBroadcomBase::setupBufferingPercentageCorrection(MediaPlayerPrivateGStreamer* playerPrivate, GstState currentState, GstState newState, GRefPtr&& element) const +{ + auto& state = ensureState(playerPrivate); + + // This code must support being run from different GStreamerQuirkBroadcomBase subclasses without breaking. Only the + // first subclass instance should run. + + if (currentState == GST_STATE_NULL && newState == GST_STATE_READY) { + bool alsoGetMultiqueue = false; + if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstBrcmVidFilter")) { + state.m_vidfilter = element; + alsoGetMultiqueue = true; + } else if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstBrcmAudFilter")) { + state.m_audfilter = element; + alsoGetMultiqueue = true; + } else if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstQueue2")) + state.m_queue2 = element; + + // Might have been already retrieved by vidfilter or audfilter, whichever appeared first. + if (alsoGetMultiqueue && !state.m_multiqueue) { + // Also get the multiqueue (if there's one) attached to the vidfilter/aacparse+audfilter. + // We'll need it later to correct the buffering level. + for (auto* sinkPad : GstIteratorAdaptor(GUniquePtr(gst_element_iterate_sink_pads(element.get())))) { + GRefPtr peerSrcPad = adoptGRef(gst_pad_get_peer(sinkPad)); + if (!peerSrcPad) + continue; // And end the loop, because there's only one srcpad. + GRefPtr peerElement = adoptGRef(GST_ELEMENT(gst_pad_get_parent(peerSrcPad.get()))); + + // If it's NOT a multiqueue, it's probably a parser like aacparse. We try to traverse before it. + if (peerElement && g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstMultiQueue")) { + for (auto* peerElementSinkPad : GstIteratorAdaptor(GUniquePtr(gst_element_iterate_sink_pads(peerElement.get())))) { + peerSrcPad = adoptGRef(gst_pad_get_peer(peerElementSinkPad)); + if (!peerSrcPad) + continue; // And end the loop. + // Now we hopefully have peerElement pointing to the multiqueue. + peerElement = adoptGRef(GST_ELEMENT(gst_pad_get_parent(peerSrcPad.get()))); + break; + } + } + + // The multiqueue reference is useless if we can't access its stats (on older GStreamer versions). + if (peerElement && !g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstMultiQueue") + && gstObjectHasProperty(peerElement.get(), "stats")) + state.m_multiqueue = peerElement; + break; + } + } + } else if (currentState == GST_STATE_READY && newState == GST_STATE_NULL) { + if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstBrcmVidFilter")) + state.m_vidfilter = nullptr; + else if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstBrcmAudFilter")) + state.m_audfilter = nullptr; + else if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstMultiQueue") && element == state.m_multiqueue.get()) + state.m_multiqueue = nullptr; + else if (!g_strcmp0(G_OBJECT_TYPE_NAME(element.get()), "GstQueue2")) + state.m_queue2 = nullptr; + } +} + +GStreamerQuirkBroadcomBase::GStreamerQuirkBroadcomBaseState& GStreamerQuirkBroadcomBase::ensureState(MediaPlayerPrivateGStreamer* playerPrivate) const +{ + GStreamerQuirkBase::GStreamerQuirkState* state = playerPrivate->quirkState(this); + if (!state) { + GST_DEBUG("%s %p setting up quirk state on MediaPlayerPrivate %p", identifier().characters(), this, playerPrivate); + playerPrivate->setQuirkState(this, makeUnique()); + state = playerPrivate->quirkState(this); + } + return reinterpret_cast(*state); +} + +#undef GST_CAT_DEFAULT + +} // namespace WebCore + +#endif // USE(GSTREAMER) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h 1970-01-01 00:00:00.000000000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h 2024-09-30 08:15:01.132258400 +0000 @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2024 Igalia S.L + * Copyright (C) 2024 Metrological Group B.V. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * aint with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#pragma once + +#if USE(GSTREAMER) + +#include "GStreamerCommon.h" +#include "GStreamerQuirks.h" +#include "MediaPlayerPrivateGStreamer.h" +#include + +namespace WebCore { + +class GStreamerQuirkBroadcomBase : public GStreamerQuirk { +public: + GStreamerQuirkBroadcomBase(); + + bool needsBufferingPercentageCorrection() const { return true; } + ASCIILiteral queryBufferingPercentage(MediaPlayerPrivateGStreamer*, const GRefPtr&) const; + int correctBufferingPercentage(MediaPlayerPrivateGStreamer*, int originalBufferingPercentage, GstBufferingMode) const; + void resetBufferingPercentage(MediaPlayerPrivateGStreamer*, int bufferingPercentage) const; + void setupBufferingPercentageCorrection(MediaPlayerPrivateGStreamer*, GstState currentState, GstState newState, GRefPtr&&) const; + +protected: + class MovingAverage { + public: + MovingAverage(size_t length) + : m_values(length) + { + // Ensure that the sum in accumulate() can't ever overflow, considering that the highest value + // for stored percentages is 100. + ASSERT(length < INT_MAX / 100); + } + + void reset(int value) + { + ASSERT(value <= 100); + for (size_t i = 0; i < m_values.size(); i++) + m_values[i] = value; + } + + int accumulate(int value) + { + ASSERT(value <= 100); + int sum = 0; + for (size_t i = 1; i < m_values.size(); i++) { + m_values[i - 1] = m_values[i]; + sum += m_values[i - 1]; + } + m_values[m_values.size() - 1] = value; + sum += value; + return sum / m_values.size(); + } + private: + Vector m_values; + }; + + using GStreamerQuirkBase::GStreamerQuirkState; + + class GStreamerQuirkBroadcomBaseState : public GStreamerQuirkState { + public: + GStreamerQuirkBroadcomBaseState() = default; + virtual ~GStreamerQuirkBroadcomBaseState() = default; + + GRefPtr m_audfilter; + GRefPtr m_vidfilter; + GRefPtr m_multiqueue; + GRefPtr m_queue2; + MovingAverage m_streamBufferingLevelMovingAverage { 10 }; + }; + + virtual GStreamerQuirkBroadcomBaseState& ensureState(MediaPlayerPrivateGStreamer*) const; +}; + +} // namespace WebCore + +#endif // USE(GSTREAMER) diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h 2024-09-30 08:15:01.132258400 +0000 @@ -29,7 +29,7 @@ class GStreamerQuirkRealtek final : public GStreamerQuirk { public: GStreamerQuirkRealtek(); - const char* identifier() final { return "Realtek"; } + const ASCIILiteral identifier() const final { return "Realtek"_s; } GstElement* createWebAudioSink() final; void configureElement(GstElement*, const OptionSet&) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkRialto.h 2024-09-30 08:15:01.132258400 +0000 @@ -34,7 +34,7 @@ class GStreamerQuirkRialto final : public GStreamerQuirk { public: GStreamerQuirkRialto(); - const char* identifier() final { return "Rialto"; } + const ASCIILiteral identifier() const final { return "Rialto"_s; } void configureElement(GstElement*, const OptionSet&) final; GstElement* createAudioSink() final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.h 2024-09-30 08:15:01.132258400 +0000 @@ -29,7 +29,7 @@ class GStreamerQuirkWesteros final : public GStreamerQuirk { public: GStreamerQuirkWesteros(); - const char* identifier() final { return "Westeros"; } + const ASCIILiteral identifier() const final { return "Westeros"_s; } void configureElement(GstElement*, const OptionSet&) final; std::optional isHardwareAccelerated(GstElementFactory*) final; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -96,7 +96,7 @@ } if (!quirk->isPlatformSupported()) { - GST_WARNING("Quirk %s was requested but is not supported on this platform. Skipping", quirk->identifier()); + GST_WARNING("Quirk %s was requested but is not supported on this platform. Skipping", quirk->identifier().characters()); continue; } m_quirks.append(WTFMove(quirk)); @@ -137,7 +137,7 @@ for (const auto& quirk : m_quirks) { auto* sink = quirk->createAudioSink(); if (sink) { - GST_DEBUG("Using AudioSink from quirk %s : %" GST_PTR_FORMAT, quirk->identifier(), sink); + GST_DEBUG("Using AudioSink from quirk %s : %" GST_PTR_FORMAT, quirk->identifier().characters(), sink); return sink; } } @@ -152,7 +152,7 @@ if (!sink) continue; - GST_DEBUG("Using WebAudioSink from quirk %s : %" GST_PTR_FORMAT, quirk->identifier(), sink); + GST_DEBUG("Using WebAudioSink from quirk %s : %" GST_PTR_FORMAT, quirk->identifier().characters(), sink); return sink; } @@ -167,7 +167,7 @@ return nullptr; } auto sink = m_holePunchQuirk->createHolePunchVideoSink(isLegacyPlaybin, player); - GST_DEBUG("Using HolePunchSink from quirk %s : %" GST_PTR_FORMAT, m_holePunchQuirk->identifier(), sink); + GST_DEBUG("Using HolePunchSink from quirk %s : %" GST_PTR_FORMAT, m_holePunchQuirk->identifier().characters(), sink); return sink; } @@ -204,7 +204,7 @@ if (!result) continue; - GST_DEBUG("Setting %" GST_PTR_FORMAT " as %s accelerated from quirk %s", factory, quirk->identifier(), *result ? "hardware" : "software"); + GST_DEBUG("Setting %" GST_PTR_FORMAT " as %s accelerated from quirk %s", factory, quirk->identifier().characters(), *result ? "hardware" : "software"); return *result; } @@ -223,7 +223,7 @@ if (!result) continue; - GST_DEBUG("Quirk %s requests audio/video decoder factory list override to %" G_GUINT32_FORMAT, quirk->identifier(), static_cast(*result)); + GST_DEBUG("Quirk %s requests audio/video decoder factory list override to %" G_GUINT32_FORMAT, quirk->identifier().characters(), static_cast(*result)); return *result; } @@ -252,7 +252,7 @@ unsigned flags = 0; for (const auto& quirk : m_quirks) { auto quirkFlags = quirk->getAdditionalPlaybinFlags(); - GST_DEBUG("Quirk %s requests these playbin flags: %u", quirk->identifier(), quirkFlags); + GST_DEBUG("Quirk %s requests these playbin flags: %u", quirk->identifier().characters(), quirkFlags); flags |= quirkFlags; } @@ -274,6 +274,64 @@ return true; } +bool GStreamerQuirksManager::needsBufferingPercentageCorrection() const +{ + for (auto& quirk : m_quirks) { + if (quirk->needsBufferingPercentageCorrection()) + return true; + } + return false; +} + +ASCIILiteral GStreamerQuirksManager::queryBufferingPercentage(MediaPlayerPrivateGStreamer* mediaPlayerPrivate, const GRefPtr& query) const +{ + // Only the first quirk that needs percentage correction must operate. We're assuming that the m_quirks Vector + // preserves its order among calls to the percentage correction family of methods. + for (auto& quirk : m_quirks) { + if (quirk->needsBufferingPercentageCorrection()) + return quirk->queryBufferingPercentage(mediaPlayerPrivate, query); + } + return nullptr; +} + +int GStreamerQuirksManager::correctBufferingPercentage(MediaPlayerPrivateGStreamer* playerPrivate, int originalBufferingPercentage, GstBufferingMode mode) const +{ + // Only the first quirk that needs percentage correction must operate. We're assuming that the m_quirks Vector + // preserves its order among calls to the percentage correction family of methods. + for (auto& quirk : m_quirks) { + if (quirk->needsBufferingPercentageCorrection()) + return quirk->correctBufferingPercentage(playerPrivate, originalBufferingPercentage, mode); + } + return originalBufferingPercentage; +} + +void GStreamerQuirksManager::resetBufferingPercentage(MediaPlayerPrivateGStreamer* playerPrivate, int bufferingPercentage) const +{ + // Only the first quirk that needs percentage correction must operate. We're assuming that the m_quirks Vector + // preserves its order among calls to the percentage correction family of methods. + for (auto& quirk : m_quirks) { + if (quirk->needsBufferingPercentageCorrection()) { + quirk->resetBufferingPercentage(playerPrivate, bufferingPercentage); + return; + } + } +} + +void GStreamerQuirksManager::setupBufferingPercentageCorrection(MediaPlayerPrivateGStreamer* playerPrivate, GstState currentState, GstState newState, GRefPtr&& element) const +{ + // Only the first quirk that needs percentage correction must operate. We're assuming that the m_quirks Vector + // preserves its order among calls to the percentage correction family of methods. + for (auto& quirk : m_quirks) { + if (quirk->needsBufferingPercentageCorrection()) { + // We're moving the element to the inner method. If this loop ever needs to call the method twice, + // think about a solution to avoid passing a dummy element (after first move) to the method the second + // time it's called. + quirk->setupBufferingPercentageCorrection(playerPrivate, currentState, newState, WTFMove(element)); + return; + } + } +} + #undef GST_CAT_DEFAULT } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirks.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirks.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/GStreamerQuirks.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/GStreamerQuirks.h 2024-09-30 08:15:01.132258400 +0000 @@ -25,11 +25,15 @@ #include "GStreamerCommon.h" #include "MediaPlayer.h" #include +#include +#include #include #include namespace WebCore { +class MediaPlayerPrivateGStreamer; + enum class ElementRuntimeCharacteristics : uint8_t { IsMediaStream = 1 << 0, HasVideo = 1 << 1, @@ -44,7 +48,20 @@ GStreamerQuirkBase() = default; virtual ~GStreamerQuirkBase() = default; - virtual const char* identifier() = 0; + virtual const ASCIILiteral identifier() const = 0; + + // Interface of classes supplied to MediaPlayerPrivateGStreamer to store values that the quirks will need for their job. + class GStreamerQuirkState { + WTF_MAKE_FAST_ALLOCATED; + // Prevent accidental https://en.wikipedia.org/wiki/Object_slicing. + WTF_MAKE_NONCOPYABLE(GStreamerQuirkState); + WTF_MAKE_NONMOVABLE(GStreamerQuirkState); + public: + GStreamerQuirkState() + { + } + virtual ~GStreamerQuirkState() = default; + }; }; class GStreamerQuirk : public GStreamerQuirkBase { @@ -62,6 +79,13 @@ virtual Vector disallowedWebAudioDecoders() const { return { }; } virtual unsigned getAdditionalPlaybinFlags() const { return 0; } virtual bool shouldParseIncomingLibWebRTCBitStream() const { return true; } + + virtual bool needsBufferingPercentageCorrection() const { return false; } + // Returns name of the queried GstElement, or nullptr if no element was queried. + virtual ASCIILiteral queryBufferingPercentage(MediaPlayerPrivateGStreamer*, const GRefPtr&) const { return nullptr; } + virtual int correctBufferingPercentage(MediaPlayerPrivateGStreamer*, int originalBufferingPercentage, GstBufferingMode) const { return originalBufferingPercentage; } + virtual void resetBufferingPercentage(MediaPlayerPrivateGStreamer*, int) const { }; + virtual void setupBufferingPercentageCorrection(MediaPlayerPrivateGStreamer*, GstState, GstState, GRefPtr&&) const { } }; class GStreamerHolePunchQuirk : public GStreamerQuirkBase { @@ -107,6 +131,13 @@ bool shouldParseIncomingLibWebRTCBitStream() const; + bool needsBufferingPercentageCorrection() const; + // Returns name of the queried GstElement, or nullptr if no element was queried. + ASCIILiteral queryBufferingPercentage(MediaPlayerPrivateGStreamer*, const GRefPtr&) const; + int correctBufferingPercentage(MediaPlayerPrivateGStreamer*, int originalBufferingPercentage, GstBufferingMode) const; + void resetBufferingPercentage(MediaPlayerPrivateGStreamer*, int bufferingPercentage) const; + void setupBufferingPercentageCorrection(MediaPlayerPrivateGStreamer*, GstState currentState, GstState newState, GRefPtr&&) const; + private: GStreamerQuirksManager(bool, bool); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp 2024-09-16 08:59:49.613916900 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -451,7 +451,7 @@ return true; } -EncoderId videoEncoderFindForFormat(WebKitVideoEncoder* self, const GRefPtr& caps) +EncoderId videoEncoderFindForFormat([[maybe_unused]] WebKitVideoEncoder* self, const GRefPtr& caps) { if (!caps) return None; @@ -662,7 +662,7 @@ gst_element_class_set_static_metadata(elementClass, "WebKit video encoder", "Codec/Encoder/Video", "Encodes video for streaming", "Igalia"); gst_element_class_add_pad_template(elementClass, gst_static_pad_template_get(&sinkTemplate)); - Encoders::registerEncoder(OmxH264, "omxh264enc"_s, "h264parse"_s, "video/x-h264"_s, "video/x-h264,alignment=au,stream-format=byte-stream,profile=baseline"_s, + Encoders::registerEncoder(OmxH264, "omxh264enc"_s, "h264parse"_s, "video/x-h264"_s, "video/x-h264,alignment=au,stream-format=avc,profile=baseline"_s, [](WebKitVideoEncoder* self) { g_object_set(self->priv->parser.get(), "config-interval", 1, nullptr); }, "target-bitrate"_s, setBitrateBitPerSec, "interval-intraframes"_s, [](GstElement* encoder, BitrateMode mode) { @@ -678,10 +678,21 @@ notImplemented(); }); Encoders::registerEncoder(X264, "x264enc"_s, "h264parse"_s, "video/x-h264"_s, - "video/x-h264,alignment=au,stream-format=byte-stream"_s, + "video/x-h264,alignment=au,stream-format=avc"_s, [](WebKitVideoEncoder* self) { g_object_set(self->priv->encoder.get(), "key-int-max", 15, "threads", NUMBER_OF_THREADS, "b-adapt", FALSE, "vbv-buf-capacity", 120, nullptr); g_object_set(self->priv->parser.get(), "config-interval", 1, nullptr); + + const auto& encodedCaps = self->priv->encodedCaps; + if (LIKELY(!gst_caps_is_any(encodedCaps.get()) && !gst_caps_is_empty(encodedCaps.get()))) { + auto structure = gst_caps_get_structure(encodedCaps.get(), 0); + auto profile = gstStructureGetString(structure, "profile"_s); + + if (profile == "high"_s) + gst_preset_load_preset(GST_PRESET(self->priv->encoder.get()), "Profile High"); + else if (profile == "main"_s) + gst_preset_load_preset(GST_PRESET(self->priv->encoder.get()), "Profile Main"); + } }, "bitrate"_s, setBitrateKbitPerSec, "key-int-max"_s, [](GstElement* encoder, BitrateMode mode) { switch (mode) { case CONSTANT_BITRATE_MODE: @@ -705,7 +716,7 @@ }; }); Encoders::registerEncoder(OpenH264, "openh264enc"_s, "h264parse"_s, "video/x-h264"_s, - "video/x-h264,alignment=au,stream-format=byte-stream"_s, + "video/x-h264,alignment=au,stream-format=avc"_s, [](WebKitVideoEncoder* self) { g_object_set(self->priv->parser.get(), "config-interval", 1, nullptr); g_object_set(self->priv->outputCapsFilter.get(), "caps", self->priv->encodedCaps.get(), nullptr); @@ -759,7 +770,7 @@ g_value_init(&intValue, G_TYPE_INT); switch (bitRateAllocation.scalabilityMode()) { - case VideoEncoder::ScalabilityMode::L1T1: + case WebCore::VideoEncoderScalabilityMode::L1T1: numberLayers = 1; scalabilityString = "L1T1"_s; if (auto value = bitRateAllocation.getBitRate(0, 0)) { @@ -772,7 +783,7 @@ g_value_array_append(decimators.get(), &intValue); } break; - case VideoEncoder::ScalabilityMode::L1T2: + case WebCore::VideoEncoderScalabilityMode::L1T2: numberLayers = 2; scalabilityString = "L1T2"_s; if (auto value = bitRateAllocation.getBitRate(0, 1)) { @@ -805,7 +816,7 @@ "no-upd-last+no-upd-alt>"_s; layerSyncFlags = { false, true, false, false }; break; - case VideoEncoder::ScalabilityMode::L1T3: + case WebCore::VideoEncoderScalabilityMode::L1T3: numberLayers = 3; scalabilityString = "L1T3"_s; if (auto value = bitRateAllocation.getBitRate(0, 2)) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h 2024-08-19 06:28:39.427270700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h 2024-10-21 09:00:02.711246500 +0000 @@ -21,7 +21,7 @@ #pragma once #include "GStreamerCommon.h" -#include "VideoEncoder.h" +#include "VideoEncoderScalabilityMode.h" #include #define WEBKIT_TYPE_VIDEO_ENCODER (webkit_video_encoder_get_type()) @@ -51,7 +51,7 @@ WTF_MAKE_FAST_ALLOCATED; public: - static Ref create(WebCore::VideoEncoder::ScalabilityMode scalabilityMode) + static Ref create(WebCore::VideoEncoderScalabilityMode scalabilityMode) { return adoptRef(*new WebKitVideoEncoderBitRateAllocation(scalabilityMode)); } @@ -75,14 +75,14 @@ return m_bitRates[spatialLayerIndex][temporalLayerIndex]; } - WebCore::VideoEncoder::ScalabilityMode scalabilityMode() const { return m_scalabilityMode; } + WebCore::VideoEncoderScalabilityMode scalabilityMode() const { return m_scalabilityMode; } private: - WebKitVideoEncoderBitRateAllocation(WebCore::VideoEncoder::ScalabilityMode scalabilityMode) + WebKitVideoEncoderBitRateAllocation(WebCore::VideoEncoderScalabilityMode scalabilityMode) : m_scalabilityMode(scalabilityMode) { } - WebCore::VideoEncoder::ScalabilityMode m_scalabilityMode; + WebCore::VideoEncoderScalabilityMode m_scalabilityMode; std::optional m_bitRates[MaxSpatialLayers][MaxTemporalLayers]; }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -368,7 +368,7 @@ }), this); m_signalAdapter = adoptGRef(gst_transcoder_get_sync_signal_adapter(m_transcoder.get())); - g_signal_connect(m_signalAdapter.get(), "warning", G_CALLBACK(+[](GstTranscoder*, GError* error, GstStructure* details) { + g_signal_connect(m_signalAdapter.get(), "warning", G_CALLBACK(+[](GstTranscoder*, [[maybe_unused]] GError* error, [[maybe_unused]] GstStructure* details) { GST_WARNING("%s details: %" GST_PTR_FORMAT, error->message, details); }), nullptr); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h 2024-09-16 08:58:36.627128100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerIncomingTrackProcessor.h 2024-09-30 08:15:01.132258400 +0000 @@ -37,7 +37,7 @@ ~GStreamerIncomingTrackProcessor() = default; void configure(ThreadSafeWeakPtr&&, GRefPtr&&); - GstPad* pad() const { return m_pad.get(); } + const GRefPtr& pad() const { return m_pad; } GstElement* bin() const { return m_bin.get(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -57,34 +57,37 @@ GST_DEBUG_CATEGORY_STATIC(webkitMediaStreamSrcDebug); #define GST_CAT_DEFAULT webkitMediaStreamSrcDebug -WARN_UNUSED_RETURN GRefPtr mediaStreamTrackPrivateGetTags(const MediaStreamTrackPrivate& track) +WARN_UNUSED_RETURN GRefPtr mediaStreamTrackPrivateGetTags(const RefPtr& track) { auto tagList = adoptGRef(gst_tag_list_new_empty()); - if (!track.label().isEmpty()) - gst_tag_list_add(tagList.get(), GST_TAG_MERGE_APPEND, GST_TAG_TITLE, track.label().utf8().data(), nullptr); + if (!track->label().isEmpty()) + gst_tag_list_add(tagList.get(), GST_TAG_MERGE_APPEND, GST_TAG_TITLE, track->label().utf8().data(), nullptr); GST_DEBUG("Track tags: %" GST_PTR_FORMAT, tagList.get()); return tagList; } -GstStream* webkitMediaStreamNew(const MediaStreamTrackPrivate& track) +GstStream* webkitMediaStreamNew(const RefPtr& track) { + if (!track) + return nullptr; + GRefPtr caps; GstStreamType type; - if (track.isAudio()) { + if (track->isAudio()) { caps = adoptGRef(gst_static_pad_template_get_caps(&audioSrcTemplate)); type = GST_STREAM_TYPE_AUDIO; } else { - RELEASE_ASSERT((track.isVideo())); + RELEASE_ASSERT((track->isVideo())); caps = adoptGRef(gst_static_pad_template_get_caps(&videoSrcTemplate)); type = GST_STREAM_TYPE_VIDEO; } StringBuilder builder; - builder.append(track.id()); - if (!track.enabled()) + builder.append(track->id()); + if (!track->enabled()) builder.append("-disabled"_s); auto trackId = builder.toString(); @@ -137,11 +140,12 @@ public: InternalSource(GstElement* parent, MediaStreamTrackPrivate& track, const String& padName, bool consumerIsVideoPlayer) : m_parent(parent) - , m_track(track) + , m_track(&track) , m_padName(padName) , m_consumerIsVideoPlayer(consumerIsVideoPlayer) { - m_isIncomingVideoSource = m_track.source().isIncomingVideoSource(); + m_isIncomingVideoSource = m_track->source().isIncomingVideoSource(); + m_isVideoTrack = m_track->isVideo(); static uint64_t audioCounter = 0; static uint64_t videoCounter = 0; @@ -151,7 +155,7 @@ elementName = makeString("audiosrc"_s, audioCounter); audioCounter++; } else { - RELEASE_ASSERT(track.isVideo()); + RELEASE_ASSERT(m_isVideoTrack); m_videoTrack = VideoTrackPrivateMediaStream::create(track); elementName = makeString("videosrc"_s, videoCounter); videoCounter++; @@ -187,10 +191,21 @@ #endif } + void replaceTrack(RefPtr&& newTrack) + { + ASSERT(m_track); + ASSERT(m_track->type() == newTrack->type()); + stopObserving(); + m_track = WTFMove(newTrack); + startObserving(); + } + void connectIncomingTrack() { #if USE(GSTREAMER_WEBRTC) - auto& trackSource = m_track.source(); + if (!m_track) + return; + auto& trackSource = m_track->source(); int clientId; auto client = GRefPtr(m_src); if (trackSource.isIncomingAudioSource()) { @@ -265,7 +280,9 @@ if (!m_webrtcSourceClientId) return; - auto& trackSource = m_track.source(); + if (!m_track) + return; + auto& trackSource = m_track->source(); if (trackSource.isIncomingAudioSource()) { auto& source = static_cast(trackSource); source.unregisterClient(*m_webrtcSourceClientId); @@ -276,7 +293,7 @@ #endif } - const MediaStreamTrackPrivate& track() const { return m_track; } + WARN_UNUSED_RETURN RefPtr track() const { return m_track; } const String& padName() const { return m_padName; } GstElement* get() const { return m_src.get(); } @@ -285,12 +302,15 @@ if (m_isObserving) return; - GST_DEBUG_OBJECT(m_src.get(), "Starting track/source observation"); - m_track.addObserver(*this); - if (m_track.isAudio()) - m_track.source().addAudioSampleObserver(*this); - else if (m_track.isVideo()) - m_track.source().addVideoFrameObserver(*this); + if (!m_track) + return; + + GST_DEBUG_OBJECT(m_src.get(), "Starting observation of track %s", m_track->id().ascii().data()); + m_track->addObserver(*this); + if (m_track->isAudio()) + m_track->source().addAudioSampleObserver(*this); + else if (m_track->isVideo()) + m_track->source().addVideoFrameObserver(*this); m_isObserving = true; } @@ -299,19 +319,24 @@ if (!m_isObserving) return; - GST_DEBUG_OBJECT(m_src.get(), "Stopping track/source observation"); + if (!m_track) + return; + + GST_DEBUG_OBJECT(m_src.get(), "Stopping observation of track %s", m_track->id().ascii().data()); m_isObserving = false; - if (m_track.isAudio()) - m_track.source().removeAudioSampleObserver(*this); - else if (m_track.isVideo()) - m_track.source().removeVideoFrameObserver(*this); - m_track.removeObserver(*this); + if (m_track->isAudio()) + m_track->source().removeAudioSampleObserver(*this); + else if (m_track->isVideo()) + m_track->source().removeVideoFrameObserver(*this); + m_track->removeObserver(*this); } void configureAudioTrack(float volume, bool isMuted, bool isPlaying) { - ASSERT(m_track.isAudio()); + if (!m_track) + return; + ASSERT(m_track->isAudio()); m_audioTrack->setVolume(volume); m_audioTrack->setMuted(isMuted); m_audioTrack->setEnabled(m_audioTrack->streamTrack().enabled()); @@ -326,10 +351,13 @@ callOnMainThreadAndWait([&] { stopObserving(); }); - trackEnded(m_track); + + if (!m_track) + return; + trackEnded(*m_track); } - void pushSample(GRefPtr&& sample, const ASCIILiteral logMessage) + void pushSample(GRefPtr&& sample, [[maybe_unused]] const ASCIILiteral logMessage) { ASSERT(m_src); if (!m_src || !m_isObserving) @@ -346,12 +374,12 @@ gst_pad_set_offset(pad.get(), -m_firstBufferPts); } - if (m_track.isVideo() && drop) + if (m_isVideoTrack && drop) drop = doCapsHaveType(caps, "video") || GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DELTA_UNIT); if (drop) { m_needsDiscont = true; - GST_TRACE_OBJECT(m_src.get(), "%s queue full already... not pushing", m_track.isVideo() ? "Video" : "Audio"); + GST_TRACE_OBJECT(m_src.get(), "%s queue full already... not pushing", m_isVideoTrack ? "Video" : "Audio"); return; } @@ -398,17 +426,17 @@ } } - void trackEnabledChanged(MediaStreamTrackPrivate&) final + void trackEnabledChanged(MediaStreamTrackPrivate& track) final { - GST_INFO_OBJECT(m_src.get(), "Track enabled: %s, resetting stream", boolForPrinting(m_track.enabled())); + GST_INFO_OBJECT(m_src.get(), "Track enabled: %s, resetting stream", boolForPrinting(track.enabled())); createGstStream(); webkitMediaStreamSrcEnsureStreamCollectionPosted(WEBKIT_MEDIA_STREAM_SRC(m_parent)); - if (m_track.isVideo()) { + if (track.isVideo()) { m_enoughData = false; m_needsDiscont = true; - if (!m_track.enabled()) + if (!track.enabled()) pushBlackFrame(); else flush(); @@ -433,7 +461,10 @@ sample = gstVideoFrame->resizedSample(captureSize); } - auto settings = m_track.settings(); + if (!m_track) + return; + + auto settings = m_track->settings(); m_configuredSize.setWidth(settings.width()); m_configuredSize.setHeight(settings.height()); @@ -459,7 +490,7 @@ m_lastKnownSize = m_configuredSize; } - if (m_track.enabled()) { + if (m_track->enabled()) { pushSample(WTFMove(sample), "Pushing video frame from enabled track"_s); return; } @@ -472,8 +503,11 @@ if (!m_parent || !m_isObserving) return; + if (!m_track) + return; + const auto& data = static_cast(audioData); - if (m_track.enabled()) { + if (m_track->enabled()) { GRefPtr sample = data.getSample(); pushSample(WTFMove(sample), "Pushing audio sample from enabled track"_s); return; @@ -529,8 +563,11 @@ auto width = m_lastKnownSize.width() ? m_lastKnownSize.width() : 320; auto height = m_lastKnownSize.height() ? m_lastKnownSize.height() : 240; + if (!m_track) + return; + int frameRateNumerator, frameRateDenominator; - gst_util_double_to_fraction(m_track.settings().frameRate(), &frameRateNumerator, &frameRateDenominator); + gst_util_double_to_fraction(m_track->settings().frameRate(), &frameRateNumerator, &frameRateDenominator); if (!m_blackFrameCaps) m_blackFrameCaps = adoptGRef(gst_caps_new_simple("video/x-raw", "format", G_TYPE_STRING, "I420", "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, "framerate", GST_TYPE_FRACTION, frameRateNumerator, frameRateDenominator, nullptr)); @@ -584,11 +621,11 @@ void createGstStream() { - m_stream = adoptGRef(webkitMediaStreamNew(m_track)); + m_stream = adoptGRef(webkitMediaStreamNew(track())); } GstElement* m_parent { nullptr }; - MediaStreamTrackPrivate& m_track; + RefPtr m_track; GRefPtr m_src; GstClockTime m_firstBufferPts { GST_CLOCK_TIME_NONE }; bool m_enoughData { false }; @@ -611,6 +648,7 @@ bool m_consumerIsVideoPlayer { false }; bool m_isIncomingVideoSource { false }; GRefPtr m_stream; + bool m_isVideoTrack { false }; }; struct _WebKitMediaStreamSrcPrivate { @@ -651,7 +689,10 @@ // Lookup the corresponding InternalSource and take it from the storage. auto index = priv->sources.findIf([&](auto& item) { - return item->track().id() == track.id(); + auto itemTrack = item->track(); + if (!itemTrack) + return true; + return itemTrack->id() == track.id(); }); std::unique_ptr source = WTFMove(priv->sources[index]); priv->sources.remove(index); @@ -961,7 +1002,7 @@ static GstPadProbeReturn webkitMediaStreamSrcPadProbeCb(GstPad* pad, GstPadProbeInfo* info, ProbeData* data) { GstEvent* event = GST_PAD_PROBE_INFO_EVENT(info); - WebKitMediaStreamSrc* self = WEBKIT_MEDIA_STREAM_SRC_CAST(data->element.get()); + [[maybe_unused]] WebKitMediaStreamSrc* self = WEBKIT_MEDIA_STREAM_SRC_CAST(data->element.get()); GST_DEBUG_OBJECT(self, "Event %" GST_PTR_FORMAT, event); switch (GST_EVENT_TYPE(event)) { @@ -1025,7 +1066,7 @@ auto pad = adoptGRef(gst_element_get_static_pad(element, "src")); auto data = createProbeData(); - data->tags = mediaStreamTrackPrivateGetTags(*track); + data->tags = mediaStreamTrackPrivateGetTags(RefPtr(track)); data->element = GST_ELEMENT_CAST(self); data->sourceType = track->source().type(); data->collection = webkitMediaStreamSrcCreateStreamCollection(self); @@ -1069,6 +1110,13 @@ gst_element_sync_state_with_parent(element); } +void webkitMediaStreamSrcReplaceTrack(WebKitMediaStreamSrc* self, RefPtr&& newTrack) +{ + ASSERT(newTrack); + ASSERT(self->priv->sources.size() == 1); + self->priv->sources[0]->replaceTrack(WTFMove(newTrack)); +} + void webkitMediaStreamSrcSignalEndOfStream(WebKitMediaStreamSrc* self) { GST_DEBUG_OBJECT(self, "Signaling EOS"); @@ -1077,7 +1125,7 @@ self->priv->sources.clear(); } -void webkitMediaStreamSrcCharacteristicsChanged(WebKitMediaStreamSrc* self) +void webkitMediaStreamSrcCharacteristicsChanged([[maybe_unused]] WebKitMediaStreamSrc* self) { GST_DEBUG_OBJECT(self, "MediaStream characteristics changed"); } @@ -1108,7 +1156,10 @@ void webkitMediaStreamSrcConfigureAudioTracks(WebKitMediaStreamSrc* self, float volume, bool isMuted, bool isPlaying) { for (auto& source : self->priv->sources) { - if (source->track().isAudio()) + auto track = source->track(); + if (UNLIKELY(!track)) + continue; + if (track->isAudio()) source->configureAudioTrack(volume, isMuted, isPlaying); } } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h 2024-08-19 06:28:39.471269400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.h 2024-09-30 08:15:01.132258400 +0000 @@ -24,6 +24,7 @@ #if ENABLE(VIDEO) && ENABLE(MEDIA_STREAM) && USE(GSTREAMER) #include +#include namespace WebCore { class MediaStreamPrivate; @@ -53,6 +54,7 @@ GstElement* webkitMediaStreamSrcNew(); void webkitMediaStreamSrcSetStream(WebKitMediaStreamSrc*, WebCore::MediaStreamPrivate*, bool isVideoPlayer); void webkitMediaStreamSrcAddTrack(WebKitMediaStreamSrc*, WebCore::MediaStreamTrackPrivate*, bool consumerIsVideoPlayer = false); +void webkitMediaStreamSrcReplaceTrack(WebKitMediaStreamSrc*, WTF::RefPtr&&); void webkitMediaStreamSrcConfigureAudioTracks(WebKitMediaStreamSrc*, float volume, bool isMuted, bool isPlaying); void webkitMediaStreamSrcSignalEndOfStream(WebKitMediaStreamSrc*); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDevice.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -38,7 +38,7 @@ #define webkit_mock_device_provider_parent_class parent_class WEBKIT_DEFINE_TYPE_WITH_CODE(GStreamerMockDevice, webkit_mock_device, GST_TYPE_DEVICE, GST_DEBUG_CATEGORY_INIT(webkitGstMockDeviceDebug, "webkitmockdevice", 0, "Mock Device")) -static GstElement* webkitMockDeviceCreateElement(GstDevice* device, const char* name) +static GstElement* webkitMockDeviceCreateElement([[maybe_unused]] GstDevice* device, const char* name) { GST_INFO_OBJECT(device, "Creating source element for device %s", name); auto* element = makeGStreamerElement("appsrc", name); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDeviceProvider.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDeviceProvider.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDeviceProvider.cpp 2024-09-16 08:59:12.758527800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerMockDeviceProvider.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -38,7 +38,7 @@ #define webkit_mock_device_provider_parent_class parent_class WEBKIT_DEFINE_TYPE_WITH_CODE(GStreamerMockDeviceProvider, webkit_mock_device_provider, GST_TYPE_DEVICE_PROVIDER, GST_DEBUG_CATEGORY_INIT(webkitGstMockDeviceProviderDebug, "webkitmockdeviceprovider", 0, "Mock Device Provider")) -static GList* webkitMockDeviceProviderProbe(GstDeviceProvider* provider) +static GList* webkitMockDeviceProviderProbe([[maybe_unused]] GstDeviceProvider* provider) { if (!MockRealtimeMediaSourceCenter::mockRealtimeMediaSourceCenterEnabled()) { GST_INFO_OBJECT(provider, "Mock capture sources are disabled, returning empty device list"); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp 2024-08-19 06:28:39.471269400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/GStreamerWebRTCProvider.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -113,6 +113,7 @@ std::optional GStreamerWebRTCProvider::videoDecodingCapabilitiesOverride(const VideoConfiguration& configuration) { MediaCapabilitiesDecodingInfo info; + info.supportedConfiguration.type = MediaDecodingType::WebRTC; ContentType contentType { configuration.contentType }; auto containerType = contentType.containerType(); if (equalLettersIgnoringASCIICase(containerType, "video/vp8"_s)) { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp 2024-08-19 06:28:39.475269300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -164,7 +164,7 @@ auto preEncoderSinkPad = adoptGRef(gst_element_get_static_pad(m_preEncoderQueue.get(), "sink")); if (!gst_pad_is_linked(preEncoderSinkPad.get())) { - if (!gst_element_link_many(m_outgoingSource.get(), m_inputSelector.get(), m_liveSync.get(), m_audioconvert.get(), m_audioresample.get(), m_inputCapsFilter.get(), m_preEncoderQueue.get(), nullptr)) { + if (!gst_element_link_many(m_outgoingSource.get(), m_liveSync.get(), m_audioconvert.get(), m_audioresample.get(), m_inputCapsFilter.get(), m_preEncoderQueue.get(), nullptr)) { GST_ERROR_OBJECT(m_bin.get(), "Unable to link outgoing source to pre-encoder queue"); return false; } @@ -173,48 +173,6 @@ return gst_element_link_many(m_preEncoderQueue.get(), m_encoder.get(), m_payloader.get(), m_postEncoderQueue.get(), nullptr); } -void RealtimeOutgoingAudioSourceGStreamer::connectFallbackSource() -{ - if (!m_fallbackPad) { - m_fallbackSource = makeGStreamerElement("audiotestsrc", nullptr); - if (!m_fallbackSource) { - WTFLogAlways("Unable to connect fallback audiotestsrc element, expect broken behavior. Please install gst-plugins-base."); - return; - } - - gst_util_set_object_arg(G_OBJECT(m_fallbackSource.get()), "wave", "silence"); - - gst_bin_add(GST_BIN_CAST(m_bin.get()), m_fallbackSource.get()); - - m_fallbackPad = adoptGRef(gst_element_request_pad_simple(m_inputSelector.get(), "sink_%u")); - - auto srcPad = adoptGRef(gst_element_get_static_pad(m_fallbackSource.get(), "src")); - gst_pad_link(srcPad.get(), m_fallbackPad.get()); - gst_element_sync_state_with_parent(m_fallbackSource.get()); - } - - g_object_set(m_inputSelector.get(), "active-pad", m_fallbackPad.get(), nullptr); -} - -void RealtimeOutgoingAudioSourceGStreamer::unlinkOutgoingSource() -{ - auto srcPad = adoptGRef(gst_element_get_static_pad(m_outgoingSource.get(), "audio_src0")); - auto peerPad = adoptGRef(gst_pad_get_peer(srcPad.get())); - if (!peerPad) - return; - - gst_pad_unlink(srcPad.get(), peerPad.get()); - gst_element_release_request_pad(m_inputSelector.get(), peerPad.get()); -} - -void RealtimeOutgoingAudioSourceGStreamer::linkOutgoingSource() -{ - auto srcPad = adoptGRef(gst_element_get_static_pad(m_outgoingSource.get(), "audio_src0")); - auto sinkPad = adoptGRef(gst_element_request_pad_simple(m_inputSelector.get(), "sink_%u")); - gst_pad_link(srcPad.get(), sinkPad.get()); - g_object_set(m_inputSelector.get(), "active-pad", sinkPad.get(), nullptr); -} - void RealtimeOutgoingAudioSourceGStreamer::setParameters(GUniquePtr&& parameters) { m_parameters = WTFMove(parameters); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h 2024-08-19 06:28:39.475269300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h 2024-09-30 08:15:01.132258400 +0000 @@ -39,10 +39,6 @@ private: RTCRtpCapabilities rtpCapabilities() const final; - void connectFallbackSource() final; - void unlinkOutgoingSource() final; - void linkOutgoingSource() final; - GRefPtr m_audioconvert; GRefPtr m_audioresample; GRefPtr m_inputCapsFilter; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp 2024-08-19 06:28:39.475269300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -63,17 +63,17 @@ // Both livesync and identity have a single-segment property, so no need for checks here. g_object_set(m_liveSync.get(), "single-segment", TRUE, nullptr); - m_inputSelector = gst_element_factory_make("input-selector", nullptr); m_preEncoderQueue = gst_element_factory_make("queue", nullptr); m_postEncoderQueue = gst_element_factory_make("queue", nullptr); m_capsFilter = gst_element_factory_make("capsfilter", nullptr); - gst_bin_add_many(GST_BIN_CAST(m_bin.get()), m_liveSync.get(), m_inputSelector.get(), m_preEncoderQueue.get(), m_postEncoderQueue.get(), m_capsFilter.get(), nullptr); + gst_bin_add_many(GST_BIN_CAST(m_bin.get()), m_liveSync.get(), m_preEncoderQueue.get(), m_postEncoderQueue.get(), m_capsFilter.get(), nullptr); auto srcPad = adoptGRef(gst_element_get_static_pad(m_capsFilter.get(), "src")); gst_element_add_pad(m_bin.get(), gst_ghost_pad_new("src", srcPad.get())); - setSource(track.privateTrack()); + m_track = &track.privateTrack(); + initializeFromTrack(); } RealtimeOutgoingMediaSourceGStreamer::~RealtimeOutgoingMediaSourceGStreamer() @@ -95,20 +95,6 @@ return m_allowedCaps; } -void RealtimeOutgoingMediaSourceGStreamer::setSource(Ref&& newSource) -{ - if (m_source && !m_initialSettings) - m_initialSettings = m_source.value()->settings(); - - GST_DEBUG_OBJECT(m_bin.get(), "Setting source to %s", newSource->id().utf8().data()); - - if (m_source.has_value()) - stopOutgoingSource(); - - m_source = WTFMove(newSource); - initializeFromTrack(); -} - void RealtimeOutgoingMediaSourceGStreamer::start() { if (!m_isStopped) { @@ -117,18 +103,18 @@ } GST_DEBUG_OBJECT(m_bin.get(), "Starting outgoing source"); - m_source.value()->addObserver(*this); + m_track->addObserver(*this); m_isStopped = false; if (m_transceiver) { - auto selectorSrcPad = adoptGRef(gst_element_get_static_pad(m_inputSelector.get(), "src")); - if (!gst_pad_is_linked(selectorSrcPad.get())) { + auto pad = adoptGRef(gst_element_get_static_pad(m_liveSync.get(), "src")); + if (!gst_pad_is_linked(pad.get())) { GST_DEBUG_OBJECT(m_bin.get(), "Codec preferences haven't changed before startup, ensuring source is linked"); codecPreferencesChanged(); } } - linkOutgoingSource(); + gst_element_link(m_outgoingSource.get(), m_liveSync.get()); gst_element_sync_state_with_parent(m_bin.get()); } @@ -136,13 +122,8 @@ { GST_DEBUG_OBJECT(m_bin.get(), "Stopping outgoing source"); m_isStopped = true; - if (!m_source) - return; - - connectFallbackSource(); - stopOutgoingSource(); - m_source.reset(); + m_track = nullptr; } void RealtimeOutgoingMediaSourceGStreamer::flush() @@ -153,11 +134,11 @@ void RealtimeOutgoingMediaSourceGStreamer::stopOutgoingSource() { - if (!m_source) + if (!m_track) return; GST_DEBUG_OBJECT(m_bin.get(), "Stopping outgoing source %" GST_PTR_FORMAT, m_outgoingSource.get()); - m_source.value()->removeObserver(*this); + m_track->removeObserver(*this); if (!m_outgoingSource) return; @@ -166,7 +147,7 @@ gst_element_set_locked_state(m_outgoingSource.get(), TRUE); - unlinkOutgoingSource(); + gst_element_unlink(m_outgoingSource.get(), m_liveSync.get()); gst_element_set_state(m_outgoingSource.get(), GST_STATE_NULL); gst_bin_remove(GST_BIN_CAST(m_bin.get()), m_outgoingSource.get()); @@ -176,26 +157,28 @@ void RealtimeOutgoingMediaSourceGStreamer::sourceMutedChanged() { - if (!m_source) + if (!m_track) return; - ASSERT(m_muted != m_source.value()->muted()); - m_muted = m_source.value()->muted(); + ASSERT(m_muted != m_track->muted()); + m_muted = m_track->muted(); GST_DEBUG_OBJECT(m_bin.get(), "Mute state changed to %s", boolForPrinting(m_muted)); } void RealtimeOutgoingMediaSourceGStreamer::sourceEnabledChanged() { - if (!m_source) + if (!m_track) return; - m_enabled = m_source.value()->enabled(); + m_enabled = m_track->enabled(); GST_DEBUG_OBJECT(m_bin.get(), "Enabled state changed to %s", boolForPrinting(m_enabled)); } void RealtimeOutgoingMediaSourceGStreamer::initializeFromTrack() { - m_muted = m_source.value()->muted(); - m_enabled = m_source.value()->enabled(); + if (!m_track) + return; + m_muted = m_track->muted(); + m_enabled = m_track->enabled(); GST_DEBUG_OBJECT(m_bin.get(), "Initializing from track, muted: %s, enabled: %s", boolForPrinting(m_muted), boolForPrinting(m_enabled)); if (m_outgoingSource) @@ -204,7 +187,8 @@ m_outgoingSource = webkitMediaStreamSrcNew(); GST_DEBUG_OBJECT(m_bin.get(), "Created outgoing source %" GST_PTR_FORMAT, m_outgoingSource.get()); gst_bin_add(GST_BIN_CAST(m_bin.get()), m_outgoingSource.get()); - webkitMediaStreamSrcAddTrack(WEBKIT_MEDIA_STREAM_SRC(m_outgoingSource.get()), m_source->ptr()); + webkitMediaStreamSrcAddTrack(WEBKIT_MEDIA_STREAM_SRC(m_outgoingSource.get()), m_track.get()); + GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN_CAST(m_bin.get()), GST_DEBUG_GRAPH_SHOW_ALL, "outgoing-media-track-initialized"); } void RealtimeOutgoingMediaSourceGStreamer::link() @@ -263,15 +247,6 @@ if (m_transceiver) g_signal_handlers_disconnect_by_data(m_transceiver.get(), this); - if (m_fallbackSource) { - gst_element_set_locked_state(m_fallbackSource.get(), TRUE); - gst_element_set_state(m_fallbackSource.get(), GST_STATE_READY); - gst_element_unlink(m_fallbackSource.get(), m_inputSelector.get()); - gst_element_set_state(m_fallbackSource.get(), GST_STATE_NULL); - gst_element_release_request_pad(m_inputSelector.get(), m_fallbackPad.get()); - gst_element_set_locked_state(m_fallbackSource.get(), FALSE); - } - stopOutgoingSource(); if (GST_IS_PAD(m_webrtcSinkPad.get())) { @@ -291,8 +266,6 @@ m_bin.clear(); m_liveSync.clear(); - m_inputSelector.clear(); - m_fallbackPad.clear(); m_valve.clear(); m_preEncoderQueue.clear(); m_encoder.clear(); @@ -304,7 +277,6 @@ m_sender.clear(); m_webrtcSinkPad.clear(); m_parameters.reset(); - m_fallbackSource.clear(); } void RealtimeOutgoingMediaSourceGStreamer::unlinkPayloader() @@ -384,6 +356,16 @@ m_isStopped = false; } +void RealtimeOutgoingMediaSourceGStreamer::replaceTrack(RefPtr&& newTrack) +{ + m_track->removeObserver(*this); + webkitMediaStreamSrcReplaceTrack(WEBKIT_MEDIA_STREAM_SRC(m_outgoingSource.get()), RefPtr(newTrack)); + m_track = WTFMove(newTrack); + m_track->addObserver(*this); + flush(); + GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN_CAST(m_bin.get()), GST_DEBUG_GRAPH_SHOW_ALL, "outgoing-media-replaced-track"); +} + #undef GST_CAT_DEFAULT } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h 2024-08-19 06:28:39.475269300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h 2024-09-30 08:15:01.132258400 +0000 @@ -38,9 +38,8 @@ void start(); void stop(); - void setSource(Ref&&); virtual void flush(); - MediaStreamTrackPrivate& source() const { return m_source->get(); } + const RefPtr& track() const { return m_track; } const String& mediaStreamID() const { return m_mediaStreamId; } const GRefPtr& allowedCaps() const; @@ -59,6 +58,8 @@ virtual void fillEncodingParameters(const GUniquePtr&) { } virtual void setParameters(GUniquePtr&&) { } + void replaceTrack(RefPtr&&); + protected: enum Type { Audio, @@ -78,13 +79,11 @@ bool m_enabled { true }; bool m_muted { false }; bool m_isStopped { true }; - std::optional> m_source; + RefPtr m_track; std::optional m_initialSettings; GRefPtr m_bin; GRefPtr m_outgoingSource; GRefPtr m_liveSync; - GRefPtr m_inputSelector; - GRefPtr m_fallbackPad; GRefPtr m_valve; GRefPtr m_preEncoderQueue; GRefPtr m_encoder; @@ -97,7 +96,6 @@ GRefPtr m_webrtcSinkPad; RefPtr m_ssrcGenerator; GUniquePtr m_parameters; - GRefPtr m_fallbackSource; struct PayloaderState { unsigned seqnum; @@ -112,10 +110,6 @@ virtual RTCRtpCapabilities rtpCapabilities() const = 0; void codecPreferencesChanged(); - virtual void connectFallbackSource() { } - virtual void unlinkOutgoingSource() { } - virtual void linkOutgoingSource() { } - // MediaStreamTrackPrivateObserver API void trackMutedChanged(MediaStreamTrackPrivate&) override { sourceMutedChanged(); } void trackEnabledChanged(MediaStreamTrackPrivate&) override { sourceEnabledChanged(); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp 2024-08-21 09:38:01.056517100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -57,7 +57,6 @@ gst_element_set_name(m_bin.get(), makeString("outgoing-video-source-"_s, sourceCounter.exchangeAdd(1)).ascii().data()); m_stats.reset(gst_structure_new_empty("webrtc-outgoing-video-stats")); - startUpdatingStats(); m_videoConvert = makeGStreamerElement("videoconvert", nullptr); @@ -72,6 +71,7 @@ m_encoder = gst_element_factory_make("webkitvideoencoder", nullptr); gst_bin_add_many(GST_BIN_CAST(m_bin.get()), m_videoRate.get(), m_frameRateCapsFilter.get(), m_videoFlip.get(), m_videoConvert.get(), m_encoder.get(), nullptr); + startUpdatingStats(); } RTCRtpCapabilities RealtimeOutgoingVideoSourceGStreamer::rtpCapabilities() const @@ -141,7 +141,7 @@ VPCodecConfigurationRecord record; record.codecName = "vp09"_s; - if (auto vp9Profile = gstStructureGetString(structure.get(), "vp9-profile-id"_s)) { + if (auto vp9Profile = gstStructureGetString(structure.get(), "profile-id"_s)) { if (auto profile = parseInteger(vp9Profile)) record.profile = *profile; } @@ -201,7 +201,7 @@ auto encoderSinkPad = adoptGRef(gst_element_get_static_pad(m_encoder.get(), "sink")); if (!gst_pad_is_linked(encoderSinkPad.get())) { - if (!gst_element_link_many(m_outgoingSource.get(), m_inputSelector.get(), m_liveSync.get(), m_videoFlip.get(), nullptr)) { + if (!gst_element_link_many(m_outgoingSource.get(), m_liveSync.get(), m_videoFlip.get(), nullptr)) { GST_ERROR_OBJECT(m_bin.get(), "Unable to link outgoing source to videoflip"); return false; } @@ -223,67 +223,12 @@ return gst_element_link_many(m_encoder.get(), m_payloader.get(), m_postEncoderQueue.get(), nullptr); } -void RealtimeOutgoingVideoSourceGStreamer::connectFallbackSource() -{ - GST_DEBUG_OBJECT(m_bin.get(), "Connecting fallback video source"); - if (!m_fallbackPad) { - m_fallbackSource = makeGStreamerElement("videotestsrc", nullptr); - if (!m_fallbackSource) { - WTFLogAlways("Unable to connect fallback videotestsrc element, expect broken behavior. Please install gst-plugins-base."); - return; - } - - gst_util_set_object_arg(G_OBJECT(m_fallbackSource.get()), "pattern", "black"); - - gst_bin_add(GST_BIN_CAST(m_bin.get()), m_fallbackSource.get()); - - m_fallbackPad = adoptGRef(gst_element_request_pad_simple(m_inputSelector.get(), "sink_%u")); - - auto srcPad = adoptGRef(gst_element_get_static_pad(m_fallbackSource.get(), "src")); - gst_pad_link(srcPad.get(), m_fallbackPad.get()); - gst_element_sync_state_with_parent(m_fallbackSource.get()); - } - - g_object_set(m_inputSelector.get(), "active-pad", m_fallbackPad.get(), nullptr); -} - -void RealtimeOutgoingVideoSourceGStreamer::unlinkOutgoingSource() -{ - GST_DEBUG_OBJECT(m_bin.get(), "Unlinking outgoing video source"); - if (m_statsPadProbeId) { - auto binSrcPad = adoptGRef(gst_element_get_static_pad(m_bin.get(), "src")); - gst_pad_remove_probe(binSrcPad.get(), m_statsPadProbeId); - m_statsPadProbeId = 0; - } - - auto srcPad = adoptGRef(gst_element_get_static_pad(m_outgoingSource.get(), "video_src0")); - auto peerPad = adoptGRef(gst_pad_get_peer(srcPad.get())); - if (!peerPad) { - GST_DEBUG_OBJECT(m_bin.get(), "Outgoing video source not linked"); - return; - } - - gst_pad_unlink(srcPad.get(), peerPad.get()); - gst_element_release_request_pad(m_inputSelector.get(), peerPad.get()); -} - -void RealtimeOutgoingVideoSourceGStreamer::linkOutgoingSource() -{ - GST_DEBUG_OBJECT(m_bin.get(), "Linking outgoing video source"); - auto srcPad = adoptGRef(gst_element_get_static_pad(m_outgoingSource.get(), "video_src0")); - auto sinkPad = adoptGRef(gst_element_request_pad_simple(m_inputSelector.get(), "sink_%u")); - gst_pad_link(srcPad.get(), sinkPad.get()); - g_object_set(m_inputSelector.get(), "active-pad", sinkPad.get(), nullptr); - - flush(); -} - void RealtimeOutgoingVideoSourceGStreamer::startUpdatingStats() { GST_DEBUG_OBJECT(m_bin.get(), "Starting buffer monitoring for stats gathering"); auto holder = createRealtimeOutgoingVideoSourceHolder(); holder->source = this; - auto pad = adoptGRef(gst_element_get_static_pad(m_bin.get(), "src")); + auto pad = adoptGRef(gst_element_get_static_pad(m_encoder.get(), "src")); m_statsPadProbeId = gst_pad_add_probe(pad.get(), GST_PAD_PROBE_TYPE_BUFFER, [](GstPad*, GstPadProbeInfo* info, gpointer userData) -> GstPadProbeReturn { auto* holder = static_cast(userData); auto* buffer = GST_PAD_PROBE_INFO_BUFFER(info); @@ -298,8 +243,8 @@ return; GST_DEBUG_OBJECT(m_bin.get(), "Stopping buffer monitoring for stats gathering"); - auto binSrcPad = adoptGRef(gst_element_get_static_pad(m_bin.get(), "src")); - gst_pad_remove_probe(binSrcPad.get(), m_statsPadProbeId); + auto pad = adoptGRef(gst_element_get_static_pad(m_encoder.get(), "src")); + gst_pad_remove_probe(pad.get(), m_statsPadProbeId); m_statsPadProbeId = 0; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h --- webkit2gtk-2.46.0/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h 2024-08-19 06:28:39.475269300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h 2024-09-30 08:15:01.132258400 +0000 @@ -54,10 +54,6 @@ void startUpdatingStats(); void stopUpdatingStats(); - void connectFallbackSource() final; - void unlinkOutgoingSource() final; - void linkOutgoingSource() final; - void updateStats(GstBuffer*); GRefPtr m_videoConvert; diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/network/FormDataBuilder.cpp webkit2gtk-2.46.3/Source/WebCore/platform/network/FormDataBuilder.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/network/FormDataBuilder.cpp 2024-08-19 06:28:39.483269000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/network/FormDataBuilder.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -105,8 +105,9 @@ else if (character != '\r') { append(buffer, '%'); auto hexBuffer = hex(character, 2); - append(buffer, hexBuffer.characters()[0]); - append(buffer, hexBuffer.characters()[1]); + auto hexSpan = hexBuffer.span(); + append(buffer, hexSpan[0]); + append(buffer, hexSpan[1]); } } } diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/skia/SkiaAllocatorFastMalloc.cpp webkit2gtk-2.46.3/Source/WebCore/platform/skia/SkiaAllocatorFastMalloc.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/skia/SkiaAllocatorFastMalloc.cpp 2024-08-19 06:28:39.495268600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/skia/SkiaAllocatorFastMalloc.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2024 Igalia S.L. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" - -#include -#include -#include -#include "../../../ThirdParty/skia/include/private/base/SkMalloc.h" - -void sk_abort_no_print() -{ - CRASH(); -} - -void sk_out_of_memory(void) -{ - RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE("sk_out_of_memory"); -} - -void sk_free(void* p) -{ - WTF::fastFree(p); -} - -void* sk_realloc_throw(void* addr, size_t size) -{ - return WTF::fastRealloc(addr, size); -} - -void* sk_malloc_flags(size_t size, unsigned flags) -{ - if (flags & SK_MALLOC_ZERO_INITIALIZE) { - if (flags & SK_MALLOC_THROW) - return WTF::fastZeroedMalloc(size); - - auto result = WTF::tryFastZeroedMalloc(size); - void* ptr; - if (result.getValue(ptr)) - return ptr; - return nullptr; - } - - if (flags & SK_MALLOC_THROW) - return WTF::fastMalloc(size); - - auto result = WTF::tryFastMalloc(size); - void* ptr; - if (result.getValue(ptr)) - return ptr; - return nullptr; -} - -size_t sk_malloc_size(void *ptr, size_t size) -{ - // bmalloc/fastMalloc may be disabled either at build time or run - // time, and in both cases WTF::fastMallocSize() will return 1. - return std::max(WTF::fastMallocSize(ptr), size); -} diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/sql/SQLiteStatement.h webkit2gtk-2.46.3/Source/WebCore/platform/sql/SQLiteStatement.h --- webkit2gtk-2.46.0/Source/WebCore/platform/sql/SQLiteStatement.h 2024-08-19 06:28:39.499268500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/sql/SQLiteStatement.h 2024-10-30 09:22:36.530296800 +0000 @@ -34,8 +34,9 @@ namespace WebCore { -class SQLiteStatement { +class SQLiteStatement : public CanMakeThreadSafeCheckedPtr { WTF_MAKE_NONCOPYABLE(SQLiteStatement); WTF_MAKE_FAST_ALLOCATED; + WTF_OVERRIDE_DELETE_FOR_CHECKED_PTR(SQLiteStatement); public: WEBCORE_EXPORT ~SQLiteStatement(); WEBCORE_EXPORT SQLiteStatement(SQLiteStatement&&); diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.cpp webkit2gtk-2.46.3/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.cpp 2024-08-19 06:28:39.499268500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -36,17 +36,8 @@ { } -SQLiteStatementAutoResetScope::SQLiteStatementAutoResetScope(SQLiteStatementAutoResetScope&& other) - : m_statement(other.m_statement) -{ - other.m_statement = nullptr; -} - -SQLiteStatementAutoResetScope& SQLiteStatementAutoResetScope::operator=(SQLiteStatementAutoResetScope&& other) -{ - std::swap(m_statement, other.m_statement); - return *this; -} +SQLiteStatementAutoResetScope::SQLiteStatementAutoResetScope(SQLiteStatementAutoResetScope&&) = default; +SQLiteStatementAutoResetScope& SQLiteStatementAutoResetScope::operator=(SQLiteStatementAutoResetScope&&) = default; SQLiteStatementAutoResetScope::~SQLiteStatementAutoResetScope() { diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.h webkit2gtk-2.46.3/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.h --- webkit2gtk-2.46.0/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.h 2024-08-19 06:28:39.499268500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/sql/SQLiteStatementAutoResetScope.h 2024-10-30 09:22:36.530296800 +0000 @@ -25,6 +25,7 @@ #pragma once +#include #include #include @@ -35,18 +36,18 @@ WTF_MAKE_NONCOPYABLE(SQLiteStatementAutoResetScope); WTF_MAKE_FAST_ALLOCATED; public: WEBCORE_EXPORT explicit SQLiteStatementAutoResetScope(SQLiteStatement* = nullptr); - WEBCORE_EXPORT SQLiteStatementAutoResetScope(SQLiteStatementAutoResetScope&& other); - WEBCORE_EXPORT SQLiteStatementAutoResetScope& operator=(SQLiteStatementAutoResetScope&& other); + WEBCORE_EXPORT SQLiteStatementAutoResetScope(SQLiteStatementAutoResetScope&&); + WEBCORE_EXPORT SQLiteStatementAutoResetScope& operator=(SQLiteStatementAutoResetScope&&); WEBCORE_EXPORT ~SQLiteStatementAutoResetScope(); - explicit operator bool() const { return m_statement; } + explicit operator bool() const { return !!m_statement; } bool operator!() const { return !m_statement; } - SQLiteStatement* get() { return m_statement; } - SQLiteStatement* operator->() { return m_statement; } + SQLiteStatement* get() { return m_statement.get(); } + SQLiteStatement* operator->() { return m_statement.get(); } private: - SQLiteStatement* m_statement; + CheckedPtr m_statement; }; } // namespace WebCore diff -Nru webkit2gtk-2.46.0/Source/WebCore/platform/text/SegmentedString.cpp webkit2gtk-2.46.3/Source/WebCore/platform/text/SegmentedString.cpp --- webkit2gtk-2.46.0/Source/WebCore/platform/text/SegmentedString.cpp 2024-08-19 06:28:39.499268500 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/platform/text/SegmentedString.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -182,13 +182,14 @@ inline void SegmentedString::advancePastSingleCharacterSubstringWithoutUpdatingLineNumber() { ASSERT(m_currentSubstring.length == 1); + m_currentSubstring.length = 0; + m_numberOfCharactersConsumedPriorToCurrentSubstring += m_currentSubstring.numberOfCharactersConsumed(); if (m_otherSubstrings.isEmpty()) { - m_currentSubstring.length = 0; + m_currentSubstring = { }; m_currentCharacter = 0; updateAdvanceFunctionPointersForEmptyString(); return; } - m_numberOfCharactersConsumedPriorToCurrentSubstring += m_currentSubstring.numberOfCharactersConsumed(); m_currentSubstring = m_otherSubstrings.takeFirst(); // If we've previously consumed some characters of the non-current string, we now account for those // characters as part of the current string, not as part of "prior to current string." diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/EventRegion.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/EventRegion.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/EventRegion.cpp 2024-08-19 06:28:39.511268100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/EventRegion.cpp 2024-09-30 08:15:01.132258400 +0000 @@ -147,9 +147,9 @@ } if (interactionRegion->type == InteractionRegion::Type::Guard) { - if (m_elementGuardRects.contains(rectForTracking)) + if (m_guardRects.contains(rectForTracking)) return; - m_elementGuardRects.add(rectForTracking); + m_guardRects.set(rectForTracking, Inflated::No); m_interactionRegions.append(*interactionRegion); return; @@ -181,11 +181,14 @@ auto guardRect = guardRectForRegionBounds(*interactionRegion); if (guardRect) { - m_interactionRegions.append({ - InteractionRegion::Type::Guard, - interactionRegion->elementIdentifier, - guardRect.value() - }); + auto result = m_guardRects.add(enclosingIntRect(guardRect.value()), Inflated::Yes); + if (result.isNewEntry) { + m_interactionRegions.append({ + InteractionRegion::Type::Guard, + interactionRegion->elementIdentifier, + guardRect.value() + }); + } } m_interactionRegions.append(*interactionRegion); @@ -263,14 +266,12 @@ if (region.type != InteractionRegion::Type::Guard) continue; - // FIXME: This seems like it could be structured so it doesn't need four hash lookups in the worst case. if (!m_discoveredRegionsByElement.contains(region.elementIdentifier)) { auto rectForTracking = enclosingIntRect(region.rectInLayerCoordinates); - if (!m_interactionRectsAndContentHints.contains(rectForTracking)) { + auto result = m_interactionRectsAndContentHints.add(rectForTracking, region.contentHint); + if (result.isNewEntry) { region.type = InteractionRegion::Type::Interaction; region.cornerRadius = minimumCornerRadius; - - m_interactionRectsAndContentHints.add(rectForTracking, region.contentHint); m_discoveredRegionsByElement.add(region.elementIdentifier, Vector({ region })); } } @@ -349,7 +350,8 @@ return m_containersToRemove.contains(region.elementIdentifier); auto guardRect = enclosingIntRect(region.rectInLayerCoordinates); - if (m_elementGuardRects.contains(guardRect)) + auto guardIterator = m_guardRects.find(guardRect); + if (guardIterator != m_guardRects.end() && guardIterator->value == Inflated::No) return false; for (const auto& interactionRect : m_interactionRectsAndContentHints.keys()) { auto intersection = interactionRect; diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/EventRegion.h webkit2gtk-2.46.3/Source/WebCore/rendering/EventRegion.h --- webkit2gtk-2.46.0/Source/WebCore/rendering/EventRegion.h 2024-08-19 06:28:39.511268100 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/EventRegion.h 2024-09-30 08:15:01.132258400 +0000 @@ -75,7 +75,8 @@ Vector m_interactionRegions; HashMap m_interactionRectsAndContentHints; HashSet m_occlusionRects; - HashSet m_elementGuardRects; + enum class Inflated : bool { No, Yes }; + HashMap m_guardRects; HashSet m_containerRemovalCandidates; HashSet m_containersToRemove; HashMap> m_discoveredRegionsByElement; diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderBoxModelObject.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/RenderBoxModelObject.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderBoxModelObject.cpp 2024-08-19 06:28:39.523267700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderBoxModelObject.cpp 2024-09-30 08:15:01.136258400 +0000 @@ -360,13 +360,9 @@ // Animated image case. if (bitmapImage->isAnimated()) { - if (!(bitmapImage->isLargeForDecoding() && settings().animatedImageAsyncDecodingEnabled())) - return DecodingMode::Synchronous; - - if (bitmapImage->hasEverAnimated()) + if (bitmapImage->isLargeForDecoding() && settings().animatedImageAsyncDecodingEnabled()) return DecodingMode::Asynchronous; - - return defaultDecodingMode(); + return DecodingMode::Synchronous; } // Large image case. diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderFlexibleBox.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/RenderFlexibleBox.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderFlexibleBox.cpp 2024-08-19 06:28:39.527267700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderFlexibleBox.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -1513,7 +1513,7 @@ } if (isHorizontalFlow ? flexItem.isScrollContainerY() : flexItem.isScrollContainerX()) - return std::clamp(*ascent, 0_lu, crossAxisExtentForFlexItem(flexItem)) + flowAwareMarginBeforeForFlexItem(flexItem); + return std::max(0_lu, std::min(*ascent, crossAxisExtentForFlexItem(flexItem))) + flowAwareMarginBeforeForFlexItem(flexItem); return *ascent + flowAwareMarginBeforeForFlexItem(flexItem);; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayer.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayer.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayer.cpp 2024-08-19 06:28:39.531267600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayer.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -827,14 +827,19 @@ } } -void RenderLayer::removeSelfAndDescendantsFromCompositor() +void RenderLayer::removeSelfFromCompositor() { if (parent()) compositor().layerWillBeRemoved(*parent(), *this); clearBacking(); +} - for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) - child->removeSelfAndDescendantsFromCompositor(); +void RenderLayer::removeDescendantsFromCompositor() +{ + for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) { + child->removeSelfFromCompositor(); + child->removeDescendantsFromCompositor(); + } } void RenderLayer::setWasOmittedFromZOrderTree() @@ -842,7 +847,13 @@ if (m_wasOmittedFromZOrderTree) return; - removeSelfAndDescendantsFromCompositor(); + ASSERT(!isNormalFlowOnly()); + removeSelfFromCompositor(); + + // Omitting a stacking context removes the whole subtree, otherwise collectLayers will + // visit and omit/include descendants separately. + if (isStackingContext()) + removeDescendantsFromCompositor(); if (compositor().hasContentCompositingLayers() && parent()) parent()->setDescendantsNeedCompositingRequirementsTraversal(); @@ -858,10 +869,10 @@ bool isStacking = isStackingContext(); // Overflow layers are just painted by their enclosing layers, so they don't get put in zorder lists. - bool includeHiddenLayer = (m_hasVisibleContent || m_intrinsicallyComposited) || ((m_hasVisibleDescendant || m_hasIntrinsicallyCompositedDescendants) && isStacking); - includeHiddenLayer |= page().hasEverSetVisibilityAdjustment(); + bool layerOrDescendantsAreVisible = (m_hasVisibleContent || m_intrinsicallyComposited) || ((m_hasVisibleDescendant || m_hasIntrinsicallyCompositedDescendants) && isStacking); + layerOrDescendantsAreVisible |= page().hasEverSetVisibilityAdjustment(); if (!isNormalFlowOnly()) { - if (includeHiddenLayer) { + if (layerOrDescendantsAreVisible) { auto& layerList = (zIndex() >= 0) ? positiveZOrderList : negativeZOrderList; if (!layerList) layerList = makeUnique>(); @@ -874,7 +885,7 @@ // Recur into our children to collect more layers, but only if we don't establish // a stacking context/container. - if ((m_hasIntrinsicallyCompositedDescendants || m_hasVisibleDescendant) && !isStacking) { + if (!isStacking) { for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) { // Ignore reflections. if (!isReflectionLayer(*child)) @@ -4647,14 +4658,14 @@ clipRects.reset(); return; } - + ClipRectsType clipRectsType = clipRectsContext.clipRectsType; bool useCached = clipRectsType != TemporaryClipRects; // For transformed layers, the root layer was shifted to be us, so there is no need to // examine the parent. We want to cache clip rects with us as the root. RenderLayer* parentLayer = clipRectsContext.rootLayer != this ? parent() : nullptr; - + // Ensure that our parent's clip has been calculated so that we can examine the values. if (parentLayer) { if (useCached && parentLayer->clipRects(clipRectsContext)) @@ -4680,7 +4691,7 @@ clipRects.setPosClipRect(clipRects.overflowClipRect()); else if (renderer().shouldUsePositionedClipping()) clipRects.setOverflowClipRect(clipRects.posClipRect()); - + // Update the clip rects that will be passed to child layers. #if PLATFORM(IOS_FAMILY) if (renderer().hasClipOrNonVisibleOverflow() && (clipRectsContext.respectOverflowClip() || this != clipRectsContext.rootLayer)) { @@ -4855,7 +4866,7 @@ return intersection(absoluteClippingRect, renderer().view().unscaledDocumentRect()); } -LayoutRect RenderLayer::clipRectRelativeToAncestor(RenderLayer* ancestor, LayoutSize offsetFromAncestor, const LayoutRect& constrainingRect, bool temporaryClipRects) const +LayoutRect RenderLayer::clipRectRelativeToAncestor(const RenderLayer* ancestor, LayoutSize offsetFromAncestor, const LayoutRect& constrainingRect, bool temporaryClipRects) const { LayoutRect layerBounds; ClipRect backgroundRect; @@ -4875,12 +4886,12 @@ return clippingRootLayer->renderer().localToAbsoluteQuad(FloatQuad(clipRect)).enclosingBoundingBox(); } -LayoutRect RenderLayer::localClipRect(bool& clipExceedsBounds) const +LayoutRect RenderLayer::localClipRect(bool& clipExceedsBounds, LocalClipRectMode mode) const { clipExceedsBounds = false; // FIXME: border-radius not accounted for. // FIXME: Regions not accounted for. - RenderLayer* clippingRootLayer = clippingRootForPainting(); + const RenderLayer* clippingRootLayer = mode == LocalClipRectMode::ExcludeCompositingState ? this : clippingRootForPainting(); LayoutSize offsetFromRoot = offsetFromAncestor(clippingRootLayer); LayoutRect clipRect = clipRectRelativeToAncestor(clippingRootLayer, offsetFromRoot, LayoutRect::infiniteRect()); if (clipRect.isInfinite()) @@ -4952,7 +4963,7 @@ // can use the cached value. if (cachedBoundingBox) return cachedBoundingBox->intersects(damageRect); - + return boundingBox(rootLayer, offsetFromRoot).intersects(damageRect); } @@ -5003,7 +5014,7 @@ } LayoutRect RenderLayer::boundingBox(const RenderLayer* ancestorLayer, const LayoutSize& offsetFromRoot, OptionSet flags) const -{ +{ LayoutRect result = localBoundingBox(flags); if (renderer().view().frameView().hasFlippedBlockRenderers()) { if (renderer().isRenderBox()) @@ -5019,7 +5030,7 @@ const RenderLayer* paginationLayer = nullptr; if (flags.containsAny({ UseFragmentBoxesExcludingCompositing, UseFragmentBoxesIncludingCompositing })) paginationLayer = enclosingPaginationLayerInSubtree(ancestorLayer, inclusionMode); - + const RenderLayer* childLayer = this; bool isPaginated = paginationLayer; while (paginationLayer) { @@ -5029,7 +5040,7 @@ auto& enclosingFragmentedFlow = downcast(paginationLayer->renderer()); result = enclosingFragmentedFlow.fragmentsBoundingBox(result); - + childLayer = paginationLayer; paginationLayer = paginationLayer->parent()->enclosingPaginationLayerInSubtree(ancestorLayer, inclusionMode); } @@ -5038,7 +5049,7 @@ result.move(childLayer->offsetFromAncestor(ancestorLayer)); return result; } - + result.move(offsetFromRoot); return result; } @@ -5049,7 +5060,7 @@ auto boundsFlags = additionalFlags | (defaultCalculateLayerBoundsFlags() - IncludeSelfTransform); bounds = calculateLayerBounds(this, LayoutSize(), boundsFlags); - + LayoutRect animatedBounds = bounds; if (auto styleable = Styleable::fromRenderer(renderer())) { if (styleable->computeAnimationExtent(animatedBounds)) { @@ -5076,7 +5087,7 @@ LayoutRect RenderLayer::overlapBounds() const { if (overlapBoundsIncludeChildren()) - return calculateLayerBounds(this, { }, { UseLocalClipRectIfPossible, IncludeFilterOutsets, UseFragmentBoxesExcludingCompositing }); + return calculateLayerBounds(this, { }, { UseLocalClipRectExcludingCompositingIfPossible, IncludeFilterOutsets, UseFragmentBoxesExcludingCompositing }); return localBoundingBox(); } @@ -5105,9 +5116,9 @@ LayoutRect unionBounds = boundingBoxRect; - if (flags & UseLocalClipRectIfPossible) { + if (flags.containsAny({ UseLocalClipRectIfPossible, UseLocalClipRectExcludingCompositingIfPossible })) { bool clipExceedsBounds = false; - LayoutRect localClipRect = this->localClipRect(clipExceedsBounds); + LayoutRect localClipRect = this->localClipRect(clipExceedsBounds, flags.contains(UseLocalClipRectExcludingCompositingIfPossible) ? LocalClipRectMode::ExcludeCompositingState : LocalClipRectMode::IncludeCompositingState); if (!localClipRect.isInfinite() && !clipExceedsBounds) { if ((flags & IncludeSelfTransform) && paintsWithTransform(PaintBehavior::Normal)) localClipRect = transform()->mapRect(localClipRect); diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayer.h webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayer.h --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayer.h 2024-08-19 06:28:39.531267600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayer.h 2024-10-21 09:00:02.711246500 +0000 @@ -676,7 +676,12 @@ LayoutRect childrenClipRect() const; // Returns the foreground clip rect of the layer in the document's coordinate space. LayoutRect selfClipRect() const; // Returns the background clip rect of the layer in the document's coordinate space. - LayoutRect localClipRect(bool& clipExceedsBounds) const; // Returns the background clip rect of the layer in the local coordinate space. + + enum class LocalClipRectMode { + IncludeCompositingState, + ExcludeCompositingState, + }; + LayoutRect localClipRect(bool& clipExceedsBounds, LocalClipRectMode = LocalClipRectMode::IncludeCompositingState) const; // Returns the background clip rect of the layer in the local coordinate space. bool clipCrossesPaintingBoundary() const; @@ -684,17 +689,18 @@ bool intersectsDamageRect(const LayoutRect& layerBounds, const LayoutRect& damageRect, const RenderLayer* rootLayer, const LayoutSize& offsetFromRoot, const std::optional& cachedBoundingBox = std::nullopt) const; enum CalculateLayerBoundsFlag { - IncludeSelfTransform = 1 << 0, - UseLocalClipRectIfPossible = 1 << 1, - IncludeFilterOutsets = 1 << 2, - IncludePaintedFilterOutsets = 1 << 3, - ExcludeHiddenDescendants = 1 << 4, - DontConstrainForMask = 1 << 5, - IncludeCompositedDescendants = 1 << 6, - UseFragmentBoxesExcludingCompositing = 1 << 7, - UseFragmentBoxesIncludingCompositing = 1 << 8, - IncludeRootBackgroundPaintingArea = 1 << 9, - PreserveAncestorFlags = 1 << 10, + IncludeSelfTransform = 1 << 0, + UseLocalClipRectIfPossible = 1 << 1, + IncludeFilterOutsets = 1 << 2, + IncludePaintedFilterOutsets = 1 << 3, + ExcludeHiddenDescendants = 1 << 4, + DontConstrainForMask = 1 << 5, + IncludeCompositedDescendants = 1 << 6, + UseFragmentBoxesExcludingCompositing = 1 << 7, + UseFragmentBoxesIncludingCompositing = 1 << 8, + IncludeRootBackgroundPaintingArea = 1 << 9, + PreserveAncestorFlags = 1 << 10, + UseLocalClipRectExcludingCompositingIfPossible = 1 << 11, }; static constexpr OptionSet defaultCalculateLayerBoundsFlags() { return { IncludeSelfTransform, UseLocalClipRectIfPossible, IncludePaintedFilterOutsets, UseFragmentBoxesExcludingCompositing }; } @@ -973,7 +979,7 @@ void setRepaintRects(const RenderObject::RepaintRects&); void clearRepaintRects(); - LayoutRect clipRectRelativeToAncestor(RenderLayer* ancestor, LayoutSize offsetFromAncestor, const LayoutRect& constrainingRect, bool temporaryClipRects = false) const; + LayoutRect clipRectRelativeToAncestor(const RenderLayer* ancestor, LayoutSize offsetFromAncestor, const LayoutRect& constrainingRect, bool temporaryClipRects = false) const; void clipToRect(GraphicsContext&, GraphicsContextStateSaver&, RegionContextStateSaver&, const LayerPaintingInfo&, OptionSet, const ClipRect&, BorderRadiusClippingRule = IncludeSelfForBorderRadius); @@ -1187,7 +1193,8 @@ void setWasOmittedFromZOrderTree(); void setWasIncludedInZOrderTree() { m_wasOmittedFromZOrderTree = false; } - void removeSelfAndDescendantsFromCompositor(); + void removeSelfFromCompositor(); + void removeDescendantsFromCompositor(); void setHasCompositingDescendant(bool b) { m_hasCompositingDescendant = b; } void setHasCompositedNonContainedDescendants(bool value) { m_hasCompositedNonContainedDescendants = value; } diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayerCompositor.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayerCompositor.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayerCompositor.cpp 2024-08-19 06:28:39.535267400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayerCompositor.cpp 2024-09-30 08:15:01.136258400 +0000 @@ -78,6 +78,7 @@ #include "WillChangeData.h" #include #include +#include #include #include #include @@ -276,12 +277,23 @@ with the last scroller. This is not currently supported. 3. Nested scrollers: - Similar to overlapping scrollrs, we have to ensure that we add to the right provider (looking a scrolling scope), + Similar to overlapping scrollers, we have to ensure that we add to the right provider (looking a scrolling scope), and don't break overlap with the nested scroller. This is not currently supported. + We also track additional backing sharing providers that aren't clipped scrollers. These cannot be added to, since that could expand the bounds of the resulting layer. + They are tracked so we can check them for overlap, and continue to add to the scroller backing sharing providers if the new content doesn't overlap. + To debug sharing behavior, enable the "Compositing" log channel and look for the P/p in the hierarchy output. */ +enum class BackingSharingSequenceIdentifierType { }; +using BackingSharingSequenceIdentifier = ObjectIdentifier; + +struct RenderLayerCompositor::BackingSharingSnapshot { + BackingSharingSequenceIdentifier sequenceIdentifier; + size_t providerCount { 0 }; +}; + class RenderLayerCompositor::BackingSharingState { WTF_MAKE_NONCOPYABLE(BackingSharingState); public: @@ -315,12 +327,18 @@ m_layersPendingRepaint.add(layer); } - void addBackingSharingCandidate(RenderLayer& candidateLayer, LayoutRect candidateAbsoluteBounds, RenderLayer& candidateStackingContext, const BackingSharingSnapshot&); + void addBackingSharingCandidate(RenderLayer& candidateLayer, LayoutRect candidateAbsoluteBounds, RenderLayer& candidateStackingContext, const std::optional&); bool isAdditionalProviderCandidate(RenderLayer&, LayoutRect candidateAbsoluteBounds, RenderLayer* stackingContextAncestor) const; void startBackingSharingSequence(RenderLayer& candidateLayer, LayoutRect candidateAbsoluteBounds, RenderLayer& candidateStackingContext); void endBackingSharingSequence(RenderLayer&); - BackingSharingSnapshot snapshot() const { return { m_backingSharingStackingContext, m_backingProviderCandidates.size() }; } + std::optional snapshot() const + { + if (!m_backingSharingStackingContext) + return std::nullopt; + return BackingSharingSnapshot { m_sequenceIdentifier, m_backingProviderCandidates.size() }; + } + BackingSharingSequenceIdentifier sequenceIdentifier() const { return m_sequenceIdentifier; } private: void layerWillBeComposited(RenderLayer&); @@ -329,6 +347,7 @@ Vector m_backingProviderCandidates; RenderLayer* m_backingSharingStackingContext { nullptr }; + BackingSharingSequenceIdentifier m_sequenceIdentifier { BackingSharingSequenceIdentifier::generate() }; SingleThreadWeakHashSet m_layersPendingRepaint; bool m_allowOverlappingProviders { false }; }; @@ -343,7 +362,7 @@ m_backingSharingStackingContext = &candidateStackingContext; } -void RenderLayerCompositor::BackingSharingState::addBackingSharingCandidate(RenderLayer& candidateLayer, LayoutRect candidateAbsoluteBounds, RenderLayer& candidateStackingContext, const BackingSharingSnapshot& backingSharingSnapshot) +void RenderLayerCompositor::BackingSharingState::addBackingSharingCandidate(RenderLayer& candidateLayer, LayoutRect candidateAbsoluteBounds, RenderLayer& candidateStackingContext, const std::optional& backingSharingSnapshot) { ASSERT_UNUSED(candidateStackingContext, m_backingSharingStackingContext == &candidateStackingContext); ASSERT(!m_backingProviderCandidates.containsIf([&](auto& candidate) { return candidate.providerLayer == &candidateLayer; })); @@ -351,13 +370,13 @@ // Inserts candidateLayer into the provider list in z-order, using the state snapshot that // was taken before any descendant layers were traversed. - if (m_backingSharingStackingContext != backingSharingSnapshot.backingSharingStackingContext) { + if (!backingSharingSnapshot || m_sequenceIdentifier != backingSharingSnapshot->sequenceIdentifier) { // If a new sharing sequence has been started since the snapshot was taken, then this candidate - // will be before any of the current ones in z-order. + // will be before any of the current ones in z-order (which must have been added by descendants of this layer). m_backingProviderCandidates.insert(0, { &candidateLayer, { }, candidateAbsoluteBounds }); } else // Otherwise insert it at the position captured in the snapshot - m_backingProviderCandidates.insert(backingSharingSnapshot.providerCount, { &candidateLayer, { }, candidateAbsoluteBounds }); + m_backingProviderCandidates.insert(backingSharingSnapshot->providerCount, { &candidateLayer, { }, candidateAbsoluteBounds }); } void RenderLayerCompositor::BackingSharingState::endBackingSharingSequence(RenderLayer& endLayer) @@ -371,6 +390,7 @@ candidate.providerLayer->backing()->setBackingSharingLayers(WTFMove(candidate.sharingLayers)); } m_backingSharingStackingContext = nullptr; + m_sequenceIdentifier = BackingSharingSequenceIdentifier::generate(); issuePendingRepaints(); } @@ -418,6 +438,12 @@ auto& candidate = m_backingProviderCandidates[candidateIndex]; + // Only allow adding to providers that clip their descendants, unless there's only a single provider. + // Unclipped providers in-front are tracked for overlap testing only. + // FIXME: We could accumulate the union of the overlap bounds for a provider and its sharing layers to avoid this restriction. + if (m_backingProviderCandidates.size() > 1 && !candidate.providerLayer->canUseCompositedScrolling()) + return nullptr; + if (candidateIndex == m_backingProviderCandidates.size() - 1) { // No other provider is in front of the candidate, so no need to check for overlap. return &candidate; @@ -493,6 +519,9 @@ return true; } + if (!m_backingProviderCandidates[0].providerLayer->canUseCompositedScrolling()) + return false; + if (m_backingProviderCandidates.size() >= 10) return false; return true; @@ -1257,7 +1286,6 @@ } auto backingSharingSnapshot = updateBackingSharingBeforeDescendantTraversal(backingSharingState, treeDepth, overlapMap, layer, layerExtent, willBeComposited, compositingState.stackingContextAncestor); - auto preDescendantProviderStartLayer = backingSharingState.firstProviderCandidateLayer(); #if ASSERT_ENABLED LayerListMutationDetector mutationChecker(layer); @@ -1380,7 +1408,7 @@ // Compute state passed to the caller. descendantHas3DTransform |= anyDescendantHas3DTransform || layer.has3DTransform(); compositingState.updateWithDescendantStateAndLayer(currentState, layer, ancestorLayer, layerExtent); - updateBackingSharingAfterDescendantTraversal(backingSharingState, treeDepth, overlapMap, layer, layerExtent, preDescendantProviderStartLayer, compositingState.stackingContextAncestor, backingSharingSnapshot); + updateBackingSharingAfterDescendantTraversal(backingSharingState, treeDepth, overlapMap, layer, layerExtent, compositingState.stackingContextAncestor, backingSharingSnapshot); bool layerContributesToOverlap = (currentState.compositingAncestor && !currentState.compositingAncestor->isRenderViewLayer()) || currentState.backingSharingAncestor; updateOverlapMap(overlapMap, layer, layerExtent, didPushOverlapContainer, layerContributesToOverlap, becameCompositedAfterDescendantTraversal && !descendantsAddedToOverlap); @@ -1459,7 +1487,6 @@ } auto backingSharingSnapshot = updateBackingSharingBeforeDescendantTraversal(backingSharingState, treeDepth, overlapMap, layer, layerExtent, layerIsComposited, compositingState.stackingContextAncestor); - auto preDescendantProviderStartLayer = backingSharingState.firstProviderCandidateLayer(); #if ASSERT_ENABLED LayerListMutationDetector mutationChecker(layer); @@ -1487,7 +1514,7 @@ ASSERT(!currentState.fullPaintOrderTraversalRequired); compositingState.updateWithDescendantStateAndLayer(currentState, layer, ancestorLayer, layerExtent, true); - updateBackingSharingAfterDescendantTraversal(backingSharingState, treeDepth, overlapMap, layer, layerExtent, preDescendantProviderStartLayer, compositingState.stackingContextAncestor, backingSharingSnapshot); + updateBackingSharingAfterDescendantTraversal(backingSharingState, treeDepth, overlapMap, layer, layerExtent, compositingState.stackingContextAncestor, backingSharingSnapshot); bool layerContributesToOverlap = (currentState.compositingAncestor && !currentState.compositingAncestor->isRenderViewLayer()) || currentState.backingSharingAncestor; updateOverlapMap(overlapMap, layer, layerExtent, didPushOverlapContainer, layerContributesToOverlap); @@ -1688,7 +1715,7 @@ layer.clearUpdateBackingOrHierarchyTraversalState(); } -RenderLayerCompositor::BackingSharingSnapshot RenderLayerCompositor::updateBackingSharingBeforeDescendantTraversal(BackingSharingState& sharingState, unsigned depth, const LayerOverlapMap& overlapMap, RenderLayer& layer, OverlapExtent& layerExtent, bool willBeComposited, RenderLayer* stackingContextAncestor) +std::optional RenderLayerCompositor::updateBackingSharingBeforeDescendantTraversal(BackingSharingState& sharingState, unsigned depth, const LayerOverlapMap& overlapMap, RenderLayer& layer, OverlapExtent& layerExtent, bool willBeComposited, RenderLayer* stackingContextAncestor) { UNUSED_PARAM(depth); @@ -1717,7 +1744,7 @@ return sharingState.snapshot(); } -void RenderLayerCompositor::updateBackingSharingAfterDescendantTraversal(BackingSharingState& sharingState, unsigned depth, const LayerOverlapMap& overlapMap, RenderLayer& layer, OverlapExtent& layerExtent, const RenderLayer* preDescendantProviderStartLayer, RenderLayer* stackingContextAncestor, const BackingSharingSnapshot& backingSharingSnapshot) +void RenderLayerCompositor::updateBackingSharingAfterDescendantTraversal(BackingSharingState& sharingState, unsigned depth, const LayerOverlapMap& overlapMap, RenderLayer& layer, OverlapExtent& layerExtent, RenderLayer* stackingContextAncestor, const std::optional& backingSharingSnapshot) { UNUSED_PARAM(depth); LOG_WITH_STREAM(Compositing, stream << TextStream::Repeat(depth * 2, ' ') << &layer << " updateBackingSharingAfterDescendantTraversal for layer - is composited " << layer.isComposited() << " has composited descendant " << layer.hasCompositingDescendant()); @@ -1767,7 +1794,8 @@ layer.backing()->clearBackingSharingLayers(); LOG_WITH_STREAM(Compositing, stream << TextStream::Repeat(depth * 2, ' ') << " - is composited; maybe ending existing backing sequence with candidates " << sharingState.backingProviderCandidates() << " stacking context " << sharingState.backingSharingStackingContext()); - if (preDescendantProviderStartLayer && preDescendantProviderStartLayer == sharingState.firstProviderCandidateLayer()) + // A layer that composites resets backing-sharing, since subsequent layers need to composite to overlap it. If a descendant didn't already end the sharing sequence that was current when processing of this layer started, end it now. + if (backingSharingSnapshot && backingSharingSnapshot->sequenceIdentifier == sharingState.sequenceIdentifier()) sharingState.endBackingSharingSequence(layer); } diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayerCompositor.h webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayerCompositor.h --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderLayerCompositor.h 2024-08-19 06:28:39.535267400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderLayerCompositor.h 2024-09-30 08:15:01.136258400 +0000 @@ -445,13 +445,10 @@ void updateOverlapMap(LayerOverlapMap&, const RenderLayer&, OverlapExtent&, bool didPushContainer, bool addLayerToOverlap, bool addDescendantsToOverlap = false) const; bool layerOverlaps(const LayerOverlapMap&, const RenderLayer&, OverlapExtent&) const; - struct BackingSharingSnapshot { - RenderLayer* backingSharingStackingContext; - size_t providerCount; - }; + struct BackingSharingSnapshot; - BackingSharingSnapshot updateBackingSharingBeforeDescendantTraversal(BackingSharingState&, unsigned depth, const LayerOverlapMap&, RenderLayer&, OverlapExtent&, bool willBeComposited, RenderLayer* stackingContextAncestor); - void updateBackingSharingAfterDescendantTraversal(BackingSharingState&, unsigned depth, const LayerOverlapMap&, RenderLayer&, OverlapExtent&, const RenderLayer* preDescendantProviderStartLayer, RenderLayer* stackingContextAncestor, const BackingSharingSnapshot&); + std::optional updateBackingSharingBeforeDescendantTraversal(BackingSharingState&, unsigned depth, const LayerOverlapMap&, RenderLayer&, OverlapExtent&, bool willBeComposited, RenderLayer* stackingContextAncestor); + void updateBackingSharingAfterDescendantTraversal(BackingSharingState&, unsigned depth, const LayerOverlapMap&, RenderLayer&, OverlapExtent&, RenderLayer* stackingContextAncestor, const std::optional&); void clearBackingProviderSequencesInStackingContextOfLayer(RenderLayer&); diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/RenderTable.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/RenderTable.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/RenderTable.cpp 2024-08-19 06:28:39.539267300 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/RenderTable.cpp 2024-10-21 09:00:02.711246500 +0000 @@ -619,7 +619,7 @@ } bool paginated = layoutState && layoutState->isPaginated(); - if (sectionMoved && paginated) { + if (sectionCount && sectionMoved && paginated) { // FIXME: Table layout should always stabilize even when section moves (see webkit.org/b/174412). if (m_recursiveSectionMovedWithPaginationLevel < sectionCount) { SetForScope recursiveSectionMovedWithPaginationLevel(m_recursiveSectionMovedWithPaginationLevel, m_recursiveSectionMovedWithPaginationLevel + 1); diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/svg/RenderSVGShape.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/svg/RenderSVGShape.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/svg/RenderSVGShape.cpp 2024-08-19 06:28:39.579266000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/svg/RenderSVGShape.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -390,7 +390,8 @@ float RenderSVGShape::strokeWidth() const { SVGLengthContext lengthContext(protectedGraphicsElement().ptr()); - return lengthContext.valueForLength(style().strokeWidth()); + auto strokeWidth = lengthContext.valueForLength(style().strokeWidth()); + return std::isnan(strokeWidth) ? 0 : strokeWidth; } Path& RenderSVGShape::ensurePath() diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp 2024-08-19 06:28:39.583266000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -453,7 +453,8 @@ { Ref graphicsElement = this->graphicsElement(); SVGLengthContext lengthContext(graphicsElement.ptr()); - return lengthContext.valueForLength(style().strokeWidth()); + auto strokeWidth = lengthContext.valueForLength(style().strokeWidth()); + return std::isnan(strokeWidth) ? 0 : strokeWidth; } Path& LegacyRenderSVGShape::ensurePath() diff -Nru webkit2gtk-2.46.0/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp webkit2gtk-2.46.3/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp --- webkit2gtk-2.46.0/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2024-08-19 06:28:39.587266000 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2024-10-21 09:00:02.715246400 +0000 @@ -480,7 +480,11 @@ // FIXME: Introduce a dirty bit to bridge the gap between parent and containing block which would // not trigger layout but a simple traversal all the way to the direct parent and also expand it non-direct parent cases. // FIXME: RenderVideo's setNeedsLayout pattern does not play well with this optimization: see webkit.org/b/276253 - if (newChild->containingBlock() == &parent && !is(*newChild)) + if (newChild->containingBlock() == &parent +#if ENABLE(VIDEO) + && !is(*newChild) +#endif // ENABLE(VIDEO) + ) parent.setOutOfFlowChildNeedsStaticPositionLayout(); else parent.setChildNeedsLayout(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/style/StyleAdjuster.cpp webkit2gtk-2.46.3/Source/WebCore/style/StyleAdjuster.cpp --- webkit2gtk-2.46.0/Source/WebCore/style/StyleAdjuster.cpp 2024-08-19 06:28:39.591265700 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/style/StyleAdjuster.cpp 2024-09-30 08:15:01.136258400 +0000 @@ -984,6 +984,17 @@ } #endif #endif + +#if ENABLE(DARK_MODE_CSS) + if (m_document.quirks().needsYouTubeDarkModeQuirk()) { + // Sets color-scheme to dark if dark attribute is applied to root element. + if (m_element && m_element == m_document.documentElement()) { + static MainThreadNeverDestroyed darkMode("dark"_s); + if (m_element->hasAttribute(darkMode)) + style.setColorScheme(StyleColorScheme(ColorScheme::Dark, true)); + } + } +#endif } void Adjuster::propagateToDocumentElementAndInitialContainingBlock(Update& update, const Document& document) diff -Nru webkit2gtk-2.46.0/Source/WebCore/style/StyleScopeRuleSets.cpp webkit2gtk-2.46.3/Source/WebCore/style/StyleScopeRuleSets.cpp --- webkit2gtk-2.46.0/Source/WebCore/style/StyleScopeRuleSets.cpp 2024-08-19 06:28:39.595265600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/style/StyleScopeRuleSets.cpp 2024-10-21 09:00:02.715246400 +0000 @@ -302,7 +302,7 @@ m_customPropertyNamesInStyleContainerQueries = std::nullopt; - m_cachedHasComplexSelectorsForStyleAttribute = std::nullopt; + m_cachedSelectorsForStyleAttribute = std::nullopt; m_features.shrinkToFit(); } @@ -393,28 +393,23 @@ return *m_customPropertyNamesInStyleContainerQueries; } -bool ScopeRuleSets::hasSelectorsForStyleAttribute() const -{ - return !!attributeInvalidationRuleSets(HTMLNames::styleAttr->localName()); -} - -bool ScopeRuleSets::hasComplexSelectorsForStyleAttribute() const +SelectorsForStyleAttribute ScopeRuleSets::selectorsForStyleAttribute() const { auto compute = [&] { auto* ruleSets = attributeInvalidationRuleSets(HTMLNames::styleAttr->localName()); if (!ruleSets) - return false; + return SelectorsForStyleAttribute::None; for (auto& ruleSet : *ruleSets) { if (ruleSet.matchElement != MatchElement::Subject) - return true; + return SelectorsForStyleAttribute::NonSubjectPosition; } - return false; + return SelectorsForStyleAttribute::SubjectPositionOnly; }; - if (!m_cachedHasComplexSelectorsForStyleAttribute) - m_cachedHasComplexSelectorsForStyleAttribute = compute(); + if (!m_cachedSelectorsForStyleAttribute) + m_cachedSelectorsForStyleAttribute = compute(); - return *m_cachedHasComplexSelectorsForStyleAttribute; + return *m_cachedSelectorsForStyleAttribute; } bool ScopeRuleSets::hasMatchingUserOrAuthorStyle(const Function& predicate) diff -Nru webkit2gtk-2.46.0/Source/WebCore/style/StyleScopeRuleSets.h webkit2gtk-2.46.3/Source/WebCore/style/StyleScopeRuleSets.h --- webkit2gtk-2.46.0/Source/WebCore/style/StyleScopeRuleSets.h 2024-08-19 06:28:39.595265600 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/style/StyleScopeRuleSets.h 2024-10-21 09:00:02.715246400 +0000 @@ -53,6 +53,8 @@ IsNegation isNegation; }; +enum class SelectorsForStyleAttribute : uint8_t { None, SubjectPositionOnly, NonSubjectPosition }; + class ScopeRuleSets { public: ScopeRuleSets(Resolver&); @@ -78,8 +80,7 @@ const HashSet& customPropertyNamesInStyleContainerQueries() const; - bool hasSelectorsForStyleAttribute() const; - bool hasComplexSelectorsForStyleAttribute() const; + SelectorsForStyleAttribute selectorsForStyleAttribute() const; void setUsesSharedUserStyle(bool b) { m_usesSharedUserStyle = b; } void initializeUserStyle(); @@ -131,7 +132,7 @@ mutable std::optional> m_customPropertyNamesInStyleContainerQueries; - mutable std::optional m_cachedHasComplexSelectorsForStyleAttribute; + mutable std::optional m_cachedSelectorsForStyleAttribute; mutable unsigned m_defaultStyleVersionOnFeatureCollection { 0 }; mutable unsigned m_userAgentMediaQueryRuleCountOnUpdate { 0 }; diff -Nru webkit2gtk-2.46.0/Source/WebCore/testing/Internals.cpp webkit2gtk-2.46.3/Source/WebCore/testing/Internals.cpp --- webkit2gtk-2.46.0/Source/WebCore/testing/Internals.cpp 2024-08-19 06:28:39.619264800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/testing/Internals.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -5157,6 +5157,11 @@ } #endif +bool Internals::elementIsActiveNowPlayingSession(HTMLMediaElement& element) const +{ + return element.isActiveNowPlayingSession(); +} + #endif // ENABLE(VIDEO) #if ENABLE(WIRELESS_PLAYBACK_TARGET) @@ -7275,7 +7280,7 @@ String Internals::treeOrderBoundaryPoints(Node& containerA, unsigned offsetA, Node& containerB, unsigned offsetB, TreeType type) { - return string(treeOrderForTesting(convertType(type), { containerA, offsetA }, { containerB, offsetB })); + return string(treeOrderForTesting(convertType(type), BoundaryPoint( containerA, offsetA ), BoundaryPoint(containerB, offsetB))); } bool Internals::rangeContainsNode(const AbstractRange& range, Node& node, TreeType type) @@ -7550,10 +7555,12 @@ return nullString(); } +#if ENABLE(VIDEO) bool Internals::isEffectivelyMuted(const HTMLMediaElement& element) { return element.effectiveMuted(); } +#endif std::optional Internals::getEffectiveRenderingModeOfNewlyCreatedAcceleratedImageBuffer() { diff -Nru webkit2gtk-2.46.0/Source/WebCore/testing/Internals.h webkit2gtk-2.46.3/Source/WebCore/testing/Internals.h --- webkit2gtk-2.46.0/Source/WebCore/testing/Internals.h 2024-08-19 06:28:39.619264800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/testing/Internals.h 2024-10-21 09:00:02.715246400 +0000 @@ -1198,6 +1198,8 @@ ExceptionOr> mediaElementCurrentlySpokenCue(HTMLMediaElement&); #endif + bool elementIsActiveNowPlayingSession(HTMLMediaElement&) const; + #endif // ENABLE(VIDEO) void setCaptureExtraNetworkLoadMetricsEnabled(bool); @@ -1481,7 +1483,9 @@ const String& defaultSpatialTrackingLabel() const; +#if ENABLE(VIDEO) bool isEffectivelyMuted(const HTMLMediaElement&); +#endif using RenderingMode = WebCore::RenderingMode; std::optional getEffectiveRenderingModeOfNewlyCreatedAcceleratedImageBuffer(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/testing/Internals.idl webkit2gtk-2.46.3/Source/WebCore/testing/Internals.idl --- webkit2gtk-2.46.0/Source/WebCore/testing/Internals.idl 2024-08-19 06:28:39.619264800 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/testing/Internals.idl 2024-10-21 09:00:02.715246400 +0000 @@ -1231,6 +1231,7 @@ [Conditional=VIDEO] readonly attribute NowPlayingMetadata? nowPlayingMetadata; [Conditional=VIDEO] readonly attribute NowPlayingState nowPlayingState; + [Conditional=VIDEO] boolean elementIsActiveNowPlayingSession(HTMLMediaElement element); [Conditional=VIDEO] HTMLMediaElement bestMediaElementForRemoteControls(PlaybackControlsPurpose purpose); [Conditional=VIDEO] MediaSessionState mediaSessionState(HTMLMediaElement element); @@ -1395,7 +1396,7 @@ readonly attribute DOMString defaultSpatialTrackingLabel; - boolean isEffectivelyMuted(HTMLMediaElement element); + [Conditional=VIDEO] boolean isEffectivelyMuted(HTMLMediaElement element); RenderingMode? getEffectiveRenderingModeOfNewlyCreatedAcceleratedImageBuffer(); Promise getImageBufferResourceLimits(); diff -Nru webkit2gtk-2.46.0/Source/WebCore/workers/service/server/SWServer.cpp webkit2gtk-2.46.3/Source/WebCore/workers/service/server/SWServer.cpp --- webkit2gtk-2.46.0/Source/WebCore/workers/service/server/SWServer.cpp 2024-08-19 06:28:39.635264400 +0000 +++ webkit2gtk-2.46.3/Source/WebCore/workers/service/server/SWServer.cpp 2024-09-30 08:15:01.136258400 +0000 @@ -196,8 +196,9 @@ LOG(ServiceWorker, "Adding registration from store for %s", data.registration.key.loggingString().utf8().data()); - auto registrableDomain = WebCore::RegistrableDomain(data.registration.key.topOrigin()); - validateRegistrationDomain(registrableDomain, ServiceWorkerJobType::Register, m_scopeToRegistrationMap.contains(data.registration.key), [this, weakThis = WeakPtr { *this }, data = WTFMove(data), completionHandler = WTFMove(completionHandler)] (bool isValid) mutable { + auto registrationKey = data.registration.key; + auto registrableDomain = WebCore::RegistrableDomain(registrationKey.topOrigin()); + validateRegistrationDomain(registrableDomain, ServiceWorkerJobType::Register, m_scopeToRegistrationMap.contains(registrationKey), [this, weakThis = WeakPtr { *this }, data = WTFMove(data), completionHandler = WTFMove(completionHandler)] (bool isValid) mutable { ASSERT(isMainThread()); RefPtr protectedThis = weakThis.get(); if (!protectedThis) @@ -467,7 +468,8 @@ { ASSERT(m_connections.contains(jobData.connectionIdentifier()) || jobData.connectionIdentifier() == Process::identifier()); - validateRegistrationDomain(WebCore::RegistrableDomain(jobData.topOrigin), jobData.type, m_scopeToRegistrationMap.contains(jobData.registrationKey()), [weakThis = WeakPtr { *this }, jobData = WTFMove(jobData)] (bool isValid) mutable { + auto registrationKey = jobData.registrationKey(); + validateRegistrationDomain(WebCore::RegistrableDomain(jobData.topOrigin), jobData.type, m_scopeToRegistrationMap.contains(registrationKey), [weakThis = WeakPtr { *this }, jobData = WTFMove(jobData)] (bool isValid) mutable { RefPtr protectedThis = weakThis.get(); if (!protectedThis) return; diff -Nru webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js --- webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js 2024-08-19 06:28:39.715262000 +0000 +++ webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js 2024-09-30 08:15:01.136258400 +0000 @@ -124,14 +124,14 @@ return; let resizerElement = event.target; - let quickConsoleHeight = window.innerHeight - (this.element.totalOffsetTop + this.height); + let quickConsoleHeight = WI.quickConsole.element.offsetHeight; let mouseOffset = quickConsoleHeight - (event.pageY - resizerElement.totalOffsetTop); function dockedResizerDrag(event) { let height = window.innerHeight - event.pageY - mouseOffset; this._drawerHeightSetting.value = height; - this._updateDrawerHeight(height); + this._updateDrawerHeight(height, quickConsoleHeight); this.collapsed = false; } @@ -148,13 +148,13 @@ _restoreDrawerHeight() { - this._updateDrawerHeight(this._drawerHeightSetting.value); + this._updateDrawerHeight(this._drawerHeightSetting.value, WI.quickConsole.element.offsetHeight); } - _updateDrawerHeight(height) + _updateDrawerHeight(height, quickConsoleHeight) { const minimumHeight = 64; - const maximumHeight = this.element.parentNode.offsetHeight - WI.TabBrowser.MinimumHeight - WI.QuickConsole.MinimumHeight; + let maximumHeight = this.element.parentNode.offsetHeight - WI.TabBrowser.MinimumHeight - quickConsoleHeight; let heightCSSValue = Number.constrain(height, minimumHeight, maximumHeight) + "px"; if (this.element.style.height === heightCSSValue) diff -Nru webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/Main.css webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/Main.css --- webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/Main.css 2024-08-19 06:28:39.727261500 +0000 +++ webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/Main.css 2024-09-30 08:15:01.140258300 +0000 @@ -175,6 +175,7 @@ #content { display: grid; height: 100%; /* This reduces paint areas when typing in the console. http://webkit.org/b/145324 */ + flex: 1; } body:not(.narrow) #content { diff -Nru webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/QuickConsole.css webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/QuickConsole.css --- webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/QuickConsole.css 2024-08-19 06:28:39.731261500 +0000 +++ webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/QuickConsole.css 2024-09-30 08:15:01.140258300 +0000 @@ -29,6 +29,7 @@ display: flex; align-items: flex-end; + max-height: 33vh; color: var(--text-color); background-color: var(--background-color-content); @@ -51,7 +52,8 @@ align-items: flex-start; - max-height: 33vh; + max-height: 100%; + will-change: z-index; /* Workaround for - Content renders on top of the scroll bar */ overflow-y: auto; overflow-x: hidden; diff -Nru webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js --- webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js 2024-08-19 06:28:39.731261500 +0000 +++ webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js 2024-09-30 08:15:01.140258300 +0000 @@ -482,5 +482,3 @@ this.element.classList.toggle("showing-log", WI.isShowingConsoleTab() || WI.isShowingSplitConsole()); } }; - -WI.QuickConsole.MinimumHeight = 30; /* Keep in sync with `--console-prompt-min-height` */ diff -Nru webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/Variables.css webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/Variables.css --- webkit2gtk-2.46.0/Source/WebInspectorUI/UserInterface/Views/Variables.css 2024-08-19 06:28:39.739261400 +0000 +++ webkit2gtk-2.46.3/Source/WebInspectorUI/UserInterface/Views/Variables.css 2024-09-30 08:15:01.140258300 +0000 @@ -105,7 +105,7 @@ --yellow-highlight-text-color: var(--text-color); --console-secondary-text-color: hsla(0, 0%, 0%, 0.33); - --console-prompt-min-height: 30px; /* Keep in sync with `WI.QuickConsole.MinimumHeight` */ + --console-prompt-min-height: 30px; --message-text-view-font-size: 16px; --message-text-view-large-font-size: 28px; diff -Nru webkit2gtk-2.46.0/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp webkit2gtk-2.46.3/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp --- webkit2gtk-2.46.0/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp 2024-08-19 06:28:39.751261000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp 2024-10-21 09:00:02.715246400 +0000 @@ -425,8 +425,10 @@ RemoteLegacyCDMFactoryProxy& legacyCdmFactoryProxy(); #endif +#if ENABLE(VIDEO) if (RefPtr remoteMediaResourceManager = m_remoteMediaResourceManager) remoteMediaResourceManager->stopListeningForIPC(); +#endif Ref gpuProcess = this->gpuProcess(); gpuProcess->connectionToWebProcessClosed(connection); diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp 2024-08-19 06:28:39.783259900 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -117,7 +117,7 @@ return; } - m_networkProcess->authenticationManager().didReceiveAuthenticationChallenge(m_parameters.sessionID, m_parameters.webPageProxyID, m_parameters.topOrigin ? &m_parameters.topOrigin->data() : nullptr, challenge, negotiatedLegacyTLS, WTFMove(completionHandler)); + m_networkProcess->authenticationManager().didReceiveAuthenticationChallenge(m_parameters.sessionID, m_parameters.webPageProxyID, &m_parameters.topOrigin->data(), challenge, negotiatedLegacyTLS, WTFMove(completionHandler)); } void NetworkCORSPreflightChecker::didReceiveResponse(WebCore::ResourceResponse&& response, NegotiatedLegacyTLS, PrivateRelayed, ResponseCompletionHandler&& completionHandler) @@ -153,7 +153,7 @@ CORS_CHECKER_RELEASE_LOG("didComplete http_status_code=%d", m_response.httpStatusCode()); - auto result = validatePreflightResponse(m_parameters.sessionID, m_parameters.originalRequest, m_response, m_parameters.storedCredentialsPolicy, m_parameters.sourceOrigin, m_networkResourceLoader.get()); + auto result = validatePreflightResponse(m_parameters.sessionID, m_parameters.originalRequest, m_response, m_parameters.storedCredentialsPolicy, m_parameters.topOrigin, m_parameters.sourceOrigin, m_networkResourceLoader.get()); if (!result) { CORS_CHECKER_RELEASE_LOG("didComplete, AccessControl error: %s", result.error().utf8().data()); m_completionCallback(ResourceError { errorDomainWebKitInternal, 0, m_parameters.originalRequest.url(), result.error(), ResourceError::Type::AccessControl }); diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h 2024-08-19 06:28:39.783259900 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h 2024-10-30 09:22:36.530296800 +0000 @@ -53,7 +53,7 @@ struct Parameters { WebCore::ResourceRequest originalRequest; Ref sourceOrigin; - RefPtr topOrigin; + Ref topOrigin; String referrer; String userAgent; PAL::SessionID sessionID; diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2024-09-17 07:38:07.973444700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -269,6 +269,7 @@ } if (decoder.messageReceiverName() == Messages::NetworkSocketChannel::messageReceiverName()) { + MESSAGE_CHECK(decoder.destinationID()); if (auto* channel = m_networkSocketChannels.get(LegacyNullableAtomicObjectIdentifier(decoder.destinationID()))) channel->didReceiveMessage(connection, decoder); return; @@ -296,6 +297,7 @@ #endif if (decoder.messageReceiverName() == Messages::NetworkTransportSession::messageReceiverName()) { + MESSAGE_CHECK(decoder.destinationID()); if (auto* networkTransportSession = m_networkTransportSessions.get(WebTransportSessionIdentifier(decoder.destinationID()))) networkTransportSession->didReceiveMessage(connection, decoder); return; diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2024-08-19 06:28:39.787259800 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -466,7 +466,7 @@ ASSERT(m_options.mode == FetchOptions::Mode::Cors); m_isSimpleRequest = false; - if (CrossOriginPreflightResultCache::singleton().canSkipPreflight(m_sessionID, m_origin->toString(), request.url(), m_storedCredentialsPolicy, request.httpMethod(), m_originalRequestHeaders)) { + if (CrossOriginPreflightResultCache::singleton().canSkipPreflight(m_sessionID, { m_topOrigin->data(), m_origin->data() }, request.url(), m_storedCredentialsPolicy, request.httpMethod(), m_originalRequestHeaders)) { LOAD_CHECKER_RELEASE_LOG("checkCORSRequestWithPreflight - preflight can be skipped thanks to cached result"); updateRequestForAccessControl(request, *origin(), m_storedCredentialsPolicy); handler(WTFMove(request)); @@ -479,7 +479,7 @@ NetworkCORSPreflightChecker::Parameters parameters = { WTFMove(requestForPreflight), *m_origin, - m_topOrigin, + *m_topOrigin, request.httpReferrer(), request.httpUserAgent(), m_sessionID, diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp 2024-08-19 06:28:39.795259500 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -340,6 +340,7 @@ void WebSWServerToContextConnection::didReceiveFetchTaskMessage(IPC::Connection& connection, IPC::Decoder& decoder) { + MESSAGE_CHECK(decoder.destinationID()); auto iterator = m_ongoingFetches.find(LegacyNullableObjectIdentifier(decoder.destinationID())); if (iterator == m_ongoingFetches.end()) return; diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp 2024-08-19 06:28:39.803259400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/soup/NetworkProcessMainSoup.cpp 2024-10-21 09:00:02.715246400 +0000 @@ -29,6 +29,7 @@ #include "AuxiliaryProcessMain.h" #include "NetworkProcess.h" +#include "NetworkSession.h" #include #if USE(GCRYPT) @@ -49,10 +50,14 @@ void platformFinalize() override { - // FIXME: Is this still needed? We should probably destroy all existing sessions at this point instead. // Needed to destroy the SoupSession and SoupCookieJar, e.g. to avoid // leaking SQLite temporary journaling files. - process().destroySession(PAL::SessionID::defaultSessionID()); + Vector sessionIDs; + process().forEachNetworkSession([&sessionIDs](auto& session) { + sessionIDs.append(session.sessionID()); + }); + for (auto& sessionID : sessionIDs) + process().destroySession(sessionID); } }; diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp 2024-10-30 11:47:03.977011200 +0000 @@ -29,11 +29,14 @@ #include "CacheStorageDiskStore.h" #include "CacheStorageManager.h" #include "CacheStorageMemoryStore.h" +#include "Logging.h" #include #include #include #include #include +#include +#include #include #include @@ -282,22 +285,38 @@ if (!m_manager) return callback(makeUnexpected(WebCore::DOMCacheEngine::Error::Internal)); - int64_t spaceRequested = 0; + CheckedUint64 spaceRequested = 0; + CheckedUint64 spaceAvailable = 0; + bool isSpaceRequestedValid = true; auto cacheStorageRecords = WTF::map(WTFMove(records), [&](WebCore::DOMCacheEngine::CrossThreadRecord&& record) { - spaceRequested += record.responseBodySize; - if (auto* existingRecord = findExistingRecord(record.request)) - spaceRequested -= existingRecord->size; + if (isSpaceRequestedValid) { + spaceRequested += record.responseBodySize; + if (auto* existingRecord = findExistingRecord(record.request)) + spaceAvailable += existingRecord->size; + if (spaceRequested.hasOverflowed() || spaceAvailable.hasOverflowed()) + isSpaceRequestedValid = false; + else { + uint64_t spaceUsed = std::min(spaceRequested, spaceAvailable); + spaceRequested -= spaceUsed; + spaceAvailable -= spaceUsed; + } + } return toCacheStorageRecord(WTFMove(record), m_manager->salt(), m_uniqueName); }); // The request still needs to go through quota check to keep ordering. - if (spaceRequested < 0) + if (!isSpaceRequestedValid) spaceRequested = 0; - m_manager->requestSpace(spaceRequested, [this, weakThis = WeakPtr { *this }, records = WTFMove(cacheStorageRecords), callback = WTFMove(callback)](bool granted) mutable { + m_manager->requestSpace(spaceRequested, [this, weakThis = WeakPtr { *this }, records = WTFMove(cacheStorageRecords), callback = WTFMove(callback), isSpaceRequestedValid](bool granted) mutable { if (!weakThis) return callback(makeUnexpected(WebCore::DOMCacheEngine::Error::Internal)); + if (!isSpaceRequestedValid) { + RELEASE_LOG_ERROR(Storage, "CacheStorageCache::putRecords failed because the amount of space requested is invalid"); + return callback(makeUnexpected(WebCore::DOMCacheEngine::Error::Internal)); + } + if (!granted) return callback(makeUnexpected(WebCore::DOMCacheEngine::Error::QuotaExceeded)); diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -29,6 +29,7 @@ #include "CacheStorageRecord.h" #include "Logging.h" #include "NetworkCacheCoders.h" +#include #include #include #include @@ -470,9 +471,9 @@ return { encoder.span() }; } -static Vector encodeRecordBody(const CacheStorageRecord& record) +static Vector encodeRecordBody(const WebCore::DOMCacheEngine::ResponseBody& body) { - return WTF::switchOn(record.responseBody, [](const Ref& formData) { + return WTF::switchOn(body, [](const Ref& formData) { // FIXME: Store form data body. return Vector { }; }, [&](const Ref& buffer) { @@ -482,6 +483,11 @@ }); } +size_t CacheStorageDiskStore::computeRealBodySizeForStorage(const WebCore::DOMCacheEngine::ResponseBody& body) +{ + return encodeRecordBody(body).size(); +} + static Vector encodeRecord(const NetworkCache::Key& key, const Vector& headerData, bool isBodyInline, const Vector& bodyData, const SHA1::Digest& bodyHash, FileSystem::Salt salt) { WTF::Persistence::Encoder encoder; @@ -513,7 +519,7 @@ Vector> recordBlobDatas; for (auto&& record : records) { recordFiles.append(recordFilePath(record.info.key)); - auto bodyData = encodeRecordBody(record); + auto bodyData = encodeRecordBody(record.responseBody); auto bodyHash = computeSHA1(bodyData.span(), m_salt); bool shouldCreateBlob = shouldStoreBodyAsBlob(bodyData); auto recordInfoKey = record.info.key; diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h 2024-10-30 11:47:03.977011200 +0000 @@ -31,11 +31,21 @@ #include #include +namespace WebCore { +class FormData; +class SharedBuffer; +} + +namespace WebCore::DOMCacheEngine { +using ResponseBody = std::variant, Ref>; +} + namespace WebKit { class CacheStorageDiskStore final : public CacheStorageStore { public: static Ref create(const String& cacheName, const String& path, Ref&&); + static size_t computeRealBodySizeForStorage(const WebCore::DOMCacheEngine::ResponseBody&); private: CacheStorageDiskStore(const String& cacheName, const String& path, Ref&&); diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -29,6 +29,7 @@ #include "BackgroundFetchChange.h" #include "BackgroundFetchStoreManager.h" #include "CacheStorageCache.h" +#include "CacheStorageDiskStore.h" #include "CacheStorageManager.h" #include "CacheStorageRegistry.h" #include "FileSystemStorageHandleRegistry.h" @@ -50,6 +51,7 @@ #include "StorageAreaRegistry.h" #include "UnifiedOriginStorageLevel.h" #include "WebsiteDataType.h" +#include #include #include #include @@ -1615,7 +1617,7 @@ transaction->deleteObjectStore(requestData, objectStoreName); } -void NetworkStorageManager::renameObjectStore(const WebCore::IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& newName) +void NetworkStorageManager::renameObjectStore(const WebCore::IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { auto transaction = idbTransaction(requestData); if (!transaction || !transaction->isVersionChange()) @@ -1624,7 +1626,7 @@ transaction->renameObjectStore(requestData, objectStoreIdentifier, newName); } -void NetworkStorageManager::clearObjectStore(const WebCore::IDBRequestData& requestData, uint64_t objectStoreIdentifier) +void NetworkStorageManager::clearObjectStore(const WebCore::IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier) { if (auto transaction = idbTransaction(requestData)) transaction->clearObjectStore(requestData, objectStoreIdentifier); @@ -1636,13 +1638,13 @@ transaction->createIndex(requestData, indexInfo); } -void NetworkStorageManager::deleteIndex(const WebCore::IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& indexName) +void NetworkStorageManager::deleteIndex(const WebCore::IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { if (auto transaction = idbTransaction(requestData)) transaction->deleteIndex(requestData, objectStoreIdentifier, indexName); } -void NetworkStorageManager::renameIndex(const WebCore::IDBRequestData& requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +void NetworkStorageManager::renameIndex(const WebCore::IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { if (auto transaction = idbTransaction(requestData)) transaction->renameIndex(requestData, objectStoreIdentifier, indexIdentifier, newName); @@ -1804,12 +1806,15 @@ cache->removeRecords(WTFMove(request), WTFMove(options), WTFMove(callback)); } -void NetworkStorageManager::cacheStoragePutRecords(WebCore::DOMCacheIdentifier cacheIdentifier, Vector&& records, WebCore::DOMCacheEngine::RecordIdentifiersCallback&& callback) +void NetworkStorageManager::cacheStoragePutRecords(IPC::Connection& connection, WebCore::DOMCacheIdentifier cacheIdentifier, Vector&& records, WebCore::DOMCacheEngine::RecordIdentifiersCallback&& callback) { auto* cache = m_cacheStorageRegistry->cache(cacheIdentifier); if (!cache) return callback(makeUnexpected(WebCore::DOMCacheEngine::Error::Internal)); + for (auto& record : records) + MESSAGE_CHECK_COMPLETION(record.responseBodySize >= CacheStorageDiskStore::computeRealBodySizeForStorage(record.responseBody), connection, callback(makeUnexpected(WebCore::DOMCacheEngine::Error::Internal))); + cache->putRecords(WTFMove(records), WTFMove(callback)); } diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h 2024-10-30 09:22:36.530296800 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -201,11 +202,11 @@ void didFinishHandlingVersionChangeTransaction(WebCore::IDBDatabaseConnectionIdentifier, const WebCore::IDBResourceIdentifier&); void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&); void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName); - void renameObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName); - void clearObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier); + void renameObjectStore(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier, const String& newName); + void clearObjectStore(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier); void createIndex(const WebCore::IDBRequestData&, const WebCore::IDBIndexInfo&); - void deleteIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName); - void renameIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName); + void deleteIndex(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier, const String& indexName); + void renameIndex(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName); void putOrAdd(IPC::Connection&, const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, const WebCore::IDBValue&, WebCore::IndexedDB::ObjectStoreOverwriteMode); void getRecord(const WebCore::IDBRequestData&, const WebCore::IDBGetRecordData&); void getAllRecords(const WebCore::IDBRequestData&, const WebCore::IDBGetAllRecordsData&); @@ -225,7 +226,7 @@ void unlockCacheStorage(IPC::Connection&, const WebCore::ClientOrigin&); void cacheStorageRetrieveRecords(WebCore::DOMCacheIdentifier, WebCore::RetrieveRecordsOptions&&, WebCore::DOMCacheEngine::CrossThreadRecordsCallback&&); void cacheStorageRemoveRecords(WebCore::DOMCacheIdentifier, WebCore::ResourceRequest&&, WebCore::CacheQueryOptions&&, WebCore::DOMCacheEngine::RecordIdentifiersCallback&&); - void cacheStoragePutRecords(WebCore::DOMCacheIdentifier, Vector&&, WebCore::DOMCacheEngine::RecordIdentifiersCallback&&); + void cacheStoragePutRecords(IPC::Connection&, WebCore::DOMCacheIdentifier, Vector&&, WebCore::DOMCacheEngine::RecordIdentifiersCallback&&); void cacheStorageClearMemoryRepresentation(const WebCore::ClientOrigin&, CompletionHandler&&); void cacheStorageRepresentation(CompletionHandler&&); diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in 2024-10-30 09:22:36.530296800 +0000 @@ -63,11 +63,11 @@ CommitTransaction(WebCore::IDBResourceIdentifier transactionIdentifier, uint64_t handledRequestResultsCount) CreateObjectStore(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreInfo info) DeleteObjectStore(WebCore::IDBRequestData requestData, String objectStoreName) - RenameObjectStore(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier, String newName) - ClearObjectStore(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier) + RenameObjectStore(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, String newName) + ClearObjectStore(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier) CreateIndex(WebCore::IDBRequestData requestData, WebCore::IDBIndexInfo info) - DeleteIndex(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier, String indexName) - RenameIndex(WebCore::IDBRequestData requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, String newName) + DeleteIndex(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, String indexName) + RenameIndex(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, String newName) PutOrAdd(WebCore::IDBRequestData requestData, WebCore::IDBKeyData key, WebCore::IDBValue value, WebCore::IndexedDB::ObjectStoreOverwriteMode overwriteMode) GetRecord(WebCore::IDBRequestData requestData, struct WebCore::IDBGetRecordData getRecordData) GetAllRecords(WebCore::IDBRequestData requestData, struct WebCore::IDBGetAllRecordsData getAllRecordsData) diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp 2024-08-19 06:28:39.807259300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -253,15 +253,20 @@ if (!m_database) return makeUnexpected(StorageError::ItemNotFound); - auto statement = cachedStatement(StatementType::GetItem); - if (!statement || statement->bindText(1, key)) { - RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::getItemFromDatabase failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); - return makeUnexpected(StorageError::Database); + int result = SQLITE_OK; + // Ensure that statement goes out of scope before handleDatabaseErrorIfNeeded(). Otherwise, we may get a CheckedPtr verification failure. + { + auto statement = cachedStatement(StatementType::GetItem); + if (!statement || statement->bindText(1, key)) { + RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::getItemFromDatabase failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); + return makeUnexpected(StorageError::Database); + } + + result = statement->step(); + if (result == SQLITE_ROW) + return statement->columnBlobAsString(0); } - const auto result = statement->step(); - if (result == SQLITE_ROW) - return statement->columnBlobAsString(0); if (result != SQLITE_DONE) { RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::getItemFromDatabase failed on stepping statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); handleDatabaseErrorIfNeeded(result); @@ -296,24 +301,28 @@ } // Import from database. - auto statement = cachedStatement(StatementType::GetAllItems); - if (!statement) { - RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::allItems failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); - return { }; - } - - m_cache = HashMap { }; - m_cacheSize = 0; - auto result = statement->step(); - while (result == SQLITE_ROW) { - String key = statement->columnText(0); - String value = statement->columnBlobAsString(1); - if (!key.isNull() && !value.isNull()) { - items.add(key, value); - updateCacheIfNeeded(WTFMove(key), WTFMove(value)); + int result = SQLITE_OK; + // Ensure that statement goes out of scope before handleDatabaseErrorIfNeeded(). Otherwise, we may get a CheckedPtr verification failure. + { + auto statement = cachedStatement(StatementType::GetAllItems); + if (!statement) { + RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::allItems failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); + return { }; } + m_cache = HashMap { }; + m_cacheSize = 0; result = statement->step(); + while (result == SQLITE_ROW) { + String key = statement->columnText(0); + String value = statement->columnBlobAsString(1); + if (!key.isNull() && !value.isNull()) { + items.add(key, value); + updateCacheIfNeeded(WTFMove(key), WTFMove(value)); + } + + result = statement->step(); + } } if (result != SQLITE_DONE) { @@ -344,13 +353,18 @@ } else if (getItemResult.error() != StorageError::ItemNotFound) return makeUnexpected(getItemResult.error()); // Database error. - auto statement = cachedStatement(StatementType::SetItem); - if (!statement || statement->bindText(1, key) || statement->bindBlob(2, value)) { - RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::setItem failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); - return makeUnexpected(StorageError::Database); + int result = SQLITE_OK; + // Ensure that statement goes out of scope before handleDatabaseErrorIfNeeded(). Otherwise, we may get a CheckedPtr verification failure. + { + auto statement = cachedStatement(StatementType::SetItem); + if (!statement || statement->bindText(1, key) || statement->bindBlob(2, value)) { + RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::setItem failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); + return makeUnexpected(StorageError::Database); + } + + result = statement->step(); } - const auto result = statement->step(); if (result != SQLITE_DONE) { RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::setItem failed on stepping statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); handleDatabaseErrorIfNeeded(result); @@ -380,13 +394,18 @@ else return makeUnexpected(StorageError::ItemNotFound); - auto statement = cachedStatement(StatementType::DeleteItem); - if (!statement || statement->bindText(1, key)) { - RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::removeItem failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); - return makeUnexpected(StorageError::Database); + int result = SQLITE_OK; + // Ensure that statement goes out of scope before handleDatabaseErrorIfNeeded(). Otherwise, we may get a CheckedPtr verification failure. + { + auto statement = cachedStatement(StatementType::DeleteItem); + if (!statement || statement->bindText(1, key)) { + RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::removeItem failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); + return makeUnexpected(StorageError::Database); + } + + result = statement->step(); } - const auto result = statement->step(); if (result != SQLITE_DONE) { RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::removeItem failed on executing statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); handleDatabaseErrorIfNeeded(result); @@ -419,13 +438,19 @@ return makeUnexpected(StorageError::ItemNotFound); startTransactionIfNecessary(); - auto statement = cachedStatement(StatementType::DeleteAllItems); - if (!statement) { - RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::clear failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); - return makeUnexpected(StorageError::Database); + + int result = SQLITE_OK; + // Ensure that statement goes out of scope before handleDatabaseErrorIfNeeded(). Otherwise, we may get a CheckedPtr verification failure. + { + auto statement = cachedStatement(StatementType::DeleteAllItems); + if (!statement) { + RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::clear failed on creating statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); + return makeUnexpected(StorageError::Database); + } + + result = statement->step(); } - const auto result = statement->step(); if (result != SQLITE_DONE) { RELEASE_LOG_ERROR(Storage, "SQLiteStorageArea::clear failed on executing statement (%d) - %" PUBLIC_LOG_STRING, m_database->lastError(), m_database->lastErrorMsg()); handleDatabaseErrorIfNeeded(result); diff -Nru webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp --- webkit2gtk-2.46.0/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp 2024-08-21 09:40:41.040933100 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp 2024-09-30 08:15:01.140258300 +0000 @@ -352,7 +352,7 @@ return !isEqual(a.prefix, b.prefix) || a.prefixLength != b.prefixLength || a.type != b.type || a.scopeID != b.scopeID || !isEqual(a.ips, b.ips); } -static int sortNetworks(const RTCNetwork& a, const RTCNetwork& b) +static bool sortNetworks(const RTCNetwork& a, const RTCNetwork& b) { if (a.type != b.type) return a.type < b.type; @@ -363,7 +363,7 @@ if (precedenceA != precedenceB) return precedenceA < precedenceB; - return codePointCompare(StringView { std::span(a.description.data(), a.description.size()) }, StringView { std::span(b.description.data(), b.description.size()) }); + return codePointCompare(StringView { std::span(a.description.data(), a.description.size()) }, StringView { std::span(b.description.data(), b.description.size()) }) < 0; } void NetworkManager::onGatheredNetworks(RTCNetwork::IPAddress&& ipv4, RTCNetwork::IPAddress&& ipv6, HashMap&& networkMap) diff -Nru webkit2gtk-2.46.0/Source/WebKit/Platform/IPC/Connection.h webkit2gtk-2.46.3/Source/WebKit/Platform/IPC/Connection.h --- webkit2gtk-2.46.0/Source/WebKit/Platform/IPC/Connection.h 2024-08-19 06:28:39.811259000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Platform/IPC/Connection.h 2024-09-30 08:15:01.140258300 +0000 @@ -118,6 +118,7 @@ if (UNLIKELY(!(assertion))) { \ RELEASE_LOG_FAULT(IPC, __FILE__ " " CONNECTION_STRINGIFY_MACRO(__LINE__) ": Invalid message dispatched %" PUBLIC_LOG_STRING ": " message, WTF_PRETTY_FUNCTION); \ (connection)->markCurrentlyDispatchedMessageAsInvalid(); \ + return; \ } \ } while (0) diff -Nru webkit2gtk-2.46.0/Source/WebKit/Platform/IPC/Decoder.cpp webkit2gtk-2.46.3/Source/WebKit/Platform/IPC/Decoder.cpp --- webkit2gtk-2.46.0/Source/WebKit/Platform/IPC/Decoder.cpp 2024-08-19 06:28:39.811259000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Platform/IPC/Decoder.cpp 2024-10-30 09:22:36.530296800 +0000 @@ -30,6 +30,7 @@ #include "Logging.h" #include "MessageFlags.h" #include +#include #include #include @@ -93,6 +94,11 @@ auto destinationID = decode(); if (UNLIKELY(!destinationID)) return; + // 0 is a valid destinationID but we can at least reject -1 which is the HashTable deleted value. + if (*destinationID && !WTF::ObjectIdentifierGenericBase::isValidIdentifier(*destinationID)) { + markInvalid(); + return; + } m_destinationID = WTFMove(*destinationID); } @@ -102,6 +108,12 @@ , m_bufferDeallocator { nullptr } , m_destinationID { destinationID } { + // 0 is a valid destinationID but we can at least reject -1 which is the HashTable deleted value. + if (destinationID && !WTF::ObjectIdentifierGenericBase::isValidIdentifier(destinationID)) { + markInvalid(); + return; + } + auto messageName = decode(); if (UNLIKELY(!messageName)) return; diff -Nru webkit2gtk-2.46.0/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp webkit2gtk-2.46.3/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp --- webkit2gtk-2.46.0/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 2024-09-16 08:33:15.149029500 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp 2024-09-30 08:15:01.140258300 +0000 @@ -604,8 +604,18 @@ message.msg_iov = &iov; message.msg_iovlen = 1; - if (sendmsg(socket, &message, 0) == -1) + int ret; + do { + ret = sendmsg(socket, &message, 0); + } while (ret == -1 && errno == EINTR); + + if (ret == -1) { + // Don't crash if the parent process merely closed its pid socket. + // That's equivalent to canceling the process launch. + if (errno == EPIPE) + exit(1); g_error("sendPIDToPeer: Failed to send pid: %s", g_strerror(errno)); + } } // The goal here is to receive the pid of the sandboxed child in the parent process's pid namespace. @@ -629,7 +639,12 @@ message.msg_control = controlMessage.buffer; message.msg_controllen = controlLength; - if (recvmsg(socket, &message, 0) == -1) + int ret; + do { + ret = recvmsg(socket, &message, 0); + } while (ret == -1 && errno == EINTR); + + if (ret == -1) g_error("readPIDFromPeer: Failed to read pid from PID socket: %s", g_strerror(errno)); if (message.msg_controllen <= 0) diff -Nru webkit2gtk-2.46.0/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb webkit2gtk-2.46.3/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb --- webkit2gtk-2.46.0/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb 2024-08-19 06:28:39.827258600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesFeatures.cpp.erb 2024-10-21 09:00:02.715246400 +0000 @@ -28,6 +28,7 @@ #include "config.h" #include "WebPreferences.h" +#include "WebKit2Initialize.h" #include "WebPreferencesDefinitions.h" #include "WebPreferencesKeys.h" #include @@ -37,6 +38,7 @@ const Vector>& WebPreferences::features() { + InitializeWebKit2(); static NeverDestroyed>> features(std::initializer_list> { <% for @pref in @exposedFeatures do -%> <%- if @pref.condition -%> diff -Nru webkit2gtk-2.46.0/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb webkit2gtk-2.46.3/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb --- webkit2gtk-2.46.0/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb 2024-08-19 06:28:39.827258600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb 2024-10-21 09:00:02.715246400 +0000 @@ -28,6 +28,7 @@ #include "config.h" #include "WebPreferencesStore.h" +#include "WebKit2Initialize.h" #include "WebPreferencesDefinitions.h" #include "WebPreferencesKeys.h" #include @@ -45,7 +46,9 @@ WebPreferencesStore::ValueMap& WebPreferencesStore::defaults() { + InitializeWebKit2(); static NeverDestroyed defaults; + if (defaults.get().isEmpty()) { <%- for @pref in @exposedPreferences do -%> <%- if @pref.condition -%> diff -Nru webkit2gtk-2.46.0/Source/WebKit/Scripts/webkit/messages.py webkit2gtk-2.46.3/Source/WebKit/Scripts/webkit/messages.py --- webkit2gtk-2.46.0/Source/WebKit/Scripts/webkit/messages.py 2024-09-17 07:38:07.973444700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Scripts/webkit/messages.py 2024-10-30 09:22:36.534296800 +0000 @@ -320,6 +320,7 @@ 'WebCore::FileSystemHandleIdentifier', 'WebCore::FileSystemSyncAccessHandleIdentifier', 'WebCore::FrameIdentifierID', + 'WebCore::IDBObjectStoreIdentifier', 'WebCore::ImageDecoderIdentifier', 'WebCore::InbandGenericCueIdentifier', 'WebCore::LayerHostingContextIdentifier', diff -Nru webkit2gtk-2.46.0/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp webkit2gtk-2.46.3/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp --- webkit2gtk-2.46.0/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp 2024-09-17 07:38:07.973444700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp 2024-10-30 09:22:36.534296800 +0000 @@ -120,6 +120,7 @@ #include #include #include +#include #include #include #include @@ -492,6 +493,7 @@ static_assert(sizeof(uint64_t) == sizeof(WebCore::FileSystemHandleIdentifier)); static_assert(sizeof(uint64_t) == sizeof(WebCore::FileSystemSyncAccessHandleIdentifier)); static_assert(sizeof(uint64_t) == sizeof(WebCore::FrameIdentifierID)); + static_assert(sizeof(uint64_t) == sizeof(WebCore::IDBObjectStoreIdentifier)); static_assert(sizeof(uint64_t) == sizeof(WebCore::ImageDecoderIdentifier)); static_assert(sizeof(uint64_t) == sizeof(WebCore::InbandGenericCueIdentifier)); static_assert(sizeof(uint64_t) == sizeof(WebCore::LayerHostingContextIdentifier)); @@ -637,6 +639,7 @@ "WebCore::FileSystemHandleIdentifier"_s, "WebCore::FileSystemSyncAccessHandleIdentifier"_s, "WebCore::FrameIdentifierID"_s, + "WebCore::IDBObjectStoreIdentifier"_s, "WebCore::ImageDecoderIdentifier"_s, "WebCore::InbandGenericCueIdentifier"_s, "WebCore::LayerHostingContextIdentifier"_s, diff -Nru webkit2gtk-2.46.0/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp webkit2gtk-2.46.3/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp --- webkit2gtk-2.46.0/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp 2024-08-19 06:28:39.863257400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp 2024-09-30 08:15:01.140258300 +0000 @@ -225,7 +225,7 @@ void ThreadedCompositor::renderLayerTree() { #if PLATFORM(GTK) || PLATFORM(WPE) - TraceScope traceScope(FrameCompositionStart, FrameCompositionEnd); + TraceScope traceScope(RenderLayerTreeStart, RenderLayerTreeEnd); #endif if (!m_scene || !m_scene->isActive()) @@ -284,9 +284,13 @@ glViewport(0, 0, viewportSize.width(), viewportSize.height()); m_client.clearIfNeeded(); - + WTFBeginSignpost(this, ApplyStateChanges); m_scene->applyStateChanges(states); + WTFEndSignpost(this, ApplyStateChanges); + + WTFBeginSignpost(this, PaintToGLContext); m_scene->paintToCurrentGLContext(viewportTransform, FloatRect { FloatPoint { }, viewportSize }, m_flipY); + WTFEndSignpost(this, PaintToGLContext); WebCore::Damage boundsDamage; const auto& frameDamage = ([this, &boundsDamage]() -> const WebCore::Damage& { @@ -371,6 +375,8 @@ void ThreadedCompositor::frameComplete() { + WTFEmitSignpost(this, FrameComplete); + ASSERT(m_compositingRunLoop->isCurrent()); #if !HAVE(DISPLAY_LINK) displayUpdateFired(); diff -Nru webkit2gtk-2.46.0/Source/WebKit/Shared/WTFArgumentCoders.serialization.in webkit2gtk-2.46.3/Source/WebKit/Shared/WTFArgumentCoders.serialization.in --- webkit2gtk-2.46.0/Source/WebKit/Shared/WTFArgumentCoders.serialization.in 2024-09-17 07:38:07.973444700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Shared/WTFArgumentCoders.serialization.in 2024-10-30 09:22:36.534296800 +0000 @@ -178,6 +178,7 @@ template: enum class WebCore::DisplayConfigurationClientIdentifierType template: enum class WebCore::FileSystemHandleIdentifierType template: enum class WebCore::FileSystemSyncAccessHandleIdentifierType +template: enum class WebCore::IDBObjectStoreIdentifierType template: enum class WebCore::LibWebRTCSocketIdentifierType template: enum class WebCore::MainThreadPermissionObserverIdentifierType template: enum class WebCore::OpaqueOriginIdentifierType diff -Nru webkit2gtk-2.46.0/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in webkit2gtk-2.46.3/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in --- webkit2gtk-2.46.0/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in 2024-08-19 06:28:39.883257000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in 2024-10-30 09:22:36.534296800 +0000 @@ -520,7 +520,7 @@ class WebCore::IDBCursorInfo { WebCore::IDBResourceIdentifier identifier(); WebCore::IDBResourceIdentifier transactionIdentifier(); - uint64_t objectStoreIdentifier(); + WebCore::IDBObjectStoreIdentifier objectStoreIdentifier(); uint64_t sourceIdentifier(); WebCore::IDBKeyRangeData range(); @@ -539,7 +539,7 @@ WebCore::IDBKeyRangeData keyRangeData; WebCore::IndexedDB::GetAllType getAllType; std::optional count; - uint64_t objectStoreIdentifier; + WebCore::IDBObjectStoreIdentifier objectStoreIdentifier; uint64_t indexIdentifier; } @@ -563,8 +563,7 @@ String m_name uint64_t m_version uint64_t m_maxIndexID - uint64_t m_maxObjectStoreID - HashMap m_objectStoreMap + HashMap m_objectStoreMap } struct WebCore::IDBKeyRangeData { @@ -593,7 +592,7 @@ class WebCore::IDBIndexInfo { uint64_t identifier() - uint64_t objectStoreIdentifier() + WebCore::IDBObjectStoreIdentifier objectStoreIdentifier() String name() WebCore::IDBKeyPath keyPath() bool unique() @@ -601,7 +600,7 @@ } class WebCore::IDBObjectStoreInfo { - uint64_t identifier() + WebCore::IDBObjectStoreIdentifier identifier() String name() std::optional keyPath() bool autoIncrement() @@ -639,7 +638,7 @@ [Validator='!m_requestIdentifier->isEmpty()'] WebCore::IDBResourceIdentifier m_requestIdentifier; [Validator='!m_transactionIdentifier->isEmpty()'] WebCore::IDBResourceIdentifier m_transactionIdentifier; std::optional m_cursorIdentifier; - uint64_t m_objectStoreIdentifier; + Markable m_objectStoreIdentifier; uint64_t m_indexIdentifier; WebCore::IndexedDB::IndexRecordType m_indexRecordType; uint64_t m_requestedVersion; @@ -4448,6 +4447,7 @@ BestForSpeech, }; +#if ENABLE(VIDEO) [OptionSet] enum class WebCore::MediaPlayerVideoPlaybackConfigurationOption : uint8_t { Stereo, StereoMultiview, @@ -4455,6 +4455,7 @@ }; using WebCore::MediaPlayerVideoPlaybackConfiguration = OptionSet; using WebCore::MediaPlayer::VideoPlaybackConfiguration = WebCore::MediaPlayerVideoPlaybackConfiguration; +#endif class WebCore::GeolocationPositionData { double timestamp; diff -Nru webkit2gtk-2.46.0/Source/WebKit/Shared/WebProcessCreationParameters.h webkit2gtk-2.46.3/Source/WebKit/Shared/WebProcessCreationParameters.h --- webkit2gtk-2.46.0/Source/WebKit/Shared/WebProcessCreationParameters.h 2024-08-19 06:28:39.891256600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Shared/WebProcessCreationParameters.h 2024-10-21 09:00:02.715246400 +0000 @@ -269,6 +269,7 @@ #if USE(ATSPI) String accessibilityBusAddress; + String accessibilityBusName; #endif String timeZoneOverride; diff -Nru webkit2gtk-2.46.0/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in webkit2gtk-2.46.3/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in --- webkit2gtk-2.46.0/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in 2024-08-19 06:28:39.891256600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in 2024-10-21 09:00:02.715246400 +0000 @@ -217,6 +217,7 @@ #if USE(ATSPI) String accessibilityBusAddress; + String accessibilityBusName; #endif String timeZoneOverride; diff -Nru webkit2gtk-2.46.0/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp webkit2gtk-2.46.3/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp --- webkit2gtk-2.46.0/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp 2024-08-19 06:28:39.903256400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp 2024-09-30 08:15:01.140258300 +0000 @@ -38,10 +38,6 @@ #include "unix/BreakpadExceptionHandler.h" #endif -#if USE(LIBWPE) && !ENABLE(BUBBLEWRAP_SANDBOX) && (!PLATFORM(PLAYSTATION) || USE(WPE_BACKEND_PLAYSTATION)) -#include "ProcessProviderLibWPE.h" -#endif - namespace WebKit { AuxiliaryProcessMainCommon::AuxiliaryProcessMainCommon() @@ -54,26 +50,18 @@ // The command line is constructed in ProcessLauncher::launchProcess. bool AuxiliaryProcessMainCommon::parseCommandLine(int argc, char** argv) { -#if USE(GLIB) && OS(LINUX) - int minimumNumArgs = 4; -#else - int minimumNumArgs = 3; -#endif + int argIndex = 1; // Start from argv[1], since argv[0] is the program name. -#if USE(LIBWPE) && !ENABLE(BUBBLEWRAP_SANDBOX) && (!PLATFORM(PLAYSTATION) || USE(WPE_BACKEND_PLAYSTATION)) - if (ProcessProviderLibWPE::singleton().isEnabled()) - minimumNumArgs = 3; -#endif - - if (argc < minimumNumArgs) + // Ensure we have enough arguments for processIdentifier and connectionIdentifier + if (argc < argIndex + 2) return false; - if (auto processIdentifier = parseInteger(span(argv[1]))) + if (auto processIdentifier = parseInteger(span(argv[argIndex++]))) m_parameters.processIdentifier = LegacyNullableObjectIdentifier(*processIdentifier); else return false; - if (auto connectionIdentifier = parseInteger(span(argv[2]))) + if (auto connectionIdentifier = parseInteger(span(argv[argIndex++]))) m_parameters.connectionIdentifier = IPC::Connection::Identifier { *connectionIdentifier }; else return false; @@ -82,19 +70,24 @@ return false; #if USE(GLIB) && OS(LINUX) - if (minimumNumArgs == 4) { - auto pidSocket = parseInteger(span(argv[3])); - if (!pidSocket || *pidSocket < 0) + // Parse pidSocket if available + if (argc > argIndex) { + auto pidSocket = parseInteger(span(argv[argIndex])); + if (pidSocket && *pidSocket >= 0) { + IPC::sendPIDToPeer(*pidSocket); + RELEASE_ASSERT(!close(*pidSocket)); + ++argIndex; + } else return false; - - IPC::sendPIDToPeer(*pidSocket); - RELEASE_ASSERT(!close(*pidSocket)); } #endif #if ENABLE(DEVELOPER_MODE) - if (argc > minimumNumArgs && argv[minimumNumArgs] && !strcmp(argv[minimumNumArgs], "--configure-jsc-for-testing")) - JSC::Config::configureForTesting(); + // Check last remaining options for JSC testing + for (; argIndex < argc; ++argIndex) { + if (argv[argIndex] && !strcmp(argv[argIndex], "--configure-jsc-for-testing")) + JSC::Config::configureForTesting(); + } #endif return true; diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp 2024-08-19 06:28:39.907256100 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp 2024-09-30 08:15:01.140258300 +0000 @@ -387,12 +387,6 @@ return makeUnexpected(ContentRuleListStore::Error::CompileFailed); } - auto mappedData = adoptAndMapFile(temporaryFileHandle, 0, metaData.fileSize()); - if (mappedData.isNull()) { - WTFLogAlways("Content Rule List compiling failed: Mapping file failed."); - return makeUnexpected(ContentRuleListStore::Error::CompileFailed); - } - // Try and delete any files at the destination instead of overwriting them // in case there is already a file there and it is mmapped. deleteFile(finalFilePath); @@ -401,10 +395,16 @@ WTFLogAlways("Content Rule List compiling failed: Moving file failed."); return makeUnexpected(ContentRuleListStore::Error::CompileFailed); } - + if (!FileSystem::makeSafeToUseMemoryMapForPath(finalFilePath)) return makeUnexpected(ContentRuleListStore::Error::CompileFailed); - + + auto mappedData = mapFile(finalFilePath); + if (mappedData.isNull()) { + WTFLogAlways("Content Rule List compiling failed: Mapping file failed."); + return makeUnexpected(ContentRuleListStore::Error::CompileFailed); + } + return {{ WTFMove(metaData), WTFMove(mappedData) }}; } diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp 2024-08-19 06:28:39.967254400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp 2024-10-21 09:00:02.719246400 +0000 @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -1071,7 +1072,11 @@ "enable-fullscreen", _("Enable Fullscreen"), _("Whether to enable the Javascript Fullscreen API"), +#if ENABLE(FULLSCREEN_API) FEATURE_DEFAULT(FullScreenEnabled), +#else + FALSE, +#endif readWriteConstructParamFlags); /** @@ -1101,7 +1106,11 @@ "enable-webaudio", _("Enable WebAudio"), _("Whether WebAudio content should be handled"), +#if ENABLE(WEB_AUDIO) FEATURE_DEFAULT(WebAudioEnabled), +#else + FALSE, +#endif readWriteConstructParamFlags); /** @@ -1307,7 +1316,7 @@ "enable-accelerated-2d-canvas", _("Enable accelerated 2D canvas"), _("Whether to enable accelerated 2D canvas"), - FEATURE_DEFAULT(CanvasUsesAcceleratedDrawing), + FALSE, static_cast(readWriteConstructParamFlags | G_PARAM_DEPRECATED)); #endif @@ -1326,7 +1335,11 @@ "enable-2d-canvas-acceleration", _("Enable 2D canvas acceleration"), _("Whether to enable 2D canvas acceleration"), +#if USE(SKIA) FEATURE_DEFAULT(CanvasUsesAcceleratedDrawing), +#else + FALSE, +#endif readWriteConstructParamFlags); /** diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp 2024-08-21 09:46:10.294983000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp 2024-09-30 08:15:01.140258300 +0000 @@ -435,9 +435,11 @@ API::ProcessPoolConfiguration configuration; configuration.setInjectedBundlePath(FileSystem::stringFromFileSystemRepresentation(bundleFilename.get())); configuration.setUsesWebProcessCache(true); -#if PLATFORM(GTK) && !USE(GTK4) && USE(CAIRO) +#if PLATFORM(GTK) && !USE(GTK4) configuration.setProcessSwapsOnNavigation(priv->psonEnabled); +#if USE(CAIRO) configuration.setUseSystemAppearanceForScrollbars(priv->useSystemAppearanceForScrollbars); +#endif #else configuration.setProcessSwapsOnNavigation(true); #endif diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in 2024-08-19 06:28:39.967254400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in 2024-09-30 08:15:01.140258300 +0000 @@ -71,7 +71,7 @@ #include #include #include -#if ENABLE(2022_GLIB_API) +#if ENABLE(WPE_PLATFORM) #include #endif #endif @@ -475,7 +475,7 @@ WEBKIT_API WebKitWebViewBackend * webkit_web_view_get_backend (WebKitWebView *web_view); -#if ENABLE(2022_GLIB_API) +#if ENABLE(WPE_PLATFORM) WEBKIT_API WPEDisplay * webkit_web_view_get_display (WebKitWebView *web_view); diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp 2024-08-19 06:28:39.971254300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp 2024-10-21 09:00:02.719246400 +0000 @@ -3502,7 +3502,13 @@ RELEASE_ASSERT(tokens.size() == 2); GUniqueOutPtr error; - GUniquePtr busName(g_strdup_printf(":%s", tokens[0].utf8().data())); + + auto plugBusName = tokens[0].utf8(); + RELEASE_ASSERT(g_dbus_is_name(plugBusName.data())); + + auto* busNamePrefix = !g_dbus_is_unique_name(plugBusName.data()) ? "" : ":"; + + GUniquePtr busName(g_strdup_printf("%s%s", busNamePrefix, plugBusName.data())); priv->socketAccessible = adoptGRef(gtk_at_spi_socket_new(busName.get(), tokens[1].utf8().data(), &error.outPtr())); diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp 2024-09-17 07:38:07.973444700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp 2024-10-30 09:22:36.534296800 +0000 @@ -448,8 +448,10 @@ Inspector::Protocol::ErrorStringOr WebAutomationSession::deleteSession() { +#if ENABLE(REMOTE_INSPECTOR) if (!isPaired()) SYNC_FAIL_WITH_PREDEFINED_ERROR(InternalError); +#endif terminate(); return { }; diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp 2024-08-19 06:28:40.007253200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/ProcessLauncher.cpp 2024-09-30 08:15:01.144258300 +0000 @@ -53,7 +53,7 @@ tracePoint(ProcessLaunchEnd, m_launchOptions.processIdentifier.toUInt64(), static_cast(m_launchOptions.processType)); } -#if !PLATFORM(COCOA) +#if !PLATFORM(COCOA) && !USE(GLIB) void ProcessLauncher::platformDestroy() { } diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h 2024-09-16 08:52:42.209126500 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/ProcessLauncher.h 2024-10-21 09:00:02.719246400 +0000 @@ -55,6 +55,10 @@ #include #endif +#if ENABLE(BUBBLEWRAP_SANDBOX) +#include "glib/XDGDBusProxy.h" +#endif + namespace WebKit { #if PLATFORM(GTK) || PLATFORM(WPE) @@ -64,6 +68,40 @@ }; #endif +enum class ProcessLaunchType { + Web, + Network, +#if ENABLE(GPU_PROCESS) + GPU, +#endif +#if ENABLE(BUBBLEWRAP_SANDBOX) + DBusProxy, +#endif +#if ENABLE(MODEL_PROCESS) + Model, +#endif +}; + +struct ProcessLaunchOptions { + WebCore::ProcessIdentifier processIdentifier; + ProcessLaunchType processType { ProcessLaunchType::Web }; + HashMap extraInitializationData { }; + bool nonValidInjectedCodeAllowed { false }; + bool shouldMakeProcessLaunchFailForTesting { false }; + +#if PLATFORM(GTK) || PLATFORM(WPE) + HashMap extraSandboxPaths { }; +#if ENABLE(DEVELOPER_MODE) + String processCmdPrefix { }; +#endif +#endif + +#if PLATFORM(PLAYSTATION) + String processPath { }; + int32_t userId { -1 }; +#endif +}; + #if USE(EXTENSIONKIT) class LaunchGrant : public ThreadSafeRefCounted { public: @@ -79,6 +117,9 @@ class ProcessLauncher : public ThreadSafeRefCountedAndCanMakeThreadSafeWeakPtr { public: + using ProcessType = ProcessLaunchType; + using LaunchOptions = ProcessLaunchOptions; + class Client { public: virtual ~Client() { } @@ -93,40 +134,6 @@ virtual RefPtr xpcEventHandler() const { return nullptr; } #endif }; - - enum class ProcessType { - Web, - Network, -#if ENABLE(GPU_PROCESS) - GPU, -#endif -#if ENABLE(BUBBLEWRAP_SANDBOX) - DBusProxy, -#endif -#if ENABLE(MODEL_PROCESS) - Model, -#endif - }; - - struct LaunchOptions { - ProcessType processType; - WebCore::ProcessIdentifier processIdentifier; - HashMap extraInitializationData; - bool nonValidInjectedCodeAllowed { false }; - bool shouldMakeProcessLaunchFailForTesting { false }; - -#if PLATFORM(GTK) || PLATFORM(WPE) - HashMap extraSandboxPaths; -#if ENABLE(DEVELOPER_MODE) - String processCmdPrefix; -#endif -#endif - -#if PLATFORM(PLAYSTATION) - String processPath; - int32_t userId { -1 }; -#endif - }; static Ref create(Client* client, LaunchOptions&& launchOptions) { @@ -184,8 +191,13 @@ bool m_isLaunching { true }; ProcessID m_processID { 0 }; +#if ENABLE(BUBBLEWRAP_SANDBOX) + XDGDBusProxy m_dbusProxy; +#endif + #if USE(GLIB) && OS(LINUX) GSocketMonitor m_socketMonitor; + int m_pidServerSocket { -1 }; #endif }; diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp 2024-08-28 09:05:36.303747400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp 2024-10-21 09:00:02.719246400 +0000 @@ -354,9 +354,9 @@ #endif #if USE(ATSPI) -static void bindA11y(Vector& args, XDGDBusProxy& dbusProxy, const String& accessibilityBusAddress, const String& sandboxedAccessibilityBusAddress) +static void bindA11y(Vector& args, XDGDBusProxy& dbusProxy, const String& accessibilityBusAddress, const String& accessibilityBusName, const String& sandboxedAccessibilityBusAddress) { - auto accessibilityProxyPath = dbusProxy.accessibilityProxy(BASE_DIRECTORY, accessibilityBusAddress); + auto accessibilityProxyPath = dbusProxy.accessibilityProxy(BASE_DIRECTORY, accessibilityBusAddress, accessibilityBusName); if (!accessibilityProxyPath) return; @@ -727,7 +727,7 @@ } } -GRefPtr bubblewrapSpawn(GSubprocessLauncher* launcher, const ProcessLauncher::LaunchOptions& launchOptions, char** argv, GError **error) +GRefPtr bubblewrapSpawn(GSubprocessLauncher* launcher, const ProcessLauncher::LaunchOptions& launchOptions, XDGDBusProxy& dbusProxy, char** argv, GError **error) { ASSERT(launcher); @@ -885,9 +885,7 @@ sandboxArgs.appendVector(Vector({ "--bind-try", extraPath.utf8(), extraPath.utf8() })); } - static std::unique_ptr dbusProxy = makeUnique(); - if (dbusProxy) - bindDBusSession(sandboxArgs, *dbusProxy, flatpakInfoFd != -1); + bindDBusSession(sandboxArgs, dbusProxy, flatpakInfoFd != -1); // FIXME: We should move to Pipewire as soon as viable, Pulse doesn't restrict clients atm. bindPulse(sandboxArgs); bindSndio(sandboxArgs); @@ -897,18 +895,17 @@ // FIXME: This is also fixed by Pipewire once in use. bindV4l(sandboxArgs); #if USE(ATSPI) - if (dbusProxy) { - auto accessibilityBusAddress = launchOptions.extraInitializationData.get("accessibilityBusAddress"_s); - auto sandboxedAccessibilityBusAddress = launchOptions.extraInitializationData.get("sandboxedAccessibilityBusAddress"_s); - if (!accessibilityBusAddress.isEmpty() && !sandboxedAccessibilityBusAddress.isEmpty()) - bindA11y(sandboxArgs, *dbusProxy, accessibilityBusAddress, sandboxedAccessibilityBusAddress); + auto accessibilityBusAddress = launchOptions.extraInitializationData.get("accessibilityBusAddress"_s); + auto sandboxedAccessibilityBusAddress = launchOptions.extraInitializationData.get("sandboxedAccessibilityBusAddress"_s); + if (!accessibilityBusAddress.isEmpty() && !sandboxedAccessibilityBusAddress.isEmpty()) { + auto a11yBusName = launchOptions.extraInitializationData.get("accessibilityBusName"_s); + bindA11y(sandboxArgs, dbusProxy, accessibilityBusAddress, a11yBusName, sandboxedAccessibilityBusAddress); } #endif #if PLATFORM(GTK) bindGtkData(sandboxArgs); #endif - if (dbusProxy && !dbusProxy->launch(launchOptions)) - dbusProxy = nullptr; + dbusProxy.launch(launchOptions); } else { // Only X11 users need this for XShm which is only the Web process. sandboxArgs.append("--unshare-ipc"); diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.h webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.h --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.h 2024-08-19 06:28:40.007253200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.h 2024-10-21 09:00:02.719246400 +0000 @@ -36,7 +36,7 @@ namespace WebKit { -GRefPtr bubblewrapSpawn(GSubprocessLauncher*, const ProcessLauncher::LaunchOptions&, char** argv, GError**); +GRefPtr bubblewrapSpawn(GSubprocessLauncher*, const ProcessLauncher::LaunchOptions&, XDGDBusProxy&, char** argv, GError**); int argumentsToFileDescriptor(const Vector&, const char*); }; diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp 2024-08-19 06:28:40.007253200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/FlatpakLauncher.cpp 2024-10-21 09:00:02.719246400 +0000 @@ -30,6 +30,7 @@ #include #include +#include namespace WebKit { @@ -67,6 +68,15 @@ GUniquePtr pathArg(g_strdup_printf(formatString, pathAndPermission.key.data())); flatpakArgs.append(pathArg.get()); } + +#if USE(ATSPI) + RELEASE_ASSERT(isInsideFlatpak()); + if (checkFlatpakPortalVersion(7)) { + auto busName = launchOptions.extraInitializationData.get("accessibilityBusName"_s); + GUniquePtr a11yOwnNameArg(g_strdup_printf("--sandbox-a11y-own-name=%s", busName.utf8().data())); + flatpakArgs.append(a11yOwnNameArg.get()); + } +#endif } // We need to pass our full environment to the subprocess. diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp 2024-09-16 08:52:42.209126500 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp 2024-10-21 09:00:02.719246400 +0000 @@ -55,6 +55,16 @@ namespace WebKit { +void ProcessLauncher::platformDestroy() +{ +#if OS(LINUX) + if (m_pidServerSocket != -1) { + close(m_pidServerSocket); + m_pidServerSocket = -1; + } +#endif +} + #if OS(LINUX) static bool isFlatpakSpawnUsable() { @@ -225,7 +235,7 @@ // You cannot use bubblewrap within Flatpak or some containers so lets ensure it never happens. // Snap can allow it but has its own limitations that require workarounds. else if (sandboxEnabled && shouldUseBubblewrap()) - process = bubblewrapSpawn(launcher.get(), m_launchOptions, argv, &error.outPtr()); + process = bubblewrapSpawn(launcher.get(), m_launchOptions, m_dbusProxy, argv, &error.outPtr()); #endif // ENABLE(BUBBLEWRAP_SANDBOX) else #endif // OS(LINUX) @@ -242,7 +252,8 @@ // We need to get the pid of the actual WebKit auxiliary process, not the bwrap or flatpak-spawn // intermediate process. And do it without blocking, because process launching is slow. g_socket_set_blocking(pidSocket.get(), FALSE); - m_socketMonitor.start(pidSocket.get(), G_IO_IN, RunLoop::main(), [protectedThis = Ref { *this }, this, pidSocket, serverSocket = webkitSocketPair.server](GIOCondition condition) -> gboolean { + m_pidServerSocket = webkitSocketPair.server; + m_socketMonitor.start(pidSocket.get(), G_IO_IN, RunLoop::main(), [protectedThis = Ref { *this }, this, pidSocket](GIOCondition condition) -> gboolean { if (!(condition & G_IO_IN)) g_error("Failed to read pid from child process"); @@ -251,7 +262,9 @@ m_socketMonitor.stop(); - didFinishLaunchingProcess(m_processID, IPC::Connection::Identifier { serverSocket }); + didFinishLaunchingProcess(m_processID, IPC::Connection::Identifier { m_pidServerSocket }); + m_pidServerSocket = -1; + return G_SOURCE_REMOVE; }); #else diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp 2024-08-19 06:28:40.007253200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.cpp 2024-10-21 09:00:02.719246400 +0000 @@ -92,7 +92,7 @@ } #if USE(ATSPI) -std::optional XDGDBusProxy::accessibilityProxy(const char* baseDirectory, const String& accessibilityBusAddress) +std::optional XDGDBusProxy::accessibilityProxy(const char* baseDirectory, const String& accessibilityBusAddress, const String& accessibilityBusName) { if (!m_accessibilityProxyPath.isNull()) return m_accessibilityProxyPath; @@ -101,6 +101,8 @@ if (m_accessibilityProxyPath.isNull()) return std::nullopt; + auto webProcessA11yOwnArg = makeString("--own="_s, accessibilityBusName); + m_args.appendVector(Vector { accessibilityBusAddress.utf8(), m_accessibilityProxyPath, "--filter", @@ -114,6 +116,7 @@ "--call=org.a11y.atspi.Registry=org.a11y.atspi.DeviceEventController.GetDeviceEventListeners@/org/a11y/atspi/registry/deviceeventcontroller", "--call=org.a11y.atspi.Registry=org.a11y.atspi.DeviceEventController.NotifyListenersSync@/org/a11y/atspi/registry/deviceeventcontroller", "--call=org.a11y.atspi.Registry=org.a11y.atspi.DeviceEventController.NotifyListenersAsync@/org/a11y/atspi/registry/deviceeventcontroller", + webProcessA11yOwnArg.utf8(), }); if (!g_strcmp0(g_getenv("WEBKIT_ENABLE_A11Y_DBUS_PROXY_LOGGING"), "1")) @@ -172,13 +175,10 @@ g_error("Failed to fully launch dbus-proxy: %s", data.error->message); } -bool XDGDBusProxy::launch(const ProcessLauncher::LaunchOptions& webProcessLaunchOptions) +void XDGDBusProxy::launch(const ProcessLaunchOptions& webProcessLaunchOptions) { - if (m_syncFD) - return true; - if (m_args.isEmpty()) - return false; + return; int syncFds[2]; if (pipe(syncFds) == -1) @@ -227,17 +227,17 @@ #if USE(ATSPI) launchOptions.extraInitializationData.set("accessibilityBusAddress"_s, webProcessLaunchOptions.extraInitializationData.get("accessibilityBusAddress"_s)); + launchOptions.extraInitializationData.set("accessibilityBusName"_s, webProcessLaunchOptions.extraInitializationData.get("accessibilityBusName"_s)); #else UNUSED_PARAM(webProcessLaunchOptions); #endif GUniqueOutPtr error; - GRefPtr subprocess = bubblewrapSpawn(launcher.get(), launchOptions, argv, &error.outPtr()); + GRefPtr subprocess = bubblewrapSpawn(launcher.get(), launchOptions, *this, argv, &error.outPtr()); if (!subprocess) g_error("Failed to start dbus proxy: %s", error->message); waitUntilSyncedOrDie(subprocess.get(), syncFds[0]); - return true; } } // namespace WebKit diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.h webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.h --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.h 2024-08-19 06:28:40.007253200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/Launcher/glib/XDGDBusProxy.h 2024-10-21 09:00:02.719246400 +0000 @@ -26,7 +26,6 @@ #pragma once #if ENABLE(BUBBLEWRAP_SANDBOX) -#include "ProcessLauncher.h" #include #include #include @@ -35,6 +34,8 @@ namespace WebKit { +struct ProcessLaunchOptions; + class XDGDBusProxy { WTF_MAKE_TZONE_ALLOCATED(XDGDBusProxy); WTF_MAKE_NONCOPYABLE(XDGDBusProxy); @@ -45,10 +46,10 @@ enum class AllowPortals : bool { No, Yes }; std::optional dbusSessionProxy(const char* baseDirectory, AllowPortals); #if USE(ATSPI) - std::optional accessibilityProxy(const char* baseDirectory, const String& sandboxedAccessibilityBusPath); + std::optional accessibilityProxy(const char* baseDirectory, const String& sandboxedAccessibilityBusPath, const String& accessibilityBusName); #endif - bool launch(const ProcessLauncher::LaunchOptions&); + void launch(const ProcessLaunchOptions&); private: static CString makeProxy(const char* baseDirectory, const char* proxyTemplate); diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/WebPageProxy.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/WebPageProxy.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/WebPageProxy.cpp 2024-09-17 07:38:07.977445000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/WebPageProxy.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -4540,8 +4540,10 @@ loadedWebArchive, replacedDataStoreForWebArchiveLoad ] (Ref&& processNavigatingTo, SuspendedPageProxy* destinationSuspendedPage, ASCIILiteral reason) mutable { - // If the navigation has been destroyed, then no need to proceed. - if (isClosed() || !navigationState().hasNavigation(navigation->navigationID())) { + // If the navigation has been destroyed or the frame has been replaced by PSON, then no need to proceed. + if (isClosed() + || !navigationState().hasNavigation(navigation->navigationID()) + || (frame->isMainFrame() && frame.ptr() != m_mainFrame.get())) { receivedPolicyDecision(policyAction, navigation.ptr(), navigation->protectedWebsitePolicies().get(), WTFMove(navigationAction), WillContinueLoadInNewProcess::No, std::nullopt, WTFMove(message), WTFMove(completionHandler)); return; } @@ -11846,11 +11848,14 @@ void WebPageProxy::wrapCryptoKey(Vector&& key, CompletionHandler>&&)>&& completionHandler) { getWebCryptoMasterKey([key = WTFMove(key), completionHandler = WTFMove(completionHandler)](std::optional> && masterKey) mutable { - if (masterKey) { - Vector wrappedKey; - if (wrapSerializedCryptoKey(*masterKey, key, wrappedKey)) - return completionHandler(WTFMove(wrappedKey)); - } +#if PLATFORM(COCOA) + if (!masterKey) + return completionHandler(std::nullopt); +#endif + Vector wrappedKey; + const Vector blankMasterKey; + if (wrapSerializedCryptoKey(masterKey.value_or(blankMasterKey), key, wrappedKey)) + return completionHandler(WTFMove(wrappedKey)); completionHandler(std::nullopt); }); } @@ -11858,10 +11863,13 @@ void WebPageProxy::unwrapCryptoKey(WrappedCryptoKey&& wrappedKey, CompletionHandler>&&)>&& completionHandler) { getWebCryptoMasterKey([wrappedKey = WTFMove(wrappedKey), completionHandler = WTFMove(completionHandler)](std::optional> && masterKey) mutable { - if (masterKey) { - if (auto key = WebCore::unwrapCryptoKey(*masterKey, wrappedKey)) - return completionHandler(WTFMove(key)); - } +#if PLATFORM(COCOA) + if (!masterKey) + return completionHandler(std::nullopt); +#endif + const Vector blankMasterKey; + if (auto key = WebCore::unwrapCryptoKey(masterKey.value_or(blankMasterKey), wrappedKey)) + return completionHandler(WTFMove(key)); completionHandler(std::nullopt); }); diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/WebProcessPool.h webkit2gtk-2.46.3/Source/WebKit/UIProcess/WebProcessPool.h --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/WebProcessPool.h 2024-08-19 06:28:40.035252300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/WebProcessPool.h 2024-10-21 09:00:02.723246300 +0000 @@ -513,7 +513,10 @@ #if USE(ATSPI) const String& accessibilityBusAddress() const; + const String& accessibilityBusName() const; const String& sandboxedAccessibilityBusAddress() const; + + const String& generateNextAccessibilityBusName(); #endif #endif @@ -843,6 +846,7 @@ #if USE(ATSPI) mutable std::optional m_accessibilityBusAddress; + mutable std::optional m_accessibilityBusName; String m_sandboxedAccessibilityBusAddress; #endif #endif diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/WebProcessProxy.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/WebProcessProxy.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/WebProcessProxy.cpp 2024-09-17 07:38:07.977445000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/WebProcessProxy.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -2675,11 +2675,14 @@ void WebProcessProxy::wrapCryptoKey(Vector&& key, CompletionHandler>&&)>&& completionHandler) { getWebCryptoMasterKey([key = WTFMove(key), completionHandler = WTFMove(completionHandler)](std::optional> && masterKey) mutable { - if (masterKey) { - Vector wrappedKey; - if (wrapSerializedCryptoKey(*masterKey, key, wrappedKey)) - return completionHandler(WTFMove(wrappedKey)); - } +#if PLATFORM(COCOA) + if (!masterKey) + return completionHandler(std::nullopt); +#endif + Vector wrappedKey; + const Vector blankMasterKey; + if (wrapSerializedCryptoKey(masterKey.value_or(blankMasterKey), key, wrappedKey)) + return completionHandler(WTFMove(wrappedKey)); completionHandler(std::nullopt); }); } @@ -2687,10 +2690,13 @@ void WebProcessProxy::unwrapCryptoKey(WrappedCryptoKey&& wrappedKey, CompletionHandler>&&)>&& completionHandler) { getWebCryptoMasterKey([wrappedKey = WTFMove(wrappedKey), completionHandler = WTFMove(completionHandler)](std::optional> && masterKey) mutable { - if (masterKey) { - if (auto key = WebCore::unwrapCryptoKey(*masterKey, wrappedKey)) - return completionHandler(WTFMove(key)); - } +#if PLATFORM(COCOA) + if (!masterKey) + return completionHandler(std::nullopt); +#endif + const Vector blankMasterKey; + if (auto key = WebCore::unwrapCryptoKey(masterKey.value_or(blankMasterKey), wrappedKey)) + return completionHandler(WTFMove(key)); completionHandler(std::nullopt); }); diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp 2024-08-19 06:28:40.039252300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp 2024-10-30 12:49:58.594964000 +0000 @@ -58,18 +58,18 @@ namespace WebKit { #if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -static std::optional> findCrtc(int fd, PlatformMonitor* monitor) +static std::optional> findCrtc(int fd, PlatformScreen* screen) { drmModeRes* resources = drmModeGetResources(fd); if (!resources) return std::nullopt; #if PLATFORM(GTK) - uint32_t widthMM = gdk_monitor_get_width_mm(monitor); - uint32_t heightMM = gdk_monitor_get_height_mm(monitor); + uint32_t widthMM = gdk_monitor_get_width_mm(screen); + uint32_t heightMM = gdk_monitor_get_height_mm(screen); #elif PLATFORM(WPE) - uint32_t widthMM = wpe_monitor_get_physical_width(monitor); - uint32_t heightMM = wpe_monitor_get_physical_height(monitor); + uint32_t widthMM = wpe_screen_get_physical_width(screen); + uint32_t heightMM = wpe_screen_get_physical_height(screen); #endif // First find connectors matching the size. @@ -104,9 +104,9 @@ for (int i = 0; i < resources->count_crtcs; ++i) { if (resources->crtcs[i] == encoder->crtc_id) { #if PLATFORM(GTK) - auto refreshRate = gdk_monitor_get_refresh_rate(monitor); + auto refreshRate = gdk_monitor_get_refresh_rate(screen); #elif PLATFORM(WPE) - auto refreshRate = wpe_monitor_get_refresh_rate(monitor); + auto refreshRate = wpe_screen_get_refresh_rate(screen); #endif returnValue = { i, refreshRate }; break; @@ -187,7 +187,7 @@ std::pair crtcInfo; }; #if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -static std::optional findDrmNodeWithCrtc(PlatformMonitor* monitor = nullptr) +static std::optional findDrmNodeWithCrtc(PlatformScreen* screen = nullptr) #else static std::optional findDrmNodeWithCrtc() #endif @@ -204,12 +204,12 @@ continue; std::optional> crtcInfo; #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) - if (monitor) - crtcInfo = findCrtc(fd.value(), monitor); + if (screen) + crtcInfo = findCrtc(fd.value(), screen); else crtcInfo = findCrtc(fd.value()); #elif PLATFORM(GTK) - crtcInfo = findCrtc(fd.value(), monitor); + crtcInfo = findCrtc(fd.value(), screen); #else crtcInfo = findCrtc(fd.value()); #endif @@ -238,20 +238,20 @@ #endif #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) - PlatformMonitor* monitor = nullptr; + PlatformScreen* screen = nullptr; if (usingWPEPlatformAPI) { - monitor = ScreenManager::singleton().monitor(displayID); - if (!monitor) { - RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); + screen = ScreenManager::singleton().screen(displayID); + if (!screen) { + RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no screen found", displayID); return nullptr; } } #endif #if PLATFORM(GTK) - auto* monitor = ScreenManager::singleton().monitor(displayID); - if (!monitor) { - RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); + auto* screen = ScreenManager::singleton().screen(displayID); + if (!screen) { + RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no screen found", displayID); return nullptr; } #endif @@ -259,7 +259,7 @@ std::optional drmNodeWithCrtcInfo; #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) #ifdef WPE_PLATFORM_DRM - if (usingWPEPlatformAPI && WPE_IS_MONITOR_DRM(monitor)) { + if (usingWPEPlatformAPI && WPE_IS_SCREEN_DRM(screen)) { String filename = String::fromUTF8(wpe_display_get_drm_device(wpe_display_get_primary())); if (filename.isEmpty()) { @@ -273,18 +273,18 @@ return nullptr; } - drmNodeWithCrtcInfo = DrmNodeWithCrtc { WTFMove(fd), { wpe_monitor_drm_get_crtc_index(WPE_MONITOR_DRM(monitor)), wpe_monitor_get_refresh_rate(monitor) } }; + drmNodeWithCrtcInfo = DrmNodeWithCrtc { WTFMove(fd), { wpe_screen_drm_get_crtc_index(WPE_SCREEN_DRM(screen)), wpe_screen_get_refresh_rate(screen) } }; } #endif #endif #if PLATFORM(GTK) - drmNodeWithCrtcInfo = findDrmNodeWithCrtc(monitor); + drmNodeWithCrtcInfo = findDrmNodeWithCrtc(screen); #elif PLATFORM(WPE) #if ENABLE(WPE_PLATFORM) if (usingWPEPlatformAPI) { if (!drmNodeWithCrtcInfo) - drmNodeWithCrtcInfo = findDrmNodeWithCrtc(monitor); + drmNodeWithCrtcInfo = findDrmNodeWithCrtc(screen); } else drmNodeWithCrtcInfo = findDrmNodeWithCrtc(); #else @@ -327,9 +327,9 @@ vblank.request.signal = 0; auto ret = drmWaitVBlank(m_fd.value(), &vblank); if (ret == -EPERM) { - // This can happen when the monitor is suspended and the web view hasn't noticed it. + // This can happen when the screen is suspended and the web view hasn't noticed it. // The display link should be stopped in those cases, but since it isn't, we can at - // least sleep for a while pretending the monitor is on. + // least sleep for a while pretending the screen is on. std::this_thread::sleep_for(std::chrono::milliseconds(500)); return true; } diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/ScreenManager.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/ScreenManager.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/ScreenManager.cpp 2024-08-19 06:28:40.039252300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/ScreenManager.cpp 2024-10-30 12:49:58.594964000 +0000 @@ -38,31 +38,31 @@ return manager; } -PlatformDisplayID ScreenManager::displayID(PlatformMonitor* monitor) const +PlatformDisplayID ScreenManager::displayID(PlatformScreen* screen) const { - return m_monitorToDisplayIDMap.get(monitor); + return m_screenToDisplayIDMap.get(screen); } -PlatformMonitor* ScreenManager::monitor(PlatformDisplayID displayID) const +PlatformScreen* ScreenManager::screen(PlatformDisplayID displayID) const { - for (const auto& iter : m_monitorToDisplayIDMap) { + for (const auto& iter : m_screenToDisplayIDMap) { if (iter.value == displayID) return iter.key; } return nullptr; } -void ScreenManager::addMonitor(PlatformMonitor* monitor) +void ScreenManager::addScreen(PlatformScreen* screen) { - m_monitors.append(monitor); - m_monitorToDisplayIDMap.add(monitor, generatePlatformDisplayID(monitor)); + m_screens.append(screen); + m_screenToDisplayIDMap.add(screen, generatePlatformDisplayID(screen)); } -void ScreenManager::removeMonitor(PlatformMonitor* monitor) +void ScreenManager::removeScreen(PlatformScreen* screen) { - m_monitorToDisplayIDMap.remove(monitor); - m_monitors.removeFirstMatching([monitor](const auto& item) { - return item.get() == monitor; + m_screenToDisplayIDMap.remove(screen); + m_screens.removeFirstMatching([screen](const auto& item) { + return item.get() == screen; }); } diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/ScreenManager.h webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/ScreenManager.h --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/ScreenManager.h 2024-08-19 06:28:40.039252300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/ScreenManager.h 2024-10-30 12:49:58.594964000 +0000 @@ -35,10 +35,10 @@ #if PLATFORM(GTK) typedef struct _GdkMonitor GdkMonitor; -using PlatformMonitor = GdkMonitor; +using PlatformScreen = GdkMonitor; #elif PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -typedef struct _WPEMonitor WPEMonitor; -using PlatformMonitor = WPEMonitor; +typedef struct _WPEScreen WPEScreen; +using PlatformScreen = WPEScreen; #endif namespace WebKit { @@ -51,8 +51,8 @@ public: static ScreenManager& singleton(); - PlatformDisplayID displayID(PlatformMonitor*) const; - PlatformMonitor* monitor(PlatformDisplayID) const; + PlatformDisplayID displayID(PlatformScreen*) const; + PlatformScreen* screen(PlatformDisplayID) const; PlatformDisplayID primaryDisplayID() const { return m_primaryDisplayID; } WebCore::ScreenProperties collectScreenProperties() const; @@ -60,15 +60,15 @@ private: ScreenManager(); - static PlatformDisplayID generatePlatformDisplayID(PlatformMonitor*); + static PlatformDisplayID generatePlatformDisplayID(PlatformScreen*); - void addMonitor(PlatformMonitor*); - void removeMonitor(PlatformMonitor*); + void addScreen(PlatformScreen*); + void removeScreen(PlatformScreen*); void updatePrimaryDisplayID(); void propertiesDidChange() const; - Vector, 1> m_monitors; - HashMap m_monitorToDisplayIDMap; + Vector, 1> m_screens; + HashMap m_screenToDisplayIDMap; PlatformDisplayID m_primaryDisplayID { 0 }; }; diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp 2024-08-29 11:52:43.073542600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -39,6 +39,10 @@ #include #include +#if USE(ATSPI) +#include +#endif + #if ENABLE(REMOTE_INSPECTOR) #include #endif @@ -161,6 +165,8 @@ parameters.accessibilityBusAddress = String::fromUTF8(address); else parameters.accessibilityBusAddress = m_sandboxEnabled && shouldUseBubblewrap() ? sandboxedAccessibilityBusAddress() : accessibilityBusAddress(); + + parameters.accessibilityBusName = accessibilityBusName(); #endif #if PLATFORM(GTK) @@ -271,10 +277,26 @@ return m_accessibilityBusAddress.value(); } +const String& WebProcessPool::accessibilityBusName() const +{ + RELEASE_ASSERT(m_accessibilityBusName.has_value()); + return m_accessibilityBusName.value(); +} + const String& WebProcessPool::sandboxedAccessibilityBusAddress() const { return m_sandboxedAccessibilityBusAddress; } + +const String& WebProcessPool::generateNextAccessibilityBusName() +{ + m_accessibilityBusName = makeString(String::fromUTF8(WTF::applicationID().span()), ".Sandboxed.WebProcess-"_s, WTF::UUID::createVersion4()); + RELEASE_ASSERT(g_dbus_is_name(m_accessibilityBusName.value().utf8().data())); + RELEASE_ASSERT(!g_dbus_is_unique_name(m_accessibilityBusName.value().utf8().data())); + + return accessibilityBusName(); +} + #endif } // namespace WebKit diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp 2024-08-29 11:52:43.073542600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -29,6 +29,7 @@ #include "UserMessage.h" #include "WebProcessPool.h" #include "WebsiteDataStore.h" +#include #include #include #include @@ -43,6 +44,7 @@ #if USE(ATSPI) launchOptions.extraInitializationData.set("accessibilityBusAddress"_s, m_processPool->accessibilityBusAddress()); + launchOptions.extraInitializationData.set("accessibilityBusName"_s, m_processPool->generateNextAccessibilityBusName()); #endif if (m_processPool->sandboxEnabled()) { @@ -74,22 +76,14 @@ void WebProcessProxy::platformSuspendProcess() { - auto id = processID(); - if (!id) - return; - - RELEASE_LOG(Process, "%p - [PID=%i] WebProcessProxy::platformSuspendProcess", this, id); - kill(id, SIGSTOP); + // FIXME: https://webkit.org/b/280014 + notImplemented(); } void WebProcessProxy::platformResumeProcess() { - auto id = processID(); - if (!id) - return; - - RELEASE_LOG(Process, "%p - [PID=%i] WebProcessProxy::platformResumeProcess", this, id); - kill(id, SIGCONT); + // FIXME: https://webkit.org/b/280014 + notImplemented(); } } // namespace WebKit diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp 2024-08-19 06:28:40.043252000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp 2024-10-30 12:49:58.594964000 +0000 @@ -48,14 +48,14 @@ auto monitorsCount = g_list_model_get_n_items(monitors); for (unsigned i = 0; i < monitorsCount; ++i) { auto monitor = adoptGRef(GDK_MONITOR(g_list_model_get_item(monitors, i))); - addMonitor(monitor.get()); + addScreen(monitor.get()); } g_signal_connect(monitors, "items-changed", G_CALLBACK(+[](GListModel* monitors, guint index, guint removedCount, guint addedCount, ScreenManager* manager) { for (unsigned i = 0; i < removedCount; ++i) - manager->removeMonitor(manager->m_monitors[index].get()); + manager->removeScreen(manager->m_screens[index].get()); for (unsigned i = 0; i < addedCount; ++i) { auto monitor = adoptGRef(GDK_MONITOR(g_list_model_get_item(monitors, index + i))); - manager->addMonitor(monitor.get()); + manager->addScreen(monitor.get()); } manager->updatePrimaryDisplayID(); manager->propertiesDidChange(); @@ -64,15 +64,15 @@ auto monitorsCount = gdk_display_get_n_monitors(display); for (int i = 0; i < monitorsCount; ++i) { if (auto* monitor = gdk_display_get_monitor(display, i)) - addMonitor(monitor); + addScreen(monitor); } g_signal_connect(display, "monitor-added", G_CALLBACK(+[](GdkDisplay*, GdkMonitor* monitor, ScreenManager* manager) { - manager->addMonitor(monitor); + manager->addScreen(monitor); manager->updatePrimaryDisplayID(); manager->propertiesDidChange(); }), this); g_signal_connect(display, "monitor-removed", G_CALLBACK(+[](GdkDisplay*, GdkMonitor* monitor, ScreenManager* manager) { - manager->removeMonitor(monitor); + manager->removeScreen(monitor); manager->updatePrimaryDisplayID(); manager->propertiesDidChange(); }), this); @@ -119,7 +119,7 @@ ScreenProperties properties; properties.primaryDisplayID = m_primaryDisplayID; - for (const auto& iter : m_monitorToDisplayIDMap) { + for (const auto& iter : m_screenToDisplayIDMap) { GdkMonitor* monitor = iter.key; ScreenData data; GdkRectangle workArea; diff -Nru webkit2gtk-2.46.0/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp webkit2gtk-2.46.3/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp --- webkit2gtk-2.46.0/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp 2024-08-19 06:28:40.043252000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -55,8 +55,7 @@ void WebPageProxy::bindAccessibilityTree(const String& plugID) { #if USE(GTK4) - // FIXME(273245): Make a11y work under Flatpak. - if (!isInsideFlatpak()) + if (!isInsideFlatpak() || checkFlatpakPortalVersion(7)) webkitWebViewBaseSetPlugID(WEBKIT_WEB_VIEW_BASE(viewWidget()), plugID); #else auto* accessible = gtk_widget_get_accessible(viewWidget()); diff -Nru webkit2gtk-2.46.0/Source/WebKit/WPEPlatform/CMakeLists.txt webkit2gtk-2.46.3/Source/WebKit/WPEPlatform/CMakeLists.txt --- webkit2gtk-2.46.0/Source/WebKit/WPEPlatform/CMakeLists.txt 2024-08-19 06:28:40.067251400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WPEPlatform/CMakeLists.txt 2024-10-30 12:49:58.594964000 +0000 @@ -29,8 +29,8 @@ ${WEBKIT_DIR}/WPEPlatform/wpe/WPEGestureController.cpp ${WEBKIT_DIR}/WPEPlatform/wpe/WPEGestureControllerImpl.cpp ${WEBKIT_DIR}/WPEPlatform/wpe/WPEGestureDetector.cpp - ${WEBKIT_DIR}/WPEPlatform/wpe/WPEMonitor.cpp ${WEBKIT_DIR}/WPEPlatform/wpe/WPERectangle.cpp + ${WEBKIT_DIR}/WPEPlatform/wpe/WPEScreen.cpp ${WEBKIT_DIR}/WPEPlatform/wpe/WPEToplevel.cpp ${WEBKIT_DIR}/WPEPlatform/wpe/WPEVersion.cpp ${WEBKIT_DIR}/WPEPlatform/wpe/WPEView.cpp @@ -53,8 +53,8 @@ ${WEBKIT_DIR}/WPEPlatform/wpe/WPEKeymapXKB.h ${WEBKIT_DIR}/WPEPlatform/wpe/WPEKeysyms.h ${WEBKIT_DIR}/WPEPlatform/wpe/WPEGestureController.h - ${WEBKIT_DIR}/WPEPlatform/wpe/WPEMonitor.h ${WEBKIT_DIR}/WPEPlatform/wpe/WPERectangle.h + ${WEBKIT_DIR}/WPEPlatform/wpe/WPEScreen.h ${WEBKIT_DIR}/WPEPlatform/wpe/WPEToplevel.h ${WEBKIT_DIR}/WPEPlatform/wpe/WPEView.h ${WEBKIT_DIR}/WPEPlatform/wpe/wpe-platform.h diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp 2024-08-19 06:28:40.087250700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp 2024-10-30 09:22:36.534296800 +0000 @@ -115,12 +115,12 @@ send(Messages::NetworkStorageManager::DeleteObjectStore(requestData, objectStoreName)); } -void WebIDBConnectionToServer::renameObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& newName) +void WebIDBConnectionToServer::renameObjectStore(const IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, const String& newName) { send(Messages::NetworkStorageManager::RenameObjectStore(requestData, objectStoreIdentifier, newName)); } -void WebIDBConnectionToServer::clearObjectStore(const IDBRequestData& requestData, uint64_t objectStoreIdentifier) +void WebIDBConnectionToServer::clearObjectStore(const IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier) { send(Messages::NetworkStorageManager::ClearObjectStore(requestData, objectStoreIdentifier)); } @@ -130,12 +130,12 @@ send(Messages::NetworkStorageManager::CreateIndex(requestData, info)); } -void WebIDBConnectionToServer::deleteIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, const String& indexName) +void WebIDBConnectionToServer::deleteIndex(const IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, const String& indexName) { send(Messages::NetworkStorageManager::DeleteIndex(requestData, objectStoreIdentifier, indexName)); } -void WebIDBConnectionToServer::renameIndex(const IDBRequestData& requestData, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) +void WebIDBConnectionToServer::renameIndex(const IDBRequestData& requestData, WebCore::IDBObjectStoreIdentifier objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) { send(Messages::NetworkStorageManager::RenameIndex(requestData, objectStoreIdentifier, indexIdentifier, newName)); } diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h webkit2gtk-2.46.3/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h 2024-08-19 06:28:40.087250700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h 2024-10-30 09:22:36.534296800 +0000 @@ -28,6 +28,7 @@ #include "MessageSender.h" #include "SandboxExtension.h" #include +#include #include namespace WebKit { @@ -59,11 +60,11 @@ void didFinishHandlingVersionChangeTransaction(WebCore::IDBDatabaseConnectionIdentifier, const WebCore::IDBResourceIdentifier&) final; void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&) final; void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName) final; - void renameObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& newName) final; - void clearObjectStore(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier) final; + void renameObjectStore(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier, const String& newName) final; + void clearObjectStore(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier) final; void createIndex(const WebCore::IDBRequestData&, const WebCore::IDBIndexInfo&) final; - void deleteIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, const String& indexName) final; - void renameIndex(const WebCore::IDBRequestData&, uint64_t objectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final; + void deleteIndex(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier, const String& indexName) final; + void renameIndex(const WebCore::IDBRequestData&, WebCore::IDBObjectStoreIdentifier, uint64_t indexIdentifier, const String& newName) final; void putOrAdd(const WebCore::IDBRequestData&, const WebCore::IDBKeyData&, const WebCore::IDBValue&, const WebCore::IndexedDB::ObjectStoreOverwriteMode) final; void getRecord(const WebCore::IDBRequestData&, const WebCore::IDBGetRecordData&) final; void getAllRecords(const WebCore::IDBRequestData&, const WebCore::IDBGetAllRecordsData&) final; diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp 2024-08-19 06:28:40.099250300 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -212,6 +212,7 @@ void MediaSourcePrivateRemote::setMediaPlayerReadyState(MediaPlayer::ReadyState readyState) { // Call from MediaSource's dispatcher. +#if !RELEASE_LOG_DISABLED if (m_mediaPlayerReadyState > MediaPlayer::ReadyState::HaveCurrentData && readyState == MediaPlayer::ReadyState::HaveCurrentData) { RefPtr player = m_mediaPlayerPrivate.get(); auto currentTime = player->currentTime(); @@ -219,6 +220,7 @@ auto duration = this->duration(); ALWAYS_LOG(LOGIDENTIFIER, "stall detected at:", currentTime, " duration:", duration, " buffered:", buffered); } +#endif m_mediaPlayerReadyState = readyState; ensureOnDispatcher([protectedThis = Ref { *this }, this, readyState] { auto gpuProcessConnection = m_gpuProcessConnection.get(); diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp 2024-09-16 08:33:15.157029400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -26,7 +26,7 @@ #include "config.h" #include "VideoLayerRemote.h" -#if ENABLE(GPU_PROCESS) +#if ENABLE(GPU_PROCESS) && ENABLE(VIDEO) #include #include diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/Plugins/PluginView.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/Plugins/PluginView.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/Plugins/PluginView.cpp 2024-08-19 06:28:40.139249000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/Plugins/PluginView.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -543,7 +543,7 @@ return; if (m_transientPaintingSnapshot) { - if (!context.platformContext()) { + if (!context.hasPlatformContext()) { RefPtr image = m_transientPaintingSnapshot->createImage(); if (!image) return; diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp 2024-08-19 06:28:40.139249000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -170,8 +170,11 @@ return; } - runOrDelayTaskForImport([this, callback = WTFMove(callback), topOrigin = WTFMove(topOrigin), clientURL]() mutable { - sendWithAsyncReply(Messages::WebSWServerConnection::MatchRegistration { topOrigin, clientURL }, WTFMove(callback)); + CompletionHandlerWithFinalizer)> completionHandler(WTFMove(callback), [] (auto& callback) { + callback(std::nullopt); + }); + runOrDelayTaskForImport([this, completionHandler = WTFMove(completionHandler), topOrigin = WTFMove(topOrigin), clientURL]() mutable { + sendWithAsyncReply(Messages::WebSWServerConnection::MatchRegistration { topOrigin, clientURL }, WTFMove(completionHandler)); }); } diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp 2024-09-16 08:33:15.157029400 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -162,7 +162,7 @@ bool CompositingCoordinator::flushPendingLayerChanges(OptionSet flags) { - TraceScope traceScope(BackingStoreFlushStart, BackingStoreFlushEnd); + TraceScope traceScope(FlushPendingLayerChangesStart, FlushPendingLayerChangesEnd); SetForScope protector(m_isFlushingLayerChanges, true); bool shouldSyncFrame = initializeRootCompositingLayerIfNeeded(); diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp 2024-08-19 06:28:40.151248700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -44,6 +44,7 @@ #include #include #include +#include #include #if USE(GLIB_EVENT_LOOP) @@ -138,6 +139,8 @@ void LayerTreeHost::scheduleLayerFlush() { + WTFEmitSignpost(this, ScheduleLayerFlush, "isWaitingForRenderer %i", m_isWaitingForRenderer); + if (!m_layerFlushSchedulingEnabled) return; @@ -160,11 +163,17 @@ void LayerTreeHost::layerFlushTimerFired() { - if (m_isSuspended) + WTFBeginSignpost(this, LayerFlushTimerFired, "isWaitingForRenderer %i", m_isWaitingForRenderer); + + if (m_isSuspended) { + WTFEndSignpost(this, LayerFlushTimerFired); return; + } - if (m_isWaitingForRenderer) + if (m_isWaitingForRenderer) { + WTFEndSignpost(this, LayerFlushTimerFired); return; + } // If a force-repaint callback was registered, we should force a 'frame sync' that // will guarantee us a call to renderNextFrame() once the update is complete. @@ -187,6 +196,8 @@ if (m_transientZoom) applyTransientZoomToLayers(m_transientZoomScale, m_transientZoomOrigin); #endif + + WTFEndSignpost(this, LayerFlushTimerFired); } void LayerTreeHost::setRootCompositingLayer(GraphicsLayer* graphicsLayer) @@ -369,6 +380,7 @@ void LayerTreeHost::commitSceneState(const RefPtr& state) { + WTFEmitSignpost(this, CommitSceneState, "compositionRequestID %i", m_compositionRequestID + 1); m_isWaitingForRenderer = true; m_compositor->updateSceneState(state, ++m_compositionRequestID); } @@ -425,6 +437,8 @@ void LayerTreeHost::didRenderFrame(uint32_t compositionResponseID, const WebCore::Damage& damage) { + WTFEmitSignpost(this, DidRenderFrame, "compositionResponseID %i", compositionResponseID); + auto damageRegion = [&]() -> WebCore::Region { if (m_scrolledSinceLastFrame || damage.isInvalid()) return { }; @@ -487,6 +501,8 @@ void LayerTreeHost::renderNextFrame(bool forceRepaint) { + WTFBeginSignpost(this, RenderNextFrame); + m_isWaitingForRenderer = false; bool scheduledWhileWaitingForRenderer = std::exchange(m_scheduledWhileWaitingForRenderer, false); @@ -510,6 +526,8 @@ m_coordinator.forceFrameSync(); layerFlushTimerFired(); } + + WTFEndSignpost(this, RenderNextFrame); } #if PLATFORM(GTK) diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/WebPage.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/WebPage.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2024-09-17 07:38:07.977445000 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -429,6 +429,10 @@ #include "ModelProcessConnection.h" #endif +#if USE(SKIA) +#include +#endif + #if USE(CG) // FIXME: Move the CG-specific PDF painting code out of WebPage.cpp. #include @@ -824,6 +828,10 @@ // to ensure it's created with the right size. m_page->setDeviceScaleFactor(parameters.deviceScaleFactor); +#if USE(SKIA) + FontRenderOptions::singleton().setUseSubpixelPositioning(parameters.deviceScaleFactor >= 2.); +#endif + #if USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER) if (m_drawingArea->enterAcceleratedCompositingModeIfNeeded() && !parameters.isProcessSwap) m_drawingArea->sendEnterAcceleratedCompositingModeIfNeeded(); @@ -2680,6 +2688,10 @@ updateHeaderAndFooterLayersForDeviceScaleChange(scaleFactor); #endif +#if USE(SKIA) + FontRenderOptions::singleton().setUseSubpixelPositioning(scaleFactor >= 2.); +#endif + if (findController().isShowingOverlay()) { // We must have updated layout to get the selection rects right. layoutIfNeeded(); @@ -7204,6 +7216,11 @@ void WebPage::resetFocusedElementForFrame(WebFrame* frame) { +#if PLATFORM(GTK) || PLATFORM(WPE) + if (frame->isMainFrame() || m_page->checkedFocusController()->focusedOrMainFrame() == frame->coreLocalFrame()) + m_page->editorClient().setInputMethodState(nullptr); +#endif + if (!m_focusedElement) return; diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp 2024-08-19 06:28:40.159248600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/glib/WebPageGLib.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -162,7 +162,7 @@ } } -static std::optional inputMethodSateForElement(Element* element) +static std::optional inputMethodStateForElement(Element* element) { if (!element || !element->shouldUseInputMethod()) return std::nullopt; @@ -190,7 +190,7 @@ void WebPage::setInputMethodState(Element* element) { - auto state = inputMethodSateForElement(element); + auto state = inputMethodStateForElement(element); if (m_inputMethodState == state) return; diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp 2024-08-19 06:28:40.159248600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp 2024-09-30 08:15:01.148258400 +0000 @@ -47,9 +47,16 @@ #if USE(CAIRO) #include +#include +#ifdef CAIRO_HAS_PDF_SURFACE #include +#endif +#ifdef CAIRO_HAS_PS_SURFACE #include +#endif +#ifdef CAIRO_HAS_SVG_SURFACE #include +#endif #elif USE(SKIA) #include #include @@ -223,11 +230,16 @@ double width = gtk_paper_size_get_width(paperSize, GTK_UNIT_POINTS); double height = gtk_paper_size_get_height(paperSize, GTK_UNIT_POINTS); RefPtr surface; - if (!g_strcmp0(outputFormat, "pdf")) + if (!g_strcmp0(outputFormat, "pdf")) { +#ifdef CAIRO_HAS_PDF_SURFACE surface = adoptRef(cairo_pdf_surface_create_for_stream(writeCairoStream, this, width, height)); - else if (!g_strcmp0(outputFormat, "ps")) +#endif + } else if (!g_strcmp0(outputFormat, "ps")) { +#ifdef CAIRO_HAS_PS_SURFACE surface = adoptRef(cairo_ps_surface_create_for_stream(writeCairoStream, this, width, height)); - else if (!g_strcmp0(outputFormat, "svg")) { +#endif + } else if (!g_strcmp0(outputFormat, "svg")) { +#ifdef CAIRO_HAS_SVG_SURFACE surface = adoptRef(cairo_svg_surface_create_for_stream(writeCairoStream, this, width, height)); const cairo_svg_version_t* versions; @@ -235,6 +247,7 @@ cairo_svg_get_versions(&versions, &versionsCount); if (versionsCount) cairo_svg_surface_restrict_to_version(surface.get(), versions[versionsCount - 1]); +#endif } auto lpi = gtk_print_settings_get_printer_lpi(m_printSettings.get()); @@ -278,6 +291,7 @@ cairo_surface_t* surface = cairo_get_target(cr); cairo_surface_type_t surfaceType = cairo_surface_get_type(surface); if (surfaceType == CAIRO_SURFACE_TYPE_PS) { +#ifdef CAIRO_HAS_PS_SURFACE cairo_ps_surface_set_size(surface, width, height); cairo_ps_surface_dsc_begin_page_setup(surface); @@ -291,7 +305,9 @@ cairo_ps_surface_dsc_comment(surface, "%%PageOrientation: Landscape"); break; } +#endif } else if (surfaceType == CAIRO_SURFACE_TYPE_PDF) { +#ifdef CAIRO_HAS_PDF_SURFACE switch (gtk_page_setup_get_orientation(m_pageSetup.get())) { case GTK_PAGE_ORIENTATION_PORTRAIT: case GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT: @@ -302,6 +318,7 @@ cairo_pdf_surface_set_size(surface, height, width); break; } +#endif } } diff -Nru webkit2gtk-2.46.0/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp webkit2gtk-2.46.3/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp --- webkit2gtk-2.46.0/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp 2024-08-26 05:35:50.270169700 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp 2024-10-21 09:00:02.723246300 +0000 @@ -174,9 +174,16 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& parameters) { #if USE(SKIA) - const char* enableCPURendering = getenv("WEBKIT_SKIA_ENABLE_CPU_RENDERING"); - if (enableCPURendering && strcmp(enableCPURendering, "0")) - ProcessCapabilities::setCanUseAcceleratedBuffers(false); +#if PLATFORM(WPE) + bool useAcceleratedBuffers = false; +#else + bool useAcceleratedBuffers = true; +#endif + + if (const char* enableCPURendering = getenv("WEBKIT_SKIA_ENABLE_CPU_RENDERING")) + useAcceleratedBuffers = (enableCPURendering == "0"_s); + + ProcessCapabilities::setCanUseAcceleratedBuffers(useAcceleratedBuffers); #endif #if ENABLE(MEDIA_STREAM) @@ -223,7 +230,7 @@ #endif #if USE(ATSPI) - AccessibilityAtspi::singleton().connect(parameters.accessibilityBusAddress); + AccessibilityAtspi::singleton().connect(parameters.accessibilityBusAddress, parameters.accessibilityBusName); #endif if (parameters.disableFontHintingForTesting) diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/NEWS webkit2gtk-2.46.3/Source/WebKit/gtk/NEWS --- webkit2gtk-2.46.0/Source/WebKit/gtk/NEWS 2024-09-17 07:52:31.447590600 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/NEWS 2024-10-30 12:49:59.486945000 +0000 @@ -1,4 +1,44 @@ ================ +WebKitGTK 2.46.3 +================ + +What's new in WebKitGTK 2.46.3? + + - Flatten layers to a plane when preseve-3d style is set. + - Fix DuckDuckGo links by adding a user agent quirk. + - Fix several crashes and rendering issues. + +================ +WebKitGTK 2.46.2 +================ + +What's new in WebKitGTK 2.46.2? + + - Own well-known bus name on a11y bus. + - Improve memory consumption when putImageData is used repeatedly on accelerated canvas. + - Disable cached web process suspension for now to prevent leaks. + - Improve text kerning with different combinations of antialias and hinting settings. + - Destroy all network sessions on process exit. + - Fix visible rectangle calculation when there are animations. + - Fix the build with ENABLE_NOTIFICATIONS=OFF. + - Fix the build with ENABLE_FULLSCREEN_API=OFF. + - Fix the build with ENABLE_WEB_AUDIO=OFF. + - Fix the build on ppc64le. + - Fix several crashes and rendering issues. + +================ +WebKitGTK 2.46.1 +================ + +What's new in WebKitGTK 2.46.1? + + - Fix login QR code not shown in WhatsApp web. + - Disable PSON by default again in GTK 3 API versions. + - Disable DMABuf video sink by default to prevent file descriptor leaks. + - Fix the build with GCC 13. + - Fix several crashes and rendering issues. + +================ WebKitGTK 2.46.0 ================ diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/gtk3-urlmap.js.in webkit2gtk-2.46.3/Source/WebKit/gtk/gtk3-urlmap.js.in --- webkit2gtk-2.46.0/Source/WebKit/gtk/gtk3-urlmap.js.in 2024-08-19 06:28:40.171248200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/gtk3-urlmap.js.in 2024-10-30 11:47:03.981011200 +0000 @@ -10,7 +10,7 @@ ["Gdk", "https://docs.gtk.org/gdk@GTK_API_VERSION@/"], ["Gtk", "https://docs.gtk.org/gtk@GTK_API_VERSION@/"], ["JavaScriptCore", "../javascriptcoregtk" + baseURLApiLevelSuffix], - ["Soup", "https://libsoup.org/libsoup-3.0/"], + ["Soup", "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/"], ["WebKit2", "../webkit2gtk" + baseURLApiLevelSuffix], ["WebKit2WebExtension", "../webkit2gtk-web-extension" + baseURLApiLevelSuffix] ] diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/gtk3-webkitgtk.toml.in webkit2gtk-2.46.3/Source/WebKit/gtk/gtk3-webkitgtk.toml.in --- webkit2gtk-2.46.0/Source/WebKit/gtk/gtk3-webkitgtk.toml.in 2024-08-19 06:28:40.171248200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/gtk3-webkitgtk.toml.in 2024-10-30 11:47:03.981011200 +0000 @@ -27,7 +27,7 @@ [dependencies."Soup-@SOUP_API_VERSION@"] name = "Soup" description = "HTTP client/server library" -docs_url = "https://libsoup.org/libsoup-@SOUP_API_VERSION@" +docs_url = "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-@SOUP_API_VERSION@" [theme] name = "basic" diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/gtk4-urlmap.js.in webkit2gtk-2.46.3/Source/WebKit/gtk/gtk4-urlmap.js.in --- webkit2gtk-2.46.0/Source/WebKit/gtk/gtk4-urlmap.js.in 2024-08-19 06:28:40.171248200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/gtk4-urlmap.js.in 2024-10-30 11:47:03.981011200 +0000 @@ -10,7 +10,7 @@ ["Gdk", "https://docs.gtk.org/gdk@GTK_API_VERSION@/"], ["Gtk", "https://docs.gtk.org/gtk@GTK_API_VERSION@/"], ["JavaScriptCore", "../javascriptcoregtk" + baseURLApiLevelSuffix], - ["Soup", "https://libsoup.org/libsoup-3.0/"], + ["Soup", "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/"], ["WebKit", "../webkitgtk" + baseURLApiLevelSuffix], ["WebKitWebProcessExtension", "../webkitgtk-web-process-extension" + baseURLApiLevelSuffix] ] diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/gtk4-webkitgtk.toml.in webkit2gtk-2.46.3/Source/WebKit/gtk/gtk4-webkitgtk.toml.in --- webkit2gtk-2.46.0/Source/WebKit/gtk/gtk4-webkitgtk.toml.in 2024-08-19 06:28:40.171248200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/gtk4-webkitgtk.toml.in 2024-10-30 11:47:03.981011200 +0000 @@ -27,7 +27,7 @@ [dependencies."Soup-@SOUP_API_VERSION@"] name = "Soup" description = "HTTP client/server library" -docs_url = "https://libsoup.org/libsoup-@SOUP_API_VERSION@" +docs_url = "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-@SOUP_API_VERSION@" [theme] name = "basic" diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md webkit2gtk-2.46.3/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md --- webkit2gtk-2.46.0/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md 2024-08-19 06:28:40.171248200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/migrating-to-webkitgtk-6.0.md 2024-10-30 11:47:03.981011200 +0000 @@ -15,7 +15,7 @@ libsoup 2 and libsoup 3 cannot be linked together. If your application currently uses webkit2gtk-4.0, you must first port to webkit2gtk-4.1 by eliminating use -of libsoup 2. See [Migrating from libsoup 2](https://libsoup.org/libsoup-3.0/migrating-from-libsoup-2.html) +of libsoup 2. See [Migrating from libsoup 2](https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-3.0/migrating-from-libsoup-2.html) for guidance on this. After first migrating to webkit2gtk-4.1, then it is time to start looking into webkitgtk-6.0. diff -Nru webkit2gtk-2.46.0/Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in webkit2gtk-2.46.3/Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in --- webkit2gtk-2.46.0/Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in 2024-08-19 06:28:40.171248200 +0000 +++ webkit2gtk-2.46.3/Source/WebKit/gtk/webkitgtk-web-process-extension.toml.in 2024-10-30 11:47:03.981011200 +0000 @@ -22,7 +22,7 @@ [dependencies."Soup-@SOUP_API_VERSION@"] name = "Soup" description = "HTTP client/server library" -docs_url = "https://libsoup.org/libsoup-@SOUP_API_VERSION@" +docs_url = "https://gnome.pages.gitlab.gnome.org/libsoup/libsoup-@SOUP_API_VERSION@" [theme] name = "basic" diff -Nru webkit2gtk-2.46.0/Source/cmake/FindSysProfCapture.cmake webkit2gtk-2.46.3/Source/cmake/FindSysProfCapture.cmake --- webkit2gtk-2.46.0/Source/cmake/FindSysProfCapture.cmake 2024-08-19 06:28:40.271245200 +0000 +++ webkit2gtk-2.46.3/Source/cmake/FindSysProfCapture.cmake 2024-09-30 08:15:01.152258400 +0000 @@ -61,7 +61,7 @@ find_path(SysProfCapture_INCLUDE_DIR NAMES sysprof-capture.h HINTS ${PC_SYSPROF_CAPTURE_INCLUDEDIR} ${PC_SYSPROF_CAPTURE_INCLUDE_DIR} - PATH_SUFFIXES sysprof-6 + PATH_SUFFIXES sysprof-6 sysprof-4 ) find_library(SysProfCapture_LIBRARY diff -Nru webkit2gtk-2.46.0/Source/cmake/OptionsGTK.cmake webkit2gtk-2.46.3/Source/cmake/OptionsGTK.cmake --- webkit2gtk-2.46.0/Source/cmake/OptionsGTK.cmake 2024-09-17 07:39:22.281164600 +0000 +++ webkit2gtk-2.46.3/Source/cmake/OptionsGTK.cmake 2024-10-30 12:49:59.486945000 +0000 @@ -3,7 +3,7 @@ WEBKIT_OPTION_BEGIN() -SET_PROJECT_VERSION(2 46 0) +SET_PROJECT_VERSION(2 46 3) set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") @@ -58,6 +58,7 @@ WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON) WEBKIT_OPTION_DEFINE(USE_SOUP2 "Whether to enable usage of Soup 2 instead of Soup 3." PUBLIC OFF) +WEBKIT_OPTION_DEFINE(USE_SYSTEM_SYSPROF_CAPTURE "Whether to use a system-provided libsysprof-capture" PUBLIC ${USE_SYSTEM_SYSPROF_CAPTURE_DEFAULT}) WEBKIT_OPTION_DEPEND(ENABLE_DOCUMENTATION ENABLE_INTROSPECTION) WEBKIT_OPTION_DEPEND(USE_GBM USE_LIBDRM) @@ -67,7 +68,6 @@ # Private options specific to the GTK port. Changing these options is # completely unsupported. They are intended for use only by WebKit developers. WEBKIT_OPTION_DEFINE(USE_SYSPROF_CAPTURE "Whether to use libsysprof-capture for tracing." PRIVATE ON) -WEBKIT_OPTION_DEFINE(USE_SYSTEM_SYSPROF_CAPTURE "Whether to use a system-provided libsysprof-capture" PRIVATE ${USE_SYSTEM_SYSPROF_CAPTURE_DEFAULT}) WEBKIT_OPTION_DEPEND(USE_SYSTEM_SYSPROF_CAPTURE USE_SYSPROF_CAPTURE) @@ -221,14 +221,14 @@ EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_VERSION) if (WEBKITGTK_API_VERSION VERSION_EQUAL "4.0") - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 108 2 71) - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 43 9 25) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 108 5 71) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 43 12 25) elseif (WEBKITGTK_API_VERSION VERSION_EQUAL "4.1") - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 16 2 16) - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 6 9 6) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 16 5 16) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 6 12 6) elseif (WEBKITGTK_API_VERSION VERSION_EQUAL "6.0") - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 14 2 10) - CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 4 9 3) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 14 5 10) + CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 4 12 3) else () message(FATAL_ERROR "Unhandled API version") endif () diff -Nru webkit2gtk-2.46.0/Source/cmake/WebKitCompilerFlags.cmake webkit2gtk-2.46.3/Source/cmake/WebKitCompilerFlags.cmake --- webkit2gtk-2.46.0/Source/cmake/WebKitCompilerFlags.cmake 2024-09-16 08:33:15.161029000 +0000 +++ webkit2gtk-2.46.3/Source/cmake/WebKitCompilerFlags.cmake 2024-09-30 08:15:01.152258400 +0000 @@ -137,12 +137,15 @@ endif () if (COMPILER_IS_GCC_OR_CLANG) - WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-fno-strict-aliasing) + if (COMPILER_IS_CLANG OR DEVELOPER_MODE) + # Split debug information in ".debug_types" / ".debug_info" sections - this leads + # to a smaller overall size of the debug information, and avoids linker relocation + # errors on e.g. aarch64 (relocation R_AARCH64_ABS32 out of range: 4312197985 is not in [-2147483648, 4294967295]) + # But when using GCC this breaks Linux distro debuginfo generation, so limit to DEVELOPER_MODE. + WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-fdebug-types-section) + endif () - # Split debug information in ".debug_types" / ".debug_info" sections - this leads - # to a smaller overall size of the debug information, and avoids linker relocation - # errors on e.g. aarch64 (relocation R_AARCH64_ABS32 out of range: 4312197985 is not in [-2147483648, 4294967295]) - WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-fdebug-types-section) + WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-fno-strict-aliasing) # clang-cl.exe impersonates cl.exe so some clang arguments like -fno-rtti are # represented using cl.exe's options and should not be passed as flags, so diff -Nru webkit2gtk-2.46.0/Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp webkit2gtk-2.46.3/Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp --- webkit2gtk-2.46.0/Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp 2024-09-16 08:33:15.161029000 +0000 +++ webkit2gtk-2.46.3/Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp 2024-10-30 09:22:36.538296700 +0000 @@ -109,6 +109,7 @@ assertUserAgentForURLHasMacPlatformQuirk("http://www.sspa.juntadeandalucia.es/"); assertUserAgentForURLHasMacPlatformQuirk("http://foobar.atlassian.net/"); assertUserAgentForURLHasMacPlatformQuirk("http://totale.rosettastone.com/"); + assertUserAgentForURLHasMacPlatformQuirk("http://duckduckgo.com/"); assertUserAgentForURLHasEmptyQuirk("http://accounts.google.com/"); assertUserAgentForURLHasEmptyQuirk("http://docs.google.com/"); diff -Nru webkit2gtk-2.46.0/debian/changelog webkit2gtk-2.46.3/debian/changelog --- webkit2gtk-2.46.0/debian/changelog 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/changelog 2024-11-07 12:52:25.000000000 +0000 @@ -1,4 +1,4 @@ -webkit2gtk (2.46.0-2~deb12u1) bookworm-security; urgency=medium +webkit2gtk (2.46.3-1~deb12u1) bookworm-security; urgency=medium * Rebuild for bookworm-security. * Disable sysprof profiling integration to avoid new dependencies: @@ -15,7 +15,57 @@ * debian/control.in: - Build depend on ccache. - -- Alberto Garcia Mon, 14 Oct 2024 10:21:51 +0200 + -- Alberto Garcia Thu, 07 Nov 2024 13:52:25 +0100 + +webkit2gtk (2.46.3-1) unstable; urgency=medium + + * New upstream release. + + -- Alberto Garcia Wed, 30 Oct 2024 14:39:03 +0100 + +webkit2gtk (2.46.2-1) unstable; urgency=medium + + * New upstream release. + * Drop socket-monitor-crash.patch (included in this release). + * debian/control-common.in: + - The libwebkit*-dev packages are no longer Multi-Arch: same. + The s390x versions of the WebKit*.gir files are different due to a + change in a default value (WebKit bug #279220). + * debian/copyright: + - Update copyright information of all files. + * debian/rules: + - Stop disabling jpeg-xl in Ubuntu (Jeremy BĂ­cha). + - Remove the USE_PREBUILT_DOCS variable, we can always build the + documentation now. + - Fix build with -Nlibwebkitgtk-doc. + - Disable Skia on loong64 (Closes: #1082740). + + -- Alberto Garcia Wed, 23 Oct 2024 11:57:14 +0200 + +webkit2gtk (2.46.1-2) unstable; urgency=medium + + * Make the package Linux-only. + - debian/control*.in: Set Architecture: linux-any. + - debian/rules: Remove non-Linux quirks. + * debian/patches/socket-monitor-crash.patch: + - Fix crash due to a regression in 2.46.1 (WebKit bug #281495). + * debian/control.in: + - Require cmake 3.20. + + -- Alberto Garcia Thu, 17 Oct 2024 16:52:26 +0200 + +webkit2gtk (2.46.1-1) unstable; urgency=medium + + * New upstream release. + * debian/rules: + - Remove compiler overrides for sh4 (Closes: #1082305) + (thanks, John Paul Adrian Glaubitz). + - Build with -DENALE_WEBGL=OFF in the Hurd. + * Drop debian/patches/fix-epiphany-ftbfs.patch. + * debian/copyright: + - Update copyright information of all files. + + -- Alberto Garcia Mon, 30 Sep 2024 13:51:18 +0200 webkit2gtk (2.46.0-2) unstable; urgency=medium diff -Nru webkit2gtk-2.46.0/debian/control webkit2gtk-2.46.3/debian/control --- webkit2gtk-2.46.0/debian/control 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/control 2024-11-07 12:52:25.000000000 +0000 @@ -12,24 +12,24 @@ bubblewrap [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa ppc64 x32], xdg-dbus-proxy [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa ppc64 x32], libseccomp-dev [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa ppc64 x32], - cmake (>= 3.16), + cmake (>= 3.20), libglib2.0-dev, libharfbuzz-dev, libcairo2-dev, - libdrm-dev [linux-any], + libdrm-dev, libfontconfig-dev, libfreetype-dev, libicu-dev, libgcrypt20-dev, libhyphen-dev, liblcms2-dev, - libmanette-0.2-dev (>= 0.2.4) [linux-any], + libmanette-0.2-dev (>= 0.2.4), libxslt1-dev, libxml2-dev, libsoup2.4-dev,libsoup-3.0-dev,libgtk-3-dev,libgtk-4-dev, libsqlite3-dev, - libsystemd-dev [linux-any], - libgudev-1.0-dev [linux-any], + libsystemd-dev, + libgudev-1.0-dev, libwoff-dev, gperf, bison, @@ -63,7 +63,7 @@ Package: libjavascriptcoregtk-4.0-bin Section: interpreters -Architecture: any +Architecture: linux-any Pre-Depends: ${misc:Pre-Depends} Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}), ${shlibs:Depends}, @@ -102,7 +102,7 @@ This package contains the documentation. Package: webkit2gtk-driver -Architecture: any +Architecture: linux-any Pre-Depends: ${misc:Pre-Depends} Depends: libwebkit2gtk-4.1-0 (= ${binary:Version}), ${shlibs:Depends}, @@ -125,7 +125,7 @@ Package: libjavascriptcoregtk-4.0-18 Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, @@ -142,7 +142,7 @@ Package: libjavascriptcoregtk-4.0-dev Section: libdevel -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}), gir1.2-javascriptcoregtk-4.0 (= ${binary:Version}), @@ -162,7 +162,7 @@ Package: gir1.2-javascriptcoregtk-4.0 Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}), ${gir:Depends}, @@ -181,7 +181,7 @@ Package: libwebkit2gtk-4.0-37 Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}), @@ -214,8 +214,7 @@ Package: libwebkit2gtk-4.0-dev Section: libdevel -Architecture: any -Multi-Arch: same +Architecture: linux-any Depends: libwebkit2gtk-4.0-37 (= ${binary:Version}), gir1.2-webkit2-4.0 (= ${binary:Version}), libgtk-3-dev, @@ -240,7 +239,7 @@ Package: gir1.2-webkit2-4.0 Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libwebkit2gtk-4.0-37 (= ${binary:Version}), ${gir:Depends}, @@ -263,7 +262,7 @@ Package: libjavascriptcoregtk-4.1-0 Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, @@ -280,7 +279,7 @@ Package: libjavascriptcoregtk-4.1-dev Section: libdevel -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libjavascriptcoregtk-4.1-0 (= ${binary:Version}), gir1.2-javascriptcoregtk-4.1 (= ${binary:Version}), @@ -300,7 +299,7 @@ Package: gir1.2-javascriptcoregtk-4.1 Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libjavascriptcoregtk-4.1-0 (= ${binary:Version}), ${gir:Depends}, @@ -319,7 +318,7 @@ Package: libwebkit2gtk-4.1-0 Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: libjavascriptcoregtk-4.1-0 (= ${binary:Version}), @@ -352,8 +351,7 @@ Package: libwebkit2gtk-4.1-dev Section: libdevel -Architecture: any -Multi-Arch: same +Architecture: linux-any Depends: libwebkit2gtk-4.1-0 (= ${binary:Version}), gir1.2-webkit2-4.1 (= ${binary:Version}), libgtk-3-dev, @@ -378,7 +376,7 @@ Package: gir1.2-webkit2-4.1 Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libwebkit2gtk-4.1-0 (= ${binary:Version}), ${gir:Depends}, @@ -401,7 +399,7 @@ Package: libjavascriptcoregtk-6.0-1 Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, @@ -418,7 +416,7 @@ Package: libjavascriptcoregtk-6.0-dev Section: libdevel -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libjavascriptcoregtk-6.0-1 (= ${binary:Version}), gir1.2-javascriptcoregtk-6.0 (= ${binary:Version}), @@ -438,7 +436,7 @@ Package: gir1.2-javascriptcoregtk-6.0 Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libjavascriptcoregtk-6.0-1 (= ${binary:Version}), ${gir:Depends}, @@ -457,7 +455,7 @@ Package: libwebkitgtk-6.0-4 Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: libjavascriptcoregtk-6.0-1 (= ${binary:Version}), @@ -490,8 +488,7 @@ Package: libwebkitgtk-6.0-dev Section: libdevel -Architecture: any -Multi-Arch: same +Architecture: linux-any Depends: libwebkitgtk-6.0-4 (= ${binary:Version}), gir1.2-webkit-6.0 (= ${binary:Version}), libgtk-4-dev, @@ -516,7 +513,7 @@ Package: gir1.2-webkit-6.0 Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: libwebkitgtk-6.0-4 (= ${binary:Version}), ${gir:Depends}, diff -Nru webkit2gtk-2.46.0/debian/control-common.in webkit2gtk-2.46.3/debian/control-common.in --- webkit2gtk-2.46.0/debian/control-common.in 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/control-common.in 2024-11-07 12:52:25.000000000 +0000 @@ -1,6 +1,6 @@ Package: @LIBJSC_PKG@ Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, @@ -17,7 +17,7 @@ Package: libjavascriptcoregtk-@WK_API_VERSION@-dev Section: libdevel -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: @LIBJSC_PKG@ (= ${binary:Version}), gir1.2-javascriptcoregtk-@WK_API_VERSION@ (= ${binary:Version}), @@ -37,7 +37,7 @@ Package: gir1.2-javascriptcoregtk-@WK_API_VERSION@ Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: @LIBJSC_PKG@ (= ${binary:Version}), ${gir:Depends}, @@ -56,7 +56,7 @@ Package: @LIBWEBKITGTK_PKG@ Section: libs -Architecture: any +Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: @LIBJSC_PKG@ (= ${binary:Version}), @@ -89,8 +89,7 @@ Package: lib@WEBKIT@gtk-@WK_API_VERSION@-dev Section: libdevel -Architecture: any -Multi-Arch: same +Architecture: linux-any Depends: @LIBWEBKITGTK_PKG@ (= ${binary:Version}), gir1.2-@WEBKIT@-@WK_API_VERSION@ (= ${binary:Version}), libgtk-@GTK_VERSION@-dev, @@ -115,7 +114,7 @@ Package: gir1.2-@WEBKIT@-@WK_API_VERSION@ Section: introspection -Architecture: any +Architecture: linux-any Multi-Arch: same Depends: @LIBWEBKITGTK_PKG@ (= ${binary:Version}), ${gir:Depends}, diff -Nru webkit2gtk-2.46.0/debian/control.in webkit2gtk-2.46.3/debian/control.in --- webkit2gtk-2.46.0/debian/control.in 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/control.in 2024-11-07 12:52:25.000000000 +0000 @@ -11,24 +11,24 @@ bubblewrap [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa ppc64 x32], xdg-dbus-proxy [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa ppc64 x32], libseccomp-dev [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x hppa ppc64 x32], - cmake (>= 3.16), + cmake (>= 3.20), libglib2.0-dev, libharfbuzz-dev, libcairo2-dev, - libdrm-dev [linux-any], + libdrm-dev, libfontconfig-dev, libfreetype-dev, libicu-dev, libgcrypt20-dev, libhyphen-dev, liblcms2-dev, - libmanette-0.2-dev (>= 0.2.4) [linux-any], + libmanette-0.2-dev (>= 0.2.4), libxslt1-dev, libxml2-dev, @EXTRA_BUILD_DEPS@ libsqlite3-dev, - libsystemd-dev [linux-any], - libgudev-1.0-dev [linux-any], + libsystemd-dev, + libgudev-1.0-dev, libwoff-dev, gperf, bison, @@ -62,7 +62,7 @@ Package: @LIBJSCBIN_PKG@ Section: interpreters -Architecture: any +Architecture: linux-any Pre-Depends: ${misc:Pre-Depends} Depends: @LIBJSCBIN_DEP_PKG@ (= ${binary:Version}), ${shlibs:Depends}, @@ -101,7 +101,7 @@ This package contains the documentation. Package: @WEBDRIVER_PKG@ -Architecture: any +Architecture: linux-any Pre-Depends: ${misc:Pre-Depends} Depends: @WEBDRIVER_DEP_PKG@ (= ${binary:Version}), ${shlibs:Depends}, diff -Nru webkit2gtk-2.46.0/debian/copyright webkit2gtk-2.46.3/debian/copyright --- webkit2gtk-2.46.0/debian/copyright 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/copyright 2024-11-07 12:52:25.000000000 +0000 @@ -199,7 +199,8 @@ Source/WTF/wtf/EnumTraits.h Source/WTF/wtf/Float16.h Source/WTF/wtf/RobinHoodHashTable.h -Copyright: 2015-2024 Apple Inc +Copyright: 2011 the V8 project authors + 2015-2024 Apple Inc License: BSD-2-clause or Expat Files: Source/JavaScriptCore/runtime/JSDateMath.cpp @@ -1453,6 +1454,7 @@ Source/ThirdParty/ANGLE/src/third_party/volk/* Source/ThirdParty/ANGLE/third_party/renderdoc/src/renderdoc_app.h Source/WTF/wtf/simde/arm/* + Source/WTF/wtf/simde/wasm/simd128.h Source/WebCore/xml/XSLTExtensions.cpp Copyright: 2001-2002 Thomas Broyer, Charlie Bozeman and Daniel Veillard 2007 Alexey Proskuryakov @@ -2590,6 +2592,8 @@ Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.cpp Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h + Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.cpp + Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcomBase.h Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.cpp Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.cpp diff -Nru webkit2gtk-2.46.0/debian/patches/dont-detect-sse2.patch webkit2gtk-2.46.3/debian/patches/dont-detect-sse2.patch --- webkit2gtk-2.46.0/debian/patches/dont-detect-sse2.patch 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/patches/dont-detect-sse2.patch 2024-11-07 12:52:25.000000000 +0000 @@ -6,7 +6,7 @@ =================================================================== --- webkitgtk.orig/Source/cmake/WebKitCompilerFlags.cmake +++ webkitgtk/Source/cmake/WebKitCompilerFlags.cmake -@@ -216,15 +216,6 @@ if (COMPILER_IS_GCC_OR_CLANG) +@@ -219,15 +219,6 @@ if (COMPILER_IS_GCC_OR_CLANG) WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-fmax-errors=20) endif () diff -Nru webkit2gtk-2.46.0/debian/patches/fix-epiphany-ftbfs.patch webkit2gtk-2.46.3/debian/patches/fix-epiphany-ftbfs.patch --- webkit2gtk-2.46.0/debian/patches/fix-epiphany-ftbfs.patch 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/patches/fix-epiphany-ftbfs.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -From: Michael Catanzaro -Subject: Disable webkit_settings_set_enable_2d_canvas_acceleration on non-Skia builds -Bug: https://bugs.webkit.org/show_bug.cgi?id=279220 -Bug-Debian: https://bugs.debian.org/1082149 -Origin: https://commits.webkit.org/283863@main -Index: webkitgtk/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -=================================================================== ---- webkitgtk.orig/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -+++ webkitgtk/Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml -@@ -1634,6 +1634,7 @@ CanvasUsesAcceleratedDrawing: - type: bool - status: embedder - humanReadableName: "Canvas uses accelerated drawing" -+ condition: USE(CA) || USE(SKIA) - defaultValue: - WebKitLegacy: - "PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)": true -Index: webkitgtk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp -=================================================================== ---- webkitgtk.orig/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp -+++ webkitgtk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp -@@ -1307,7 +1307,7 @@ static void webkit_settings_class_init(W - "enable-accelerated-2d-canvas", - _("Enable accelerated 2D canvas"), - _("Whether to enable accelerated 2D canvas"), -- FEATURE_DEFAULT(CanvasUsesAcceleratedDrawing), -+ FALSE, - static_cast(readWriteConstructParamFlags | G_PARAM_DEPRECATED)); - #endif - -@@ -1326,7 +1326,11 @@ static void webkit_settings_class_init(W - "enable-2d-canvas-acceleration", - _("Enable 2D canvas acceleration"), - _("Whether to enable 2D canvas acceleration"), -+#if USE(SKIA) - FEATURE_DEFAULT(CanvasUsesAcceleratedDrawing), -+#else -+ FALSE, -+#endif - readWriteConstructParamFlags); - - /** diff -Nru webkit2gtk-2.46.0/debian/patches/series webkit2gtk-2.46.3/debian/patches/series --- webkit2gtk-2.46.0/debian/patches/series 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/patches/series 2024-11-07 12:52:25.000000000 +0000 @@ -3,6 +3,5 @@ fix-ftbfs-x32.patch dont-detect-sse2.patch fix-ftbfs-hurd.patch -fix-epiphany-ftbfs.patch disable-nvidia-dmabuf.patch fix-bmalloc-armhf.patch diff -Nru webkit2gtk-2.46.0/debian/rules webkit2gtk-2.46.3/debian/rules --- webkit2gtk-2.46.0/debian/rules 2024-10-14 08:21:51.000000000 +0000 +++ webkit2gtk-2.46.3/debian/rules 2024-11-07 12:52:25.000000000 +0000 @@ -14,9 +14,6 @@ ENABLE_SOUP2=YES ENABLE_SOUP3=YES ENABLE_GTK4=YES -# Set to YES to use the docs from the tarball instead of generating them. -# Use only if gi-docgen is not available. -USE_PREBUILT_DOCS=NO # Set to YES to build libwebkit2gtk-4.0-doc instead of libwebkitgtk-doc USE_OLD_DOC_PKG=YES @@ -65,14 +62,9 @@ EXTRA_CMAKE_ARGUMENTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON endif -# These are not available in the Hurd (#1033999) -ifneq (,$(filter $(DEB_HOST_ARCH),hurd-i386)) - EXTRA_CMAKE_ARGUMENTS += -DUSE_GBM=OFF -DUSE_LIBDRM=OFF -endif - -# Systemd/elogind and libmanette are Linux-only -ifneq ($(DEB_HOST_ARCH_OS),linux) - EXTRA_CMAKE_ARGUMENTS += -DENABLE_JOURNALD_LOG=OFF -DENABLE_GAMEPAD=OFF +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1082740 +ifneq (,$(filter $(DEB_HOST_ARCH),loong64)) + EXTRA_CMAKE_ARGUMENTS += -DUSE_SKIA=OFF endif # See https://bugs.webkit.org/show_bug.cgi?id=197192 @@ -80,16 +72,6 @@ EXTRA_CMAKE_ARGUMENTS += -DWTF_CPU_ARM64_CORTEXA53=OFF endif -# See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93876 -# and: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93877 -ifneq (,$(filter $(DEB_HOST_ARCH),sh3 sh4)) - CFLAGS := $(CFLAGS:-g1=-g0) - CFLAGS := $(CFLAGS:-O2=-O1) - CXXFLAGS := $(CXXFLAGS:-g1=-g0) - CXXFLAGS := $(CXXFLAGS:-O2=-O1) - CPPFLAGS += --param ggc-min-expand=10 -endif - ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) EXTRA_CMAKE_ARGUMENTS += -DUSE_SYSTEM_MALLOC=ON CPPFLAGS += -DRELEASE_WITHOUT_OPTIMIZATIONS @@ -97,12 +79,8 @@ ifeq (,$(filter %-doc,$(shell dh_listpackages))) EXTRA_CMAKE_ARGUMENTS += -DENABLE_DOCUMENTATION=OFF - USE_PREBUILT_DOCS=NO else ifneq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) EXTRA_CMAKE_ARGUMENTS += -DENABLE_DOCUMENTATION=OFF - USE_PREBUILT_DOCS=NO -else ifeq ($(USE_PREBUILT_DOCS),YES) - EXTRA_CMAKE_ARGUMENTS += -DENABLE_DOCUMENTATION=OFF else EXTRA_CMAKE_ARGUMENTS += -DENABLE_DOCUMENTATION=ON endif @@ -137,11 +115,6 @@ EXTRA_CMAKE_ARGUMENTS += -DUSE_AVIF=OFF -DUSE_GSTREAMER_TRANSCODER=OFF endif -# jpegxl is not in Ubuntu main -ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes) - EXTRA_CMAKE_ARGUMENTS += -DUSE_JPEGXL=OFF -endif - # gstreamer1.0-libav and gstreamer1.0-plugins-bad are not in Ubuntu "main" ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes) DH_GENCONTROL_ARGS += -Vgst:Suggests="gstreamer1.0-libav, gstreamer1.0-plugins-bad" @@ -200,9 +173,7 @@ endif ifneq ($(ENABLE_GTK4),YES) GTK4_BUILD = @: -ifeq ($(USE_PREBUILT_DOCS),NO) EXTRA_DH_ARGUMENTS += -N$(LIBWEBKITGTKDOC_PKG) -endif else SOUP3_BUILD_DEP=libsoup-3.0-dev, GTK4_BUILD_DEP=libgtk-4-dev, @@ -282,9 +253,6 @@ -e 's/@WEBDRIVER_PKG@/$(WEBDRIVER_PKG)/' \ -e 's/@WEBDRIVER_DEP_PKG@/$(WEBDRIVER_DEP_PKG)/' \ >> debian/control -ifeq ($(USE_PREBUILT_DOCS),YES) - sed -i -e 's/^\(Build-Depends-Indep:\).*/\1 jdupes/' debian/control -endif ifeq ($(USE_OLD_DOC_PKG),NO) cat debian/control-doc.in >> debian/control endif @@ -383,20 +351,14 @@ find Source Tools -depth -type d -name __pycache__ -exec rmdir {} \; rm -rf ccache -# If USE_PREBUILT_DOCS=YES then install them. -# Otherwise create a dummy doc directory in case the "nodoc" build option is set. +# Create a dummy doc directory in case the "nodoc" build option is set. override_dh_install-indep: -ifeq ($(USE_PREBUILT_DOCS),YES) - mkdir -p debian/tmp/usr/share/doc - cp -r Documentation/webkitgtk-6.0 debian/tmp/usr/share/doc/ - cp -r Documentation/jsc-glib-6.0 debian/tmp/usr/share/doc/javascriptcoregtk-6.0 - cp -r Documentation/webkitgtk-web-process-extension-6.0 debian/tmp/usr/share/doc/ -else mkdir -p debian/tmp/usr/share/doc/webkitgtk-6.0 touch debian/tmp/usr/share/doc/webkitgtk-6.0/index.html -endif dh_install -i +ifneq (,$(filter $(LIBWEBKITGTKDOC_PKG),$(shell dh_listpackages))) jdupes -rl debian/$(LIBWEBKITGTKDOC_PKG)/usr +endif override_dh_makeshlibs: $(SOUP2_BUILD) dh_makeshlibs -plibwebkit2gtk-4.0-37 -Xinjected-bundle
Version2.46.0
Version2.46.3
AuthorsThe WebKit GTK and WPE teams
LicenseBSD, LGPL-2.1
Websitehttps://webkit.org
Browse documentationBrowse documentation