grpc 1.28.0 → 1.30.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (497) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +7694 -11190
  3. data/include/grpc/grpc.h +2 -2
  4. data/include/grpc/grpc_security.h +22 -9
  5. data/include/grpc/grpc_security_constants.h +1 -0
  6. data/include/grpc/impl/codegen/grpc_types.h +19 -21
  7. data/include/grpc/impl/codegen/port_platform.h +6 -2
  8. data/include/grpc/module.modulemap +24 -39
  9. data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
  10. data/src/core/ext/filters/client_channel/client_channel.cc +203 -236
  11. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
  12. data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
  13. data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
  14. data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
  15. data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
  16. data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
  17. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
  18. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
  19. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
  21. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
  22. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
  23. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
  25. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
  26. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
  28. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
  29. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
  30. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
  34. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
  35. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
  36. data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
  37. data/src/core/ext/filters/client_channel/resolver.cc +5 -8
  38. data/src/core/ext/filters/client_channel/resolver.h +12 -14
  39. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
  40. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
  41. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
  48. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
  49. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
  50. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
  51. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
  52. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
  53. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
  54. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
  55. data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
  56. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
  57. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
  58. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
  59. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
  60. data/src/core/ext/filters/client_channel/server_address.cc +6 -9
  61. data/src/core/ext/filters/client_channel/server_address.h +6 -12
  62. data/src/core/ext/filters/client_channel/service_config.cc +104 -144
  63. data/src/core/ext/filters/client_channel/service_config.h +28 -98
  64. data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
  65. data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
  66. data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
  67. data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
  68. data/src/core/ext/filters/client_channel/subchannel.h +35 -11
  69. data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
  70. data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
  71. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
  72. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
  73. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
  74. data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
  75. data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
  76. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
  77. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
  78. data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
  79. data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
  80. data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
  83. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
  84. data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
  86. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
  87. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
  88. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
  89. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  90. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  91. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
  92. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
  93. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
  94. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
  95. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
  96. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
  97. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
  98. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  99. data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
  100. data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
  101. data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
  102. data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
  103. data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
  104. data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
  105. data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
  106. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
  107. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
  108. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
  109. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
  110. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
  111. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
  112. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
  113. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
  114. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
  115. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
  116. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
  117. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
  118. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
  119. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
  120. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
  121. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
  122. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
  123. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
  124. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
  125. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
  126. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
  127. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
  128. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
  129. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
  130. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
  131. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
  132. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
  133. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
  134. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
  135. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
  136. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
  137. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
  138. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
  139. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
  140. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
  141. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
  142. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
  143. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
  144. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
  145. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
  146. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
  147. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
  148. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
  149. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
  150. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
  151. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
  152. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
  153. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
  154. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
  155. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
  156. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
  157. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
  158. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
  159. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
  160. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
  161. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
  162. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
  163. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
  164. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
  165. data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
  166. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
  167. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
  168. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
  169. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
  170. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
  171. data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
  172. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
  173. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
  174. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
  175. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
  176. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  177. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
  178. data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
  179. data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
  180. data/src/core/lib/channel/channel_args.cc +15 -14
  181. data/src/core/lib/channel/channel_args.h +3 -1
  182. data/src/core/lib/channel/channel_stack.h +20 -13
  183. data/src/core/lib/channel/channelz.cc +5 -6
  184. data/src/core/lib/channel/channelz.h +3 -2
  185. data/src/core/lib/channel/channelz_registry.cc +5 -3
  186. data/src/core/lib/channel/connected_channel.cc +7 -5
  187. data/src/core/lib/channel/context.h +1 -1
  188. data/src/core/lib/channel/handshaker.cc +11 -13
  189. data/src/core/lib/channel/handshaker.h +4 -2
  190. data/src/core/lib/channel/handshaker_registry.cc +5 -17
  191. data/src/core/lib/channel/status_util.cc +2 -3
  192. data/src/core/lib/compression/message_compress.cc +5 -1
  193. data/src/core/lib/debug/stats.cc +21 -27
  194. data/src/core/lib/debug/stats.h +3 -1
  195. data/src/core/lib/gpr/spinlock.h +2 -3
  196. data/src/core/lib/gpr/string.cc +2 -26
  197. data/src/core/lib/gpr/string.h +0 -16
  198. data/src/core/lib/gpr/sync_abseil.cc +2 -0
  199. data/src/core/lib/gpr/time.cc +4 -0
  200. data/src/core/lib/gpr/time_posix.cc +1 -1
  201. data/src/core/lib/gprpp/atomic.h +6 -6
  202. data/src/core/lib/gprpp/fork.cc +1 -1
  203. data/src/core/lib/gprpp/host_port.cc +29 -35
  204. data/src/core/lib/gprpp/host_port.h +14 -17
  205. data/src/core/lib/gprpp/map.h +5 -11
  206. data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
  207. data/src/core/lib/http/format_request.cc +46 -65
  208. data/src/core/lib/http/httpcli.cc +2 -3
  209. data/src/core/lib/http/httpcli.h +2 -3
  210. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  211. data/src/core/lib/http/parser.h +2 -3
  212. data/src/core/lib/iomgr/buffer_list.h +22 -21
  213. data/src/core/lib/iomgr/call_combiner.h +3 -2
  214. data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
  215. data/src/core/lib/iomgr/closure.h +2 -3
  216. data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
  217. data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
  218. data/src/core/lib/iomgr/endpoint_pair.h +2 -3
  219. data/src/core/lib/iomgr/error.cc +6 -9
  220. data/src/core/lib/iomgr/error.h +0 -1
  221. data/src/core/lib/iomgr/ev_apple.cc +356 -0
  222. data/src/core/lib/iomgr/ev_apple.h +43 -0
  223. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
  224. data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
  225. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
  226. data/src/core/lib/iomgr/ev_posix.cc +2 -3
  227. data/src/core/lib/iomgr/exec_ctx.h +14 -2
  228. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
  229. data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
  230. data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
  231. data/src/core/lib/iomgr/port.h +1 -0
  232. data/src/core/lib/iomgr/python_util.h +46 -0
  233. data/src/core/lib/iomgr/resolve_address.h +4 -6
  234. data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
  235. data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
  236. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
  237. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
  238. data/src/core/lib/iomgr/resource_quota.cc +4 -6
  239. data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
  240. data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
  241. data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
  242. data/src/core/lib/iomgr/socket_mutator.h +2 -3
  243. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
  244. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  245. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
  246. data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
  247. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  248. data/src/core/lib/iomgr/tcp_custom.cc +2 -3
  249. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
  250. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
  251. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
  252. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
  253. data/src/core/lib/iomgr/tcp_uv.cc +3 -2
  254. data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
  255. data/src/core/lib/iomgr/timer_generic.cc +2 -3
  256. data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
  257. data/src/core/lib/iomgr/timer_heap.h +2 -3
  258. data/src/core/lib/iomgr/udp_server.cc +9 -14
  259. data/src/core/lib/json/json.h +3 -2
  260. data/src/core/lib/json/json_reader.cc +5 -5
  261. data/src/core/lib/json/json_writer.cc +13 -12
  262. data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
  263. data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
  264. data/src/core/lib/security/credentials/credentials.cc +0 -84
  265. data/src/core/lib/security/credentials/credentials.h +8 -59
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  271. data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
  274. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
  276. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
  278. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  279. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
  280. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
  281. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
  282. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
  283. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
  284. data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
  285. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  286. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
  287. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
  288. data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
  289. data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
  290. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
  291. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
  292. data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
  293. data/src/core/lib/slice/slice_intern.cc +2 -3
  294. data/src/core/lib/slice/slice_internal.h +14 -0
  295. data/src/core/lib/slice/slice_utils.h +9 -0
  296. data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
  297. data/src/core/lib/surface/call.cc +2 -3
  298. data/src/core/lib/surface/call_log_batch.cc +50 -58
  299. data/src/core/lib/surface/channel.cc +53 -31
  300. data/src/core/lib/surface/channel.h +35 -4
  301. data/src/core/lib/surface/channel_ping.cc +2 -3
  302. data/src/core/lib/surface/completion_queue.cc +33 -33
  303. data/src/core/lib/surface/event_string.cc +18 -25
  304. data/src/core/lib/surface/event_string.h +3 -1
  305. data/src/core/lib/surface/init_secure.cc +1 -4
  306. data/src/core/lib/surface/server.cc +570 -369
  307. data/src/core/lib/surface/server.h +32 -0
  308. data/src/core/lib/surface/version.cc +2 -2
  309. data/src/core/lib/transport/byte_stream.h +7 -2
  310. data/src/core/lib/transport/connectivity_state.cc +7 -6
  311. data/src/core/lib/transport/connectivity_state.h +5 -3
  312. data/src/core/lib/transport/metadata.cc +3 -3
  313. data/src/core/lib/transport/metadata_batch.h +2 -3
  314. data/src/core/lib/transport/static_metadata.h +1 -1
  315. data/src/core/lib/transport/status_conversion.cc +6 -14
  316. data/src/core/lib/transport/transport.cc +2 -3
  317. data/src/core/lib/transport/transport.h +3 -2
  318. data/src/core/lib/transport/transport_op_string.cc +61 -102
  319. data/src/core/lib/uri/uri_parser.h +2 -3
  320. data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
  321. data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
  322. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
  323. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
  324. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
  325. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
  326. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
  327. data/src/core/tsi/fake_transport_security.cc +10 -15
  328. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
  329. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
  330. data/src/core/tsi/ssl_transport_security.cc +52 -39
  331. data/src/core/tsi/ssl_transport_security.h +8 -8
  332. data/src/core/tsi/ssl_types.h +0 -2
  333. data/src/core/tsi/transport_security.h +6 -9
  334. data/src/core/tsi/transport_security_grpc.h +2 -3
  335. data/src/core/tsi/transport_security_interface.h +3 -3
  336. data/src/ruby/ext/grpc/rb_call.c +9 -1
  337. data/src/ruby/lib/grpc/errors.rb +103 -42
  338. data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
  339. data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
  340. data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
  341. data/src/ruby/lib/grpc/generic/service.rb +5 -4
  342. data/src/ruby/lib/grpc/structs.rb +1 -1
  343. data/src/ruby/lib/grpc/version.rb +1 -1
  344. data/src/ruby/pb/generate_proto_ruby.sh +5 -3
  345. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
  346. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
  347. data/src/ruby/spec/debug_message_spec.rb +134 -0
  348. data/src/ruby/spec/generic/service_spec.rb +2 -0
  349. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +5 -0
  350. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
  351. data/src/ruby/spec/testdata/ca.pem +18 -13
  352. data/src/ruby/spec/testdata/client.key +26 -14
  353. data/src/ruby/spec/testdata/client.pem +18 -12
  354. data/src/ruby/spec/testdata/server1.key +26 -14
  355. data/src/ruby/spec/testdata/server1.pem +20 -14
  356. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  357. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  358. data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
  359. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  360. data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
  361. data/third_party/abseil-cpp/absl/time/format.cc +153 -0
  362. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  363. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
  364. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
  365. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  366. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  367. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  368. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  369. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
  370. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  371. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  372. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
  373. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  374. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
  375. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
  376. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
  377. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  378. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  379. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  380. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  381. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  382. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
  383. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  384. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  385. data/third_party/abseil-cpp/absl/time/time.cc +499 -0
  386. data/third_party/abseil-cpp/absl/time/time.h +1584 -0
  387. data/third_party/boringssl-with-bazel/err_data.c +329 -297
  388. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
  389. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
  390. data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
  391. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
  392. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
  393. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
  394. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
  395. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
  396. data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
  397. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
  398. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
  399. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
  400. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
  401. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
  402. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
  407. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
  437. data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
  438. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
  439. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
  440. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
  442. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
  443. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
  444. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
  445. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
  446. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
  447. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
  448. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
  449. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
  451. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
  452. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
  453. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
  454. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
  455. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
  456. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
  457. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
  458. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
  459. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
  460. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
  461. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  462. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
  463. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
  464. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
  465. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
  466. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
  467. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
  468. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
  469. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
  470. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
  471. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
  472. data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
  473. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
  474. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  475. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
  476. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
  477. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
  478. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
  479. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
  480. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
  481. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
  482. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
  483. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
  484. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
  485. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
  486. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
  487. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
  488. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
  489. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
  490. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
  491. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
  492. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
  493. metadata +111 -37
  494. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
  495. data/src/core/lib/gprpp/string_view.h +0 -60
  496. data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
  497. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -1,19 +1,30 @@
1
- /* Autogenerated */
1
+ /* Autogenerated: src/ExtractionOCaml/unsaturated_solinas --static 25519 5 '2^255 - 19' 64 carry_mul carry_square carry add sub opp selectznz to_bytes from_bytes carry_scmul121666 */
2
2
  /* curve description: 25519 */
3
- /* requested operations: carry_mul, carry_square, carry_scmul121666, carry, add, sub, opp, selectznz, to_bytes, from_bytes */
3
+ /* requested operations: carry_mul, carry_square, carry, add, sub, opp, selectznz, to_bytes, from_bytes, carry_scmul121666 */
4
4
  /* n = 5 (from "5") */
5
- /* s = 0x8000000000000000000000000000000000000000000000000000000000000000 (from "2^255") */
6
- /* c = [(1, 19)] (from "1,19") */
5
+ /* s-c = 2^255 - [(1, 19)] (from "2^255 - 19") */
7
6
  /* machine_wordsize = 64 (from "64") */
8
7
 
8
+ /* Computed values: */
9
+ /* carry_chain = [0, 1, 2, 3, 4, 0, 1] */
10
+
9
11
  #include <stdint.h>
10
12
  typedef unsigned char fiat_25519_uint1;
11
13
  typedef signed char fiat_25519_int1;
12
14
  typedef signed __int128 fiat_25519_int128;
13
15
  typedef unsigned __int128 fiat_25519_uint128;
14
16
 
17
+ #if (-1 & 3) != 3
18
+ #error "This code only works on a two's complement system"
19
+ #endif
20
+
15
21
 
16
22
  /*
23
+ * The function fiat_25519_addcarryx_u51 is an addition with carry.
24
+ * Postconditions:
25
+ * out1 = (arg1 + arg2 + arg3) mod 2^51
26
+ * out2 = ⌊(arg1 + arg2 + arg3) / 2^51⌋
27
+ *
17
28
  * Input Bounds:
18
29
  * arg1: [0x0 ~> 0x1]
19
30
  * arg2: [0x0 ~> 0x7ffffffffffff]
@@ -31,6 +42,11 @@ static void fiat_25519_addcarryx_u51(uint64_t* out1, fiat_25519_uint1* out2, fia
31
42
  }
32
43
 
33
44
  /*
45
+ * The function fiat_25519_subborrowx_u51 is a subtraction with borrow.
46
+ * Postconditions:
47
+ * out1 = (-arg1 + arg2 + -arg3) mod 2^51
48
+ * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^51⌋
49
+ *
34
50
  * Input Bounds:
35
51
  * arg1: [0x0 ~> 0x1]
36
52
  * arg2: [0x0 ~> 0x7ffffffffffff]
@@ -48,6 +64,10 @@ static void fiat_25519_subborrowx_u51(uint64_t* out1, fiat_25519_uint1* out2, fi
48
64
  }
49
65
 
50
66
  /*
67
+ * The function fiat_25519_cmovznz_u64 is a single-word conditional move.
68
+ * Postconditions:
69
+ * out1 = (if arg1 = 0 then arg2 else arg3)
70
+ *
51
71
  * Input Bounds:
52
72
  * arg1: [0x0 ~> 0x1]
53
73
  * arg2: [0x0 ~> 0xffffffffffffffff]
@@ -69,6 +89,10 @@ static void fiat_25519_cmovznz_u64(uint64_t* out1, fiat_25519_uint1 arg1, uint64
69
89
  }
70
90
 
71
91
  /*
92
+ * The function fiat_25519_carry_mul multiplies two field elements and reduces the result.
93
+ * Postconditions:
94
+ * eval out1 mod m = (eval arg1 * eval arg2) mod m
95
+ *
72
96
  * Input Bounds:
73
97
  * arg1: [[0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]]
74
98
  * arg2: [[0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]]
@@ -76,16 +100,16 @@ static void fiat_25519_cmovznz_u64(uint64_t* out1, fiat_25519_uint1 arg1, uint64
76
100
  * out1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
77
101
  */
78
102
  static void fiat_25519_carry_mul(uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) {
79
- fiat_25519_uint128 x1 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[4]) * (uint64_t)UINT8_C(0x13)));
80
- fiat_25519_uint128 x2 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[3]) * (uint64_t)UINT8_C(0x13)));
81
- fiat_25519_uint128 x3 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[2]) * (uint64_t)UINT8_C(0x13)));
82
- fiat_25519_uint128 x4 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[1]) * (uint64_t)UINT8_C(0x13)));
83
- fiat_25519_uint128 x5 = ((fiat_25519_uint128)(arg1[3]) * ((arg2[4]) * (uint64_t)UINT8_C(0x13)));
84
- fiat_25519_uint128 x6 = ((fiat_25519_uint128)(arg1[3]) * ((arg2[3]) * (uint64_t)UINT8_C(0x13)));
85
- fiat_25519_uint128 x7 = ((fiat_25519_uint128)(arg1[3]) * ((arg2[2]) * (uint64_t)UINT8_C(0x13)));
86
- fiat_25519_uint128 x8 = ((fiat_25519_uint128)(arg1[2]) * ((arg2[4]) * (uint64_t)UINT8_C(0x13)));
87
- fiat_25519_uint128 x9 = ((fiat_25519_uint128)(arg1[2]) * ((arg2[3]) * (uint64_t)UINT8_C(0x13)));
88
- fiat_25519_uint128 x10 = ((fiat_25519_uint128)(arg1[1]) * ((arg2[4]) * (uint64_t)UINT8_C(0x13)));
103
+ fiat_25519_uint128 x1 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[4]) * UINT8_C(0x13)));
104
+ fiat_25519_uint128 x2 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[3]) * UINT8_C(0x13)));
105
+ fiat_25519_uint128 x3 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[2]) * UINT8_C(0x13)));
106
+ fiat_25519_uint128 x4 = ((fiat_25519_uint128)(arg1[4]) * ((arg2[1]) * UINT8_C(0x13)));
107
+ fiat_25519_uint128 x5 = ((fiat_25519_uint128)(arg1[3]) * ((arg2[4]) * UINT8_C(0x13)));
108
+ fiat_25519_uint128 x6 = ((fiat_25519_uint128)(arg1[3]) * ((arg2[3]) * UINT8_C(0x13)));
109
+ fiat_25519_uint128 x7 = ((fiat_25519_uint128)(arg1[3]) * ((arg2[2]) * UINT8_C(0x13)));
110
+ fiat_25519_uint128 x8 = ((fiat_25519_uint128)(arg1[2]) * ((arg2[4]) * UINT8_C(0x13)));
111
+ fiat_25519_uint128 x9 = ((fiat_25519_uint128)(arg1[2]) * ((arg2[3]) * UINT8_C(0x13)));
112
+ fiat_25519_uint128 x10 = ((fiat_25519_uint128)(arg1[1]) * ((arg2[4]) * UINT8_C(0x13)));
89
113
  fiat_25519_uint128 x11 = ((fiat_25519_uint128)(arg1[4]) * (arg2[0]));
90
114
  fiat_25519_uint128 x12 = ((fiat_25519_uint128)(arg1[3]) * (arg2[1]));
91
115
  fiat_25519_uint128 x13 = ((fiat_25519_uint128)(arg1[3]) * (arg2[0]));
@@ -120,12 +144,12 @@ static void fiat_25519_carry_mul(uint64_t out1[5], const uint64_t arg1[5], const
120
144
  fiat_25519_uint128 x42 = (x40 + x29);
121
145
  uint64_t x43 = (uint64_t)(x42 >> 51);
122
146
  uint64_t x44 = (uint64_t)(x42 & UINT64_C(0x7ffffffffffff));
123
- uint64_t x45 = (x43 * (uint64_t)UINT8_C(0x13));
147
+ uint64_t x45 = (x43 * UINT8_C(0x13));
124
148
  uint64_t x46 = (x28 + x45);
125
149
  uint64_t x47 = (x46 >> 51);
126
150
  uint64_t x48 = (x46 & UINT64_C(0x7ffffffffffff));
127
151
  uint64_t x49 = (x47 + x35);
128
- uint64_t x50 = (x49 >> 51);
152
+ fiat_25519_uint1 x50 = (fiat_25519_uint1)(x49 >> 51);
129
153
  uint64_t x51 = (x49 & UINT64_C(0x7ffffffffffff));
130
154
  uint64_t x52 = (x50 + x38);
131
155
  out1[0] = x48;
@@ -136,20 +160,24 @@ static void fiat_25519_carry_mul(uint64_t out1[5], const uint64_t arg1[5], const
136
160
  }
137
161
 
138
162
  /*
163
+ * The function fiat_25519_carry_square squares a field element and reduces the result.
164
+ * Postconditions:
165
+ * eval out1 mod m = (eval arg1 * eval arg1) mod m
166
+ *
139
167
  * Input Bounds:
140
168
  * arg1: [[0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]]
141
169
  * Output Bounds:
142
170
  * out1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
143
171
  */
144
172
  static void fiat_25519_carry_square(uint64_t out1[5], const uint64_t arg1[5]) {
145
- uint64_t x1 = ((arg1[4]) * (uint64_t)UINT8_C(0x13));
146
- uint64_t x2 = (x1 * (uint64_t)0x2);
147
- uint64_t x3 = ((arg1[4]) * (uint64_t)0x2);
148
- uint64_t x4 = ((arg1[3]) * (uint64_t)UINT8_C(0x13));
149
- uint64_t x5 = (x4 * (uint64_t)0x2);
150
- uint64_t x6 = ((arg1[3]) * (uint64_t)0x2);
151
- uint64_t x7 = ((arg1[2]) * (uint64_t)0x2);
152
- uint64_t x8 = ((arg1[1]) * (uint64_t)0x2);
173
+ uint64_t x1 = ((arg1[4]) * UINT8_C(0x13));
174
+ uint64_t x2 = (x1 * 0x2);
175
+ uint64_t x3 = ((arg1[4]) * 0x2);
176
+ uint64_t x4 = ((arg1[3]) * UINT8_C(0x13));
177
+ uint64_t x5 = (x4 * 0x2);
178
+ uint64_t x6 = ((arg1[3]) * 0x2);
179
+ uint64_t x7 = ((arg1[2]) * 0x2);
180
+ uint64_t x8 = ((arg1[1]) * 0x2);
153
181
  fiat_25519_uint128 x9 = ((fiat_25519_uint128)(arg1[4]) * x1);
154
182
  fiat_25519_uint128 x10 = ((fiat_25519_uint128)(arg1[3]) * x2);
155
183
  fiat_25519_uint128 x11 = ((fiat_25519_uint128)(arg1[3]) * x4);
@@ -184,12 +212,12 @@ static void fiat_25519_carry_square(uint64_t out1[5], const uint64_t arg1[5]) {
184
212
  fiat_25519_uint128 x40 = (x38 + x27);
185
213
  uint64_t x41 = (uint64_t)(x40 >> 51);
186
214
  uint64_t x42 = (uint64_t)(x40 & UINT64_C(0x7ffffffffffff));
187
- uint64_t x43 = (x41 * (uint64_t)UINT8_C(0x13));
215
+ uint64_t x43 = (x41 * UINT8_C(0x13));
188
216
  uint64_t x44 = (x26 + x43);
189
217
  uint64_t x45 = (x44 >> 51);
190
218
  uint64_t x46 = (x44 & UINT64_C(0x7ffffffffffff));
191
219
  uint64_t x47 = (x45 + x33);
192
- uint64_t x48 = (x47 >> 51);
220
+ fiat_25519_uint1 x48 = (fiat_25519_uint1)(x47 >> 51);
193
221
  uint64_t x49 = (x47 & UINT64_C(0x7ffffffffffff));
194
222
  uint64_t x50 = (x48 + x36);
195
223
  out1[0] = x46;
@@ -200,47 +228,10 @@ static void fiat_25519_carry_square(uint64_t out1[5], const uint64_t arg1[5]) {
200
228
  }
201
229
 
202
230
  /*
203
- * Input Bounds:
204
- * arg1: [[0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]]
205
- * Output Bounds:
206
- * out1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
207
- */
208
- static void fiat_25519_carry_scmul_121666(uint64_t out1[5], const uint64_t arg1[5]) {
209
- fiat_25519_uint128 x1 = (UINT32_C(0x1db42) * (fiat_25519_uint128)(arg1[4]));
210
- fiat_25519_uint128 x2 = (UINT32_C(0x1db42) * (fiat_25519_uint128)(arg1[3]));
211
- fiat_25519_uint128 x3 = (UINT32_C(0x1db42) * (fiat_25519_uint128)(arg1[2]));
212
- fiat_25519_uint128 x4 = (UINT32_C(0x1db42) * (fiat_25519_uint128)(arg1[1]));
213
- fiat_25519_uint128 x5 = (UINT32_C(0x1db42) * (fiat_25519_uint128)(arg1[0]));
214
- uint64_t x6 = (uint64_t)(x5 >> 51);
215
- uint64_t x7 = (uint64_t)(x5 & UINT64_C(0x7ffffffffffff));
216
- fiat_25519_uint128 x8 = (x6 + x4);
217
- uint64_t x9 = (uint64_t)(x8 >> 51);
218
- uint64_t x10 = (uint64_t)(x8 & UINT64_C(0x7ffffffffffff));
219
- fiat_25519_uint128 x11 = (x9 + x3);
220
- uint64_t x12 = (uint64_t)(x11 >> 51);
221
- uint64_t x13 = (uint64_t)(x11 & UINT64_C(0x7ffffffffffff));
222
- fiat_25519_uint128 x14 = (x12 + x2);
223
- uint64_t x15 = (uint64_t)(x14 >> 51);
224
- uint64_t x16 = (uint64_t)(x14 & UINT64_C(0x7ffffffffffff));
225
- fiat_25519_uint128 x17 = (x15 + x1);
226
- uint64_t x18 = (uint64_t)(x17 >> 51);
227
- uint64_t x19 = (uint64_t)(x17 & UINT64_C(0x7ffffffffffff));
228
- uint64_t x20 = (x18 * (uint64_t)UINT8_C(0x13));
229
- uint64_t x21 = (x7 + x20);
230
- uint64_t x22 = (x21 >> 51);
231
- uint64_t x23 = (x21 & UINT64_C(0x7ffffffffffff));
232
- uint64_t x24 = (x22 + x10);
233
- uint64_t x25 = (x24 >> 51);
234
- uint64_t x26 = (x24 & UINT64_C(0x7ffffffffffff));
235
- uint64_t x27 = (x25 + x13);
236
- out1[0] = x23;
237
- out1[1] = x26;
238
- out1[2] = x27;
239
- out1[3] = x16;
240
- out1[4] = x19;
241
- }
242
-
243
- /*
231
+ * The function fiat_25519_carry reduces a field element.
232
+ * Postconditions:
233
+ * eval out1 mod m = eval arg1 mod m
234
+ *
244
235
  * Input Bounds:
245
236
  * arg1: [[0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]]
246
237
  * Output Bounds:
@@ -252,11 +243,11 @@ static void fiat_25519_carry(uint64_t out1[5], const uint64_t arg1[5]) {
252
243
  uint64_t x3 = ((x2 >> 51) + (arg1[2]));
253
244
  uint64_t x4 = ((x3 >> 51) + (arg1[3]));
254
245
  uint64_t x5 = ((x4 >> 51) + (arg1[4]));
255
- uint64_t x6 = ((x1 & UINT64_C(0x7ffffffffffff)) + ((x5 >> 51) * (uint64_t)UINT8_C(0x13)));
256
- uint64_t x7 = ((x6 >> 51) + (x2 & UINT64_C(0x7ffffffffffff)));
246
+ uint64_t x6 = ((x1 & UINT64_C(0x7ffffffffffff)) + ((x5 >> 51) * UINT8_C(0x13)));
247
+ uint64_t x7 = ((fiat_25519_uint1)(x6 >> 51) + (x2 & UINT64_C(0x7ffffffffffff)));
257
248
  uint64_t x8 = (x6 & UINT64_C(0x7ffffffffffff));
258
249
  uint64_t x9 = (x7 & UINT64_C(0x7ffffffffffff));
259
- uint64_t x10 = ((x7 >> 51) + (x3 & UINT64_C(0x7ffffffffffff)));
250
+ uint64_t x10 = ((fiat_25519_uint1)(x7 >> 51) + (x3 & UINT64_C(0x7ffffffffffff)));
260
251
  uint64_t x11 = (x4 & UINT64_C(0x7ffffffffffff));
261
252
  uint64_t x12 = (x5 & UINT64_C(0x7ffffffffffff));
262
253
  out1[0] = x8;
@@ -267,6 +258,10 @@ static void fiat_25519_carry(uint64_t out1[5], const uint64_t arg1[5]) {
267
258
  }
268
259
 
269
260
  /*
261
+ * The function fiat_25519_add adds two field elements.
262
+ * Postconditions:
263
+ * eval out1 mod m = (eval arg1 + eval arg2) mod m
264
+ *
270
265
  * Input Bounds:
271
266
  * arg1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
272
267
  * arg2: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
@@ -287,6 +282,10 @@ static void fiat_25519_add(uint64_t out1[5], const uint64_t arg1[5], const uint6
287
282
  }
288
283
 
289
284
  /*
285
+ * The function fiat_25519_sub subtracts two field elements.
286
+ * Postconditions:
287
+ * eval out1 mod m = (eval arg1 - eval arg2) mod m
288
+ *
290
289
  * Input Bounds:
291
290
  * arg1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
292
291
  * arg2: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
@@ -307,6 +306,10 @@ static void fiat_25519_sub(uint64_t out1[5], const uint64_t arg1[5], const uint6
307
306
  }
308
307
 
309
308
  /*
309
+ * The function fiat_25519_opp negates a field element.
310
+ * Postconditions:
311
+ * eval out1 mod m = -eval arg1 mod m
312
+ *
310
313
  * Input Bounds:
311
314
  * arg1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
312
315
  * Output Bounds:
@@ -326,6 +329,10 @@ static void fiat_25519_opp(uint64_t out1[5], const uint64_t arg1[5]) {
326
329
  }
327
330
 
328
331
  /*
332
+ * The function fiat_25519_selectznz is a multi-limb conditional select.
333
+ * Postconditions:
334
+ * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
335
+ *
329
336
  * Input Bounds:
330
337
  * arg1: [0x0 ~> 0x1]
331
338
  * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
@@ -352,6 +359,10 @@ static void fiat_25519_selectznz(uint64_t out1[5], fiat_25519_uint1 arg1, const
352
359
  }
353
360
 
354
361
  /*
362
+ * The function fiat_25519_to_bytes serializes a field element to bytes in little-endian order.
363
+ * Postconditions:
364
+ * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
365
+ *
355
366
  * Input Bounds:
356
367
  * arg1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
357
368
  * Output Bounds:
@@ -377,19 +388,19 @@ static void fiat_25519_to_bytes(uint8_t out1[32], const uint64_t arg1[5]) {
377
388
  fiat_25519_cmovznz_u64(&x11, x10, 0x0, UINT64_C(0xffffffffffffffff));
378
389
  uint64_t x12;
379
390
  fiat_25519_uint1 x13;
380
- fiat_25519_addcarryx_u51(&x12, &x13, 0x0, (x11 & UINT64_C(0x7ffffffffffed)), x1);
391
+ fiat_25519_addcarryx_u51(&x12, &x13, 0x0, x1, (x11 & UINT64_C(0x7ffffffffffed)));
381
392
  uint64_t x14;
382
393
  fiat_25519_uint1 x15;
383
- fiat_25519_addcarryx_u51(&x14, &x15, x13, (x11 & UINT64_C(0x7ffffffffffff)), x3);
394
+ fiat_25519_addcarryx_u51(&x14, &x15, x13, x3, (x11 & UINT64_C(0x7ffffffffffff)));
384
395
  uint64_t x16;
385
396
  fiat_25519_uint1 x17;
386
- fiat_25519_addcarryx_u51(&x16, &x17, x15, (x11 & UINT64_C(0x7ffffffffffff)), x5);
397
+ fiat_25519_addcarryx_u51(&x16, &x17, x15, x5, (x11 & UINT64_C(0x7ffffffffffff)));
387
398
  uint64_t x18;
388
399
  fiat_25519_uint1 x19;
389
- fiat_25519_addcarryx_u51(&x18, &x19, x17, (x11 & UINT64_C(0x7ffffffffffff)), x7);
400
+ fiat_25519_addcarryx_u51(&x18, &x19, x17, x7, (x11 & UINT64_C(0x7ffffffffffff)));
390
401
  uint64_t x20;
391
402
  fiat_25519_uint1 x21;
392
- fiat_25519_addcarryx_u51(&x20, &x21, x19, (x11 & UINT64_C(0x7ffffffffffff)), x9);
403
+ fiat_25519_addcarryx_u51(&x20, &x21, x19, x9, (x11 & UINT64_C(0x7ffffffffffff)));
393
404
  uint64_t x22 = (x20 << 4);
394
405
  uint64_t x23 = (x18 * (uint64_t)0x2);
395
406
  uint64_t x24 = (x16 << 6);
@@ -495,6 +506,10 @@ static void fiat_25519_to_bytes(uint8_t out1[32], const uint64_t arg1[5]) {
495
506
  }
496
507
 
497
508
  /*
509
+ * The function fiat_25519_from_bytes deserializes a field element from bytes in little-endian order.
510
+ * Postconditions:
511
+ * eval out1 mod m = bytes_eval arg1 mod m
512
+ *
498
513
  * Input Bounds:
499
514
  * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x7f]]
500
515
  * Output Bounds:
@@ -557,3 +572,48 @@ static void fiat_25519_from_bytes(uint64_t out1[5], const uint8_t arg1[32]) {
557
572
  out1[4] = x49;
558
573
  }
559
574
 
575
+ /*
576
+ * The function fiat_25519_carry_scmul_121666 multiplies a field element by 121666 and reduces the result.
577
+ * Postconditions:
578
+ * eval out1 mod m = (121666 * eval arg1) mod m
579
+ *
580
+ * Input Bounds:
581
+ * arg1: [[0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]]
582
+ * Output Bounds:
583
+ * out1: [[0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]]
584
+ */
585
+ static void fiat_25519_carry_scmul_121666(uint64_t out1[5], const uint64_t arg1[5]) {
586
+ fiat_25519_uint128 x1 = ((fiat_25519_uint128)UINT32_C(0x1db42) * (arg1[4]));
587
+ fiat_25519_uint128 x2 = ((fiat_25519_uint128)UINT32_C(0x1db42) * (arg1[3]));
588
+ fiat_25519_uint128 x3 = ((fiat_25519_uint128)UINT32_C(0x1db42) * (arg1[2]));
589
+ fiat_25519_uint128 x4 = ((fiat_25519_uint128)UINT32_C(0x1db42) * (arg1[1]));
590
+ fiat_25519_uint128 x5 = ((fiat_25519_uint128)UINT32_C(0x1db42) * (arg1[0]));
591
+ uint64_t x6 = (uint64_t)(x5 >> 51);
592
+ uint64_t x7 = (uint64_t)(x5 & UINT64_C(0x7ffffffffffff));
593
+ fiat_25519_uint128 x8 = (x6 + x4);
594
+ uint64_t x9 = (uint64_t)(x8 >> 51);
595
+ uint64_t x10 = (uint64_t)(x8 & UINT64_C(0x7ffffffffffff));
596
+ fiat_25519_uint128 x11 = (x9 + x3);
597
+ uint64_t x12 = (uint64_t)(x11 >> 51);
598
+ uint64_t x13 = (uint64_t)(x11 & UINT64_C(0x7ffffffffffff));
599
+ fiat_25519_uint128 x14 = (x12 + x2);
600
+ uint64_t x15 = (uint64_t)(x14 >> 51);
601
+ uint64_t x16 = (uint64_t)(x14 & UINT64_C(0x7ffffffffffff));
602
+ fiat_25519_uint128 x17 = (x15 + x1);
603
+ uint64_t x18 = (uint64_t)(x17 >> 51);
604
+ uint64_t x19 = (uint64_t)(x17 & UINT64_C(0x7ffffffffffff));
605
+ uint64_t x20 = (x18 * UINT8_C(0x13));
606
+ uint64_t x21 = (x7 + x20);
607
+ fiat_25519_uint1 x22 = (fiat_25519_uint1)(x21 >> 51);
608
+ uint64_t x23 = (x21 & UINT64_C(0x7ffffffffffff));
609
+ uint64_t x24 = (x22 + x10);
610
+ fiat_25519_uint1 x25 = (fiat_25519_uint1)(x24 >> 51);
611
+ uint64_t x26 = (x24 & UINT64_C(0x7ffffffffffff));
612
+ uint64_t x27 = (x25 + x13);
613
+ out1[0] = x23;
614
+ out1[1] = x26;
615
+ out1[2] = x27;
616
+ out1[3] = x16;
617
+ out1[4] = x19;
618
+ }
619
+
@@ -1,6 +1,6 @@
1
- /* Autogenerated */
1
+ /* Autogenerated: src/ExtractionOCaml/word_by_word_montgomery --static p256 '2^256 - 2^224 + 2^192 + 2^96 - 1' 32 mul square add sub opp from_montgomery nonzero selectznz to_bytes from_bytes */
2
2
  /* curve description: p256 */
3
- /* requested operations: (all) */
3
+ /* requested operations: mul, square, add, sub, opp, from_montgomery, nonzero, selectznz, to_bytes, from_bytes */
4
4
  /* m = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff (from "2^256 - 2^224 + 2^192 + 2^96 - 1") */
5
5
  /* machine_wordsize = 32 (from "32") */
6
6
  /* */
@@ -15,8 +15,17 @@
15
15
  typedef unsigned char fiat_p256_uint1;
16
16
  typedef signed char fiat_p256_int1;
17
17
 
18
+ #if (-1 & 3) != 3
19
+ #error "This code only works on a two's complement system"
20
+ #endif
21
+
18
22
 
19
23
  /*
24
+ * The function fiat_p256_addcarryx_u32 is an addition with carry.
25
+ * Postconditions:
26
+ * out1 = (arg1 + arg2 + arg3) mod 2^32
27
+ * out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋
28
+ *
20
29
  * Input Bounds:
21
30
  * arg1: [0x0 ~> 0x1]
22
31
  * arg2: [0x0 ~> 0xffffffff]
@@ -34,6 +43,11 @@ static void fiat_p256_addcarryx_u32(uint32_t* out1, fiat_p256_uint1* out2, fiat_
34
43
  }
35
44
 
36
45
  /*
46
+ * The function fiat_p256_subborrowx_u32 is a subtraction with borrow.
47
+ * Postconditions:
48
+ * out1 = (-arg1 + arg2 + -arg3) mod 2^32
49
+ * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋
50
+ *
37
51
  * Input Bounds:
38
52
  * arg1: [0x0 ~> 0x1]
39
53
  * arg2: [0x0 ~> 0xffffffff]
@@ -51,6 +65,11 @@ static void fiat_p256_subborrowx_u32(uint32_t* out1, fiat_p256_uint1* out2, fiat
51
65
  }
52
66
 
53
67
  /*
68
+ * The function fiat_p256_mulx_u32 is a multiplication, returning the full double-width result.
69
+ * Postconditions:
70
+ * out1 = (arg1 * arg2) mod 2^32
71
+ * out2 = ⌊arg1 * arg2 / 2^32⌋
72
+ *
54
73
  * Input Bounds:
55
74
  * arg1: [0x0 ~> 0xffffffff]
56
75
  * arg2: [0x0 ~> 0xffffffff]
@@ -67,6 +86,10 @@ static void fiat_p256_mulx_u32(uint32_t* out1, uint32_t* out2, uint32_t arg1, ui
67
86
  }
68
87
 
69
88
  /*
89
+ * The function fiat_p256_cmovznz_u32 is a single-word conditional move.
90
+ * Postconditions:
91
+ * out1 = (if arg1 = 0 then arg2 else arg3)
92
+ *
70
93
  * Input Bounds:
71
94
  * arg1: [0x0 ~> 0x1]
72
95
  * arg2: [0x0 ~> 0xffffffff]
@@ -88,6 +111,14 @@ static void fiat_p256_cmovznz_u32(uint32_t* out1, fiat_p256_uint1 arg1, uint32_t
88
111
  }
89
112
 
90
113
  /*
114
+ * The function fiat_p256_mul multiplies two field elements in the Montgomery domain.
115
+ * Preconditions:
116
+ * 0 ≤ eval arg1 < m
117
+ * 0 ≤ eval arg2 < m
118
+ * Postconditions:
119
+ * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
120
+ * 0 ≤ eval out1 < m
121
+ *
91
122
  * Input Bounds:
92
123
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
93
124
  * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
@@ -129,1015 +160,973 @@ static void fiat_p256_mul(uint32_t out1[8], const uint32_t arg1[8], const uint32
129
160
  fiat_p256_mulx_u32(&x23, &x24, x8, (arg2[0]));
130
161
  uint32_t x25;
131
162
  fiat_p256_uint1 x26;
132
- fiat_p256_addcarryx_u32(&x25, &x26, 0x0, x21, x24);
163
+ fiat_p256_addcarryx_u32(&x25, &x26, 0x0, x24, x21);
133
164
  uint32_t x27;
134
165
  fiat_p256_uint1 x28;
135
- fiat_p256_addcarryx_u32(&x27, &x28, x26, x19, x22);
166
+ fiat_p256_addcarryx_u32(&x27, &x28, x26, x22, x19);
136
167
  uint32_t x29;
137
168
  fiat_p256_uint1 x30;
138
- fiat_p256_addcarryx_u32(&x29, &x30, x28, x17, x20);
169
+ fiat_p256_addcarryx_u32(&x29, &x30, x28, x20, x17);
139
170
  uint32_t x31;
140
171
  fiat_p256_uint1 x32;
141
- fiat_p256_addcarryx_u32(&x31, &x32, x30, x15, x18);
172
+ fiat_p256_addcarryx_u32(&x31, &x32, x30, x18, x15);
142
173
  uint32_t x33;
143
174
  fiat_p256_uint1 x34;
144
- fiat_p256_addcarryx_u32(&x33, &x34, x32, x13, x16);
175
+ fiat_p256_addcarryx_u32(&x33, &x34, x32, x16, x13);
145
176
  uint32_t x35;
146
177
  fiat_p256_uint1 x36;
147
- fiat_p256_addcarryx_u32(&x35, &x36, x34, x11, x14);
178
+ fiat_p256_addcarryx_u32(&x35, &x36, x34, x14, x11);
148
179
  uint32_t x37;
149
180
  fiat_p256_uint1 x38;
150
- fiat_p256_addcarryx_u32(&x37, &x38, x36, x9, x12);
151
- uint32_t x39;
152
- fiat_p256_uint1 x40;
153
- fiat_p256_addcarryx_u32(&x39, &x40, x38, 0x0, x10);
181
+ fiat_p256_addcarryx_u32(&x37, &x38, x36, x12, x9);
182
+ uint32_t x39 = (x38 + x10);
183
+ uint32_t x40;
154
184
  uint32_t x41;
185
+ fiat_p256_mulx_u32(&x40, &x41, x23, UINT32_C(0xffffffff));
155
186
  uint32_t x42;
156
- fiat_p256_mulx_u32(&x41, &x42, x23, UINT32_C(0xffffffff));
157
187
  uint32_t x43;
188
+ fiat_p256_mulx_u32(&x42, &x43, x23, UINT32_C(0xffffffff));
158
189
  uint32_t x44;
159
- fiat_p256_mulx_u32(&x43, &x44, x23, UINT32_C(0xffffffff));
160
190
  uint32_t x45;
191
+ fiat_p256_mulx_u32(&x44, &x45, x23, UINT32_C(0xffffffff));
161
192
  uint32_t x46;
162
- fiat_p256_mulx_u32(&x45, &x46, x23, UINT32_C(0xffffffff));
163
193
  uint32_t x47;
194
+ fiat_p256_mulx_u32(&x46, &x47, x23, UINT32_C(0xffffffff));
164
195
  uint32_t x48;
165
- fiat_p256_mulx_u32(&x47, &x48, x23, UINT32_C(0xffffffff));
166
- uint32_t x49;
167
- fiat_p256_uint1 x50;
168
- fiat_p256_addcarryx_u32(&x49, &x50, 0x0, x45, x48);
169
- uint32_t x51;
170
- fiat_p256_uint1 x52;
171
- fiat_p256_addcarryx_u32(&x51, &x52, x50, x43, x46);
196
+ fiat_p256_uint1 x49;
197
+ fiat_p256_addcarryx_u32(&x48, &x49, 0x0, x47, x44);
198
+ uint32_t x50;
199
+ fiat_p256_uint1 x51;
200
+ fiat_p256_addcarryx_u32(&x50, &x51, x49, x45, x42);
201
+ uint32_t x52 = (x51 + x43);
172
202
  uint32_t x53;
173
203
  fiat_p256_uint1 x54;
174
- fiat_p256_addcarryx_u32(&x53, &x54, x52, 0x0, x44);
204
+ fiat_p256_addcarryx_u32(&x53, &x54, 0x0, x23, x46);
175
205
  uint32_t x55;
176
206
  fiat_p256_uint1 x56;
177
- fiat_p256_addcarryx_u32(&x55, &x56, 0x0, x47, x23);
207
+ fiat_p256_addcarryx_u32(&x55, &x56, x54, x25, x48);
178
208
  uint32_t x57;
179
209
  fiat_p256_uint1 x58;
180
- fiat_p256_addcarryx_u32(&x57, &x58, x56, x49, x25);
210
+ fiat_p256_addcarryx_u32(&x57, &x58, x56, x27, x50);
181
211
  uint32_t x59;
182
212
  fiat_p256_uint1 x60;
183
- fiat_p256_addcarryx_u32(&x59, &x60, x58, x51, x27);
213
+ fiat_p256_addcarryx_u32(&x59, &x60, x58, x29, x52);
184
214
  uint32_t x61;
185
215
  fiat_p256_uint1 x62;
186
- fiat_p256_addcarryx_u32(&x61, &x62, x60, x53, x29);
216
+ fiat_p256_addcarryx_u32(&x61, &x62, x60, x31, 0x0);
187
217
  uint32_t x63;
188
218
  fiat_p256_uint1 x64;
189
- fiat_p256_addcarryx_u32(&x63, &x64, x62, 0x0, x31);
219
+ fiat_p256_addcarryx_u32(&x63, &x64, x62, x33, 0x0);
190
220
  uint32_t x65;
191
221
  fiat_p256_uint1 x66;
192
- fiat_p256_addcarryx_u32(&x65, &x66, x64, 0x0, x33);
222
+ fiat_p256_addcarryx_u32(&x65, &x66, x64, x35, x23);
193
223
  uint32_t x67;
194
224
  fiat_p256_uint1 x68;
195
- fiat_p256_addcarryx_u32(&x67, &x68, x66, x23, x35);
225
+ fiat_p256_addcarryx_u32(&x67, &x68, x66, x37, x40);
196
226
  uint32_t x69;
197
227
  fiat_p256_uint1 x70;
198
- fiat_p256_addcarryx_u32(&x69, &x70, x68, x41, x37);
228
+ fiat_p256_addcarryx_u32(&x69, &x70, x68, x39, x41);
199
229
  uint32_t x71;
200
- fiat_p256_uint1 x72;
201
- fiat_p256_addcarryx_u32(&x71, &x72, x70, x42, x39);
230
+ uint32_t x72;
231
+ fiat_p256_mulx_u32(&x71, &x72, x1, (arg2[7]));
202
232
  uint32_t x73;
203
- fiat_p256_uint1 x74;
204
- fiat_p256_addcarryx_u32(&x73, &x74, x72, 0x0, 0x0);
233
+ uint32_t x74;
234
+ fiat_p256_mulx_u32(&x73, &x74, x1, (arg2[6]));
205
235
  uint32_t x75;
206
236
  uint32_t x76;
207
- fiat_p256_mulx_u32(&x75, &x76, x1, (arg2[7]));
237
+ fiat_p256_mulx_u32(&x75, &x76, x1, (arg2[5]));
208
238
  uint32_t x77;
209
239
  uint32_t x78;
210
- fiat_p256_mulx_u32(&x77, &x78, x1, (arg2[6]));
240
+ fiat_p256_mulx_u32(&x77, &x78, x1, (arg2[4]));
211
241
  uint32_t x79;
212
242
  uint32_t x80;
213
- fiat_p256_mulx_u32(&x79, &x80, x1, (arg2[5]));
243
+ fiat_p256_mulx_u32(&x79, &x80, x1, (arg2[3]));
214
244
  uint32_t x81;
215
245
  uint32_t x82;
216
- fiat_p256_mulx_u32(&x81, &x82, x1, (arg2[4]));
246
+ fiat_p256_mulx_u32(&x81, &x82, x1, (arg2[2]));
217
247
  uint32_t x83;
218
248
  uint32_t x84;
219
- fiat_p256_mulx_u32(&x83, &x84, x1, (arg2[3]));
249
+ fiat_p256_mulx_u32(&x83, &x84, x1, (arg2[1]));
220
250
  uint32_t x85;
221
251
  uint32_t x86;
222
- fiat_p256_mulx_u32(&x85, &x86, x1, (arg2[2]));
252
+ fiat_p256_mulx_u32(&x85, &x86, x1, (arg2[0]));
223
253
  uint32_t x87;
224
- uint32_t x88;
225
- fiat_p256_mulx_u32(&x87, &x88, x1, (arg2[1]));
254
+ fiat_p256_uint1 x88;
255
+ fiat_p256_addcarryx_u32(&x87, &x88, 0x0, x86, x83);
226
256
  uint32_t x89;
227
- uint32_t x90;
228
- fiat_p256_mulx_u32(&x89, &x90, x1, (arg2[0]));
257
+ fiat_p256_uint1 x90;
258
+ fiat_p256_addcarryx_u32(&x89, &x90, x88, x84, x81);
229
259
  uint32_t x91;
230
260
  fiat_p256_uint1 x92;
231
- fiat_p256_addcarryx_u32(&x91, &x92, 0x0, x87, x90);
261
+ fiat_p256_addcarryx_u32(&x91, &x92, x90, x82, x79);
232
262
  uint32_t x93;
233
263
  fiat_p256_uint1 x94;
234
- fiat_p256_addcarryx_u32(&x93, &x94, x92, x85, x88);
264
+ fiat_p256_addcarryx_u32(&x93, &x94, x92, x80, x77);
235
265
  uint32_t x95;
236
266
  fiat_p256_uint1 x96;
237
- fiat_p256_addcarryx_u32(&x95, &x96, x94, x83, x86);
267
+ fiat_p256_addcarryx_u32(&x95, &x96, x94, x78, x75);
238
268
  uint32_t x97;
239
269
  fiat_p256_uint1 x98;
240
- fiat_p256_addcarryx_u32(&x97, &x98, x96, x81, x84);
270
+ fiat_p256_addcarryx_u32(&x97, &x98, x96, x76, x73);
241
271
  uint32_t x99;
242
272
  fiat_p256_uint1 x100;
243
- fiat_p256_addcarryx_u32(&x99, &x100, x98, x79, x82);
244
- uint32_t x101;
245
- fiat_p256_uint1 x102;
246
- fiat_p256_addcarryx_u32(&x101, &x102, x100, x77, x80);
247
- uint32_t x103;
248
- fiat_p256_uint1 x104;
249
- fiat_p256_addcarryx_u32(&x103, &x104, x102, x75, x78);
250
- uint32_t x105;
251
- fiat_p256_uint1 x106;
252
- fiat_p256_addcarryx_u32(&x105, &x106, x104, 0x0, x76);
253
- uint32_t x107;
254
- fiat_p256_uint1 x108;
255
- fiat_p256_addcarryx_u32(&x107, &x108, 0x0, x89, x57);
256
- uint32_t x109;
257
- fiat_p256_uint1 x110;
258
- fiat_p256_addcarryx_u32(&x109, &x110, x108, x91, x59);
259
- uint32_t x111;
260
- fiat_p256_uint1 x112;
261
- fiat_p256_addcarryx_u32(&x111, &x112, x110, x93, x61);
262
- uint32_t x113;
263
- fiat_p256_uint1 x114;
264
- fiat_p256_addcarryx_u32(&x113, &x114, x112, x95, x63);
265
- uint32_t x115;
266
- fiat_p256_uint1 x116;
267
- fiat_p256_addcarryx_u32(&x115, &x116, x114, x97, x65);
268
- uint32_t x117;
269
- fiat_p256_uint1 x118;
270
- fiat_p256_addcarryx_u32(&x117, &x118, x116, x99, x67);
271
- uint32_t x119;
272
- fiat_p256_uint1 x120;
273
- fiat_p256_addcarryx_u32(&x119, &x120, x118, x101, x69);
273
+ fiat_p256_addcarryx_u32(&x99, &x100, x98, x74, x71);
274
+ uint32_t x101 = (x100 + x72);
275
+ uint32_t x102;
276
+ fiat_p256_uint1 x103;
277
+ fiat_p256_addcarryx_u32(&x102, &x103, 0x0, x55, x85);
278
+ uint32_t x104;
279
+ fiat_p256_uint1 x105;
280
+ fiat_p256_addcarryx_u32(&x104, &x105, x103, x57, x87);
281
+ uint32_t x106;
282
+ fiat_p256_uint1 x107;
283
+ fiat_p256_addcarryx_u32(&x106, &x107, x105, x59, x89);
284
+ uint32_t x108;
285
+ fiat_p256_uint1 x109;
286
+ fiat_p256_addcarryx_u32(&x108, &x109, x107, x61, x91);
287
+ uint32_t x110;
288
+ fiat_p256_uint1 x111;
289
+ fiat_p256_addcarryx_u32(&x110, &x111, x109, x63, x93);
290
+ uint32_t x112;
291
+ fiat_p256_uint1 x113;
292
+ fiat_p256_addcarryx_u32(&x112, &x113, x111, x65, x95);
293
+ uint32_t x114;
294
+ fiat_p256_uint1 x115;
295
+ fiat_p256_addcarryx_u32(&x114, &x115, x113, x67, x97);
296
+ uint32_t x116;
297
+ fiat_p256_uint1 x117;
298
+ fiat_p256_addcarryx_u32(&x116, &x117, x115, x69, x99);
299
+ uint32_t x118;
300
+ fiat_p256_uint1 x119;
301
+ fiat_p256_addcarryx_u32(&x118, &x119, x117, x70, x101);
302
+ uint32_t x120;
274
303
  uint32_t x121;
275
- fiat_p256_uint1 x122;
276
- fiat_p256_addcarryx_u32(&x121, &x122, x120, x103, x71);
304
+ fiat_p256_mulx_u32(&x120, &x121, x102, UINT32_C(0xffffffff));
305
+ uint32_t x122;
277
306
  uint32_t x123;
278
- fiat_p256_uint1 x124;
279
- fiat_p256_addcarryx_u32(&x123, &x124, x122, x105, (fiat_p256_uint1)x73);
307
+ fiat_p256_mulx_u32(&x122, &x123, x102, UINT32_C(0xffffffff));
308
+ uint32_t x124;
280
309
  uint32_t x125;
310
+ fiat_p256_mulx_u32(&x124, &x125, x102, UINT32_C(0xffffffff));
281
311
  uint32_t x126;
282
- fiat_p256_mulx_u32(&x125, &x126, x107, UINT32_C(0xffffffff));
283
312
  uint32_t x127;
313
+ fiat_p256_mulx_u32(&x126, &x127, x102, UINT32_C(0xffffffff));
284
314
  uint32_t x128;
285
- fiat_p256_mulx_u32(&x127, &x128, x107, UINT32_C(0xffffffff));
286
- uint32_t x129;
315
+ fiat_p256_uint1 x129;
316
+ fiat_p256_addcarryx_u32(&x128, &x129, 0x0, x127, x124);
287
317
  uint32_t x130;
288
- fiat_p256_mulx_u32(&x129, &x130, x107, UINT32_C(0xffffffff));
289
- uint32_t x131;
290
- uint32_t x132;
291
- fiat_p256_mulx_u32(&x131, &x132, x107, UINT32_C(0xffffffff));
318
+ fiat_p256_uint1 x131;
319
+ fiat_p256_addcarryx_u32(&x130, &x131, x129, x125, x122);
320
+ uint32_t x132 = (x131 + x123);
292
321
  uint32_t x133;
293
322
  fiat_p256_uint1 x134;
294
- fiat_p256_addcarryx_u32(&x133, &x134, 0x0, x129, x132);
323
+ fiat_p256_addcarryx_u32(&x133, &x134, 0x0, x102, x126);
295
324
  uint32_t x135;
296
325
  fiat_p256_uint1 x136;
297
- fiat_p256_addcarryx_u32(&x135, &x136, x134, x127, x130);
326
+ fiat_p256_addcarryx_u32(&x135, &x136, x134, x104, x128);
298
327
  uint32_t x137;
299
328
  fiat_p256_uint1 x138;
300
- fiat_p256_addcarryx_u32(&x137, &x138, x136, 0x0, x128);
329
+ fiat_p256_addcarryx_u32(&x137, &x138, x136, x106, x130);
301
330
  uint32_t x139;
302
331
  fiat_p256_uint1 x140;
303
- fiat_p256_addcarryx_u32(&x139, &x140, 0x0, x131, x107);
332
+ fiat_p256_addcarryx_u32(&x139, &x140, x138, x108, x132);
304
333
  uint32_t x141;
305
334
  fiat_p256_uint1 x142;
306
- fiat_p256_addcarryx_u32(&x141, &x142, x140, x133, x109);
335
+ fiat_p256_addcarryx_u32(&x141, &x142, x140, x110, 0x0);
307
336
  uint32_t x143;
308
337
  fiat_p256_uint1 x144;
309
- fiat_p256_addcarryx_u32(&x143, &x144, x142, x135, x111);
338
+ fiat_p256_addcarryx_u32(&x143, &x144, x142, x112, 0x0);
310
339
  uint32_t x145;
311
340
  fiat_p256_uint1 x146;
312
- fiat_p256_addcarryx_u32(&x145, &x146, x144, x137, x113);
341
+ fiat_p256_addcarryx_u32(&x145, &x146, x144, x114, x102);
313
342
  uint32_t x147;
314
343
  fiat_p256_uint1 x148;
315
- fiat_p256_addcarryx_u32(&x147, &x148, x146, 0x0, x115);
344
+ fiat_p256_addcarryx_u32(&x147, &x148, x146, x116, x120);
316
345
  uint32_t x149;
317
346
  fiat_p256_uint1 x150;
318
- fiat_p256_addcarryx_u32(&x149, &x150, x148, 0x0, x117);
319
- uint32_t x151;
320
- fiat_p256_uint1 x152;
321
- fiat_p256_addcarryx_u32(&x151, &x152, x150, x107, x119);
347
+ fiat_p256_addcarryx_u32(&x149, &x150, x148, x118, x121);
348
+ uint32_t x151 = ((uint32_t)x150 + x119);
349
+ uint32_t x152;
322
350
  uint32_t x153;
323
- fiat_p256_uint1 x154;
324
- fiat_p256_addcarryx_u32(&x153, &x154, x152, x125, x121);
351
+ fiat_p256_mulx_u32(&x152, &x153, x2, (arg2[7]));
352
+ uint32_t x154;
325
353
  uint32_t x155;
326
- fiat_p256_uint1 x156;
327
- fiat_p256_addcarryx_u32(&x155, &x156, x154, x126, x123);
354
+ fiat_p256_mulx_u32(&x154, &x155, x2, (arg2[6]));
355
+ uint32_t x156;
328
356
  uint32_t x157;
329
- fiat_p256_uint1 x158;
330
- fiat_p256_addcarryx_u32(&x157, &x158, x156, 0x0, x124);
357
+ fiat_p256_mulx_u32(&x156, &x157, x2, (arg2[5]));
358
+ uint32_t x158;
331
359
  uint32_t x159;
360
+ fiat_p256_mulx_u32(&x158, &x159, x2, (arg2[4]));
332
361
  uint32_t x160;
333
- fiat_p256_mulx_u32(&x159, &x160, x2, (arg2[7]));
334
362
  uint32_t x161;
363
+ fiat_p256_mulx_u32(&x160, &x161, x2, (arg2[3]));
335
364
  uint32_t x162;
336
- fiat_p256_mulx_u32(&x161, &x162, x2, (arg2[6]));
337
365
  uint32_t x163;
366
+ fiat_p256_mulx_u32(&x162, &x163, x2, (arg2[2]));
338
367
  uint32_t x164;
339
- fiat_p256_mulx_u32(&x163, &x164, x2, (arg2[5]));
340
368
  uint32_t x165;
369
+ fiat_p256_mulx_u32(&x164, &x165, x2, (arg2[1]));
341
370
  uint32_t x166;
342
- fiat_p256_mulx_u32(&x165, &x166, x2, (arg2[4]));
343
371
  uint32_t x167;
372
+ fiat_p256_mulx_u32(&x166, &x167, x2, (arg2[0]));
344
373
  uint32_t x168;
345
- fiat_p256_mulx_u32(&x167, &x168, x2, (arg2[3]));
346
- uint32_t x169;
374
+ fiat_p256_uint1 x169;
375
+ fiat_p256_addcarryx_u32(&x168, &x169, 0x0, x167, x164);
347
376
  uint32_t x170;
348
- fiat_p256_mulx_u32(&x169, &x170, x2, (arg2[2]));
349
- uint32_t x171;
377
+ fiat_p256_uint1 x171;
378
+ fiat_p256_addcarryx_u32(&x170, &x171, x169, x165, x162);
350
379
  uint32_t x172;
351
- fiat_p256_mulx_u32(&x171, &x172, x2, (arg2[1]));
352
- uint32_t x173;
380
+ fiat_p256_uint1 x173;
381
+ fiat_p256_addcarryx_u32(&x172, &x173, x171, x163, x160);
353
382
  uint32_t x174;
354
- fiat_p256_mulx_u32(&x173, &x174, x2, (arg2[0]));
355
- uint32_t x175;
356
- fiat_p256_uint1 x176;
357
- fiat_p256_addcarryx_u32(&x175, &x176, 0x0, x171, x174);
358
- uint32_t x177;
359
- fiat_p256_uint1 x178;
360
- fiat_p256_addcarryx_u32(&x177, &x178, x176, x169, x172);
361
- uint32_t x179;
362
- fiat_p256_uint1 x180;
363
- fiat_p256_addcarryx_u32(&x179, &x180, x178, x167, x170);
364
- uint32_t x181;
365
- fiat_p256_uint1 x182;
366
- fiat_p256_addcarryx_u32(&x181, &x182, x180, x165, x168);
383
+ fiat_p256_uint1 x175;
384
+ fiat_p256_addcarryx_u32(&x174, &x175, x173, x161, x158);
385
+ uint32_t x176;
386
+ fiat_p256_uint1 x177;
387
+ fiat_p256_addcarryx_u32(&x176, &x177, x175, x159, x156);
388
+ uint32_t x178;
389
+ fiat_p256_uint1 x179;
390
+ fiat_p256_addcarryx_u32(&x178, &x179, x177, x157, x154);
391
+ uint32_t x180;
392
+ fiat_p256_uint1 x181;
393
+ fiat_p256_addcarryx_u32(&x180, &x181, x179, x155, x152);
394
+ uint32_t x182 = (x181 + x153);
367
395
  uint32_t x183;
368
396
  fiat_p256_uint1 x184;
369
- fiat_p256_addcarryx_u32(&x183, &x184, x182, x163, x166);
397
+ fiat_p256_addcarryx_u32(&x183, &x184, 0x0, x135, x166);
370
398
  uint32_t x185;
371
399
  fiat_p256_uint1 x186;
372
- fiat_p256_addcarryx_u32(&x185, &x186, x184, x161, x164);
400
+ fiat_p256_addcarryx_u32(&x185, &x186, x184, x137, x168);
373
401
  uint32_t x187;
374
402
  fiat_p256_uint1 x188;
375
- fiat_p256_addcarryx_u32(&x187, &x188, x186, x159, x162);
403
+ fiat_p256_addcarryx_u32(&x187, &x188, x186, x139, x170);
376
404
  uint32_t x189;
377
405
  fiat_p256_uint1 x190;
378
- fiat_p256_addcarryx_u32(&x189, &x190, x188, 0x0, x160);
406
+ fiat_p256_addcarryx_u32(&x189, &x190, x188, x141, x172);
379
407
  uint32_t x191;
380
408
  fiat_p256_uint1 x192;
381
- fiat_p256_addcarryx_u32(&x191, &x192, 0x0, x173, x141);
409
+ fiat_p256_addcarryx_u32(&x191, &x192, x190, x143, x174);
382
410
  uint32_t x193;
383
411
  fiat_p256_uint1 x194;
384
- fiat_p256_addcarryx_u32(&x193, &x194, x192, x175, x143);
412
+ fiat_p256_addcarryx_u32(&x193, &x194, x192, x145, x176);
385
413
  uint32_t x195;
386
414
  fiat_p256_uint1 x196;
387
- fiat_p256_addcarryx_u32(&x195, &x196, x194, x177, x145);
415
+ fiat_p256_addcarryx_u32(&x195, &x196, x194, x147, x178);
388
416
  uint32_t x197;
389
417
  fiat_p256_uint1 x198;
390
- fiat_p256_addcarryx_u32(&x197, &x198, x196, x179, x147);
418
+ fiat_p256_addcarryx_u32(&x197, &x198, x196, x149, x180);
391
419
  uint32_t x199;
392
420
  fiat_p256_uint1 x200;
393
- fiat_p256_addcarryx_u32(&x199, &x200, x198, x181, x149);
421
+ fiat_p256_addcarryx_u32(&x199, &x200, x198, x151, x182);
394
422
  uint32_t x201;
395
- fiat_p256_uint1 x202;
396
- fiat_p256_addcarryx_u32(&x201, &x202, x200, x183, x151);
423
+ uint32_t x202;
424
+ fiat_p256_mulx_u32(&x201, &x202, x183, UINT32_C(0xffffffff));
397
425
  uint32_t x203;
398
- fiat_p256_uint1 x204;
399
- fiat_p256_addcarryx_u32(&x203, &x204, x202, x185, x153);
426
+ uint32_t x204;
427
+ fiat_p256_mulx_u32(&x203, &x204, x183, UINT32_C(0xffffffff));
400
428
  uint32_t x205;
401
- fiat_p256_uint1 x206;
402
- fiat_p256_addcarryx_u32(&x205, &x206, x204, x187, x155);
429
+ uint32_t x206;
430
+ fiat_p256_mulx_u32(&x205, &x206, x183, UINT32_C(0xffffffff));
403
431
  uint32_t x207;
404
- fiat_p256_uint1 x208;
405
- fiat_p256_addcarryx_u32(&x207, &x208, x206, x189, x157);
432
+ uint32_t x208;
433
+ fiat_p256_mulx_u32(&x207, &x208, x183, UINT32_C(0xffffffff));
406
434
  uint32_t x209;
407
- uint32_t x210;
408
- fiat_p256_mulx_u32(&x209, &x210, x191, UINT32_C(0xffffffff));
435
+ fiat_p256_uint1 x210;
436
+ fiat_p256_addcarryx_u32(&x209, &x210, 0x0, x208, x205);
409
437
  uint32_t x211;
410
- uint32_t x212;
411
- fiat_p256_mulx_u32(&x211, &x212, x191, UINT32_C(0xffffffff));
412
- uint32_t x213;
438
+ fiat_p256_uint1 x212;
439
+ fiat_p256_addcarryx_u32(&x211, &x212, x210, x206, x203);
440
+ uint32_t x213 = (x212 + x204);
413
441
  uint32_t x214;
414
- fiat_p256_mulx_u32(&x213, &x214, x191, UINT32_C(0xffffffff));
415
- uint32_t x215;
442
+ fiat_p256_uint1 x215;
443
+ fiat_p256_addcarryx_u32(&x214, &x215, 0x0, x183, x207);
416
444
  uint32_t x216;
417
- fiat_p256_mulx_u32(&x215, &x216, x191, UINT32_C(0xffffffff));
418
- uint32_t x217;
419
- fiat_p256_uint1 x218;
420
- fiat_p256_addcarryx_u32(&x217, &x218, 0x0, x213, x216);
421
- uint32_t x219;
422
- fiat_p256_uint1 x220;
423
- fiat_p256_addcarryx_u32(&x219, &x220, x218, x211, x214);
424
- uint32_t x221;
425
- fiat_p256_uint1 x222;
426
- fiat_p256_addcarryx_u32(&x221, &x222, x220, 0x0, x212);
427
- uint32_t x223;
428
- fiat_p256_uint1 x224;
429
- fiat_p256_addcarryx_u32(&x223, &x224, 0x0, x215, x191);
430
- uint32_t x225;
431
- fiat_p256_uint1 x226;
432
- fiat_p256_addcarryx_u32(&x225, &x226, x224, x217, x193);
433
- uint32_t x227;
434
- fiat_p256_uint1 x228;
435
- fiat_p256_addcarryx_u32(&x227, &x228, x226, x219, x195);
436
- uint32_t x229;
437
- fiat_p256_uint1 x230;
438
- fiat_p256_addcarryx_u32(&x229, &x230, x228, x221, x197);
439
- uint32_t x231;
440
- fiat_p256_uint1 x232;
441
- fiat_p256_addcarryx_u32(&x231, &x232, x230, 0x0, x199);
445
+ fiat_p256_uint1 x217;
446
+ fiat_p256_addcarryx_u32(&x216, &x217, x215, x185, x209);
447
+ uint32_t x218;
448
+ fiat_p256_uint1 x219;
449
+ fiat_p256_addcarryx_u32(&x218, &x219, x217, x187, x211);
450
+ uint32_t x220;
451
+ fiat_p256_uint1 x221;
452
+ fiat_p256_addcarryx_u32(&x220, &x221, x219, x189, x213);
453
+ uint32_t x222;
454
+ fiat_p256_uint1 x223;
455
+ fiat_p256_addcarryx_u32(&x222, &x223, x221, x191, 0x0);
456
+ uint32_t x224;
457
+ fiat_p256_uint1 x225;
458
+ fiat_p256_addcarryx_u32(&x224, &x225, x223, x193, 0x0);
459
+ uint32_t x226;
460
+ fiat_p256_uint1 x227;
461
+ fiat_p256_addcarryx_u32(&x226, &x227, x225, x195, x183);
462
+ uint32_t x228;
463
+ fiat_p256_uint1 x229;
464
+ fiat_p256_addcarryx_u32(&x228, &x229, x227, x197, x201);
465
+ uint32_t x230;
466
+ fiat_p256_uint1 x231;
467
+ fiat_p256_addcarryx_u32(&x230, &x231, x229, x199, x202);
468
+ uint32_t x232 = ((uint32_t)x231 + x200);
442
469
  uint32_t x233;
443
- fiat_p256_uint1 x234;
444
- fiat_p256_addcarryx_u32(&x233, &x234, x232, 0x0, x201);
470
+ uint32_t x234;
471
+ fiat_p256_mulx_u32(&x233, &x234, x3, (arg2[7]));
445
472
  uint32_t x235;
446
- fiat_p256_uint1 x236;
447
- fiat_p256_addcarryx_u32(&x235, &x236, x234, x191, x203);
473
+ uint32_t x236;
474
+ fiat_p256_mulx_u32(&x235, &x236, x3, (arg2[6]));
448
475
  uint32_t x237;
449
- fiat_p256_uint1 x238;
450
- fiat_p256_addcarryx_u32(&x237, &x238, x236, x209, x205);
476
+ uint32_t x238;
477
+ fiat_p256_mulx_u32(&x237, &x238, x3, (arg2[5]));
451
478
  uint32_t x239;
452
- fiat_p256_uint1 x240;
453
- fiat_p256_addcarryx_u32(&x239, &x240, x238, x210, x207);
479
+ uint32_t x240;
480
+ fiat_p256_mulx_u32(&x239, &x240, x3, (arg2[4]));
454
481
  uint32_t x241;
455
- fiat_p256_uint1 x242;
456
- fiat_p256_addcarryx_u32(&x241, &x242, x240, 0x0, x208);
482
+ uint32_t x242;
483
+ fiat_p256_mulx_u32(&x241, &x242, x3, (arg2[3]));
457
484
  uint32_t x243;
458
485
  uint32_t x244;
459
- fiat_p256_mulx_u32(&x243, &x244, x3, (arg2[7]));
486
+ fiat_p256_mulx_u32(&x243, &x244, x3, (arg2[2]));
460
487
  uint32_t x245;
461
488
  uint32_t x246;
462
- fiat_p256_mulx_u32(&x245, &x246, x3, (arg2[6]));
489
+ fiat_p256_mulx_u32(&x245, &x246, x3, (arg2[1]));
463
490
  uint32_t x247;
464
491
  uint32_t x248;
465
- fiat_p256_mulx_u32(&x247, &x248, x3, (arg2[5]));
492
+ fiat_p256_mulx_u32(&x247, &x248, x3, (arg2[0]));
466
493
  uint32_t x249;
467
- uint32_t x250;
468
- fiat_p256_mulx_u32(&x249, &x250, x3, (arg2[4]));
494
+ fiat_p256_uint1 x250;
495
+ fiat_p256_addcarryx_u32(&x249, &x250, 0x0, x248, x245);
469
496
  uint32_t x251;
470
- uint32_t x252;
471
- fiat_p256_mulx_u32(&x251, &x252, x3, (arg2[3]));
497
+ fiat_p256_uint1 x252;
498
+ fiat_p256_addcarryx_u32(&x251, &x252, x250, x246, x243);
472
499
  uint32_t x253;
473
- uint32_t x254;
474
- fiat_p256_mulx_u32(&x253, &x254, x3, (arg2[2]));
500
+ fiat_p256_uint1 x254;
501
+ fiat_p256_addcarryx_u32(&x253, &x254, x252, x244, x241);
475
502
  uint32_t x255;
476
- uint32_t x256;
477
- fiat_p256_mulx_u32(&x255, &x256, x3, (arg2[1]));
503
+ fiat_p256_uint1 x256;
504
+ fiat_p256_addcarryx_u32(&x255, &x256, x254, x242, x239);
478
505
  uint32_t x257;
479
- uint32_t x258;
480
- fiat_p256_mulx_u32(&x257, &x258, x3, (arg2[0]));
506
+ fiat_p256_uint1 x258;
507
+ fiat_p256_addcarryx_u32(&x257, &x258, x256, x240, x237);
481
508
  uint32_t x259;
482
509
  fiat_p256_uint1 x260;
483
- fiat_p256_addcarryx_u32(&x259, &x260, 0x0, x255, x258);
510
+ fiat_p256_addcarryx_u32(&x259, &x260, x258, x238, x235);
484
511
  uint32_t x261;
485
512
  fiat_p256_uint1 x262;
486
- fiat_p256_addcarryx_u32(&x261, &x262, x260, x253, x256);
487
- uint32_t x263;
488
- fiat_p256_uint1 x264;
489
- fiat_p256_addcarryx_u32(&x263, &x264, x262, x251, x254);
490
- uint32_t x265;
491
- fiat_p256_uint1 x266;
492
- fiat_p256_addcarryx_u32(&x265, &x266, x264, x249, x252);
493
- uint32_t x267;
494
- fiat_p256_uint1 x268;
495
- fiat_p256_addcarryx_u32(&x267, &x268, x266, x247, x250);
496
- uint32_t x269;
497
- fiat_p256_uint1 x270;
498
- fiat_p256_addcarryx_u32(&x269, &x270, x268, x245, x248);
499
- uint32_t x271;
500
- fiat_p256_uint1 x272;
501
- fiat_p256_addcarryx_u32(&x271, &x272, x270, x243, x246);
502
- uint32_t x273;
503
- fiat_p256_uint1 x274;
504
- fiat_p256_addcarryx_u32(&x273, &x274, x272, 0x0, x244);
505
- uint32_t x275;
506
- fiat_p256_uint1 x276;
507
- fiat_p256_addcarryx_u32(&x275, &x276, 0x0, x257, x225);
508
- uint32_t x277;
509
- fiat_p256_uint1 x278;
510
- fiat_p256_addcarryx_u32(&x277, &x278, x276, x259, x227);
511
- uint32_t x279;
512
- fiat_p256_uint1 x280;
513
- fiat_p256_addcarryx_u32(&x279, &x280, x278, x261, x229);
514
- uint32_t x281;
515
- fiat_p256_uint1 x282;
516
- fiat_p256_addcarryx_u32(&x281, &x282, x280, x263, x231);
513
+ fiat_p256_addcarryx_u32(&x261, &x262, x260, x236, x233);
514
+ uint32_t x263 = (x262 + x234);
515
+ uint32_t x264;
516
+ fiat_p256_uint1 x265;
517
+ fiat_p256_addcarryx_u32(&x264, &x265, 0x0, x216, x247);
518
+ uint32_t x266;
519
+ fiat_p256_uint1 x267;
520
+ fiat_p256_addcarryx_u32(&x266, &x267, x265, x218, x249);
521
+ uint32_t x268;
522
+ fiat_p256_uint1 x269;
523
+ fiat_p256_addcarryx_u32(&x268, &x269, x267, x220, x251);
524
+ uint32_t x270;
525
+ fiat_p256_uint1 x271;
526
+ fiat_p256_addcarryx_u32(&x270, &x271, x269, x222, x253);
527
+ uint32_t x272;
528
+ fiat_p256_uint1 x273;
529
+ fiat_p256_addcarryx_u32(&x272, &x273, x271, x224, x255);
530
+ uint32_t x274;
531
+ fiat_p256_uint1 x275;
532
+ fiat_p256_addcarryx_u32(&x274, &x275, x273, x226, x257);
533
+ uint32_t x276;
534
+ fiat_p256_uint1 x277;
535
+ fiat_p256_addcarryx_u32(&x276, &x277, x275, x228, x259);
536
+ uint32_t x278;
537
+ fiat_p256_uint1 x279;
538
+ fiat_p256_addcarryx_u32(&x278, &x279, x277, x230, x261);
539
+ uint32_t x280;
540
+ fiat_p256_uint1 x281;
541
+ fiat_p256_addcarryx_u32(&x280, &x281, x279, x232, x263);
542
+ uint32_t x282;
517
543
  uint32_t x283;
518
- fiat_p256_uint1 x284;
519
- fiat_p256_addcarryx_u32(&x283, &x284, x282, x265, x233);
544
+ fiat_p256_mulx_u32(&x282, &x283, x264, UINT32_C(0xffffffff));
545
+ uint32_t x284;
520
546
  uint32_t x285;
521
- fiat_p256_uint1 x286;
522
- fiat_p256_addcarryx_u32(&x285, &x286, x284, x267, x235);
547
+ fiat_p256_mulx_u32(&x284, &x285, x264, UINT32_C(0xffffffff));
548
+ uint32_t x286;
523
549
  uint32_t x287;
524
- fiat_p256_uint1 x288;
525
- fiat_p256_addcarryx_u32(&x287, &x288, x286, x269, x237);
550
+ fiat_p256_mulx_u32(&x286, &x287, x264, UINT32_C(0xffffffff));
551
+ uint32_t x288;
526
552
  uint32_t x289;
527
- fiat_p256_uint1 x290;
528
- fiat_p256_addcarryx_u32(&x289, &x290, x288, x271, x239);
529
- uint32_t x291;
530
- fiat_p256_uint1 x292;
531
- fiat_p256_addcarryx_u32(&x291, &x292, x290, x273, x241);
532
- uint32_t x293;
533
- uint32_t x294;
534
- fiat_p256_mulx_u32(&x293, &x294, x275, UINT32_C(0xffffffff));
553
+ fiat_p256_mulx_u32(&x288, &x289, x264, UINT32_C(0xffffffff));
554
+ uint32_t x290;
555
+ fiat_p256_uint1 x291;
556
+ fiat_p256_addcarryx_u32(&x290, &x291, 0x0, x289, x286);
557
+ uint32_t x292;
558
+ fiat_p256_uint1 x293;
559
+ fiat_p256_addcarryx_u32(&x292, &x293, x291, x287, x284);
560
+ uint32_t x294 = (x293 + x285);
535
561
  uint32_t x295;
536
- uint32_t x296;
537
- fiat_p256_mulx_u32(&x295, &x296, x275, UINT32_C(0xffffffff));
562
+ fiat_p256_uint1 x296;
563
+ fiat_p256_addcarryx_u32(&x295, &x296, 0x0, x264, x288);
538
564
  uint32_t x297;
539
- uint32_t x298;
540
- fiat_p256_mulx_u32(&x297, &x298, x275, UINT32_C(0xffffffff));
565
+ fiat_p256_uint1 x298;
566
+ fiat_p256_addcarryx_u32(&x297, &x298, x296, x266, x290);
541
567
  uint32_t x299;
542
- uint32_t x300;
543
- fiat_p256_mulx_u32(&x299, &x300, x275, UINT32_C(0xffffffff));
568
+ fiat_p256_uint1 x300;
569
+ fiat_p256_addcarryx_u32(&x299, &x300, x298, x268, x292);
544
570
  uint32_t x301;
545
571
  fiat_p256_uint1 x302;
546
- fiat_p256_addcarryx_u32(&x301, &x302, 0x0, x297, x300);
572
+ fiat_p256_addcarryx_u32(&x301, &x302, x300, x270, x294);
547
573
  uint32_t x303;
548
574
  fiat_p256_uint1 x304;
549
- fiat_p256_addcarryx_u32(&x303, &x304, x302, x295, x298);
575
+ fiat_p256_addcarryx_u32(&x303, &x304, x302, x272, 0x0);
550
576
  uint32_t x305;
551
577
  fiat_p256_uint1 x306;
552
- fiat_p256_addcarryx_u32(&x305, &x306, x304, 0x0, x296);
578
+ fiat_p256_addcarryx_u32(&x305, &x306, x304, x274, 0x0);
553
579
  uint32_t x307;
554
580
  fiat_p256_uint1 x308;
555
- fiat_p256_addcarryx_u32(&x307, &x308, 0x0, x299, x275);
581
+ fiat_p256_addcarryx_u32(&x307, &x308, x306, x276, x264);
556
582
  uint32_t x309;
557
583
  fiat_p256_uint1 x310;
558
- fiat_p256_addcarryx_u32(&x309, &x310, x308, x301, x277);
584
+ fiat_p256_addcarryx_u32(&x309, &x310, x308, x278, x282);
559
585
  uint32_t x311;
560
586
  fiat_p256_uint1 x312;
561
- fiat_p256_addcarryx_u32(&x311, &x312, x310, x303, x279);
562
- uint32_t x313;
563
- fiat_p256_uint1 x314;
564
- fiat_p256_addcarryx_u32(&x313, &x314, x312, x305, x281);
587
+ fiat_p256_addcarryx_u32(&x311, &x312, x310, x280, x283);
588
+ uint32_t x313 = ((uint32_t)x312 + x281);
589
+ uint32_t x314;
565
590
  uint32_t x315;
566
- fiat_p256_uint1 x316;
567
- fiat_p256_addcarryx_u32(&x315, &x316, x314, 0x0, x283);
591
+ fiat_p256_mulx_u32(&x314, &x315, x4, (arg2[7]));
592
+ uint32_t x316;
568
593
  uint32_t x317;
569
- fiat_p256_uint1 x318;
570
- fiat_p256_addcarryx_u32(&x317, &x318, x316, 0x0, x285);
594
+ fiat_p256_mulx_u32(&x316, &x317, x4, (arg2[6]));
595
+ uint32_t x318;
571
596
  uint32_t x319;
572
- fiat_p256_uint1 x320;
573
- fiat_p256_addcarryx_u32(&x319, &x320, x318, x275, x287);
597
+ fiat_p256_mulx_u32(&x318, &x319, x4, (arg2[5]));
598
+ uint32_t x320;
574
599
  uint32_t x321;
575
- fiat_p256_uint1 x322;
576
- fiat_p256_addcarryx_u32(&x321, &x322, x320, x293, x289);
600
+ fiat_p256_mulx_u32(&x320, &x321, x4, (arg2[4]));
601
+ uint32_t x322;
577
602
  uint32_t x323;
578
- fiat_p256_uint1 x324;
579
- fiat_p256_addcarryx_u32(&x323, &x324, x322, x294, x291);
603
+ fiat_p256_mulx_u32(&x322, &x323, x4, (arg2[3]));
604
+ uint32_t x324;
580
605
  uint32_t x325;
581
- fiat_p256_uint1 x326;
582
- fiat_p256_addcarryx_u32(&x325, &x326, x324, 0x0, x292);
606
+ fiat_p256_mulx_u32(&x324, &x325, x4, (arg2[2]));
607
+ uint32_t x326;
583
608
  uint32_t x327;
609
+ fiat_p256_mulx_u32(&x326, &x327, x4, (arg2[1]));
584
610
  uint32_t x328;
585
- fiat_p256_mulx_u32(&x327, &x328, x4, (arg2[7]));
586
611
  uint32_t x329;
612
+ fiat_p256_mulx_u32(&x328, &x329, x4, (arg2[0]));
587
613
  uint32_t x330;
588
- fiat_p256_mulx_u32(&x329, &x330, x4, (arg2[6]));
589
- uint32_t x331;
614
+ fiat_p256_uint1 x331;
615
+ fiat_p256_addcarryx_u32(&x330, &x331, 0x0, x329, x326);
590
616
  uint32_t x332;
591
- fiat_p256_mulx_u32(&x331, &x332, x4, (arg2[5]));
592
- uint32_t x333;
617
+ fiat_p256_uint1 x333;
618
+ fiat_p256_addcarryx_u32(&x332, &x333, x331, x327, x324);
593
619
  uint32_t x334;
594
- fiat_p256_mulx_u32(&x333, &x334, x4, (arg2[4]));
595
- uint32_t x335;
620
+ fiat_p256_uint1 x335;
621
+ fiat_p256_addcarryx_u32(&x334, &x335, x333, x325, x322);
596
622
  uint32_t x336;
597
- fiat_p256_mulx_u32(&x335, &x336, x4, (arg2[3]));
598
- uint32_t x337;
623
+ fiat_p256_uint1 x337;
624
+ fiat_p256_addcarryx_u32(&x336, &x337, x335, x323, x320);
599
625
  uint32_t x338;
600
- fiat_p256_mulx_u32(&x337, &x338, x4, (arg2[2]));
601
- uint32_t x339;
626
+ fiat_p256_uint1 x339;
627
+ fiat_p256_addcarryx_u32(&x338, &x339, x337, x321, x318);
602
628
  uint32_t x340;
603
- fiat_p256_mulx_u32(&x339, &x340, x4, (arg2[1]));
604
- uint32_t x341;
629
+ fiat_p256_uint1 x341;
630
+ fiat_p256_addcarryx_u32(&x340, &x341, x339, x319, x316);
605
631
  uint32_t x342;
606
- fiat_p256_mulx_u32(&x341, &x342, x4, (arg2[0]));
607
- uint32_t x343;
608
- fiat_p256_uint1 x344;
609
- fiat_p256_addcarryx_u32(&x343, &x344, 0x0, x339, x342);
632
+ fiat_p256_uint1 x343;
633
+ fiat_p256_addcarryx_u32(&x342, &x343, x341, x317, x314);
634
+ uint32_t x344 = (x343 + x315);
610
635
  uint32_t x345;
611
636
  fiat_p256_uint1 x346;
612
- fiat_p256_addcarryx_u32(&x345, &x346, x344, x337, x340);
637
+ fiat_p256_addcarryx_u32(&x345, &x346, 0x0, x297, x328);
613
638
  uint32_t x347;
614
639
  fiat_p256_uint1 x348;
615
- fiat_p256_addcarryx_u32(&x347, &x348, x346, x335, x338);
640
+ fiat_p256_addcarryx_u32(&x347, &x348, x346, x299, x330);
616
641
  uint32_t x349;
617
642
  fiat_p256_uint1 x350;
618
- fiat_p256_addcarryx_u32(&x349, &x350, x348, x333, x336);
643
+ fiat_p256_addcarryx_u32(&x349, &x350, x348, x301, x332);
619
644
  uint32_t x351;
620
645
  fiat_p256_uint1 x352;
621
- fiat_p256_addcarryx_u32(&x351, &x352, x350, x331, x334);
646
+ fiat_p256_addcarryx_u32(&x351, &x352, x350, x303, x334);
622
647
  uint32_t x353;
623
648
  fiat_p256_uint1 x354;
624
- fiat_p256_addcarryx_u32(&x353, &x354, x352, x329, x332);
649
+ fiat_p256_addcarryx_u32(&x353, &x354, x352, x305, x336);
625
650
  uint32_t x355;
626
651
  fiat_p256_uint1 x356;
627
- fiat_p256_addcarryx_u32(&x355, &x356, x354, x327, x330);
652
+ fiat_p256_addcarryx_u32(&x355, &x356, x354, x307, x338);
628
653
  uint32_t x357;
629
654
  fiat_p256_uint1 x358;
630
- fiat_p256_addcarryx_u32(&x357, &x358, x356, 0x0, x328);
655
+ fiat_p256_addcarryx_u32(&x357, &x358, x356, x309, x340);
631
656
  uint32_t x359;
632
657
  fiat_p256_uint1 x360;
633
- fiat_p256_addcarryx_u32(&x359, &x360, 0x0, x341, x309);
658
+ fiat_p256_addcarryx_u32(&x359, &x360, x358, x311, x342);
634
659
  uint32_t x361;
635
660
  fiat_p256_uint1 x362;
636
- fiat_p256_addcarryx_u32(&x361, &x362, x360, x343, x311);
661
+ fiat_p256_addcarryx_u32(&x361, &x362, x360, x313, x344);
637
662
  uint32_t x363;
638
- fiat_p256_uint1 x364;
639
- fiat_p256_addcarryx_u32(&x363, &x364, x362, x345, x313);
663
+ uint32_t x364;
664
+ fiat_p256_mulx_u32(&x363, &x364, x345, UINT32_C(0xffffffff));
640
665
  uint32_t x365;
641
- fiat_p256_uint1 x366;
642
- fiat_p256_addcarryx_u32(&x365, &x366, x364, x347, x315);
666
+ uint32_t x366;
667
+ fiat_p256_mulx_u32(&x365, &x366, x345, UINT32_C(0xffffffff));
643
668
  uint32_t x367;
644
- fiat_p256_uint1 x368;
645
- fiat_p256_addcarryx_u32(&x367, &x368, x366, x349, x317);
669
+ uint32_t x368;
670
+ fiat_p256_mulx_u32(&x367, &x368, x345, UINT32_C(0xffffffff));
646
671
  uint32_t x369;
647
- fiat_p256_uint1 x370;
648
- fiat_p256_addcarryx_u32(&x369, &x370, x368, x351, x319);
672
+ uint32_t x370;
673
+ fiat_p256_mulx_u32(&x369, &x370, x345, UINT32_C(0xffffffff));
649
674
  uint32_t x371;
650
675
  fiat_p256_uint1 x372;
651
- fiat_p256_addcarryx_u32(&x371, &x372, x370, x353, x321);
676
+ fiat_p256_addcarryx_u32(&x371, &x372, 0x0, x370, x367);
652
677
  uint32_t x373;
653
678
  fiat_p256_uint1 x374;
654
- fiat_p256_addcarryx_u32(&x373, &x374, x372, x355, x323);
655
- uint32_t x375;
656
- fiat_p256_uint1 x376;
657
- fiat_p256_addcarryx_u32(&x375, &x376, x374, x357, x325);
658
- uint32_t x377;
679
+ fiat_p256_addcarryx_u32(&x373, &x374, x372, x368, x365);
680
+ uint32_t x375 = (x374 + x366);
681
+ uint32_t x376;
682
+ fiat_p256_uint1 x377;
683
+ fiat_p256_addcarryx_u32(&x376, &x377, 0x0, x345, x369);
659
684
  uint32_t x378;
660
- fiat_p256_mulx_u32(&x377, &x378, x359, UINT32_C(0xffffffff));
661
- uint32_t x379;
685
+ fiat_p256_uint1 x379;
686
+ fiat_p256_addcarryx_u32(&x378, &x379, x377, x347, x371);
662
687
  uint32_t x380;
663
- fiat_p256_mulx_u32(&x379, &x380, x359, UINT32_C(0xffffffff));
664
- uint32_t x381;
688
+ fiat_p256_uint1 x381;
689
+ fiat_p256_addcarryx_u32(&x380, &x381, x379, x349, x373);
665
690
  uint32_t x382;
666
- fiat_p256_mulx_u32(&x381, &x382, x359, UINT32_C(0xffffffff));
667
- uint32_t x383;
691
+ fiat_p256_uint1 x383;
692
+ fiat_p256_addcarryx_u32(&x382, &x383, x381, x351, x375);
668
693
  uint32_t x384;
669
- fiat_p256_mulx_u32(&x383, &x384, x359, UINT32_C(0xffffffff));
670
- uint32_t x385;
671
- fiat_p256_uint1 x386;
672
- fiat_p256_addcarryx_u32(&x385, &x386, 0x0, x381, x384);
673
- uint32_t x387;
674
- fiat_p256_uint1 x388;
675
- fiat_p256_addcarryx_u32(&x387, &x388, x386, x379, x382);
676
- uint32_t x389;
677
- fiat_p256_uint1 x390;
678
- fiat_p256_addcarryx_u32(&x389, &x390, x388, 0x0, x380);
679
- uint32_t x391;
680
- fiat_p256_uint1 x392;
681
- fiat_p256_addcarryx_u32(&x391, &x392, 0x0, x383, x359);
682
- uint32_t x393;
683
- fiat_p256_uint1 x394;
684
- fiat_p256_addcarryx_u32(&x393, &x394, x392, x385, x361);
694
+ fiat_p256_uint1 x385;
695
+ fiat_p256_addcarryx_u32(&x384, &x385, x383, x353, 0x0);
696
+ uint32_t x386;
697
+ fiat_p256_uint1 x387;
698
+ fiat_p256_addcarryx_u32(&x386, &x387, x385, x355, 0x0);
699
+ uint32_t x388;
700
+ fiat_p256_uint1 x389;
701
+ fiat_p256_addcarryx_u32(&x388, &x389, x387, x357, x345);
702
+ uint32_t x390;
703
+ fiat_p256_uint1 x391;
704
+ fiat_p256_addcarryx_u32(&x390, &x391, x389, x359, x363);
705
+ uint32_t x392;
706
+ fiat_p256_uint1 x393;
707
+ fiat_p256_addcarryx_u32(&x392, &x393, x391, x361, x364);
708
+ uint32_t x394 = ((uint32_t)x393 + x362);
685
709
  uint32_t x395;
686
- fiat_p256_uint1 x396;
687
- fiat_p256_addcarryx_u32(&x395, &x396, x394, x387, x363);
710
+ uint32_t x396;
711
+ fiat_p256_mulx_u32(&x395, &x396, x5, (arg2[7]));
688
712
  uint32_t x397;
689
- fiat_p256_uint1 x398;
690
- fiat_p256_addcarryx_u32(&x397, &x398, x396, x389, x365);
713
+ uint32_t x398;
714
+ fiat_p256_mulx_u32(&x397, &x398, x5, (arg2[6]));
691
715
  uint32_t x399;
692
- fiat_p256_uint1 x400;
693
- fiat_p256_addcarryx_u32(&x399, &x400, x398, 0x0, x367);
716
+ uint32_t x400;
717
+ fiat_p256_mulx_u32(&x399, &x400, x5, (arg2[5]));
694
718
  uint32_t x401;
695
- fiat_p256_uint1 x402;
696
- fiat_p256_addcarryx_u32(&x401, &x402, x400, 0x0, x369);
719
+ uint32_t x402;
720
+ fiat_p256_mulx_u32(&x401, &x402, x5, (arg2[4]));
697
721
  uint32_t x403;
698
- fiat_p256_uint1 x404;
699
- fiat_p256_addcarryx_u32(&x403, &x404, x402, x359, x371);
722
+ uint32_t x404;
723
+ fiat_p256_mulx_u32(&x403, &x404, x5, (arg2[3]));
700
724
  uint32_t x405;
701
- fiat_p256_uint1 x406;
702
- fiat_p256_addcarryx_u32(&x405, &x406, x404, x377, x373);
725
+ uint32_t x406;
726
+ fiat_p256_mulx_u32(&x405, &x406, x5, (arg2[2]));
703
727
  uint32_t x407;
704
- fiat_p256_uint1 x408;
705
- fiat_p256_addcarryx_u32(&x407, &x408, x406, x378, x375);
728
+ uint32_t x408;
729
+ fiat_p256_mulx_u32(&x407, &x408, x5, (arg2[1]));
706
730
  uint32_t x409;
707
- fiat_p256_uint1 x410;
708
- fiat_p256_addcarryx_u32(&x409, &x410, x408, 0x0, x376);
731
+ uint32_t x410;
732
+ fiat_p256_mulx_u32(&x409, &x410, x5, (arg2[0]));
709
733
  uint32_t x411;
710
- uint32_t x412;
711
- fiat_p256_mulx_u32(&x411, &x412, x5, (arg2[7]));
734
+ fiat_p256_uint1 x412;
735
+ fiat_p256_addcarryx_u32(&x411, &x412, 0x0, x410, x407);
712
736
  uint32_t x413;
713
- uint32_t x414;
714
- fiat_p256_mulx_u32(&x413, &x414, x5, (arg2[6]));
737
+ fiat_p256_uint1 x414;
738
+ fiat_p256_addcarryx_u32(&x413, &x414, x412, x408, x405);
715
739
  uint32_t x415;
716
- uint32_t x416;
717
- fiat_p256_mulx_u32(&x415, &x416, x5, (arg2[5]));
740
+ fiat_p256_uint1 x416;
741
+ fiat_p256_addcarryx_u32(&x415, &x416, x414, x406, x403);
718
742
  uint32_t x417;
719
- uint32_t x418;
720
- fiat_p256_mulx_u32(&x417, &x418, x5, (arg2[4]));
743
+ fiat_p256_uint1 x418;
744
+ fiat_p256_addcarryx_u32(&x417, &x418, x416, x404, x401);
721
745
  uint32_t x419;
722
- uint32_t x420;
723
- fiat_p256_mulx_u32(&x419, &x420, x5, (arg2[3]));
746
+ fiat_p256_uint1 x420;
747
+ fiat_p256_addcarryx_u32(&x419, &x420, x418, x402, x399);
724
748
  uint32_t x421;
725
- uint32_t x422;
726
- fiat_p256_mulx_u32(&x421, &x422, x5, (arg2[2]));
749
+ fiat_p256_uint1 x422;
750
+ fiat_p256_addcarryx_u32(&x421, &x422, x420, x400, x397);
727
751
  uint32_t x423;
728
- uint32_t x424;
729
- fiat_p256_mulx_u32(&x423, &x424, x5, (arg2[1]));
730
- uint32_t x425;
752
+ fiat_p256_uint1 x424;
753
+ fiat_p256_addcarryx_u32(&x423, &x424, x422, x398, x395);
754
+ uint32_t x425 = (x424 + x396);
731
755
  uint32_t x426;
732
- fiat_p256_mulx_u32(&x425, &x426, x5, (arg2[0]));
733
- uint32_t x427;
734
- fiat_p256_uint1 x428;
735
- fiat_p256_addcarryx_u32(&x427, &x428, 0x0, x423, x426);
736
- uint32_t x429;
737
- fiat_p256_uint1 x430;
738
- fiat_p256_addcarryx_u32(&x429, &x430, x428, x421, x424);
739
- uint32_t x431;
740
- fiat_p256_uint1 x432;
741
- fiat_p256_addcarryx_u32(&x431, &x432, x430, x419, x422);
742
- uint32_t x433;
743
- fiat_p256_uint1 x434;
744
- fiat_p256_addcarryx_u32(&x433, &x434, x432, x417, x420);
745
- uint32_t x435;
746
- fiat_p256_uint1 x436;
747
- fiat_p256_addcarryx_u32(&x435, &x436, x434, x415, x418);
748
- uint32_t x437;
749
- fiat_p256_uint1 x438;
750
- fiat_p256_addcarryx_u32(&x437, &x438, x436, x413, x416);
751
- uint32_t x439;
752
- fiat_p256_uint1 x440;
753
- fiat_p256_addcarryx_u32(&x439, &x440, x438, x411, x414);
754
- uint32_t x441;
755
- fiat_p256_uint1 x442;
756
- fiat_p256_addcarryx_u32(&x441, &x442, x440, 0x0, x412);
757
- uint32_t x443;
758
- fiat_p256_uint1 x444;
759
- fiat_p256_addcarryx_u32(&x443, &x444, 0x0, x425, x393);
756
+ fiat_p256_uint1 x427;
757
+ fiat_p256_addcarryx_u32(&x426, &x427, 0x0, x378, x409);
758
+ uint32_t x428;
759
+ fiat_p256_uint1 x429;
760
+ fiat_p256_addcarryx_u32(&x428, &x429, x427, x380, x411);
761
+ uint32_t x430;
762
+ fiat_p256_uint1 x431;
763
+ fiat_p256_addcarryx_u32(&x430, &x431, x429, x382, x413);
764
+ uint32_t x432;
765
+ fiat_p256_uint1 x433;
766
+ fiat_p256_addcarryx_u32(&x432, &x433, x431, x384, x415);
767
+ uint32_t x434;
768
+ fiat_p256_uint1 x435;
769
+ fiat_p256_addcarryx_u32(&x434, &x435, x433, x386, x417);
770
+ uint32_t x436;
771
+ fiat_p256_uint1 x437;
772
+ fiat_p256_addcarryx_u32(&x436, &x437, x435, x388, x419);
773
+ uint32_t x438;
774
+ fiat_p256_uint1 x439;
775
+ fiat_p256_addcarryx_u32(&x438, &x439, x437, x390, x421);
776
+ uint32_t x440;
777
+ fiat_p256_uint1 x441;
778
+ fiat_p256_addcarryx_u32(&x440, &x441, x439, x392, x423);
779
+ uint32_t x442;
780
+ fiat_p256_uint1 x443;
781
+ fiat_p256_addcarryx_u32(&x442, &x443, x441, x394, x425);
782
+ uint32_t x444;
760
783
  uint32_t x445;
761
- fiat_p256_uint1 x446;
762
- fiat_p256_addcarryx_u32(&x445, &x446, x444, x427, x395);
784
+ fiat_p256_mulx_u32(&x444, &x445, x426, UINT32_C(0xffffffff));
785
+ uint32_t x446;
763
786
  uint32_t x447;
764
- fiat_p256_uint1 x448;
765
- fiat_p256_addcarryx_u32(&x447, &x448, x446, x429, x397);
787
+ fiat_p256_mulx_u32(&x446, &x447, x426, UINT32_C(0xffffffff));
788
+ uint32_t x448;
766
789
  uint32_t x449;
767
- fiat_p256_uint1 x450;
768
- fiat_p256_addcarryx_u32(&x449, &x450, x448, x431, x399);
790
+ fiat_p256_mulx_u32(&x448, &x449, x426, UINT32_C(0xffffffff));
791
+ uint32_t x450;
769
792
  uint32_t x451;
770
- fiat_p256_uint1 x452;
771
- fiat_p256_addcarryx_u32(&x451, &x452, x450, x433, x401);
772
- uint32_t x453;
773
- fiat_p256_uint1 x454;
774
- fiat_p256_addcarryx_u32(&x453, &x454, x452, x435, x403);
775
- uint32_t x455;
776
- fiat_p256_uint1 x456;
777
- fiat_p256_addcarryx_u32(&x455, &x456, x454, x437, x405);
793
+ fiat_p256_mulx_u32(&x450, &x451, x426, UINT32_C(0xffffffff));
794
+ uint32_t x452;
795
+ fiat_p256_uint1 x453;
796
+ fiat_p256_addcarryx_u32(&x452, &x453, 0x0, x451, x448);
797
+ uint32_t x454;
798
+ fiat_p256_uint1 x455;
799
+ fiat_p256_addcarryx_u32(&x454, &x455, x453, x449, x446);
800
+ uint32_t x456 = (x455 + x447);
778
801
  uint32_t x457;
779
802
  fiat_p256_uint1 x458;
780
- fiat_p256_addcarryx_u32(&x457, &x458, x456, x439, x407);
803
+ fiat_p256_addcarryx_u32(&x457, &x458, 0x0, x426, x450);
781
804
  uint32_t x459;
782
805
  fiat_p256_uint1 x460;
783
- fiat_p256_addcarryx_u32(&x459, &x460, x458, x441, x409);
806
+ fiat_p256_addcarryx_u32(&x459, &x460, x458, x428, x452);
784
807
  uint32_t x461;
785
- uint32_t x462;
786
- fiat_p256_mulx_u32(&x461, &x462, x443, UINT32_C(0xffffffff));
808
+ fiat_p256_uint1 x462;
809
+ fiat_p256_addcarryx_u32(&x461, &x462, x460, x430, x454);
787
810
  uint32_t x463;
788
- uint32_t x464;
789
- fiat_p256_mulx_u32(&x463, &x464, x443, UINT32_C(0xffffffff));
811
+ fiat_p256_uint1 x464;
812
+ fiat_p256_addcarryx_u32(&x463, &x464, x462, x432, x456);
790
813
  uint32_t x465;
791
- uint32_t x466;
792
- fiat_p256_mulx_u32(&x465, &x466, x443, UINT32_C(0xffffffff));
814
+ fiat_p256_uint1 x466;
815
+ fiat_p256_addcarryx_u32(&x465, &x466, x464, x434, 0x0);
793
816
  uint32_t x467;
794
- uint32_t x468;
795
- fiat_p256_mulx_u32(&x467, &x468, x443, UINT32_C(0xffffffff));
817
+ fiat_p256_uint1 x468;
818
+ fiat_p256_addcarryx_u32(&x467, &x468, x466, x436, 0x0);
796
819
  uint32_t x469;
797
820
  fiat_p256_uint1 x470;
798
- fiat_p256_addcarryx_u32(&x469, &x470, 0x0, x465, x468);
821
+ fiat_p256_addcarryx_u32(&x469, &x470, x468, x438, x426);
799
822
  uint32_t x471;
800
823
  fiat_p256_uint1 x472;
801
- fiat_p256_addcarryx_u32(&x471, &x472, x470, x463, x466);
824
+ fiat_p256_addcarryx_u32(&x471, &x472, x470, x440, x444);
802
825
  uint32_t x473;
803
826
  fiat_p256_uint1 x474;
804
- fiat_p256_addcarryx_u32(&x473, &x474, x472, 0x0, x464);
805
- uint32_t x475;
806
- fiat_p256_uint1 x476;
807
- fiat_p256_addcarryx_u32(&x475, &x476, 0x0, x467, x443);
827
+ fiat_p256_addcarryx_u32(&x473, &x474, x472, x442, x445);
828
+ uint32_t x475 = ((uint32_t)x474 + x443);
829
+ uint32_t x476;
808
830
  uint32_t x477;
809
- fiat_p256_uint1 x478;
810
- fiat_p256_addcarryx_u32(&x477, &x478, x476, x469, x445);
831
+ fiat_p256_mulx_u32(&x476, &x477, x6, (arg2[7]));
832
+ uint32_t x478;
811
833
  uint32_t x479;
812
- fiat_p256_uint1 x480;
813
- fiat_p256_addcarryx_u32(&x479, &x480, x478, x471, x447);
834
+ fiat_p256_mulx_u32(&x478, &x479, x6, (arg2[6]));
835
+ uint32_t x480;
814
836
  uint32_t x481;
815
- fiat_p256_uint1 x482;
816
- fiat_p256_addcarryx_u32(&x481, &x482, x480, x473, x449);
837
+ fiat_p256_mulx_u32(&x480, &x481, x6, (arg2[5]));
838
+ uint32_t x482;
817
839
  uint32_t x483;
818
- fiat_p256_uint1 x484;
819
- fiat_p256_addcarryx_u32(&x483, &x484, x482, 0x0, x451);
840
+ fiat_p256_mulx_u32(&x482, &x483, x6, (arg2[4]));
841
+ uint32_t x484;
820
842
  uint32_t x485;
821
- fiat_p256_uint1 x486;
822
- fiat_p256_addcarryx_u32(&x485, &x486, x484, 0x0, x453);
843
+ fiat_p256_mulx_u32(&x484, &x485, x6, (arg2[3]));
844
+ uint32_t x486;
823
845
  uint32_t x487;
824
- fiat_p256_uint1 x488;
825
- fiat_p256_addcarryx_u32(&x487, &x488, x486, x443, x455);
846
+ fiat_p256_mulx_u32(&x486, &x487, x6, (arg2[2]));
847
+ uint32_t x488;
826
848
  uint32_t x489;
827
- fiat_p256_uint1 x490;
828
- fiat_p256_addcarryx_u32(&x489, &x490, x488, x461, x457);
849
+ fiat_p256_mulx_u32(&x488, &x489, x6, (arg2[1]));
850
+ uint32_t x490;
829
851
  uint32_t x491;
830
- fiat_p256_uint1 x492;
831
- fiat_p256_addcarryx_u32(&x491, &x492, x490, x462, x459);
832
- uint32_t x493;
833
- fiat_p256_uint1 x494;
834
- fiat_p256_addcarryx_u32(&x493, &x494, x492, 0x0, x460);
835
- uint32_t x495;
852
+ fiat_p256_mulx_u32(&x490, &x491, x6, (arg2[0]));
853
+ uint32_t x492;
854
+ fiat_p256_uint1 x493;
855
+ fiat_p256_addcarryx_u32(&x492, &x493, 0x0, x491, x488);
856
+ uint32_t x494;
857
+ fiat_p256_uint1 x495;
858
+ fiat_p256_addcarryx_u32(&x494, &x495, x493, x489, x486);
836
859
  uint32_t x496;
837
- fiat_p256_mulx_u32(&x495, &x496, x6, (arg2[7]));
838
- uint32_t x497;
860
+ fiat_p256_uint1 x497;
861
+ fiat_p256_addcarryx_u32(&x496, &x497, x495, x487, x484);
839
862
  uint32_t x498;
840
- fiat_p256_mulx_u32(&x497, &x498, x6, (arg2[6]));
841
- uint32_t x499;
863
+ fiat_p256_uint1 x499;
864
+ fiat_p256_addcarryx_u32(&x498, &x499, x497, x485, x482);
842
865
  uint32_t x500;
843
- fiat_p256_mulx_u32(&x499, &x500, x6, (arg2[5]));
844
- uint32_t x501;
866
+ fiat_p256_uint1 x501;
867
+ fiat_p256_addcarryx_u32(&x500, &x501, x499, x483, x480);
845
868
  uint32_t x502;
846
- fiat_p256_mulx_u32(&x501, &x502, x6, (arg2[4]));
847
- uint32_t x503;
869
+ fiat_p256_uint1 x503;
870
+ fiat_p256_addcarryx_u32(&x502, &x503, x501, x481, x478);
848
871
  uint32_t x504;
849
- fiat_p256_mulx_u32(&x503, &x504, x6, (arg2[3]));
850
- uint32_t x505;
851
- uint32_t x506;
852
- fiat_p256_mulx_u32(&x505, &x506, x6, (arg2[2]));
872
+ fiat_p256_uint1 x505;
873
+ fiat_p256_addcarryx_u32(&x504, &x505, x503, x479, x476);
874
+ uint32_t x506 = (x505 + x477);
853
875
  uint32_t x507;
854
- uint32_t x508;
855
- fiat_p256_mulx_u32(&x507, &x508, x6, (arg2[1]));
876
+ fiat_p256_uint1 x508;
877
+ fiat_p256_addcarryx_u32(&x507, &x508, 0x0, x459, x490);
856
878
  uint32_t x509;
857
- uint32_t x510;
858
- fiat_p256_mulx_u32(&x509, &x510, x6, (arg2[0]));
879
+ fiat_p256_uint1 x510;
880
+ fiat_p256_addcarryx_u32(&x509, &x510, x508, x461, x492);
859
881
  uint32_t x511;
860
882
  fiat_p256_uint1 x512;
861
- fiat_p256_addcarryx_u32(&x511, &x512, 0x0, x507, x510);
883
+ fiat_p256_addcarryx_u32(&x511, &x512, x510, x463, x494);
862
884
  uint32_t x513;
863
885
  fiat_p256_uint1 x514;
864
- fiat_p256_addcarryx_u32(&x513, &x514, x512, x505, x508);
886
+ fiat_p256_addcarryx_u32(&x513, &x514, x512, x465, x496);
865
887
  uint32_t x515;
866
888
  fiat_p256_uint1 x516;
867
- fiat_p256_addcarryx_u32(&x515, &x516, x514, x503, x506);
889
+ fiat_p256_addcarryx_u32(&x515, &x516, x514, x467, x498);
868
890
  uint32_t x517;
869
891
  fiat_p256_uint1 x518;
870
- fiat_p256_addcarryx_u32(&x517, &x518, x516, x501, x504);
892
+ fiat_p256_addcarryx_u32(&x517, &x518, x516, x469, x500);
871
893
  uint32_t x519;
872
894
  fiat_p256_uint1 x520;
873
- fiat_p256_addcarryx_u32(&x519, &x520, x518, x499, x502);
895
+ fiat_p256_addcarryx_u32(&x519, &x520, x518, x471, x502);
874
896
  uint32_t x521;
875
897
  fiat_p256_uint1 x522;
876
- fiat_p256_addcarryx_u32(&x521, &x522, x520, x497, x500);
898
+ fiat_p256_addcarryx_u32(&x521, &x522, x520, x473, x504);
877
899
  uint32_t x523;
878
900
  fiat_p256_uint1 x524;
879
- fiat_p256_addcarryx_u32(&x523, &x524, x522, x495, x498);
901
+ fiat_p256_addcarryx_u32(&x523, &x524, x522, x475, x506);
880
902
  uint32_t x525;
881
- fiat_p256_uint1 x526;
882
- fiat_p256_addcarryx_u32(&x525, &x526, x524, 0x0, x496);
903
+ uint32_t x526;
904
+ fiat_p256_mulx_u32(&x525, &x526, x507, UINT32_C(0xffffffff));
883
905
  uint32_t x527;
884
- fiat_p256_uint1 x528;
885
- fiat_p256_addcarryx_u32(&x527, &x528, 0x0, x509, x477);
906
+ uint32_t x528;
907
+ fiat_p256_mulx_u32(&x527, &x528, x507, UINT32_C(0xffffffff));
886
908
  uint32_t x529;
887
- fiat_p256_uint1 x530;
888
- fiat_p256_addcarryx_u32(&x529, &x530, x528, x511, x479);
909
+ uint32_t x530;
910
+ fiat_p256_mulx_u32(&x529, &x530, x507, UINT32_C(0xffffffff));
889
911
  uint32_t x531;
890
- fiat_p256_uint1 x532;
891
- fiat_p256_addcarryx_u32(&x531, &x532, x530, x513, x481);
912
+ uint32_t x532;
913
+ fiat_p256_mulx_u32(&x531, &x532, x507, UINT32_C(0xffffffff));
892
914
  uint32_t x533;
893
915
  fiat_p256_uint1 x534;
894
- fiat_p256_addcarryx_u32(&x533, &x534, x532, x515, x483);
916
+ fiat_p256_addcarryx_u32(&x533, &x534, 0x0, x532, x529);
895
917
  uint32_t x535;
896
918
  fiat_p256_uint1 x536;
897
- fiat_p256_addcarryx_u32(&x535, &x536, x534, x517, x485);
898
- uint32_t x537;
899
- fiat_p256_uint1 x538;
900
- fiat_p256_addcarryx_u32(&x537, &x538, x536, x519, x487);
901
- uint32_t x539;
902
- fiat_p256_uint1 x540;
903
- fiat_p256_addcarryx_u32(&x539, &x540, x538, x521, x489);
904
- uint32_t x541;
905
- fiat_p256_uint1 x542;
906
- fiat_p256_addcarryx_u32(&x541, &x542, x540, x523, x491);
907
- uint32_t x543;
908
- fiat_p256_uint1 x544;
909
- fiat_p256_addcarryx_u32(&x543, &x544, x542, x525, x493);
910
- uint32_t x545;
919
+ fiat_p256_addcarryx_u32(&x535, &x536, x534, x530, x527);
920
+ uint32_t x537 = (x536 + x528);
921
+ uint32_t x538;
922
+ fiat_p256_uint1 x539;
923
+ fiat_p256_addcarryx_u32(&x538, &x539, 0x0, x507, x531);
924
+ uint32_t x540;
925
+ fiat_p256_uint1 x541;
926
+ fiat_p256_addcarryx_u32(&x540, &x541, x539, x509, x533);
927
+ uint32_t x542;
928
+ fiat_p256_uint1 x543;
929
+ fiat_p256_addcarryx_u32(&x542, &x543, x541, x511, x535);
930
+ uint32_t x544;
931
+ fiat_p256_uint1 x545;
932
+ fiat_p256_addcarryx_u32(&x544, &x545, x543, x513, x537);
911
933
  uint32_t x546;
912
- fiat_p256_mulx_u32(&x545, &x546, x527, UINT32_C(0xffffffff));
913
- uint32_t x547;
934
+ fiat_p256_uint1 x547;
935
+ fiat_p256_addcarryx_u32(&x546, &x547, x545, x515, 0x0);
914
936
  uint32_t x548;
915
- fiat_p256_mulx_u32(&x547, &x548, x527, UINT32_C(0xffffffff));
916
- uint32_t x549;
937
+ fiat_p256_uint1 x549;
938
+ fiat_p256_addcarryx_u32(&x548, &x549, x547, x517, 0x0);
917
939
  uint32_t x550;
918
- fiat_p256_mulx_u32(&x549, &x550, x527, UINT32_C(0xffffffff));
919
- uint32_t x551;
940
+ fiat_p256_uint1 x551;
941
+ fiat_p256_addcarryx_u32(&x550, &x551, x549, x519, x507);
920
942
  uint32_t x552;
921
- fiat_p256_mulx_u32(&x551, &x552, x527, UINT32_C(0xffffffff));
922
- uint32_t x553;
923
- fiat_p256_uint1 x554;
924
- fiat_p256_addcarryx_u32(&x553, &x554, 0x0, x549, x552);
925
- uint32_t x555;
926
- fiat_p256_uint1 x556;
927
- fiat_p256_addcarryx_u32(&x555, &x556, x554, x547, x550);
943
+ fiat_p256_uint1 x553;
944
+ fiat_p256_addcarryx_u32(&x552, &x553, x551, x521, x525);
945
+ uint32_t x554;
946
+ fiat_p256_uint1 x555;
947
+ fiat_p256_addcarryx_u32(&x554, &x555, x553, x523, x526);
948
+ uint32_t x556 = ((uint32_t)x555 + x524);
928
949
  uint32_t x557;
929
- fiat_p256_uint1 x558;
930
- fiat_p256_addcarryx_u32(&x557, &x558, x556, 0x0, x548);
950
+ uint32_t x558;
951
+ fiat_p256_mulx_u32(&x557, &x558, x7, (arg2[7]));
931
952
  uint32_t x559;
932
- fiat_p256_uint1 x560;
933
- fiat_p256_addcarryx_u32(&x559, &x560, 0x0, x551, x527);
953
+ uint32_t x560;
954
+ fiat_p256_mulx_u32(&x559, &x560, x7, (arg2[6]));
934
955
  uint32_t x561;
935
- fiat_p256_uint1 x562;
936
- fiat_p256_addcarryx_u32(&x561, &x562, x560, x553, x529);
956
+ uint32_t x562;
957
+ fiat_p256_mulx_u32(&x561, &x562, x7, (arg2[5]));
937
958
  uint32_t x563;
938
- fiat_p256_uint1 x564;
939
- fiat_p256_addcarryx_u32(&x563, &x564, x562, x555, x531);
959
+ uint32_t x564;
960
+ fiat_p256_mulx_u32(&x563, &x564, x7, (arg2[4]));
940
961
  uint32_t x565;
941
- fiat_p256_uint1 x566;
942
- fiat_p256_addcarryx_u32(&x565, &x566, x564, x557, x533);
962
+ uint32_t x566;
963
+ fiat_p256_mulx_u32(&x565, &x566, x7, (arg2[3]));
943
964
  uint32_t x567;
944
- fiat_p256_uint1 x568;
945
- fiat_p256_addcarryx_u32(&x567, &x568, x566, 0x0, x535);
965
+ uint32_t x568;
966
+ fiat_p256_mulx_u32(&x567, &x568, x7, (arg2[2]));
946
967
  uint32_t x569;
947
- fiat_p256_uint1 x570;
948
- fiat_p256_addcarryx_u32(&x569, &x570, x568, 0x0, x537);
968
+ uint32_t x570;
969
+ fiat_p256_mulx_u32(&x569, &x570, x7, (arg2[1]));
949
970
  uint32_t x571;
950
- fiat_p256_uint1 x572;
951
- fiat_p256_addcarryx_u32(&x571, &x572, x570, x527, x539);
971
+ uint32_t x572;
972
+ fiat_p256_mulx_u32(&x571, &x572, x7, (arg2[0]));
952
973
  uint32_t x573;
953
974
  fiat_p256_uint1 x574;
954
- fiat_p256_addcarryx_u32(&x573, &x574, x572, x545, x541);
975
+ fiat_p256_addcarryx_u32(&x573, &x574, 0x0, x572, x569);
955
976
  uint32_t x575;
956
977
  fiat_p256_uint1 x576;
957
- fiat_p256_addcarryx_u32(&x575, &x576, x574, x546, x543);
978
+ fiat_p256_addcarryx_u32(&x575, &x576, x574, x570, x567);
958
979
  uint32_t x577;
959
980
  fiat_p256_uint1 x578;
960
- fiat_p256_addcarryx_u32(&x577, &x578, x576, 0x0, x544);
981
+ fiat_p256_addcarryx_u32(&x577, &x578, x576, x568, x565);
961
982
  uint32_t x579;
962
- uint32_t x580;
963
- fiat_p256_mulx_u32(&x579, &x580, x7, (arg2[7]));
983
+ fiat_p256_uint1 x580;
984
+ fiat_p256_addcarryx_u32(&x579, &x580, x578, x566, x563);
964
985
  uint32_t x581;
965
- uint32_t x582;
966
- fiat_p256_mulx_u32(&x581, &x582, x7, (arg2[6]));
986
+ fiat_p256_uint1 x582;
987
+ fiat_p256_addcarryx_u32(&x581, &x582, x580, x564, x561);
967
988
  uint32_t x583;
968
- uint32_t x584;
969
- fiat_p256_mulx_u32(&x583, &x584, x7, (arg2[5]));
989
+ fiat_p256_uint1 x584;
990
+ fiat_p256_addcarryx_u32(&x583, &x584, x582, x562, x559);
970
991
  uint32_t x585;
971
- uint32_t x586;
972
- fiat_p256_mulx_u32(&x585, &x586, x7, (arg2[4]));
973
- uint32_t x587;
992
+ fiat_p256_uint1 x586;
993
+ fiat_p256_addcarryx_u32(&x585, &x586, x584, x560, x557);
994
+ uint32_t x587 = (x586 + x558);
974
995
  uint32_t x588;
975
- fiat_p256_mulx_u32(&x587, &x588, x7, (arg2[3]));
976
- uint32_t x589;
996
+ fiat_p256_uint1 x589;
997
+ fiat_p256_addcarryx_u32(&x588, &x589, 0x0, x540, x571);
977
998
  uint32_t x590;
978
- fiat_p256_mulx_u32(&x589, &x590, x7, (arg2[2]));
979
- uint32_t x591;
999
+ fiat_p256_uint1 x591;
1000
+ fiat_p256_addcarryx_u32(&x590, &x591, x589, x542, x573);
980
1001
  uint32_t x592;
981
- fiat_p256_mulx_u32(&x591, &x592, x7, (arg2[1]));
982
- uint32_t x593;
1002
+ fiat_p256_uint1 x593;
1003
+ fiat_p256_addcarryx_u32(&x592, &x593, x591, x544, x575);
983
1004
  uint32_t x594;
984
- fiat_p256_mulx_u32(&x593, &x594, x7, (arg2[0]));
985
- uint32_t x595;
986
- fiat_p256_uint1 x596;
987
- fiat_p256_addcarryx_u32(&x595, &x596, 0x0, x591, x594);
988
- uint32_t x597;
989
- fiat_p256_uint1 x598;
990
- fiat_p256_addcarryx_u32(&x597, &x598, x596, x589, x592);
991
- uint32_t x599;
992
- fiat_p256_uint1 x600;
993
- fiat_p256_addcarryx_u32(&x599, &x600, x598, x587, x590);
994
- uint32_t x601;
995
- fiat_p256_uint1 x602;
996
- fiat_p256_addcarryx_u32(&x601, &x602, x600, x585, x588);
997
- uint32_t x603;
998
- fiat_p256_uint1 x604;
999
- fiat_p256_addcarryx_u32(&x603, &x604, x602, x583, x586);
1000
- uint32_t x605;
1001
- fiat_p256_uint1 x606;
1002
- fiat_p256_addcarryx_u32(&x605, &x606, x604, x581, x584);
1005
+ fiat_p256_uint1 x595;
1006
+ fiat_p256_addcarryx_u32(&x594, &x595, x593, x546, x577);
1007
+ uint32_t x596;
1008
+ fiat_p256_uint1 x597;
1009
+ fiat_p256_addcarryx_u32(&x596, &x597, x595, x548, x579);
1010
+ uint32_t x598;
1011
+ fiat_p256_uint1 x599;
1012
+ fiat_p256_addcarryx_u32(&x598, &x599, x597, x550, x581);
1013
+ uint32_t x600;
1014
+ fiat_p256_uint1 x601;
1015
+ fiat_p256_addcarryx_u32(&x600, &x601, x599, x552, x583);
1016
+ uint32_t x602;
1017
+ fiat_p256_uint1 x603;
1018
+ fiat_p256_addcarryx_u32(&x602, &x603, x601, x554, x585);
1019
+ uint32_t x604;
1020
+ fiat_p256_uint1 x605;
1021
+ fiat_p256_addcarryx_u32(&x604, &x605, x603, x556, x587);
1022
+ uint32_t x606;
1003
1023
  uint32_t x607;
1004
- fiat_p256_uint1 x608;
1005
- fiat_p256_addcarryx_u32(&x607, &x608, x606, x579, x582);
1024
+ fiat_p256_mulx_u32(&x606, &x607, x588, UINT32_C(0xffffffff));
1025
+ uint32_t x608;
1006
1026
  uint32_t x609;
1007
- fiat_p256_uint1 x610;
1008
- fiat_p256_addcarryx_u32(&x609, &x610, x608, 0x0, x580);
1027
+ fiat_p256_mulx_u32(&x608, &x609, x588, UINT32_C(0xffffffff));
1028
+ uint32_t x610;
1009
1029
  uint32_t x611;
1010
- fiat_p256_uint1 x612;
1011
- fiat_p256_addcarryx_u32(&x611, &x612, 0x0, x593, x561);
1030
+ fiat_p256_mulx_u32(&x610, &x611, x588, UINT32_C(0xffffffff));
1031
+ uint32_t x612;
1012
1032
  uint32_t x613;
1013
- fiat_p256_uint1 x614;
1014
- fiat_p256_addcarryx_u32(&x613, &x614, x612, x595, x563);
1015
- uint32_t x615;
1016
- fiat_p256_uint1 x616;
1017
- fiat_p256_addcarryx_u32(&x615, &x616, x614, x597, x565);
1018
- uint32_t x617;
1019
- fiat_p256_uint1 x618;
1020
- fiat_p256_addcarryx_u32(&x617, &x618, x616, x599, x567);
1033
+ fiat_p256_mulx_u32(&x612, &x613, x588, UINT32_C(0xffffffff));
1034
+ uint32_t x614;
1035
+ fiat_p256_uint1 x615;
1036
+ fiat_p256_addcarryx_u32(&x614, &x615, 0x0, x613, x610);
1037
+ uint32_t x616;
1038
+ fiat_p256_uint1 x617;
1039
+ fiat_p256_addcarryx_u32(&x616, &x617, x615, x611, x608);
1040
+ uint32_t x618 = (x617 + x609);
1021
1041
  uint32_t x619;
1022
1042
  fiat_p256_uint1 x620;
1023
- fiat_p256_addcarryx_u32(&x619, &x620, x618, x601, x569);
1043
+ fiat_p256_addcarryx_u32(&x619, &x620, 0x0, x588, x612);
1024
1044
  uint32_t x621;
1025
1045
  fiat_p256_uint1 x622;
1026
- fiat_p256_addcarryx_u32(&x621, &x622, x620, x603, x571);
1046
+ fiat_p256_addcarryx_u32(&x621, &x622, x620, x590, x614);
1027
1047
  uint32_t x623;
1028
1048
  fiat_p256_uint1 x624;
1029
- fiat_p256_addcarryx_u32(&x623, &x624, x622, x605, x573);
1049
+ fiat_p256_addcarryx_u32(&x623, &x624, x622, x592, x616);
1030
1050
  uint32_t x625;
1031
1051
  fiat_p256_uint1 x626;
1032
- fiat_p256_addcarryx_u32(&x625, &x626, x624, x607, x575);
1052
+ fiat_p256_addcarryx_u32(&x625, &x626, x624, x594, x618);
1033
1053
  uint32_t x627;
1034
1054
  fiat_p256_uint1 x628;
1035
- fiat_p256_addcarryx_u32(&x627, &x628, x626, x609, x577);
1055
+ fiat_p256_addcarryx_u32(&x627, &x628, x626, x596, 0x0);
1036
1056
  uint32_t x629;
1037
- uint32_t x630;
1038
- fiat_p256_mulx_u32(&x629, &x630, x611, UINT32_C(0xffffffff));
1057
+ fiat_p256_uint1 x630;
1058
+ fiat_p256_addcarryx_u32(&x629, &x630, x628, x598, 0x0);
1039
1059
  uint32_t x631;
1040
- uint32_t x632;
1041
- fiat_p256_mulx_u32(&x631, &x632, x611, UINT32_C(0xffffffff));
1060
+ fiat_p256_uint1 x632;
1061
+ fiat_p256_addcarryx_u32(&x631, &x632, x630, x600, x588);
1042
1062
  uint32_t x633;
1043
- uint32_t x634;
1044
- fiat_p256_mulx_u32(&x633, &x634, x611, UINT32_C(0xffffffff));
1063
+ fiat_p256_uint1 x634;
1064
+ fiat_p256_addcarryx_u32(&x633, &x634, x632, x602, x606);
1045
1065
  uint32_t x635;
1046
- uint32_t x636;
1047
- fiat_p256_mulx_u32(&x635, &x636, x611, UINT32_C(0xffffffff));
1048
- uint32_t x637;
1049
- fiat_p256_uint1 x638;
1050
- fiat_p256_addcarryx_u32(&x637, &x638, 0x0, x633, x636);
1051
- uint32_t x639;
1052
- fiat_p256_uint1 x640;
1053
- fiat_p256_addcarryx_u32(&x639, &x640, x638, x631, x634);
1054
- uint32_t x641;
1055
- fiat_p256_uint1 x642;
1056
- fiat_p256_addcarryx_u32(&x641, &x642, x640, 0x0, x632);
1057
- uint32_t x643;
1058
- fiat_p256_uint1 x644;
1059
- fiat_p256_addcarryx_u32(&x643, &x644, 0x0, x635, x611);
1060
- uint32_t x645;
1061
- fiat_p256_uint1 x646;
1062
- fiat_p256_addcarryx_u32(&x645, &x646, x644, x637, x613);
1063
- uint32_t x647;
1064
- fiat_p256_uint1 x648;
1065
- fiat_p256_addcarryx_u32(&x647, &x648, x646, x639, x615);
1066
- uint32_t x649;
1067
- fiat_p256_uint1 x650;
1068
- fiat_p256_addcarryx_u32(&x649, &x650, x648, x641, x617);
1069
- uint32_t x651;
1070
- fiat_p256_uint1 x652;
1071
- fiat_p256_addcarryx_u32(&x651, &x652, x650, 0x0, x619);
1072
- uint32_t x653;
1073
- fiat_p256_uint1 x654;
1074
- fiat_p256_addcarryx_u32(&x653, &x654, x652, 0x0, x621);
1075
- uint32_t x655;
1076
- fiat_p256_uint1 x656;
1077
- fiat_p256_addcarryx_u32(&x655, &x656, x654, x611, x623);
1066
+ fiat_p256_uint1 x636;
1067
+ fiat_p256_addcarryx_u32(&x635, &x636, x634, x604, x607);
1068
+ uint32_t x637 = ((uint32_t)x636 + x605);
1069
+ uint32_t x638;
1070
+ fiat_p256_uint1 x639;
1071
+ fiat_p256_subborrowx_u32(&x638, &x639, 0x0, x621, UINT32_C(0xffffffff));
1072
+ uint32_t x640;
1073
+ fiat_p256_uint1 x641;
1074
+ fiat_p256_subborrowx_u32(&x640, &x641, x639, x623, UINT32_C(0xffffffff));
1075
+ uint32_t x642;
1076
+ fiat_p256_uint1 x643;
1077
+ fiat_p256_subborrowx_u32(&x642, &x643, x641, x625, UINT32_C(0xffffffff));
1078
+ uint32_t x644;
1079
+ fiat_p256_uint1 x645;
1080
+ fiat_p256_subborrowx_u32(&x644, &x645, x643, x627, 0x0);
1081
+ uint32_t x646;
1082
+ fiat_p256_uint1 x647;
1083
+ fiat_p256_subborrowx_u32(&x646, &x647, x645, x629, 0x0);
1084
+ uint32_t x648;
1085
+ fiat_p256_uint1 x649;
1086
+ fiat_p256_subborrowx_u32(&x648, &x649, x647, x631, 0x0);
1087
+ uint32_t x650;
1088
+ fiat_p256_uint1 x651;
1089
+ fiat_p256_subborrowx_u32(&x650, &x651, x649, x633, 0x1);
1090
+ uint32_t x652;
1091
+ fiat_p256_uint1 x653;
1092
+ fiat_p256_subborrowx_u32(&x652, &x653, x651, x635, UINT32_C(0xffffffff));
1093
+ uint32_t x654;
1094
+ fiat_p256_uint1 x655;
1095
+ fiat_p256_subborrowx_u32(&x654, &x655, x653, x637, 0x0);
1096
+ uint32_t x656;
1097
+ fiat_p256_cmovznz_u32(&x656, x655, x638, x621);
1078
1098
  uint32_t x657;
1079
- fiat_p256_uint1 x658;
1080
- fiat_p256_addcarryx_u32(&x657, &x658, x656, x629, x625);
1099
+ fiat_p256_cmovznz_u32(&x657, x655, x640, x623);
1100
+ uint32_t x658;
1101
+ fiat_p256_cmovznz_u32(&x658, x655, x642, x625);
1081
1102
  uint32_t x659;
1082
- fiat_p256_uint1 x660;
1083
- fiat_p256_addcarryx_u32(&x659, &x660, x658, x630, x627);
1103
+ fiat_p256_cmovznz_u32(&x659, x655, x644, x627);
1104
+ uint32_t x660;
1105
+ fiat_p256_cmovznz_u32(&x660, x655, x646, x629);
1084
1106
  uint32_t x661;
1085
- fiat_p256_uint1 x662;
1086
- fiat_p256_addcarryx_u32(&x661, &x662, x660, 0x0, x628);
1107
+ fiat_p256_cmovznz_u32(&x661, x655, x648, x631);
1108
+ uint32_t x662;
1109
+ fiat_p256_cmovznz_u32(&x662, x655, x650, x633);
1087
1110
  uint32_t x663;
1088
- fiat_p256_uint1 x664;
1089
- fiat_p256_subborrowx_u32(&x663, &x664, 0x0, x645, UINT32_C(0xffffffff));
1090
- uint32_t x665;
1091
- fiat_p256_uint1 x666;
1092
- fiat_p256_subborrowx_u32(&x665, &x666, x664, x647, UINT32_C(0xffffffff));
1093
- uint32_t x667;
1094
- fiat_p256_uint1 x668;
1095
- fiat_p256_subborrowx_u32(&x667, &x668, x666, x649, UINT32_C(0xffffffff));
1096
- uint32_t x669;
1097
- fiat_p256_uint1 x670;
1098
- fiat_p256_subborrowx_u32(&x669, &x670, x668, x651, 0x0);
1099
- uint32_t x671;
1100
- fiat_p256_uint1 x672;
1101
- fiat_p256_subborrowx_u32(&x671, &x672, x670, x653, 0x0);
1102
- uint32_t x673;
1103
- fiat_p256_uint1 x674;
1104
- fiat_p256_subborrowx_u32(&x673, &x674, x672, x655, 0x0);
1105
- uint32_t x675;
1106
- fiat_p256_uint1 x676;
1107
- fiat_p256_subborrowx_u32(&x675, &x676, x674, x657, 0x1);
1108
- uint32_t x677;
1109
- fiat_p256_uint1 x678;
1110
- fiat_p256_subborrowx_u32(&x677, &x678, x676, x659, UINT32_C(0xffffffff));
1111
- uint32_t x679;
1112
- fiat_p256_uint1 x680;
1113
- fiat_p256_subborrowx_u32(&x679, &x680, x678, x661, 0x0);
1114
- uint32_t x681;
1115
- fiat_p256_cmovznz_u32(&x681, x680, x663, x645);
1116
- uint32_t x682;
1117
- fiat_p256_cmovznz_u32(&x682, x680, x665, x647);
1118
- uint32_t x683;
1119
- fiat_p256_cmovznz_u32(&x683, x680, x667, x649);
1120
- uint32_t x684;
1121
- fiat_p256_cmovznz_u32(&x684, x680, x669, x651);
1122
- uint32_t x685;
1123
- fiat_p256_cmovznz_u32(&x685, x680, x671, x653);
1124
- uint32_t x686;
1125
- fiat_p256_cmovznz_u32(&x686, x680, x673, x655);
1126
- uint32_t x687;
1127
- fiat_p256_cmovznz_u32(&x687, x680, x675, x657);
1128
- uint32_t x688;
1129
- fiat_p256_cmovznz_u32(&x688, x680, x677, x659);
1130
- out1[0] = x681;
1131
- out1[1] = x682;
1132
- out1[2] = x683;
1133
- out1[3] = x684;
1134
- out1[4] = x685;
1135
- out1[5] = x686;
1136
- out1[6] = x687;
1137
- out1[7] = x688;
1111
+ fiat_p256_cmovznz_u32(&x663, x655, x652, x635);
1112
+ out1[0] = x656;
1113
+ out1[1] = x657;
1114
+ out1[2] = x658;
1115
+ out1[3] = x659;
1116
+ out1[4] = x660;
1117
+ out1[5] = x661;
1118
+ out1[6] = x662;
1119
+ out1[7] = x663;
1138
1120
  }
1139
1121
 
1140
1122
  /*
1123
+ * The function fiat_p256_square squares a field element in the Montgomery domain.
1124
+ * Preconditions:
1125
+ * 0 ≤ eval arg1 < m
1126
+ * Postconditions:
1127
+ * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
1128
+ * 0 ≤ eval out1 < m
1129
+ *
1141
1130
  * Input Bounds:
1142
1131
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
1143
1132
  * Output Bounds:
@@ -1178,1015 +1167,974 @@ static void fiat_p256_square(uint32_t out1[8], const uint32_t arg1[8]) {
1178
1167
  fiat_p256_mulx_u32(&x23, &x24, x8, (arg1[0]));
1179
1168
  uint32_t x25;
1180
1169
  fiat_p256_uint1 x26;
1181
- fiat_p256_addcarryx_u32(&x25, &x26, 0x0, x21, x24);
1170
+ fiat_p256_addcarryx_u32(&x25, &x26, 0x0, x24, x21);
1182
1171
  uint32_t x27;
1183
1172
  fiat_p256_uint1 x28;
1184
- fiat_p256_addcarryx_u32(&x27, &x28, x26, x19, x22);
1173
+ fiat_p256_addcarryx_u32(&x27, &x28, x26, x22, x19);
1185
1174
  uint32_t x29;
1186
1175
  fiat_p256_uint1 x30;
1187
- fiat_p256_addcarryx_u32(&x29, &x30, x28, x17, x20);
1176
+ fiat_p256_addcarryx_u32(&x29, &x30, x28, x20, x17);
1188
1177
  uint32_t x31;
1189
1178
  fiat_p256_uint1 x32;
1190
- fiat_p256_addcarryx_u32(&x31, &x32, x30, x15, x18);
1179
+ fiat_p256_addcarryx_u32(&x31, &x32, x30, x18, x15);
1191
1180
  uint32_t x33;
1192
1181
  fiat_p256_uint1 x34;
1193
- fiat_p256_addcarryx_u32(&x33, &x34, x32, x13, x16);
1182
+ fiat_p256_addcarryx_u32(&x33, &x34, x32, x16, x13);
1194
1183
  uint32_t x35;
1195
1184
  fiat_p256_uint1 x36;
1196
- fiat_p256_addcarryx_u32(&x35, &x36, x34, x11, x14);
1185
+ fiat_p256_addcarryx_u32(&x35, &x36, x34, x14, x11);
1197
1186
  uint32_t x37;
1198
1187
  fiat_p256_uint1 x38;
1199
- fiat_p256_addcarryx_u32(&x37, &x38, x36, x9, x12);
1200
- uint32_t x39;
1201
- fiat_p256_uint1 x40;
1202
- fiat_p256_addcarryx_u32(&x39, &x40, x38, 0x0, x10);
1188
+ fiat_p256_addcarryx_u32(&x37, &x38, x36, x12, x9);
1189
+ uint32_t x39 = (x38 + x10);
1190
+ uint32_t x40;
1203
1191
  uint32_t x41;
1192
+ fiat_p256_mulx_u32(&x40, &x41, x23, UINT32_C(0xffffffff));
1204
1193
  uint32_t x42;
1205
- fiat_p256_mulx_u32(&x41, &x42, x23, UINT32_C(0xffffffff));
1206
1194
  uint32_t x43;
1195
+ fiat_p256_mulx_u32(&x42, &x43, x23, UINT32_C(0xffffffff));
1207
1196
  uint32_t x44;
1208
- fiat_p256_mulx_u32(&x43, &x44, x23, UINT32_C(0xffffffff));
1209
1197
  uint32_t x45;
1198
+ fiat_p256_mulx_u32(&x44, &x45, x23, UINT32_C(0xffffffff));
1210
1199
  uint32_t x46;
1211
- fiat_p256_mulx_u32(&x45, &x46, x23, UINT32_C(0xffffffff));
1212
1200
  uint32_t x47;
1201
+ fiat_p256_mulx_u32(&x46, &x47, x23, UINT32_C(0xffffffff));
1213
1202
  uint32_t x48;
1214
- fiat_p256_mulx_u32(&x47, &x48, x23, UINT32_C(0xffffffff));
1215
- uint32_t x49;
1216
- fiat_p256_uint1 x50;
1217
- fiat_p256_addcarryx_u32(&x49, &x50, 0x0, x45, x48);
1218
- uint32_t x51;
1219
- fiat_p256_uint1 x52;
1220
- fiat_p256_addcarryx_u32(&x51, &x52, x50, x43, x46);
1203
+ fiat_p256_uint1 x49;
1204
+ fiat_p256_addcarryx_u32(&x48, &x49, 0x0, x47, x44);
1205
+ uint32_t x50;
1206
+ fiat_p256_uint1 x51;
1207
+ fiat_p256_addcarryx_u32(&x50, &x51, x49, x45, x42);
1208
+ uint32_t x52 = (x51 + x43);
1221
1209
  uint32_t x53;
1222
1210
  fiat_p256_uint1 x54;
1223
- fiat_p256_addcarryx_u32(&x53, &x54, x52, 0x0, x44);
1211
+ fiat_p256_addcarryx_u32(&x53, &x54, 0x0, x23, x46);
1224
1212
  uint32_t x55;
1225
1213
  fiat_p256_uint1 x56;
1226
- fiat_p256_addcarryx_u32(&x55, &x56, 0x0, x47, x23);
1214
+ fiat_p256_addcarryx_u32(&x55, &x56, x54, x25, x48);
1227
1215
  uint32_t x57;
1228
1216
  fiat_p256_uint1 x58;
1229
- fiat_p256_addcarryx_u32(&x57, &x58, x56, x49, x25);
1217
+ fiat_p256_addcarryx_u32(&x57, &x58, x56, x27, x50);
1230
1218
  uint32_t x59;
1231
1219
  fiat_p256_uint1 x60;
1232
- fiat_p256_addcarryx_u32(&x59, &x60, x58, x51, x27);
1220
+ fiat_p256_addcarryx_u32(&x59, &x60, x58, x29, x52);
1233
1221
  uint32_t x61;
1234
1222
  fiat_p256_uint1 x62;
1235
- fiat_p256_addcarryx_u32(&x61, &x62, x60, x53, x29);
1223
+ fiat_p256_addcarryx_u32(&x61, &x62, x60, x31, 0x0);
1236
1224
  uint32_t x63;
1237
1225
  fiat_p256_uint1 x64;
1238
- fiat_p256_addcarryx_u32(&x63, &x64, x62, 0x0, x31);
1226
+ fiat_p256_addcarryx_u32(&x63, &x64, x62, x33, 0x0);
1239
1227
  uint32_t x65;
1240
1228
  fiat_p256_uint1 x66;
1241
- fiat_p256_addcarryx_u32(&x65, &x66, x64, 0x0, x33);
1229
+ fiat_p256_addcarryx_u32(&x65, &x66, x64, x35, x23);
1242
1230
  uint32_t x67;
1243
1231
  fiat_p256_uint1 x68;
1244
- fiat_p256_addcarryx_u32(&x67, &x68, x66, x23, x35);
1232
+ fiat_p256_addcarryx_u32(&x67, &x68, x66, x37, x40);
1245
1233
  uint32_t x69;
1246
1234
  fiat_p256_uint1 x70;
1247
- fiat_p256_addcarryx_u32(&x69, &x70, x68, x41, x37);
1235
+ fiat_p256_addcarryx_u32(&x69, &x70, x68, x39, x41);
1248
1236
  uint32_t x71;
1249
- fiat_p256_uint1 x72;
1250
- fiat_p256_addcarryx_u32(&x71, &x72, x70, x42, x39);
1237
+ uint32_t x72;
1238
+ fiat_p256_mulx_u32(&x71, &x72, x1, (arg1[7]));
1251
1239
  uint32_t x73;
1252
- fiat_p256_uint1 x74;
1253
- fiat_p256_addcarryx_u32(&x73, &x74, x72, 0x0, 0x0);
1240
+ uint32_t x74;
1241
+ fiat_p256_mulx_u32(&x73, &x74, x1, (arg1[6]));
1254
1242
  uint32_t x75;
1255
1243
  uint32_t x76;
1256
- fiat_p256_mulx_u32(&x75, &x76, x1, (arg1[7]));
1244
+ fiat_p256_mulx_u32(&x75, &x76, x1, (arg1[5]));
1257
1245
  uint32_t x77;
1258
1246
  uint32_t x78;
1259
- fiat_p256_mulx_u32(&x77, &x78, x1, (arg1[6]));
1247
+ fiat_p256_mulx_u32(&x77, &x78, x1, (arg1[4]));
1260
1248
  uint32_t x79;
1261
1249
  uint32_t x80;
1262
- fiat_p256_mulx_u32(&x79, &x80, x1, (arg1[5]));
1250
+ fiat_p256_mulx_u32(&x79, &x80, x1, (arg1[3]));
1263
1251
  uint32_t x81;
1264
1252
  uint32_t x82;
1265
- fiat_p256_mulx_u32(&x81, &x82, x1, (arg1[4]));
1253
+ fiat_p256_mulx_u32(&x81, &x82, x1, (arg1[2]));
1266
1254
  uint32_t x83;
1267
1255
  uint32_t x84;
1268
- fiat_p256_mulx_u32(&x83, &x84, x1, (arg1[3]));
1256
+ fiat_p256_mulx_u32(&x83, &x84, x1, (arg1[1]));
1269
1257
  uint32_t x85;
1270
1258
  uint32_t x86;
1271
- fiat_p256_mulx_u32(&x85, &x86, x1, (arg1[2]));
1259
+ fiat_p256_mulx_u32(&x85, &x86, x1, (arg1[0]));
1272
1260
  uint32_t x87;
1273
- uint32_t x88;
1274
- fiat_p256_mulx_u32(&x87, &x88, x1, (arg1[1]));
1261
+ fiat_p256_uint1 x88;
1262
+ fiat_p256_addcarryx_u32(&x87, &x88, 0x0, x86, x83);
1275
1263
  uint32_t x89;
1276
- uint32_t x90;
1277
- fiat_p256_mulx_u32(&x89, &x90, x1, (arg1[0]));
1264
+ fiat_p256_uint1 x90;
1265
+ fiat_p256_addcarryx_u32(&x89, &x90, x88, x84, x81);
1278
1266
  uint32_t x91;
1279
1267
  fiat_p256_uint1 x92;
1280
- fiat_p256_addcarryx_u32(&x91, &x92, 0x0, x87, x90);
1268
+ fiat_p256_addcarryx_u32(&x91, &x92, x90, x82, x79);
1281
1269
  uint32_t x93;
1282
1270
  fiat_p256_uint1 x94;
1283
- fiat_p256_addcarryx_u32(&x93, &x94, x92, x85, x88);
1271
+ fiat_p256_addcarryx_u32(&x93, &x94, x92, x80, x77);
1284
1272
  uint32_t x95;
1285
1273
  fiat_p256_uint1 x96;
1286
- fiat_p256_addcarryx_u32(&x95, &x96, x94, x83, x86);
1274
+ fiat_p256_addcarryx_u32(&x95, &x96, x94, x78, x75);
1287
1275
  uint32_t x97;
1288
1276
  fiat_p256_uint1 x98;
1289
- fiat_p256_addcarryx_u32(&x97, &x98, x96, x81, x84);
1277
+ fiat_p256_addcarryx_u32(&x97, &x98, x96, x76, x73);
1290
1278
  uint32_t x99;
1291
1279
  fiat_p256_uint1 x100;
1292
- fiat_p256_addcarryx_u32(&x99, &x100, x98, x79, x82);
1293
- uint32_t x101;
1294
- fiat_p256_uint1 x102;
1295
- fiat_p256_addcarryx_u32(&x101, &x102, x100, x77, x80);
1296
- uint32_t x103;
1297
- fiat_p256_uint1 x104;
1298
- fiat_p256_addcarryx_u32(&x103, &x104, x102, x75, x78);
1299
- uint32_t x105;
1300
- fiat_p256_uint1 x106;
1301
- fiat_p256_addcarryx_u32(&x105, &x106, x104, 0x0, x76);
1302
- uint32_t x107;
1303
- fiat_p256_uint1 x108;
1304
- fiat_p256_addcarryx_u32(&x107, &x108, 0x0, x89, x57);
1305
- uint32_t x109;
1306
- fiat_p256_uint1 x110;
1307
- fiat_p256_addcarryx_u32(&x109, &x110, x108, x91, x59);
1308
- uint32_t x111;
1309
- fiat_p256_uint1 x112;
1310
- fiat_p256_addcarryx_u32(&x111, &x112, x110, x93, x61);
1311
- uint32_t x113;
1312
- fiat_p256_uint1 x114;
1313
- fiat_p256_addcarryx_u32(&x113, &x114, x112, x95, x63);
1314
- uint32_t x115;
1315
- fiat_p256_uint1 x116;
1316
- fiat_p256_addcarryx_u32(&x115, &x116, x114, x97, x65);
1317
- uint32_t x117;
1318
- fiat_p256_uint1 x118;
1319
- fiat_p256_addcarryx_u32(&x117, &x118, x116, x99, x67);
1320
- uint32_t x119;
1321
- fiat_p256_uint1 x120;
1322
- fiat_p256_addcarryx_u32(&x119, &x120, x118, x101, x69);
1280
+ fiat_p256_addcarryx_u32(&x99, &x100, x98, x74, x71);
1281
+ uint32_t x101 = (x100 + x72);
1282
+ uint32_t x102;
1283
+ fiat_p256_uint1 x103;
1284
+ fiat_p256_addcarryx_u32(&x102, &x103, 0x0, x55, x85);
1285
+ uint32_t x104;
1286
+ fiat_p256_uint1 x105;
1287
+ fiat_p256_addcarryx_u32(&x104, &x105, x103, x57, x87);
1288
+ uint32_t x106;
1289
+ fiat_p256_uint1 x107;
1290
+ fiat_p256_addcarryx_u32(&x106, &x107, x105, x59, x89);
1291
+ uint32_t x108;
1292
+ fiat_p256_uint1 x109;
1293
+ fiat_p256_addcarryx_u32(&x108, &x109, x107, x61, x91);
1294
+ uint32_t x110;
1295
+ fiat_p256_uint1 x111;
1296
+ fiat_p256_addcarryx_u32(&x110, &x111, x109, x63, x93);
1297
+ uint32_t x112;
1298
+ fiat_p256_uint1 x113;
1299
+ fiat_p256_addcarryx_u32(&x112, &x113, x111, x65, x95);
1300
+ uint32_t x114;
1301
+ fiat_p256_uint1 x115;
1302
+ fiat_p256_addcarryx_u32(&x114, &x115, x113, x67, x97);
1303
+ uint32_t x116;
1304
+ fiat_p256_uint1 x117;
1305
+ fiat_p256_addcarryx_u32(&x116, &x117, x115, x69, x99);
1306
+ uint32_t x118;
1307
+ fiat_p256_uint1 x119;
1308
+ fiat_p256_addcarryx_u32(&x118, &x119, x117, x70, x101);
1309
+ uint32_t x120;
1323
1310
  uint32_t x121;
1324
- fiat_p256_uint1 x122;
1325
- fiat_p256_addcarryx_u32(&x121, &x122, x120, x103, x71);
1311
+ fiat_p256_mulx_u32(&x120, &x121, x102, UINT32_C(0xffffffff));
1312
+ uint32_t x122;
1326
1313
  uint32_t x123;
1327
- fiat_p256_uint1 x124;
1328
- fiat_p256_addcarryx_u32(&x123, &x124, x122, x105, (fiat_p256_uint1)x73);
1314
+ fiat_p256_mulx_u32(&x122, &x123, x102, UINT32_C(0xffffffff));
1315
+ uint32_t x124;
1329
1316
  uint32_t x125;
1317
+ fiat_p256_mulx_u32(&x124, &x125, x102, UINT32_C(0xffffffff));
1330
1318
  uint32_t x126;
1331
- fiat_p256_mulx_u32(&x125, &x126, x107, UINT32_C(0xffffffff));
1332
1319
  uint32_t x127;
1320
+ fiat_p256_mulx_u32(&x126, &x127, x102, UINT32_C(0xffffffff));
1333
1321
  uint32_t x128;
1334
- fiat_p256_mulx_u32(&x127, &x128, x107, UINT32_C(0xffffffff));
1335
- uint32_t x129;
1322
+ fiat_p256_uint1 x129;
1323
+ fiat_p256_addcarryx_u32(&x128, &x129, 0x0, x127, x124);
1336
1324
  uint32_t x130;
1337
- fiat_p256_mulx_u32(&x129, &x130, x107, UINT32_C(0xffffffff));
1338
- uint32_t x131;
1339
- uint32_t x132;
1340
- fiat_p256_mulx_u32(&x131, &x132, x107, UINT32_C(0xffffffff));
1325
+ fiat_p256_uint1 x131;
1326
+ fiat_p256_addcarryx_u32(&x130, &x131, x129, x125, x122);
1327
+ uint32_t x132 = (x131 + x123);
1341
1328
  uint32_t x133;
1342
1329
  fiat_p256_uint1 x134;
1343
- fiat_p256_addcarryx_u32(&x133, &x134, 0x0, x129, x132);
1330
+ fiat_p256_addcarryx_u32(&x133, &x134, 0x0, x102, x126);
1344
1331
  uint32_t x135;
1345
1332
  fiat_p256_uint1 x136;
1346
- fiat_p256_addcarryx_u32(&x135, &x136, x134, x127, x130);
1333
+ fiat_p256_addcarryx_u32(&x135, &x136, x134, x104, x128);
1347
1334
  uint32_t x137;
1348
1335
  fiat_p256_uint1 x138;
1349
- fiat_p256_addcarryx_u32(&x137, &x138, x136, 0x0, x128);
1336
+ fiat_p256_addcarryx_u32(&x137, &x138, x136, x106, x130);
1350
1337
  uint32_t x139;
1351
1338
  fiat_p256_uint1 x140;
1352
- fiat_p256_addcarryx_u32(&x139, &x140, 0x0, x131, x107);
1339
+ fiat_p256_addcarryx_u32(&x139, &x140, x138, x108, x132);
1353
1340
  uint32_t x141;
1354
1341
  fiat_p256_uint1 x142;
1355
- fiat_p256_addcarryx_u32(&x141, &x142, x140, x133, x109);
1342
+ fiat_p256_addcarryx_u32(&x141, &x142, x140, x110, 0x0);
1356
1343
  uint32_t x143;
1357
1344
  fiat_p256_uint1 x144;
1358
- fiat_p256_addcarryx_u32(&x143, &x144, x142, x135, x111);
1345
+ fiat_p256_addcarryx_u32(&x143, &x144, x142, x112, 0x0);
1359
1346
  uint32_t x145;
1360
1347
  fiat_p256_uint1 x146;
1361
- fiat_p256_addcarryx_u32(&x145, &x146, x144, x137, x113);
1348
+ fiat_p256_addcarryx_u32(&x145, &x146, x144, x114, x102);
1362
1349
  uint32_t x147;
1363
1350
  fiat_p256_uint1 x148;
1364
- fiat_p256_addcarryx_u32(&x147, &x148, x146, 0x0, x115);
1351
+ fiat_p256_addcarryx_u32(&x147, &x148, x146, x116, x120);
1365
1352
  uint32_t x149;
1366
1353
  fiat_p256_uint1 x150;
1367
- fiat_p256_addcarryx_u32(&x149, &x150, x148, 0x0, x117);
1368
- uint32_t x151;
1369
- fiat_p256_uint1 x152;
1370
- fiat_p256_addcarryx_u32(&x151, &x152, x150, x107, x119);
1354
+ fiat_p256_addcarryx_u32(&x149, &x150, x148, x118, x121);
1355
+ uint32_t x151 = ((uint32_t)x150 + x119);
1356
+ uint32_t x152;
1371
1357
  uint32_t x153;
1372
- fiat_p256_uint1 x154;
1373
- fiat_p256_addcarryx_u32(&x153, &x154, x152, x125, x121);
1358
+ fiat_p256_mulx_u32(&x152, &x153, x2, (arg1[7]));
1359
+ uint32_t x154;
1374
1360
  uint32_t x155;
1375
- fiat_p256_uint1 x156;
1376
- fiat_p256_addcarryx_u32(&x155, &x156, x154, x126, x123);
1361
+ fiat_p256_mulx_u32(&x154, &x155, x2, (arg1[6]));
1362
+ uint32_t x156;
1377
1363
  uint32_t x157;
1378
- fiat_p256_uint1 x158;
1379
- fiat_p256_addcarryx_u32(&x157, &x158, x156, 0x0, x124);
1364
+ fiat_p256_mulx_u32(&x156, &x157, x2, (arg1[5]));
1365
+ uint32_t x158;
1380
1366
  uint32_t x159;
1367
+ fiat_p256_mulx_u32(&x158, &x159, x2, (arg1[4]));
1381
1368
  uint32_t x160;
1382
- fiat_p256_mulx_u32(&x159, &x160, x2, (arg1[7]));
1383
1369
  uint32_t x161;
1370
+ fiat_p256_mulx_u32(&x160, &x161, x2, (arg1[3]));
1384
1371
  uint32_t x162;
1385
- fiat_p256_mulx_u32(&x161, &x162, x2, (arg1[6]));
1386
1372
  uint32_t x163;
1373
+ fiat_p256_mulx_u32(&x162, &x163, x2, (arg1[2]));
1387
1374
  uint32_t x164;
1388
- fiat_p256_mulx_u32(&x163, &x164, x2, (arg1[5]));
1389
1375
  uint32_t x165;
1376
+ fiat_p256_mulx_u32(&x164, &x165, x2, (arg1[1]));
1390
1377
  uint32_t x166;
1391
- fiat_p256_mulx_u32(&x165, &x166, x2, (arg1[4]));
1392
1378
  uint32_t x167;
1379
+ fiat_p256_mulx_u32(&x166, &x167, x2, (arg1[0]));
1393
1380
  uint32_t x168;
1394
- fiat_p256_mulx_u32(&x167, &x168, x2, (arg1[3]));
1395
- uint32_t x169;
1381
+ fiat_p256_uint1 x169;
1382
+ fiat_p256_addcarryx_u32(&x168, &x169, 0x0, x167, x164);
1396
1383
  uint32_t x170;
1397
- fiat_p256_mulx_u32(&x169, &x170, x2, (arg1[2]));
1398
- uint32_t x171;
1384
+ fiat_p256_uint1 x171;
1385
+ fiat_p256_addcarryx_u32(&x170, &x171, x169, x165, x162);
1399
1386
  uint32_t x172;
1400
- fiat_p256_mulx_u32(&x171, &x172, x2, (arg1[1]));
1401
- uint32_t x173;
1387
+ fiat_p256_uint1 x173;
1388
+ fiat_p256_addcarryx_u32(&x172, &x173, x171, x163, x160);
1402
1389
  uint32_t x174;
1403
- fiat_p256_mulx_u32(&x173, &x174, x2, (arg1[0]));
1404
- uint32_t x175;
1405
- fiat_p256_uint1 x176;
1406
- fiat_p256_addcarryx_u32(&x175, &x176, 0x0, x171, x174);
1407
- uint32_t x177;
1408
- fiat_p256_uint1 x178;
1409
- fiat_p256_addcarryx_u32(&x177, &x178, x176, x169, x172);
1410
- uint32_t x179;
1411
- fiat_p256_uint1 x180;
1412
- fiat_p256_addcarryx_u32(&x179, &x180, x178, x167, x170);
1413
- uint32_t x181;
1414
- fiat_p256_uint1 x182;
1415
- fiat_p256_addcarryx_u32(&x181, &x182, x180, x165, x168);
1390
+ fiat_p256_uint1 x175;
1391
+ fiat_p256_addcarryx_u32(&x174, &x175, x173, x161, x158);
1392
+ uint32_t x176;
1393
+ fiat_p256_uint1 x177;
1394
+ fiat_p256_addcarryx_u32(&x176, &x177, x175, x159, x156);
1395
+ uint32_t x178;
1396
+ fiat_p256_uint1 x179;
1397
+ fiat_p256_addcarryx_u32(&x178, &x179, x177, x157, x154);
1398
+ uint32_t x180;
1399
+ fiat_p256_uint1 x181;
1400
+ fiat_p256_addcarryx_u32(&x180, &x181, x179, x155, x152);
1401
+ uint32_t x182 = (x181 + x153);
1416
1402
  uint32_t x183;
1417
1403
  fiat_p256_uint1 x184;
1418
- fiat_p256_addcarryx_u32(&x183, &x184, x182, x163, x166);
1404
+ fiat_p256_addcarryx_u32(&x183, &x184, 0x0, x135, x166);
1419
1405
  uint32_t x185;
1420
1406
  fiat_p256_uint1 x186;
1421
- fiat_p256_addcarryx_u32(&x185, &x186, x184, x161, x164);
1407
+ fiat_p256_addcarryx_u32(&x185, &x186, x184, x137, x168);
1422
1408
  uint32_t x187;
1423
1409
  fiat_p256_uint1 x188;
1424
- fiat_p256_addcarryx_u32(&x187, &x188, x186, x159, x162);
1410
+ fiat_p256_addcarryx_u32(&x187, &x188, x186, x139, x170);
1425
1411
  uint32_t x189;
1426
1412
  fiat_p256_uint1 x190;
1427
- fiat_p256_addcarryx_u32(&x189, &x190, x188, 0x0, x160);
1413
+ fiat_p256_addcarryx_u32(&x189, &x190, x188, x141, x172);
1428
1414
  uint32_t x191;
1429
1415
  fiat_p256_uint1 x192;
1430
- fiat_p256_addcarryx_u32(&x191, &x192, 0x0, x173, x141);
1416
+ fiat_p256_addcarryx_u32(&x191, &x192, x190, x143, x174);
1431
1417
  uint32_t x193;
1432
1418
  fiat_p256_uint1 x194;
1433
- fiat_p256_addcarryx_u32(&x193, &x194, x192, x175, x143);
1419
+ fiat_p256_addcarryx_u32(&x193, &x194, x192, x145, x176);
1434
1420
  uint32_t x195;
1435
1421
  fiat_p256_uint1 x196;
1436
- fiat_p256_addcarryx_u32(&x195, &x196, x194, x177, x145);
1422
+ fiat_p256_addcarryx_u32(&x195, &x196, x194, x147, x178);
1437
1423
  uint32_t x197;
1438
1424
  fiat_p256_uint1 x198;
1439
- fiat_p256_addcarryx_u32(&x197, &x198, x196, x179, x147);
1425
+ fiat_p256_addcarryx_u32(&x197, &x198, x196, x149, x180);
1440
1426
  uint32_t x199;
1441
1427
  fiat_p256_uint1 x200;
1442
- fiat_p256_addcarryx_u32(&x199, &x200, x198, x181, x149);
1428
+ fiat_p256_addcarryx_u32(&x199, &x200, x198, x151, x182);
1443
1429
  uint32_t x201;
1444
- fiat_p256_uint1 x202;
1445
- fiat_p256_addcarryx_u32(&x201, &x202, x200, x183, x151);
1430
+ uint32_t x202;
1431
+ fiat_p256_mulx_u32(&x201, &x202, x183, UINT32_C(0xffffffff));
1446
1432
  uint32_t x203;
1447
- fiat_p256_uint1 x204;
1448
- fiat_p256_addcarryx_u32(&x203, &x204, x202, x185, x153);
1433
+ uint32_t x204;
1434
+ fiat_p256_mulx_u32(&x203, &x204, x183, UINT32_C(0xffffffff));
1449
1435
  uint32_t x205;
1450
- fiat_p256_uint1 x206;
1451
- fiat_p256_addcarryx_u32(&x205, &x206, x204, x187, x155);
1436
+ uint32_t x206;
1437
+ fiat_p256_mulx_u32(&x205, &x206, x183, UINT32_C(0xffffffff));
1452
1438
  uint32_t x207;
1453
- fiat_p256_uint1 x208;
1454
- fiat_p256_addcarryx_u32(&x207, &x208, x206, x189, x157);
1439
+ uint32_t x208;
1440
+ fiat_p256_mulx_u32(&x207, &x208, x183, UINT32_C(0xffffffff));
1455
1441
  uint32_t x209;
1456
- uint32_t x210;
1457
- fiat_p256_mulx_u32(&x209, &x210, x191, UINT32_C(0xffffffff));
1442
+ fiat_p256_uint1 x210;
1443
+ fiat_p256_addcarryx_u32(&x209, &x210, 0x0, x208, x205);
1458
1444
  uint32_t x211;
1459
- uint32_t x212;
1460
- fiat_p256_mulx_u32(&x211, &x212, x191, UINT32_C(0xffffffff));
1461
- uint32_t x213;
1445
+ fiat_p256_uint1 x212;
1446
+ fiat_p256_addcarryx_u32(&x211, &x212, x210, x206, x203);
1447
+ uint32_t x213 = (x212 + x204);
1462
1448
  uint32_t x214;
1463
- fiat_p256_mulx_u32(&x213, &x214, x191, UINT32_C(0xffffffff));
1464
- uint32_t x215;
1449
+ fiat_p256_uint1 x215;
1450
+ fiat_p256_addcarryx_u32(&x214, &x215, 0x0, x183, x207);
1465
1451
  uint32_t x216;
1466
- fiat_p256_mulx_u32(&x215, &x216, x191, UINT32_C(0xffffffff));
1467
- uint32_t x217;
1468
- fiat_p256_uint1 x218;
1469
- fiat_p256_addcarryx_u32(&x217, &x218, 0x0, x213, x216);
1470
- uint32_t x219;
1471
- fiat_p256_uint1 x220;
1472
- fiat_p256_addcarryx_u32(&x219, &x220, x218, x211, x214);
1473
- uint32_t x221;
1474
- fiat_p256_uint1 x222;
1475
- fiat_p256_addcarryx_u32(&x221, &x222, x220, 0x0, x212);
1476
- uint32_t x223;
1477
- fiat_p256_uint1 x224;
1478
- fiat_p256_addcarryx_u32(&x223, &x224, 0x0, x215, x191);
1479
- uint32_t x225;
1480
- fiat_p256_uint1 x226;
1481
- fiat_p256_addcarryx_u32(&x225, &x226, x224, x217, x193);
1482
- uint32_t x227;
1483
- fiat_p256_uint1 x228;
1484
- fiat_p256_addcarryx_u32(&x227, &x228, x226, x219, x195);
1485
- uint32_t x229;
1486
- fiat_p256_uint1 x230;
1487
- fiat_p256_addcarryx_u32(&x229, &x230, x228, x221, x197);
1488
- uint32_t x231;
1489
- fiat_p256_uint1 x232;
1490
- fiat_p256_addcarryx_u32(&x231, &x232, x230, 0x0, x199);
1452
+ fiat_p256_uint1 x217;
1453
+ fiat_p256_addcarryx_u32(&x216, &x217, x215, x185, x209);
1454
+ uint32_t x218;
1455
+ fiat_p256_uint1 x219;
1456
+ fiat_p256_addcarryx_u32(&x218, &x219, x217, x187, x211);
1457
+ uint32_t x220;
1458
+ fiat_p256_uint1 x221;
1459
+ fiat_p256_addcarryx_u32(&x220, &x221, x219, x189, x213);
1460
+ uint32_t x222;
1461
+ fiat_p256_uint1 x223;
1462
+ fiat_p256_addcarryx_u32(&x222, &x223, x221, x191, 0x0);
1463
+ uint32_t x224;
1464
+ fiat_p256_uint1 x225;
1465
+ fiat_p256_addcarryx_u32(&x224, &x225, x223, x193, 0x0);
1466
+ uint32_t x226;
1467
+ fiat_p256_uint1 x227;
1468
+ fiat_p256_addcarryx_u32(&x226, &x227, x225, x195, x183);
1469
+ uint32_t x228;
1470
+ fiat_p256_uint1 x229;
1471
+ fiat_p256_addcarryx_u32(&x228, &x229, x227, x197, x201);
1472
+ uint32_t x230;
1473
+ fiat_p256_uint1 x231;
1474
+ fiat_p256_addcarryx_u32(&x230, &x231, x229, x199, x202);
1475
+ uint32_t x232 = ((uint32_t)x231 + x200);
1491
1476
  uint32_t x233;
1492
- fiat_p256_uint1 x234;
1493
- fiat_p256_addcarryx_u32(&x233, &x234, x232, 0x0, x201);
1477
+ uint32_t x234;
1478
+ fiat_p256_mulx_u32(&x233, &x234, x3, (arg1[7]));
1494
1479
  uint32_t x235;
1495
- fiat_p256_uint1 x236;
1496
- fiat_p256_addcarryx_u32(&x235, &x236, x234, x191, x203);
1480
+ uint32_t x236;
1481
+ fiat_p256_mulx_u32(&x235, &x236, x3, (arg1[6]));
1497
1482
  uint32_t x237;
1498
- fiat_p256_uint1 x238;
1499
- fiat_p256_addcarryx_u32(&x237, &x238, x236, x209, x205);
1483
+ uint32_t x238;
1484
+ fiat_p256_mulx_u32(&x237, &x238, x3, (arg1[5]));
1500
1485
  uint32_t x239;
1501
- fiat_p256_uint1 x240;
1502
- fiat_p256_addcarryx_u32(&x239, &x240, x238, x210, x207);
1486
+ uint32_t x240;
1487
+ fiat_p256_mulx_u32(&x239, &x240, x3, (arg1[4]));
1503
1488
  uint32_t x241;
1504
- fiat_p256_uint1 x242;
1505
- fiat_p256_addcarryx_u32(&x241, &x242, x240, 0x0, x208);
1489
+ uint32_t x242;
1490
+ fiat_p256_mulx_u32(&x241, &x242, x3, (arg1[3]));
1506
1491
  uint32_t x243;
1507
1492
  uint32_t x244;
1508
- fiat_p256_mulx_u32(&x243, &x244, x3, (arg1[7]));
1493
+ fiat_p256_mulx_u32(&x243, &x244, x3, (arg1[2]));
1509
1494
  uint32_t x245;
1510
1495
  uint32_t x246;
1511
- fiat_p256_mulx_u32(&x245, &x246, x3, (arg1[6]));
1496
+ fiat_p256_mulx_u32(&x245, &x246, x3, (arg1[1]));
1512
1497
  uint32_t x247;
1513
1498
  uint32_t x248;
1514
- fiat_p256_mulx_u32(&x247, &x248, x3, (arg1[5]));
1499
+ fiat_p256_mulx_u32(&x247, &x248, x3, (arg1[0]));
1515
1500
  uint32_t x249;
1516
- uint32_t x250;
1517
- fiat_p256_mulx_u32(&x249, &x250, x3, (arg1[4]));
1501
+ fiat_p256_uint1 x250;
1502
+ fiat_p256_addcarryx_u32(&x249, &x250, 0x0, x248, x245);
1518
1503
  uint32_t x251;
1519
- uint32_t x252;
1520
- fiat_p256_mulx_u32(&x251, &x252, x3, (arg1[3]));
1504
+ fiat_p256_uint1 x252;
1505
+ fiat_p256_addcarryx_u32(&x251, &x252, x250, x246, x243);
1521
1506
  uint32_t x253;
1522
- uint32_t x254;
1523
- fiat_p256_mulx_u32(&x253, &x254, x3, (arg1[2]));
1507
+ fiat_p256_uint1 x254;
1508
+ fiat_p256_addcarryx_u32(&x253, &x254, x252, x244, x241);
1524
1509
  uint32_t x255;
1525
- uint32_t x256;
1526
- fiat_p256_mulx_u32(&x255, &x256, x3, (arg1[1]));
1510
+ fiat_p256_uint1 x256;
1511
+ fiat_p256_addcarryx_u32(&x255, &x256, x254, x242, x239);
1527
1512
  uint32_t x257;
1528
- uint32_t x258;
1529
- fiat_p256_mulx_u32(&x257, &x258, x3, (arg1[0]));
1513
+ fiat_p256_uint1 x258;
1514
+ fiat_p256_addcarryx_u32(&x257, &x258, x256, x240, x237);
1530
1515
  uint32_t x259;
1531
1516
  fiat_p256_uint1 x260;
1532
- fiat_p256_addcarryx_u32(&x259, &x260, 0x0, x255, x258);
1517
+ fiat_p256_addcarryx_u32(&x259, &x260, x258, x238, x235);
1533
1518
  uint32_t x261;
1534
1519
  fiat_p256_uint1 x262;
1535
- fiat_p256_addcarryx_u32(&x261, &x262, x260, x253, x256);
1536
- uint32_t x263;
1537
- fiat_p256_uint1 x264;
1538
- fiat_p256_addcarryx_u32(&x263, &x264, x262, x251, x254);
1539
- uint32_t x265;
1540
- fiat_p256_uint1 x266;
1541
- fiat_p256_addcarryx_u32(&x265, &x266, x264, x249, x252);
1542
- uint32_t x267;
1543
- fiat_p256_uint1 x268;
1544
- fiat_p256_addcarryx_u32(&x267, &x268, x266, x247, x250);
1545
- uint32_t x269;
1546
- fiat_p256_uint1 x270;
1547
- fiat_p256_addcarryx_u32(&x269, &x270, x268, x245, x248);
1548
- uint32_t x271;
1549
- fiat_p256_uint1 x272;
1550
- fiat_p256_addcarryx_u32(&x271, &x272, x270, x243, x246);
1551
- uint32_t x273;
1552
- fiat_p256_uint1 x274;
1553
- fiat_p256_addcarryx_u32(&x273, &x274, x272, 0x0, x244);
1554
- uint32_t x275;
1555
- fiat_p256_uint1 x276;
1556
- fiat_p256_addcarryx_u32(&x275, &x276, 0x0, x257, x225);
1557
- uint32_t x277;
1558
- fiat_p256_uint1 x278;
1559
- fiat_p256_addcarryx_u32(&x277, &x278, x276, x259, x227);
1560
- uint32_t x279;
1561
- fiat_p256_uint1 x280;
1562
- fiat_p256_addcarryx_u32(&x279, &x280, x278, x261, x229);
1563
- uint32_t x281;
1564
- fiat_p256_uint1 x282;
1565
- fiat_p256_addcarryx_u32(&x281, &x282, x280, x263, x231);
1520
+ fiat_p256_addcarryx_u32(&x261, &x262, x260, x236, x233);
1521
+ uint32_t x263 = (x262 + x234);
1522
+ uint32_t x264;
1523
+ fiat_p256_uint1 x265;
1524
+ fiat_p256_addcarryx_u32(&x264, &x265, 0x0, x216, x247);
1525
+ uint32_t x266;
1526
+ fiat_p256_uint1 x267;
1527
+ fiat_p256_addcarryx_u32(&x266, &x267, x265, x218, x249);
1528
+ uint32_t x268;
1529
+ fiat_p256_uint1 x269;
1530
+ fiat_p256_addcarryx_u32(&x268, &x269, x267, x220, x251);
1531
+ uint32_t x270;
1532
+ fiat_p256_uint1 x271;
1533
+ fiat_p256_addcarryx_u32(&x270, &x271, x269, x222, x253);
1534
+ uint32_t x272;
1535
+ fiat_p256_uint1 x273;
1536
+ fiat_p256_addcarryx_u32(&x272, &x273, x271, x224, x255);
1537
+ uint32_t x274;
1538
+ fiat_p256_uint1 x275;
1539
+ fiat_p256_addcarryx_u32(&x274, &x275, x273, x226, x257);
1540
+ uint32_t x276;
1541
+ fiat_p256_uint1 x277;
1542
+ fiat_p256_addcarryx_u32(&x276, &x277, x275, x228, x259);
1543
+ uint32_t x278;
1544
+ fiat_p256_uint1 x279;
1545
+ fiat_p256_addcarryx_u32(&x278, &x279, x277, x230, x261);
1546
+ uint32_t x280;
1547
+ fiat_p256_uint1 x281;
1548
+ fiat_p256_addcarryx_u32(&x280, &x281, x279, x232, x263);
1549
+ uint32_t x282;
1566
1550
  uint32_t x283;
1567
- fiat_p256_uint1 x284;
1568
- fiat_p256_addcarryx_u32(&x283, &x284, x282, x265, x233);
1551
+ fiat_p256_mulx_u32(&x282, &x283, x264, UINT32_C(0xffffffff));
1552
+ uint32_t x284;
1569
1553
  uint32_t x285;
1570
- fiat_p256_uint1 x286;
1571
- fiat_p256_addcarryx_u32(&x285, &x286, x284, x267, x235);
1554
+ fiat_p256_mulx_u32(&x284, &x285, x264, UINT32_C(0xffffffff));
1555
+ uint32_t x286;
1572
1556
  uint32_t x287;
1573
- fiat_p256_uint1 x288;
1574
- fiat_p256_addcarryx_u32(&x287, &x288, x286, x269, x237);
1557
+ fiat_p256_mulx_u32(&x286, &x287, x264, UINT32_C(0xffffffff));
1558
+ uint32_t x288;
1575
1559
  uint32_t x289;
1576
- fiat_p256_uint1 x290;
1577
- fiat_p256_addcarryx_u32(&x289, &x290, x288, x271, x239);
1578
- uint32_t x291;
1579
- fiat_p256_uint1 x292;
1580
- fiat_p256_addcarryx_u32(&x291, &x292, x290, x273, x241);
1581
- uint32_t x293;
1582
- uint32_t x294;
1583
- fiat_p256_mulx_u32(&x293, &x294, x275, UINT32_C(0xffffffff));
1560
+ fiat_p256_mulx_u32(&x288, &x289, x264, UINT32_C(0xffffffff));
1561
+ uint32_t x290;
1562
+ fiat_p256_uint1 x291;
1563
+ fiat_p256_addcarryx_u32(&x290, &x291, 0x0, x289, x286);
1564
+ uint32_t x292;
1565
+ fiat_p256_uint1 x293;
1566
+ fiat_p256_addcarryx_u32(&x292, &x293, x291, x287, x284);
1567
+ uint32_t x294 = (x293 + x285);
1584
1568
  uint32_t x295;
1585
- uint32_t x296;
1586
- fiat_p256_mulx_u32(&x295, &x296, x275, UINT32_C(0xffffffff));
1569
+ fiat_p256_uint1 x296;
1570
+ fiat_p256_addcarryx_u32(&x295, &x296, 0x0, x264, x288);
1587
1571
  uint32_t x297;
1588
- uint32_t x298;
1589
- fiat_p256_mulx_u32(&x297, &x298, x275, UINT32_C(0xffffffff));
1572
+ fiat_p256_uint1 x298;
1573
+ fiat_p256_addcarryx_u32(&x297, &x298, x296, x266, x290);
1590
1574
  uint32_t x299;
1591
- uint32_t x300;
1592
- fiat_p256_mulx_u32(&x299, &x300, x275, UINT32_C(0xffffffff));
1575
+ fiat_p256_uint1 x300;
1576
+ fiat_p256_addcarryx_u32(&x299, &x300, x298, x268, x292);
1593
1577
  uint32_t x301;
1594
1578
  fiat_p256_uint1 x302;
1595
- fiat_p256_addcarryx_u32(&x301, &x302, 0x0, x297, x300);
1579
+ fiat_p256_addcarryx_u32(&x301, &x302, x300, x270, x294);
1596
1580
  uint32_t x303;
1597
1581
  fiat_p256_uint1 x304;
1598
- fiat_p256_addcarryx_u32(&x303, &x304, x302, x295, x298);
1582
+ fiat_p256_addcarryx_u32(&x303, &x304, x302, x272, 0x0);
1599
1583
  uint32_t x305;
1600
1584
  fiat_p256_uint1 x306;
1601
- fiat_p256_addcarryx_u32(&x305, &x306, x304, 0x0, x296);
1585
+ fiat_p256_addcarryx_u32(&x305, &x306, x304, x274, 0x0);
1602
1586
  uint32_t x307;
1603
1587
  fiat_p256_uint1 x308;
1604
- fiat_p256_addcarryx_u32(&x307, &x308, 0x0, x299, x275);
1588
+ fiat_p256_addcarryx_u32(&x307, &x308, x306, x276, x264);
1605
1589
  uint32_t x309;
1606
1590
  fiat_p256_uint1 x310;
1607
- fiat_p256_addcarryx_u32(&x309, &x310, x308, x301, x277);
1591
+ fiat_p256_addcarryx_u32(&x309, &x310, x308, x278, x282);
1608
1592
  uint32_t x311;
1609
1593
  fiat_p256_uint1 x312;
1610
- fiat_p256_addcarryx_u32(&x311, &x312, x310, x303, x279);
1611
- uint32_t x313;
1612
- fiat_p256_uint1 x314;
1613
- fiat_p256_addcarryx_u32(&x313, &x314, x312, x305, x281);
1594
+ fiat_p256_addcarryx_u32(&x311, &x312, x310, x280, x283);
1595
+ uint32_t x313 = ((uint32_t)x312 + x281);
1596
+ uint32_t x314;
1614
1597
  uint32_t x315;
1615
- fiat_p256_uint1 x316;
1616
- fiat_p256_addcarryx_u32(&x315, &x316, x314, 0x0, x283);
1598
+ fiat_p256_mulx_u32(&x314, &x315, x4, (arg1[7]));
1599
+ uint32_t x316;
1617
1600
  uint32_t x317;
1618
- fiat_p256_uint1 x318;
1619
- fiat_p256_addcarryx_u32(&x317, &x318, x316, 0x0, x285);
1601
+ fiat_p256_mulx_u32(&x316, &x317, x4, (arg1[6]));
1602
+ uint32_t x318;
1620
1603
  uint32_t x319;
1621
- fiat_p256_uint1 x320;
1622
- fiat_p256_addcarryx_u32(&x319, &x320, x318, x275, x287);
1604
+ fiat_p256_mulx_u32(&x318, &x319, x4, (arg1[5]));
1605
+ uint32_t x320;
1623
1606
  uint32_t x321;
1624
- fiat_p256_uint1 x322;
1625
- fiat_p256_addcarryx_u32(&x321, &x322, x320, x293, x289);
1607
+ fiat_p256_mulx_u32(&x320, &x321, x4, (arg1[4]));
1608
+ uint32_t x322;
1626
1609
  uint32_t x323;
1627
- fiat_p256_uint1 x324;
1628
- fiat_p256_addcarryx_u32(&x323, &x324, x322, x294, x291);
1610
+ fiat_p256_mulx_u32(&x322, &x323, x4, (arg1[3]));
1611
+ uint32_t x324;
1629
1612
  uint32_t x325;
1630
- fiat_p256_uint1 x326;
1631
- fiat_p256_addcarryx_u32(&x325, &x326, x324, 0x0, x292);
1613
+ fiat_p256_mulx_u32(&x324, &x325, x4, (arg1[2]));
1614
+ uint32_t x326;
1632
1615
  uint32_t x327;
1616
+ fiat_p256_mulx_u32(&x326, &x327, x4, (arg1[1]));
1633
1617
  uint32_t x328;
1634
- fiat_p256_mulx_u32(&x327, &x328, x4, (arg1[7]));
1635
1618
  uint32_t x329;
1619
+ fiat_p256_mulx_u32(&x328, &x329, x4, (arg1[0]));
1636
1620
  uint32_t x330;
1637
- fiat_p256_mulx_u32(&x329, &x330, x4, (arg1[6]));
1638
- uint32_t x331;
1621
+ fiat_p256_uint1 x331;
1622
+ fiat_p256_addcarryx_u32(&x330, &x331, 0x0, x329, x326);
1639
1623
  uint32_t x332;
1640
- fiat_p256_mulx_u32(&x331, &x332, x4, (arg1[5]));
1641
- uint32_t x333;
1624
+ fiat_p256_uint1 x333;
1625
+ fiat_p256_addcarryx_u32(&x332, &x333, x331, x327, x324);
1642
1626
  uint32_t x334;
1643
- fiat_p256_mulx_u32(&x333, &x334, x4, (arg1[4]));
1644
- uint32_t x335;
1627
+ fiat_p256_uint1 x335;
1628
+ fiat_p256_addcarryx_u32(&x334, &x335, x333, x325, x322);
1645
1629
  uint32_t x336;
1646
- fiat_p256_mulx_u32(&x335, &x336, x4, (arg1[3]));
1647
- uint32_t x337;
1630
+ fiat_p256_uint1 x337;
1631
+ fiat_p256_addcarryx_u32(&x336, &x337, x335, x323, x320);
1648
1632
  uint32_t x338;
1649
- fiat_p256_mulx_u32(&x337, &x338, x4, (arg1[2]));
1650
- uint32_t x339;
1633
+ fiat_p256_uint1 x339;
1634
+ fiat_p256_addcarryx_u32(&x338, &x339, x337, x321, x318);
1651
1635
  uint32_t x340;
1652
- fiat_p256_mulx_u32(&x339, &x340, x4, (arg1[1]));
1653
- uint32_t x341;
1636
+ fiat_p256_uint1 x341;
1637
+ fiat_p256_addcarryx_u32(&x340, &x341, x339, x319, x316);
1654
1638
  uint32_t x342;
1655
- fiat_p256_mulx_u32(&x341, &x342, x4, (arg1[0]));
1656
- uint32_t x343;
1657
- fiat_p256_uint1 x344;
1658
- fiat_p256_addcarryx_u32(&x343, &x344, 0x0, x339, x342);
1639
+ fiat_p256_uint1 x343;
1640
+ fiat_p256_addcarryx_u32(&x342, &x343, x341, x317, x314);
1641
+ uint32_t x344 = (x343 + x315);
1659
1642
  uint32_t x345;
1660
1643
  fiat_p256_uint1 x346;
1661
- fiat_p256_addcarryx_u32(&x345, &x346, x344, x337, x340);
1644
+ fiat_p256_addcarryx_u32(&x345, &x346, 0x0, x297, x328);
1662
1645
  uint32_t x347;
1663
1646
  fiat_p256_uint1 x348;
1664
- fiat_p256_addcarryx_u32(&x347, &x348, x346, x335, x338);
1647
+ fiat_p256_addcarryx_u32(&x347, &x348, x346, x299, x330);
1665
1648
  uint32_t x349;
1666
1649
  fiat_p256_uint1 x350;
1667
- fiat_p256_addcarryx_u32(&x349, &x350, x348, x333, x336);
1650
+ fiat_p256_addcarryx_u32(&x349, &x350, x348, x301, x332);
1668
1651
  uint32_t x351;
1669
1652
  fiat_p256_uint1 x352;
1670
- fiat_p256_addcarryx_u32(&x351, &x352, x350, x331, x334);
1653
+ fiat_p256_addcarryx_u32(&x351, &x352, x350, x303, x334);
1671
1654
  uint32_t x353;
1672
1655
  fiat_p256_uint1 x354;
1673
- fiat_p256_addcarryx_u32(&x353, &x354, x352, x329, x332);
1656
+ fiat_p256_addcarryx_u32(&x353, &x354, x352, x305, x336);
1674
1657
  uint32_t x355;
1675
1658
  fiat_p256_uint1 x356;
1676
- fiat_p256_addcarryx_u32(&x355, &x356, x354, x327, x330);
1659
+ fiat_p256_addcarryx_u32(&x355, &x356, x354, x307, x338);
1677
1660
  uint32_t x357;
1678
1661
  fiat_p256_uint1 x358;
1679
- fiat_p256_addcarryx_u32(&x357, &x358, x356, 0x0, x328);
1662
+ fiat_p256_addcarryx_u32(&x357, &x358, x356, x309, x340);
1680
1663
  uint32_t x359;
1681
1664
  fiat_p256_uint1 x360;
1682
- fiat_p256_addcarryx_u32(&x359, &x360, 0x0, x341, x309);
1665
+ fiat_p256_addcarryx_u32(&x359, &x360, x358, x311, x342);
1683
1666
  uint32_t x361;
1684
1667
  fiat_p256_uint1 x362;
1685
- fiat_p256_addcarryx_u32(&x361, &x362, x360, x343, x311);
1668
+ fiat_p256_addcarryx_u32(&x361, &x362, x360, x313, x344);
1686
1669
  uint32_t x363;
1687
- fiat_p256_uint1 x364;
1688
- fiat_p256_addcarryx_u32(&x363, &x364, x362, x345, x313);
1670
+ uint32_t x364;
1671
+ fiat_p256_mulx_u32(&x363, &x364, x345, UINT32_C(0xffffffff));
1689
1672
  uint32_t x365;
1690
- fiat_p256_uint1 x366;
1691
- fiat_p256_addcarryx_u32(&x365, &x366, x364, x347, x315);
1673
+ uint32_t x366;
1674
+ fiat_p256_mulx_u32(&x365, &x366, x345, UINT32_C(0xffffffff));
1692
1675
  uint32_t x367;
1693
- fiat_p256_uint1 x368;
1694
- fiat_p256_addcarryx_u32(&x367, &x368, x366, x349, x317);
1676
+ uint32_t x368;
1677
+ fiat_p256_mulx_u32(&x367, &x368, x345, UINT32_C(0xffffffff));
1695
1678
  uint32_t x369;
1696
- fiat_p256_uint1 x370;
1697
- fiat_p256_addcarryx_u32(&x369, &x370, x368, x351, x319);
1679
+ uint32_t x370;
1680
+ fiat_p256_mulx_u32(&x369, &x370, x345, UINT32_C(0xffffffff));
1698
1681
  uint32_t x371;
1699
1682
  fiat_p256_uint1 x372;
1700
- fiat_p256_addcarryx_u32(&x371, &x372, x370, x353, x321);
1683
+ fiat_p256_addcarryx_u32(&x371, &x372, 0x0, x370, x367);
1701
1684
  uint32_t x373;
1702
1685
  fiat_p256_uint1 x374;
1703
- fiat_p256_addcarryx_u32(&x373, &x374, x372, x355, x323);
1704
- uint32_t x375;
1705
- fiat_p256_uint1 x376;
1706
- fiat_p256_addcarryx_u32(&x375, &x376, x374, x357, x325);
1707
- uint32_t x377;
1686
+ fiat_p256_addcarryx_u32(&x373, &x374, x372, x368, x365);
1687
+ uint32_t x375 = (x374 + x366);
1688
+ uint32_t x376;
1689
+ fiat_p256_uint1 x377;
1690
+ fiat_p256_addcarryx_u32(&x376, &x377, 0x0, x345, x369);
1708
1691
  uint32_t x378;
1709
- fiat_p256_mulx_u32(&x377, &x378, x359, UINT32_C(0xffffffff));
1710
- uint32_t x379;
1692
+ fiat_p256_uint1 x379;
1693
+ fiat_p256_addcarryx_u32(&x378, &x379, x377, x347, x371);
1711
1694
  uint32_t x380;
1712
- fiat_p256_mulx_u32(&x379, &x380, x359, UINT32_C(0xffffffff));
1713
- uint32_t x381;
1695
+ fiat_p256_uint1 x381;
1696
+ fiat_p256_addcarryx_u32(&x380, &x381, x379, x349, x373);
1714
1697
  uint32_t x382;
1715
- fiat_p256_mulx_u32(&x381, &x382, x359, UINT32_C(0xffffffff));
1716
- uint32_t x383;
1698
+ fiat_p256_uint1 x383;
1699
+ fiat_p256_addcarryx_u32(&x382, &x383, x381, x351, x375);
1717
1700
  uint32_t x384;
1718
- fiat_p256_mulx_u32(&x383, &x384, x359, UINT32_C(0xffffffff));
1719
- uint32_t x385;
1720
- fiat_p256_uint1 x386;
1721
- fiat_p256_addcarryx_u32(&x385, &x386, 0x0, x381, x384);
1722
- uint32_t x387;
1723
- fiat_p256_uint1 x388;
1724
- fiat_p256_addcarryx_u32(&x387, &x388, x386, x379, x382);
1725
- uint32_t x389;
1726
- fiat_p256_uint1 x390;
1727
- fiat_p256_addcarryx_u32(&x389, &x390, x388, 0x0, x380);
1728
- uint32_t x391;
1729
- fiat_p256_uint1 x392;
1730
- fiat_p256_addcarryx_u32(&x391, &x392, 0x0, x383, x359);
1731
- uint32_t x393;
1732
- fiat_p256_uint1 x394;
1733
- fiat_p256_addcarryx_u32(&x393, &x394, x392, x385, x361);
1701
+ fiat_p256_uint1 x385;
1702
+ fiat_p256_addcarryx_u32(&x384, &x385, x383, x353, 0x0);
1703
+ uint32_t x386;
1704
+ fiat_p256_uint1 x387;
1705
+ fiat_p256_addcarryx_u32(&x386, &x387, x385, x355, 0x0);
1706
+ uint32_t x388;
1707
+ fiat_p256_uint1 x389;
1708
+ fiat_p256_addcarryx_u32(&x388, &x389, x387, x357, x345);
1709
+ uint32_t x390;
1710
+ fiat_p256_uint1 x391;
1711
+ fiat_p256_addcarryx_u32(&x390, &x391, x389, x359, x363);
1712
+ uint32_t x392;
1713
+ fiat_p256_uint1 x393;
1714
+ fiat_p256_addcarryx_u32(&x392, &x393, x391, x361, x364);
1715
+ uint32_t x394 = ((uint32_t)x393 + x362);
1734
1716
  uint32_t x395;
1735
- fiat_p256_uint1 x396;
1736
- fiat_p256_addcarryx_u32(&x395, &x396, x394, x387, x363);
1717
+ uint32_t x396;
1718
+ fiat_p256_mulx_u32(&x395, &x396, x5, (arg1[7]));
1737
1719
  uint32_t x397;
1738
- fiat_p256_uint1 x398;
1739
- fiat_p256_addcarryx_u32(&x397, &x398, x396, x389, x365);
1720
+ uint32_t x398;
1721
+ fiat_p256_mulx_u32(&x397, &x398, x5, (arg1[6]));
1740
1722
  uint32_t x399;
1741
- fiat_p256_uint1 x400;
1742
- fiat_p256_addcarryx_u32(&x399, &x400, x398, 0x0, x367);
1723
+ uint32_t x400;
1724
+ fiat_p256_mulx_u32(&x399, &x400, x5, (arg1[5]));
1743
1725
  uint32_t x401;
1744
- fiat_p256_uint1 x402;
1745
- fiat_p256_addcarryx_u32(&x401, &x402, x400, 0x0, x369);
1726
+ uint32_t x402;
1727
+ fiat_p256_mulx_u32(&x401, &x402, x5, (arg1[4]));
1746
1728
  uint32_t x403;
1747
- fiat_p256_uint1 x404;
1748
- fiat_p256_addcarryx_u32(&x403, &x404, x402, x359, x371);
1729
+ uint32_t x404;
1730
+ fiat_p256_mulx_u32(&x403, &x404, x5, (arg1[3]));
1749
1731
  uint32_t x405;
1750
- fiat_p256_uint1 x406;
1751
- fiat_p256_addcarryx_u32(&x405, &x406, x404, x377, x373);
1732
+ uint32_t x406;
1733
+ fiat_p256_mulx_u32(&x405, &x406, x5, (arg1[2]));
1752
1734
  uint32_t x407;
1753
- fiat_p256_uint1 x408;
1754
- fiat_p256_addcarryx_u32(&x407, &x408, x406, x378, x375);
1735
+ uint32_t x408;
1736
+ fiat_p256_mulx_u32(&x407, &x408, x5, (arg1[1]));
1755
1737
  uint32_t x409;
1756
- fiat_p256_uint1 x410;
1757
- fiat_p256_addcarryx_u32(&x409, &x410, x408, 0x0, x376);
1738
+ uint32_t x410;
1739
+ fiat_p256_mulx_u32(&x409, &x410, x5, (arg1[0]));
1758
1740
  uint32_t x411;
1759
- uint32_t x412;
1760
- fiat_p256_mulx_u32(&x411, &x412, x5, (arg1[7]));
1741
+ fiat_p256_uint1 x412;
1742
+ fiat_p256_addcarryx_u32(&x411, &x412, 0x0, x410, x407);
1761
1743
  uint32_t x413;
1762
- uint32_t x414;
1763
- fiat_p256_mulx_u32(&x413, &x414, x5, (arg1[6]));
1744
+ fiat_p256_uint1 x414;
1745
+ fiat_p256_addcarryx_u32(&x413, &x414, x412, x408, x405);
1764
1746
  uint32_t x415;
1765
- uint32_t x416;
1766
- fiat_p256_mulx_u32(&x415, &x416, x5, (arg1[5]));
1747
+ fiat_p256_uint1 x416;
1748
+ fiat_p256_addcarryx_u32(&x415, &x416, x414, x406, x403);
1767
1749
  uint32_t x417;
1768
- uint32_t x418;
1769
- fiat_p256_mulx_u32(&x417, &x418, x5, (arg1[4]));
1750
+ fiat_p256_uint1 x418;
1751
+ fiat_p256_addcarryx_u32(&x417, &x418, x416, x404, x401);
1770
1752
  uint32_t x419;
1771
- uint32_t x420;
1772
- fiat_p256_mulx_u32(&x419, &x420, x5, (arg1[3]));
1753
+ fiat_p256_uint1 x420;
1754
+ fiat_p256_addcarryx_u32(&x419, &x420, x418, x402, x399);
1773
1755
  uint32_t x421;
1774
- uint32_t x422;
1775
- fiat_p256_mulx_u32(&x421, &x422, x5, (arg1[2]));
1756
+ fiat_p256_uint1 x422;
1757
+ fiat_p256_addcarryx_u32(&x421, &x422, x420, x400, x397);
1776
1758
  uint32_t x423;
1777
- uint32_t x424;
1778
- fiat_p256_mulx_u32(&x423, &x424, x5, (arg1[1]));
1779
- uint32_t x425;
1759
+ fiat_p256_uint1 x424;
1760
+ fiat_p256_addcarryx_u32(&x423, &x424, x422, x398, x395);
1761
+ uint32_t x425 = (x424 + x396);
1780
1762
  uint32_t x426;
1781
- fiat_p256_mulx_u32(&x425, &x426, x5, (arg1[0]));
1782
- uint32_t x427;
1783
- fiat_p256_uint1 x428;
1784
- fiat_p256_addcarryx_u32(&x427, &x428, 0x0, x423, x426);
1785
- uint32_t x429;
1786
- fiat_p256_uint1 x430;
1787
- fiat_p256_addcarryx_u32(&x429, &x430, x428, x421, x424);
1788
- uint32_t x431;
1789
- fiat_p256_uint1 x432;
1790
- fiat_p256_addcarryx_u32(&x431, &x432, x430, x419, x422);
1791
- uint32_t x433;
1792
- fiat_p256_uint1 x434;
1793
- fiat_p256_addcarryx_u32(&x433, &x434, x432, x417, x420);
1794
- uint32_t x435;
1795
- fiat_p256_uint1 x436;
1796
- fiat_p256_addcarryx_u32(&x435, &x436, x434, x415, x418);
1797
- uint32_t x437;
1798
- fiat_p256_uint1 x438;
1799
- fiat_p256_addcarryx_u32(&x437, &x438, x436, x413, x416);
1800
- uint32_t x439;
1801
- fiat_p256_uint1 x440;
1802
- fiat_p256_addcarryx_u32(&x439, &x440, x438, x411, x414);
1803
- uint32_t x441;
1804
- fiat_p256_uint1 x442;
1805
- fiat_p256_addcarryx_u32(&x441, &x442, x440, 0x0, x412);
1806
- uint32_t x443;
1807
- fiat_p256_uint1 x444;
1808
- fiat_p256_addcarryx_u32(&x443, &x444, 0x0, x425, x393);
1763
+ fiat_p256_uint1 x427;
1764
+ fiat_p256_addcarryx_u32(&x426, &x427, 0x0, x378, x409);
1765
+ uint32_t x428;
1766
+ fiat_p256_uint1 x429;
1767
+ fiat_p256_addcarryx_u32(&x428, &x429, x427, x380, x411);
1768
+ uint32_t x430;
1769
+ fiat_p256_uint1 x431;
1770
+ fiat_p256_addcarryx_u32(&x430, &x431, x429, x382, x413);
1771
+ uint32_t x432;
1772
+ fiat_p256_uint1 x433;
1773
+ fiat_p256_addcarryx_u32(&x432, &x433, x431, x384, x415);
1774
+ uint32_t x434;
1775
+ fiat_p256_uint1 x435;
1776
+ fiat_p256_addcarryx_u32(&x434, &x435, x433, x386, x417);
1777
+ uint32_t x436;
1778
+ fiat_p256_uint1 x437;
1779
+ fiat_p256_addcarryx_u32(&x436, &x437, x435, x388, x419);
1780
+ uint32_t x438;
1781
+ fiat_p256_uint1 x439;
1782
+ fiat_p256_addcarryx_u32(&x438, &x439, x437, x390, x421);
1783
+ uint32_t x440;
1784
+ fiat_p256_uint1 x441;
1785
+ fiat_p256_addcarryx_u32(&x440, &x441, x439, x392, x423);
1786
+ uint32_t x442;
1787
+ fiat_p256_uint1 x443;
1788
+ fiat_p256_addcarryx_u32(&x442, &x443, x441, x394, x425);
1789
+ uint32_t x444;
1809
1790
  uint32_t x445;
1810
- fiat_p256_uint1 x446;
1811
- fiat_p256_addcarryx_u32(&x445, &x446, x444, x427, x395);
1791
+ fiat_p256_mulx_u32(&x444, &x445, x426, UINT32_C(0xffffffff));
1792
+ uint32_t x446;
1812
1793
  uint32_t x447;
1813
- fiat_p256_uint1 x448;
1814
- fiat_p256_addcarryx_u32(&x447, &x448, x446, x429, x397);
1794
+ fiat_p256_mulx_u32(&x446, &x447, x426, UINT32_C(0xffffffff));
1795
+ uint32_t x448;
1815
1796
  uint32_t x449;
1816
- fiat_p256_uint1 x450;
1817
- fiat_p256_addcarryx_u32(&x449, &x450, x448, x431, x399);
1797
+ fiat_p256_mulx_u32(&x448, &x449, x426, UINT32_C(0xffffffff));
1798
+ uint32_t x450;
1818
1799
  uint32_t x451;
1819
- fiat_p256_uint1 x452;
1820
- fiat_p256_addcarryx_u32(&x451, &x452, x450, x433, x401);
1821
- uint32_t x453;
1822
- fiat_p256_uint1 x454;
1823
- fiat_p256_addcarryx_u32(&x453, &x454, x452, x435, x403);
1824
- uint32_t x455;
1825
- fiat_p256_uint1 x456;
1826
- fiat_p256_addcarryx_u32(&x455, &x456, x454, x437, x405);
1800
+ fiat_p256_mulx_u32(&x450, &x451, x426, UINT32_C(0xffffffff));
1801
+ uint32_t x452;
1802
+ fiat_p256_uint1 x453;
1803
+ fiat_p256_addcarryx_u32(&x452, &x453, 0x0, x451, x448);
1804
+ uint32_t x454;
1805
+ fiat_p256_uint1 x455;
1806
+ fiat_p256_addcarryx_u32(&x454, &x455, x453, x449, x446);
1807
+ uint32_t x456 = (x455 + x447);
1827
1808
  uint32_t x457;
1828
1809
  fiat_p256_uint1 x458;
1829
- fiat_p256_addcarryx_u32(&x457, &x458, x456, x439, x407);
1810
+ fiat_p256_addcarryx_u32(&x457, &x458, 0x0, x426, x450);
1830
1811
  uint32_t x459;
1831
1812
  fiat_p256_uint1 x460;
1832
- fiat_p256_addcarryx_u32(&x459, &x460, x458, x441, x409);
1813
+ fiat_p256_addcarryx_u32(&x459, &x460, x458, x428, x452);
1833
1814
  uint32_t x461;
1834
- uint32_t x462;
1835
- fiat_p256_mulx_u32(&x461, &x462, x443, UINT32_C(0xffffffff));
1815
+ fiat_p256_uint1 x462;
1816
+ fiat_p256_addcarryx_u32(&x461, &x462, x460, x430, x454);
1836
1817
  uint32_t x463;
1837
- uint32_t x464;
1838
- fiat_p256_mulx_u32(&x463, &x464, x443, UINT32_C(0xffffffff));
1818
+ fiat_p256_uint1 x464;
1819
+ fiat_p256_addcarryx_u32(&x463, &x464, x462, x432, x456);
1839
1820
  uint32_t x465;
1840
- uint32_t x466;
1841
- fiat_p256_mulx_u32(&x465, &x466, x443, UINT32_C(0xffffffff));
1821
+ fiat_p256_uint1 x466;
1822
+ fiat_p256_addcarryx_u32(&x465, &x466, x464, x434, 0x0);
1842
1823
  uint32_t x467;
1843
- uint32_t x468;
1844
- fiat_p256_mulx_u32(&x467, &x468, x443, UINT32_C(0xffffffff));
1824
+ fiat_p256_uint1 x468;
1825
+ fiat_p256_addcarryx_u32(&x467, &x468, x466, x436, 0x0);
1845
1826
  uint32_t x469;
1846
1827
  fiat_p256_uint1 x470;
1847
- fiat_p256_addcarryx_u32(&x469, &x470, 0x0, x465, x468);
1828
+ fiat_p256_addcarryx_u32(&x469, &x470, x468, x438, x426);
1848
1829
  uint32_t x471;
1849
1830
  fiat_p256_uint1 x472;
1850
- fiat_p256_addcarryx_u32(&x471, &x472, x470, x463, x466);
1831
+ fiat_p256_addcarryx_u32(&x471, &x472, x470, x440, x444);
1851
1832
  uint32_t x473;
1852
1833
  fiat_p256_uint1 x474;
1853
- fiat_p256_addcarryx_u32(&x473, &x474, x472, 0x0, x464);
1854
- uint32_t x475;
1855
- fiat_p256_uint1 x476;
1856
- fiat_p256_addcarryx_u32(&x475, &x476, 0x0, x467, x443);
1834
+ fiat_p256_addcarryx_u32(&x473, &x474, x472, x442, x445);
1835
+ uint32_t x475 = ((uint32_t)x474 + x443);
1836
+ uint32_t x476;
1857
1837
  uint32_t x477;
1858
- fiat_p256_uint1 x478;
1859
- fiat_p256_addcarryx_u32(&x477, &x478, x476, x469, x445);
1838
+ fiat_p256_mulx_u32(&x476, &x477, x6, (arg1[7]));
1839
+ uint32_t x478;
1860
1840
  uint32_t x479;
1861
- fiat_p256_uint1 x480;
1862
- fiat_p256_addcarryx_u32(&x479, &x480, x478, x471, x447);
1841
+ fiat_p256_mulx_u32(&x478, &x479, x6, (arg1[6]));
1842
+ uint32_t x480;
1863
1843
  uint32_t x481;
1864
- fiat_p256_uint1 x482;
1865
- fiat_p256_addcarryx_u32(&x481, &x482, x480, x473, x449);
1844
+ fiat_p256_mulx_u32(&x480, &x481, x6, (arg1[5]));
1845
+ uint32_t x482;
1866
1846
  uint32_t x483;
1867
- fiat_p256_uint1 x484;
1868
- fiat_p256_addcarryx_u32(&x483, &x484, x482, 0x0, x451);
1847
+ fiat_p256_mulx_u32(&x482, &x483, x6, (arg1[4]));
1848
+ uint32_t x484;
1869
1849
  uint32_t x485;
1870
- fiat_p256_uint1 x486;
1871
- fiat_p256_addcarryx_u32(&x485, &x486, x484, 0x0, x453);
1850
+ fiat_p256_mulx_u32(&x484, &x485, x6, (arg1[3]));
1851
+ uint32_t x486;
1872
1852
  uint32_t x487;
1873
- fiat_p256_uint1 x488;
1874
- fiat_p256_addcarryx_u32(&x487, &x488, x486, x443, x455);
1853
+ fiat_p256_mulx_u32(&x486, &x487, x6, (arg1[2]));
1854
+ uint32_t x488;
1875
1855
  uint32_t x489;
1876
- fiat_p256_uint1 x490;
1877
- fiat_p256_addcarryx_u32(&x489, &x490, x488, x461, x457);
1856
+ fiat_p256_mulx_u32(&x488, &x489, x6, (arg1[1]));
1857
+ uint32_t x490;
1878
1858
  uint32_t x491;
1879
- fiat_p256_uint1 x492;
1880
- fiat_p256_addcarryx_u32(&x491, &x492, x490, x462, x459);
1881
- uint32_t x493;
1882
- fiat_p256_uint1 x494;
1883
- fiat_p256_addcarryx_u32(&x493, &x494, x492, 0x0, x460);
1884
- uint32_t x495;
1859
+ fiat_p256_mulx_u32(&x490, &x491, x6, (arg1[0]));
1860
+ uint32_t x492;
1861
+ fiat_p256_uint1 x493;
1862
+ fiat_p256_addcarryx_u32(&x492, &x493, 0x0, x491, x488);
1863
+ uint32_t x494;
1864
+ fiat_p256_uint1 x495;
1865
+ fiat_p256_addcarryx_u32(&x494, &x495, x493, x489, x486);
1885
1866
  uint32_t x496;
1886
- fiat_p256_mulx_u32(&x495, &x496, x6, (arg1[7]));
1887
- uint32_t x497;
1867
+ fiat_p256_uint1 x497;
1868
+ fiat_p256_addcarryx_u32(&x496, &x497, x495, x487, x484);
1888
1869
  uint32_t x498;
1889
- fiat_p256_mulx_u32(&x497, &x498, x6, (arg1[6]));
1890
- uint32_t x499;
1870
+ fiat_p256_uint1 x499;
1871
+ fiat_p256_addcarryx_u32(&x498, &x499, x497, x485, x482);
1891
1872
  uint32_t x500;
1892
- fiat_p256_mulx_u32(&x499, &x500, x6, (arg1[5]));
1893
- uint32_t x501;
1873
+ fiat_p256_uint1 x501;
1874
+ fiat_p256_addcarryx_u32(&x500, &x501, x499, x483, x480);
1894
1875
  uint32_t x502;
1895
- fiat_p256_mulx_u32(&x501, &x502, x6, (arg1[4]));
1896
- uint32_t x503;
1876
+ fiat_p256_uint1 x503;
1877
+ fiat_p256_addcarryx_u32(&x502, &x503, x501, x481, x478);
1897
1878
  uint32_t x504;
1898
- fiat_p256_mulx_u32(&x503, &x504, x6, (arg1[3]));
1899
- uint32_t x505;
1900
- uint32_t x506;
1901
- fiat_p256_mulx_u32(&x505, &x506, x6, (arg1[2]));
1879
+ fiat_p256_uint1 x505;
1880
+ fiat_p256_addcarryx_u32(&x504, &x505, x503, x479, x476);
1881
+ uint32_t x506 = (x505 + x477);
1902
1882
  uint32_t x507;
1903
- uint32_t x508;
1904
- fiat_p256_mulx_u32(&x507, &x508, x6, (arg1[1]));
1883
+ fiat_p256_uint1 x508;
1884
+ fiat_p256_addcarryx_u32(&x507, &x508, 0x0, x459, x490);
1905
1885
  uint32_t x509;
1906
- uint32_t x510;
1907
- fiat_p256_mulx_u32(&x509, &x510, x6, (arg1[0]));
1886
+ fiat_p256_uint1 x510;
1887
+ fiat_p256_addcarryx_u32(&x509, &x510, x508, x461, x492);
1908
1888
  uint32_t x511;
1909
1889
  fiat_p256_uint1 x512;
1910
- fiat_p256_addcarryx_u32(&x511, &x512, 0x0, x507, x510);
1890
+ fiat_p256_addcarryx_u32(&x511, &x512, x510, x463, x494);
1911
1891
  uint32_t x513;
1912
1892
  fiat_p256_uint1 x514;
1913
- fiat_p256_addcarryx_u32(&x513, &x514, x512, x505, x508);
1893
+ fiat_p256_addcarryx_u32(&x513, &x514, x512, x465, x496);
1914
1894
  uint32_t x515;
1915
1895
  fiat_p256_uint1 x516;
1916
- fiat_p256_addcarryx_u32(&x515, &x516, x514, x503, x506);
1896
+ fiat_p256_addcarryx_u32(&x515, &x516, x514, x467, x498);
1917
1897
  uint32_t x517;
1918
1898
  fiat_p256_uint1 x518;
1919
- fiat_p256_addcarryx_u32(&x517, &x518, x516, x501, x504);
1899
+ fiat_p256_addcarryx_u32(&x517, &x518, x516, x469, x500);
1920
1900
  uint32_t x519;
1921
1901
  fiat_p256_uint1 x520;
1922
- fiat_p256_addcarryx_u32(&x519, &x520, x518, x499, x502);
1902
+ fiat_p256_addcarryx_u32(&x519, &x520, x518, x471, x502);
1923
1903
  uint32_t x521;
1924
1904
  fiat_p256_uint1 x522;
1925
- fiat_p256_addcarryx_u32(&x521, &x522, x520, x497, x500);
1905
+ fiat_p256_addcarryx_u32(&x521, &x522, x520, x473, x504);
1926
1906
  uint32_t x523;
1927
1907
  fiat_p256_uint1 x524;
1928
- fiat_p256_addcarryx_u32(&x523, &x524, x522, x495, x498);
1908
+ fiat_p256_addcarryx_u32(&x523, &x524, x522, x475, x506);
1929
1909
  uint32_t x525;
1930
- fiat_p256_uint1 x526;
1931
- fiat_p256_addcarryx_u32(&x525, &x526, x524, 0x0, x496);
1910
+ uint32_t x526;
1911
+ fiat_p256_mulx_u32(&x525, &x526, x507, UINT32_C(0xffffffff));
1932
1912
  uint32_t x527;
1933
- fiat_p256_uint1 x528;
1934
- fiat_p256_addcarryx_u32(&x527, &x528, 0x0, x509, x477);
1913
+ uint32_t x528;
1914
+ fiat_p256_mulx_u32(&x527, &x528, x507, UINT32_C(0xffffffff));
1935
1915
  uint32_t x529;
1936
- fiat_p256_uint1 x530;
1937
- fiat_p256_addcarryx_u32(&x529, &x530, x528, x511, x479);
1916
+ uint32_t x530;
1917
+ fiat_p256_mulx_u32(&x529, &x530, x507, UINT32_C(0xffffffff));
1938
1918
  uint32_t x531;
1939
- fiat_p256_uint1 x532;
1940
- fiat_p256_addcarryx_u32(&x531, &x532, x530, x513, x481);
1919
+ uint32_t x532;
1920
+ fiat_p256_mulx_u32(&x531, &x532, x507, UINT32_C(0xffffffff));
1941
1921
  uint32_t x533;
1942
1922
  fiat_p256_uint1 x534;
1943
- fiat_p256_addcarryx_u32(&x533, &x534, x532, x515, x483);
1923
+ fiat_p256_addcarryx_u32(&x533, &x534, 0x0, x532, x529);
1944
1924
  uint32_t x535;
1945
1925
  fiat_p256_uint1 x536;
1946
- fiat_p256_addcarryx_u32(&x535, &x536, x534, x517, x485);
1947
- uint32_t x537;
1948
- fiat_p256_uint1 x538;
1949
- fiat_p256_addcarryx_u32(&x537, &x538, x536, x519, x487);
1950
- uint32_t x539;
1951
- fiat_p256_uint1 x540;
1952
- fiat_p256_addcarryx_u32(&x539, &x540, x538, x521, x489);
1953
- uint32_t x541;
1954
- fiat_p256_uint1 x542;
1955
- fiat_p256_addcarryx_u32(&x541, &x542, x540, x523, x491);
1956
- uint32_t x543;
1957
- fiat_p256_uint1 x544;
1958
- fiat_p256_addcarryx_u32(&x543, &x544, x542, x525, x493);
1959
- uint32_t x545;
1926
+ fiat_p256_addcarryx_u32(&x535, &x536, x534, x530, x527);
1927
+ uint32_t x537 = (x536 + x528);
1928
+ uint32_t x538;
1929
+ fiat_p256_uint1 x539;
1930
+ fiat_p256_addcarryx_u32(&x538, &x539, 0x0, x507, x531);
1931
+ uint32_t x540;
1932
+ fiat_p256_uint1 x541;
1933
+ fiat_p256_addcarryx_u32(&x540, &x541, x539, x509, x533);
1934
+ uint32_t x542;
1935
+ fiat_p256_uint1 x543;
1936
+ fiat_p256_addcarryx_u32(&x542, &x543, x541, x511, x535);
1937
+ uint32_t x544;
1938
+ fiat_p256_uint1 x545;
1939
+ fiat_p256_addcarryx_u32(&x544, &x545, x543, x513, x537);
1960
1940
  uint32_t x546;
1961
- fiat_p256_mulx_u32(&x545, &x546, x527, UINT32_C(0xffffffff));
1962
- uint32_t x547;
1941
+ fiat_p256_uint1 x547;
1942
+ fiat_p256_addcarryx_u32(&x546, &x547, x545, x515, 0x0);
1963
1943
  uint32_t x548;
1964
- fiat_p256_mulx_u32(&x547, &x548, x527, UINT32_C(0xffffffff));
1965
- uint32_t x549;
1944
+ fiat_p256_uint1 x549;
1945
+ fiat_p256_addcarryx_u32(&x548, &x549, x547, x517, 0x0);
1966
1946
  uint32_t x550;
1967
- fiat_p256_mulx_u32(&x549, &x550, x527, UINT32_C(0xffffffff));
1968
- uint32_t x551;
1947
+ fiat_p256_uint1 x551;
1948
+ fiat_p256_addcarryx_u32(&x550, &x551, x549, x519, x507);
1969
1949
  uint32_t x552;
1970
- fiat_p256_mulx_u32(&x551, &x552, x527, UINT32_C(0xffffffff));
1971
- uint32_t x553;
1972
- fiat_p256_uint1 x554;
1973
- fiat_p256_addcarryx_u32(&x553, &x554, 0x0, x549, x552);
1974
- uint32_t x555;
1975
- fiat_p256_uint1 x556;
1976
- fiat_p256_addcarryx_u32(&x555, &x556, x554, x547, x550);
1950
+ fiat_p256_uint1 x553;
1951
+ fiat_p256_addcarryx_u32(&x552, &x553, x551, x521, x525);
1952
+ uint32_t x554;
1953
+ fiat_p256_uint1 x555;
1954
+ fiat_p256_addcarryx_u32(&x554, &x555, x553, x523, x526);
1955
+ uint32_t x556 = ((uint32_t)x555 + x524);
1977
1956
  uint32_t x557;
1978
- fiat_p256_uint1 x558;
1979
- fiat_p256_addcarryx_u32(&x557, &x558, x556, 0x0, x548);
1957
+ uint32_t x558;
1958
+ fiat_p256_mulx_u32(&x557, &x558, x7, (arg1[7]));
1980
1959
  uint32_t x559;
1981
- fiat_p256_uint1 x560;
1982
- fiat_p256_addcarryx_u32(&x559, &x560, 0x0, x551, x527);
1960
+ uint32_t x560;
1961
+ fiat_p256_mulx_u32(&x559, &x560, x7, (arg1[6]));
1983
1962
  uint32_t x561;
1984
- fiat_p256_uint1 x562;
1985
- fiat_p256_addcarryx_u32(&x561, &x562, x560, x553, x529);
1963
+ uint32_t x562;
1964
+ fiat_p256_mulx_u32(&x561, &x562, x7, (arg1[5]));
1986
1965
  uint32_t x563;
1987
- fiat_p256_uint1 x564;
1988
- fiat_p256_addcarryx_u32(&x563, &x564, x562, x555, x531);
1966
+ uint32_t x564;
1967
+ fiat_p256_mulx_u32(&x563, &x564, x7, (arg1[4]));
1989
1968
  uint32_t x565;
1990
- fiat_p256_uint1 x566;
1991
- fiat_p256_addcarryx_u32(&x565, &x566, x564, x557, x533);
1969
+ uint32_t x566;
1970
+ fiat_p256_mulx_u32(&x565, &x566, x7, (arg1[3]));
1992
1971
  uint32_t x567;
1993
- fiat_p256_uint1 x568;
1994
- fiat_p256_addcarryx_u32(&x567, &x568, x566, 0x0, x535);
1972
+ uint32_t x568;
1973
+ fiat_p256_mulx_u32(&x567, &x568, x7, (arg1[2]));
1995
1974
  uint32_t x569;
1996
- fiat_p256_uint1 x570;
1997
- fiat_p256_addcarryx_u32(&x569, &x570, x568, 0x0, x537);
1975
+ uint32_t x570;
1976
+ fiat_p256_mulx_u32(&x569, &x570, x7, (arg1[1]));
1998
1977
  uint32_t x571;
1999
- fiat_p256_uint1 x572;
2000
- fiat_p256_addcarryx_u32(&x571, &x572, x570, x527, x539);
1978
+ uint32_t x572;
1979
+ fiat_p256_mulx_u32(&x571, &x572, x7, (arg1[0]));
2001
1980
  uint32_t x573;
2002
1981
  fiat_p256_uint1 x574;
2003
- fiat_p256_addcarryx_u32(&x573, &x574, x572, x545, x541);
1982
+ fiat_p256_addcarryx_u32(&x573, &x574, 0x0, x572, x569);
2004
1983
  uint32_t x575;
2005
1984
  fiat_p256_uint1 x576;
2006
- fiat_p256_addcarryx_u32(&x575, &x576, x574, x546, x543);
1985
+ fiat_p256_addcarryx_u32(&x575, &x576, x574, x570, x567);
2007
1986
  uint32_t x577;
2008
1987
  fiat_p256_uint1 x578;
2009
- fiat_p256_addcarryx_u32(&x577, &x578, x576, 0x0, x544);
1988
+ fiat_p256_addcarryx_u32(&x577, &x578, x576, x568, x565);
2010
1989
  uint32_t x579;
2011
- uint32_t x580;
2012
- fiat_p256_mulx_u32(&x579, &x580, x7, (arg1[7]));
1990
+ fiat_p256_uint1 x580;
1991
+ fiat_p256_addcarryx_u32(&x579, &x580, x578, x566, x563);
2013
1992
  uint32_t x581;
2014
- uint32_t x582;
2015
- fiat_p256_mulx_u32(&x581, &x582, x7, (arg1[6]));
1993
+ fiat_p256_uint1 x582;
1994
+ fiat_p256_addcarryx_u32(&x581, &x582, x580, x564, x561);
2016
1995
  uint32_t x583;
2017
- uint32_t x584;
2018
- fiat_p256_mulx_u32(&x583, &x584, x7, (arg1[5]));
1996
+ fiat_p256_uint1 x584;
1997
+ fiat_p256_addcarryx_u32(&x583, &x584, x582, x562, x559);
2019
1998
  uint32_t x585;
2020
- uint32_t x586;
2021
- fiat_p256_mulx_u32(&x585, &x586, x7, (arg1[4]));
2022
- uint32_t x587;
1999
+ fiat_p256_uint1 x586;
2000
+ fiat_p256_addcarryx_u32(&x585, &x586, x584, x560, x557);
2001
+ uint32_t x587 = (x586 + x558);
2023
2002
  uint32_t x588;
2024
- fiat_p256_mulx_u32(&x587, &x588, x7, (arg1[3]));
2025
- uint32_t x589;
2003
+ fiat_p256_uint1 x589;
2004
+ fiat_p256_addcarryx_u32(&x588, &x589, 0x0, x540, x571);
2026
2005
  uint32_t x590;
2027
- fiat_p256_mulx_u32(&x589, &x590, x7, (arg1[2]));
2028
- uint32_t x591;
2006
+ fiat_p256_uint1 x591;
2007
+ fiat_p256_addcarryx_u32(&x590, &x591, x589, x542, x573);
2029
2008
  uint32_t x592;
2030
- fiat_p256_mulx_u32(&x591, &x592, x7, (arg1[1]));
2031
- uint32_t x593;
2009
+ fiat_p256_uint1 x593;
2010
+ fiat_p256_addcarryx_u32(&x592, &x593, x591, x544, x575);
2032
2011
  uint32_t x594;
2033
- fiat_p256_mulx_u32(&x593, &x594, x7, (arg1[0]));
2034
- uint32_t x595;
2035
- fiat_p256_uint1 x596;
2036
- fiat_p256_addcarryx_u32(&x595, &x596, 0x0, x591, x594);
2037
- uint32_t x597;
2038
- fiat_p256_uint1 x598;
2039
- fiat_p256_addcarryx_u32(&x597, &x598, x596, x589, x592);
2040
- uint32_t x599;
2041
- fiat_p256_uint1 x600;
2042
- fiat_p256_addcarryx_u32(&x599, &x600, x598, x587, x590);
2043
- uint32_t x601;
2044
- fiat_p256_uint1 x602;
2045
- fiat_p256_addcarryx_u32(&x601, &x602, x600, x585, x588);
2046
- uint32_t x603;
2047
- fiat_p256_uint1 x604;
2048
- fiat_p256_addcarryx_u32(&x603, &x604, x602, x583, x586);
2049
- uint32_t x605;
2050
- fiat_p256_uint1 x606;
2051
- fiat_p256_addcarryx_u32(&x605, &x606, x604, x581, x584);
2012
+ fiat_p256_uint1 x595;
2013
+ fiat_p256_addcarryx_u32(&x594, &x595, x593, x546, x577);
2014
+ uint32_t x596;
2015
+ fiat_p256_uint1 x597;
2016
+ fiat_p256_addcarryx_u32(&x596, &x597, x595, x548, x579);
2017
+ uint32_t x598;
2018
+ fiat_p256_uint1 x599;
2019
+ fiat_p256_addcarryx_u32(&x598, &x599, x597, x550, x581);
2020
+ uint32_t x600;
2021
+ fiat_p256_uint1 x601;
2022
+ fiat_p256_addcarryx_u32(&x600, &x601, x599, x552, x583);
2023
+ uint32_t x602;
2024
+ fiat_p256_uint1 x603;
2025
+ fiat_p256_addcarryx_u32(&x602, &x603, x601, x554, x585);
2026
+ uint32_t x604;
2027
+ fiat_p256_uint1 x605;
2028
+ fiat_p256_addcarryx_u32(&x604, &x605, x603, x556, x587);
2029
+ uint32_t x606;
2052
2030
  uint32_t x607;
2053
- fiat_p256_uint1 x608;
2054
- fiat_p256_addcarryx_u32(&x607, &x608, x606, x579, x582);
2031
+ fiat_p256_mulx_u32(&x606, &x607, x588, UINT32_C(0xffffffff));
2032
+ uint32_t x608;
2055
2033
  uint32_t x609;
2056
- fiat_p256_uint1 x610;
2057
- fiat_p256_addcarryx_u32(&x609, &x610, x608, 0x0, x580);
2034
+ fiat_p256_mulx_u32(&x608, &x609, x588, UINT32_C(0xffffffff));
2035
+ uint32_t x610;
2058
2036
  uint32_t x611;
2059
- fiat_p256_uint1 x612;
2060
- fiat_p256_addcarryx_u32(&x611, &x612, 0x0, x593, x561);
2037
+ fiat_p256_mulx_u32(&x610, &x611, x588, UINT32_C(0xffffffff));
2038
+ uint32_t x612;
2061
2039
  uint32_t x613;
2062
- fiat_p256_uint1 x614;
2063
- fiat_p256_addcarryx_u32(&x613, &x614, x612, x595, x563);
2064
- uint32_t x615;
2065
- fiat_p256_uint1 x616;
2066
- fiat_p256_addcarryx_u32(&x615, &x616, x614, x597, x565);
2067
- uint32_t x617;
2068
- fiat_p256_uint1 x618;
2069
- fiat_p256_addcarryx_u32(&x617, &x618, x616, x599, x567);
2040
+ fiat_p256_mulx_u32(&x612, &x613, x588, UINT32_C(0xffffffff));
2041
+ uint32_t x614;
2042
+ fiat_p256_uint1 x615;
2043
+ fiat_p256_addcarryx_u32(&x614, &x615, 0x0, x613, x610);
2044
+ uint32_t x616;
2045
+ fiat_p256_uint1 x617;
2046
+ fiat_p256_addcarryx_u32(&x616, &x617, x615, x611, x608);
2047
+ uint32_t x618 = (x617 + x609);
2070
2048
  uint32_t x619;
2071
2049
  fiat_p256_uint1 x620;
2072
- fiat_p256_addcarryx_u32(&x619, &x620, x618, x601, x569);
2050
+ fiat_p256_addcarryx_u32(&x619, &x620, 0x0, x588, x612);
2073
2051
  uint32_t x621;
2074
2052
  fiat_p256_uint1 x622;
2075
- fiat_p256_addcarryx_u32(&x621, &x622, x620, x603, x571);
2053
+ fiat_p256_addcarryx_u32(&x621, &x622, x620, x590, x614);
2076
2054
  uint32_t x623;
2077
2055
  fiat_p256_uint1 x624;
2078
- fiat_p256_addcarryx_u32(&x623, &x624, x622, x605, x573);
2056
+ fiat_p256_addcarryx_u32(&x623, &x624, x622, x592, x616);
2079
2057
  uint32_t x625;
2080
2058
  fiat_p256_uint1 x626;
2081
- fiat_p256_addcarryx_u32(&x625, &x626, x624, x607, x575);
2059
+ fiat_p256_addcarryx_u32(&x625, &x626, x624, x594, x618);
2082
2060
  uint32_t x627;
2083
2061
  fiat_p256_uint1 x628;
2084
- fiat_p256_addcarryx_u32(&x627, &x628, x626, x609, x577);
2062
+ fiat_p256_addcarryx_u32(&x627, &x628, x626, x596, 0x0);
2085
2063
  uint32_t x629;
2086
- uint32_t x630;
2087
- fiat_p256_mulx_u32(&x629, &x630, x611, UINT32_C(0xffffffff));
2064
+ fiat_p256_uint1 x630;
2065
+ fiat_p256_addcarryx_u32(&x629, &x630, x628, x598, 0x0);
2088
2066
  uint32_t x631;
2089
- uint32_t x632;
2090
- fiat_p256_mulx_u32(&x631, &x632, x611, UINT32_C(0xffffffff));
2067
+ fiat_p256_uint1 x632;
2068
+ fiat_p256_addcarryx_u32(&x631, &x632, x630, x600, x588);
2091
2069
  uint32_t x633;
2092
- uint32_t x634;
2093
- fiat_p256_mulx_u32(&x633, &x634, x611, UINT32_C(0xffffffff));
2070
+ fiat_p256_uint1 x634;
2071
+ fiat_p256_addcarryx_u32(&x633, &x634, x632, x602, x606);
2094
2072
  uint32_t x635;
2095
- uint32_t x636;
2096
- fiat_p256_mulx_u32(&x635, &x636, x611, UINT32_C(0xffffffff));
2097
- uint32_t x637;
2098
- fiat_p256_uint1 x638;
2099
- fiat_p256_addcarryx_u32(&x637, &x638, 0x0, x633, x636);
2100
- uint32_t x639;
2101
- fiat_p256_uint1 x640;
2102
- fiat_p256_addcarryx_u32(&x639, &x640, x638, x631, x634);
2103
- uint32_t x641;
2104
- fiat_p256_uint1 x642;
2105
- fiat_p256_addcarryx_u32(&x641, &x642, x640, 0x0, x632);
2106
- uint32_t x643;
2107
- fiat_p256_uint1 x644;
2108
- fiat_p256_addcarryx_u32(&x643, &x644, 0x0, x635, x611);
2109
- uint32_t x645;
2110
- fiat_p256_uint1 x646;
2111
- fiat_p256_addcarryx_u32(&x645, &x646, x644, x637, x613);
2112
- uint32_t x647;
2113
- fiat_p256_uint1 x648;
2114
- fiat_p256_addcarryx_u32(&x647, &x648, x646, x639, x615);
2115
- uint32_t x649;
2116
- fiat_p256_uint1 x650;
2117
- fiat_p256_addcarryx_u32(&x649, &x650, x648, x641, x617);
2118
- uint32_t x651;
2119
- fiat_p256_uint1 x652;
2120
- fiat_p256_addcarryx_u32(&x651, &x652, x650, 0x0, x619);
2121
- uint32_t x653;
2122
- fiat_p256_uint1 x654;
2123
- fiat_p256_addcarryx_u32(&x653, &x654, x652, 0x0, x621);
2124
- uint32_t x655;
2125
- fiat_p256_uint1 x656;
2126
- fiat_p256_addcarryx_u32(&x655, &x656, x654, x611, x623);
2073
+ fiat_p256_uint1 x636;
2074
+ fiat_p256_addcarryx_u32(&x635, &x636, x634, x604, x607);
2075
+ uint32_t x637 = ((uint32_t)x636 + x605);
2076
+ uint32_t x638;
2077
+ fiat_p256_uint1 x639;
2078
+ fiat_p256_subborrowx_u32(&x638, &x639, 0x0, x621, UINT32_C(0xffffffff));
2079
+ uint32_t x640;
2080
+ fiat_p256_uint1 x641;
2081
+ fiat_p256_subborrowx_u32(&x640, &x641, x639, x623, UINT32_C(0xffffffff));
2082
+ uint32_t x642;
2083
+ fiat_p256_uint1 x643;
2084
+ fiat_p256_subborrowx_u32(&x642, &x643, x641, x625, UINT32_C(0xffffffff));
2085
+ uint32_t x644;
2086
+ fiat_p256_uint1 x645;
2087
+ fiat_p256_subborrowx_u32(&x644, &x645, x643, x627, 0x0);
2088
+ uint32_t x646;
2089
+ fiat_p256_uint1 x647;
2090
+ fiat_p256_subborrowx_u32(&x646, &x647, x645, x629, 0x0);
2091
+ uint32_t x648;
2092
+ fiat_p256_uint1 x649;
2093
+ fiat_p256_subborrowx_u32(&x648, &x649, x647, x631, 0x0);
2094
+ uint32_t x650;
2095
+ fiat_p256_uint1 x651;
2096
+ fiat_p256_subborrowx_u32(&x650, &x651, x649, x633, 0x1);
2097
+ uint32_t x652;
2098
+ fiat_p256_uint1 x653;
2099
+ fiat_p256_subborrowx_u32(&x652, &x653, x651, x635, UINT32_C(0xffffffff));
2100
+ uint32_t x654;
2101
+ fiat_p256_uint1 x655;
2102
+ fiat_p256_subborrowx_u32(&x654, &x655, x653, x637, 0x0);
2103
+ uint32_t x656;
2104
+ fiat_p256_cmovznz_u32(&x656, x655, x638, x621);
2127
2105
  uint32_t x657;
2128
- fiat_p256_uint1 x658;
2129
- fiat_p256_addcarryx_u32(&x657, &x658, x656, x629, x625);
2106
+ fiat_p256_cmovznz_u32(&x657, x655, x640, x623);
2107
+ uint32_t x658;
2108
+ fiat_p256_cmovznz_u32(&x658, x655, x642, x625);
2130
2109
  uint32_t x659;
2131
- fiat_p256_uint1 x660;
2132
- fiat_p256_addcarryx_u32(&x659, &x660, x658, x630, x627);
2110
+ fiat_p256_cmovznz_u32(&x659, x655, x644, x627);
2111
+ uint32_t x660;
2112
+ fiat_p256_cmovznz_u32(&x660, x655, x646, x629);
2133
2113
  uint32_t x661;
2134
- fiat_p256_uint1 x662;
2135
- fiat_p256_addcarryx_u32(&x661, &x662, x660, 0x0, x628);
2114
+ fiat_p256_cmovznz_u32(&x661, x655, x648, x631);
2115
+ uint32_t x662;
2116
+ fiat_p256_cmovznz_u32(&x662, x655, x650, x633);
2136
2117
  uint32_t x663;
2137
- fiat_p256_uint1 x664;
2138
- fiat_p256_subborrowx_u32(&x663, &x664, 0x0, x645, UINT32_C(0xffffffff));
2139
- uint32_t x665;
2140
- fiat_p256_uint1 x666;
2141
- fiat_p256_subborrowx_u32(&x665, &x666, x664, x647, UINT32_C(0xffffffff));
2142
- uint32_t x667;
2143
- fiat_p256_uint1 x668;
2144
- fiat_p256_subborrowx_u32(&x667, &x668, x666, x649, UINT32_C(0xffffffff));
2145
- uint32_t x669;
2146
- fiat_p256_uint1 x670;
2147
- fiat_p256_subborrowx_u32(&x669, &x670, x668, x651, 0x0);
2148
- uint32_t x671;
2149
- fiat_p256_uint1 x672;
2150
- fiat_p256_subborrowx_u32(&x671, &x672, x670, x653, 0x0);
2151
- uint32_t x673;
2152
- fiat_p256_uint1 x674;
2153
- fiat_p256_subborrowx_u32(&x673, &x674, x672, x655, 0x0);
2154
- uint32_t x675;
2155
- fiat_p256_uint1 x676;
2156
- fiat_p256_subborrowx_u32(&x675, &x676, x674, x657, 0x1);
2157
- uint32_t x677;
2158
- fiat_p256_uint1 x678;
2159
- fiat_p256_subborrowx_u32(&x677, &x678, x676, x659, UINT32_C(0xffffffff));
2160
- uint32_t x679;
2161
- fiat_p256_uint1 x680;
2162
- fiat_p256_subborrowx_u32(&x679, &x680, x678, x661, 0x0);
2163
- uint32_t x681;
2164
- fiat_p256_cmovznz_u32(&x681, x680, x663, x645);
2165
- uint32_t x682;
2166
- fiat_p256_cmovznz_u32(&x682, x680, x665, x647);
2167
- uint32_t x683;
2168
- fiat_p256_cmovznz_u32(&x683, x680, x667, x649);
2169
- uint32_t x684;
2170
- fiat_p256_cmovznz_u32(&x684, x680, x669, x651);
2171
- uint32_t x685;
2172
- fiat_p256_cmovznz_u32(&x685, x680, x671, x653);
2173
- uint32_t x686;
2174
- fiat_p256_cmovznz_u32(&x686, x680, x673, x655);
2175
- uint32_t x687;
2176
- fiat_p256_cmovznz_u32(&x687, x680, x675, x657);
2177
- uint32_t x688;
2178
- fiat_p256_cmovznz_u32(&x688, x680, x677, x659);
2179
- out1[0] = x681;
2180
- out1[1] = x682;
2181
- out1[2] = x683;
2182
- out1[3] = x684;
2183
- out1[4] = x685;
2184
- out1[5] = x686;
2185
- out1[6] = x687;
2186
- out1[7] = x688;
2118
+ fiat_p256_cmovznz_u32(&x663, x655, x652, x635);
2119
+ out1[0] = x656;
2120
+ out1[1] = x657;
2121
+ out1[2] = x658;
2122
+ out1[3] = x659;
2123
+ out1[4] = x660;
2124
+ out1[5] = x661;
2125
+ out1[6] = x662;
2126
+ out1[7] = x663;
2187
2127
  }
2188
2128
 
2189
2129
  /*
2130
+ * The function fiat_p256_add adds two field elements in the Montgomery domain.
2131
+ * Preconditions:
2132
+ * 0 ≤ eval arg1 < m
2133
+ * 0 ≤ eval arg2 < m
2134
+ * Postconditions:
2135
+ * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
2136
+ * 0 ≤ eval out1 < m
2137
+ *
2190
2138
  * Input Bounds:
2191
2139
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
2192
2140
  * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
@@ -2196,28 +2144,28 @@ static void fiat_p256_square(uint32_t out1[8], const uint32_t arg1[8]) {
2196
2144
  static void fiat_p256_add(uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) {
2197
2145
  uint32_t x1;
2198
2146
  fiat_p256_uint1 x2;
2199
- fiat_p256_addcarryx_u32(&x1, &x2, 0x0, (arg2[0]), (arg1[0]));
2147
+ fiat_p256_addcarryx_u32(&x1, &x2, 0x0, (arg1[0]), (arg2[0]));
2200
2148
  uint32_t x3;
2201
2149
  fiat_p256_uint1 x4;
2202
- fiat_p256_addcarryx_u32(&x3, &x4, x2, (arg2[1]), (arg1[1]));
2150
+ fiat_p256_addcarryx_u32(&x3, &x4, x2, (arg1[1]), (arg2[1]));
2203
2151
  uint32_t x5;
2204
2152
  fiat_p256_uint1 x6;
2205
- fiat_p256_addcarryx_u32(&x5, &x6, x4, (arg2[2]), (arg1[2]));
2153
+ fiat_p256_addcarryx_u32(&x5, &x6, x4, (arg1[2]), (arg2[2]));
2206
2154
  uint32_t x7;
2207
2155
  fiat_p256_uint1 x8;
2208
- fiat_p256_addcarryx_u32(&x7, &x8, x6, (arg2[3]), (arg1[3]));
2156
+ fiat_p256_addcarryx_u32(&x7, &x8, x6, (arg1[3]), (arg2[3]));
2209
2157
  uint32_t x9;
2210
2158
  fiat_p256_uint1 x10;
2211
- fiat_p256_addcarryx_u32(&x9, &x10, x8, (arg2[4]), (arg1[4]));
2159
+ fiat_p256_addcarryx_u32(&x9, &x10, x8, (arg1[4]), (arg2[4]));
2212
2160
  uint32_t x11;
2213
2161
  fiat_p256_uint1 x12;
2214
- fiat_p256_addcarryx_u32(&x11, &x12, x10, (arg2[5]), (arg1[5]));
2162
+ fiat_p256_addcarryx_u32(&x11, &x12, x10, (arg1[5]), (arg2[5]));
2215
2163
  uint32_t x13;
2216
2164
  fiat_p256_uint1 x14;
2217
- fiat_p256_addcarryx_u32(&x13, &x14, x12, (arg2[6]), (arg1[6]));
2165
+ fiat_p256_addcarryx_u32(&x13, &x14, x12, (arg1[6]), (arg2[6]));
2218
2166
  uint32_t x15;
2219
2167
  fiat_p256_uint1 x16;
2220
- fiat_p256_addcarryx_u32(&x15, &x16, x14, (arg2[7]), (arg1[7]));
2168
+ fiat_p256_addcarryx_u32(&x15, &x16, x14, (arg1[7]), (arg2[7]));
2221
2169
  uint32_t x17;
2222
2170
  fiat_p256_uint1 x18;
2223
2171
  fiat_p256_subborrowx_u32(&x17, &x18, 0x0, x1, UINT32_C(0xffffffff));
@@ -2272,6 +2220,14 @@ static void fiat_p256_add(uint32_t out1[8], const uint32_t arg1[8], const uint32
2272
2220
  }
2273
2221
 
2274
2222
  /*
2223
+ * The function fiat_p256_sub subtracts two field elements in the Montgomery domain.
2224
+ * Preconditions:
2225
+ * 0 ≤ eval arg1 < m
2226
+ * 0 ≤ eval arg2 < m
2227
+ * Postconditions:
2228
+ * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
2229
+ * 0 ≤ eval out1 < m
2230
+ *
2275
2231
  * Input Bounds:
2276
2232
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
2277
2233
  * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
@@ -2307,28 +2263,28 @@ static void fiat_p256_sub(uint32_t out1[8], const uint32_t arg1[8], const uint32
2307
2263
  fiat_p256_cmovznz_u32(&x17, x16, 0x0, UINT32_C(0xffffffff));
2308
2264
  uint32_t x18;
2309
2265
  fiat_p256_uint1 x19;
2310
- fiat_p256_addcarryx_u32(&x18, &x19, 0x0, (x17 & UINT32_C(0xffffffff)), x1);
2266
+ fiat_p256_addcarryx_u32(&x18, &x19, 0x0, x1, (x17 & UINT32_C(0xffffffff)));
2311
2267
  uint32_t x20;
2312
2268
  fiat_p256_uint1 x21;
2313
- fiat_p256_addcarryx_u32(&x20, &x21, x19, (x17 & UINT32_C(0xffffffff)), x3);
2269
+ fiat_p256_addcarryx_u32(&x20, &x21, x19, x3, (x17 & UINT32_C(0xffffffff)));
2314
2270
  uint32_t x22;
2315
2271
  fiat_p256_uint1 x23;
2316
- fiat_p256_addcarryx_u32(&x22, &x23, x21, (x17 & UINT32_C(0xffffffff)), x5);
2272
+ fiat_p256_addcarryx_u32(&x22, &x23, x21, x5, (x17 & UINT32_C(0xffffffff)));
2317
2273
  uint32_t x24;
2318
2274
  fiat_p256_uint1 x25;
2319
- fiat_p256_addcarryx_u32(&x24, &x25, x23, 0x0, x7);
2275
+ fiat_p256_addcarryx_u32(&x24, &x25, x23, x7, 0x0);
2320
2276
  uint32_t x26;
2321
2277
  fiat_p256_uint1 x27;
2322
- fiat_p256_addcarryx_u32(&x26, &x27, x25, 0x0, x9);
2278
+ fiat_p256_addcarryx_u32(&x26, &x27, x25, x9, 0x0);
2323
2279
  uint32_t x28;
2324
2280
  fiat_p256_uint1 x29;
2325
- fiat_p256_addcarryx_u32(&x28, &x29, x27, 0x0, x11);
2281
+ fiat_p256_addcarryx_u32(&x28, &x29, x27, x11, 0x0);
2326
2282
  uint32_t x30;
2327
2283
  fiat_p256_uint1 x31;
2328
- fiat_p256_addcarryx_u32(&x30, &x31, x29, (fiat_p256_uint1)(x17 & 0x1), x13);
2284
+ fiat_p256_addcarryx_u32(&x30, &x31, x29, x13, (fiat_p256_uint1)(x17 & 0x1));
2329
2285
  uint32_t x32;
2330
2286
  fiat_p256_uint1 x33;
2331
- fiat_p256_addcarryx_u32(&x32, &x33, x31, (x17 & UINT32_C(0xffffffff)), x15);
2287
+ fiat_p256_addcarryx_u32(&x32, &x33, x31, x15, (x17 & UINT32_C(0xffffffff)));
2332
2288
  out1[0] = x18;
2333
2289
  out1[1] = x20;
2334
2290
  out1[2] = x22;
@@ -2340,6 +2296,13 @@ static void fiat_p256_sub(uint32_t out1[8], const uint32_t arg1[8], const uint32
2340
2296
  }
2341
2297
 
2342
2298
  /*
2299
+ * The function fiat_p256_opp negates a field element in the Montgomery domain.
2300
+ * Preconditions:
2301
+ * 0 ≤ eval arg1 < m
2302
+ * Postconditions:
2303
+ * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
2304
+ * 0 ≤ eval out1 < m
2305
+ *
2343
2306
  * Input Bounds:
2344
2307
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
2345
2308
  * Output Bounds:
@@ -2374,28 +2337,28 @@ static void fiat_p256_opp(uint32_t out1[8], const uint32_t arg1[8]) {
2374
2337
  fiat_p256_cmovznz_u32(&x17, x16, 0x0, UINT32_C(0xffffffff));
2375
2338
  uint32_t x18;
2376
2339
  fiat_p256_uint1 x19;
2377
- fiat_p256_addcarryx_u32(&x18, &x19, 0x0, (x17 & UINT32_C(0xffffffff)), x1);
2340
+ fiat_p256_addcarryx_u32(&x18, &x19, 0x0, x1, (x17 & UINT32_C(0xffffffff)));
2378
2341
  uint32_t x20;
2379
2342
  fiat_p256_uint1 x21;
2380
- fiat_p256_addcarryx_u32(&x20, &x21, x19, (x17 & UINT32_C(0xffffffff)), x3);
2343
+ fiat_p256_addcarryx_u32(&x20, &x21, x19, x3, (x17 & UINT32_C(0xffffffff)));
2381
2344
  uint32_t x22;
2382
2345
  fiat_p256_uint1 x23;
2383
- fiat_p256_addcarryx_u32(&x22, &x23, x21, (x17 & UINT32_C(0xffffffff)), x5);
2346
+ fiat_p256_addcarryx_u32(&x22, &x23, x21, x5, (x17 & UINT32_C(0xffffffff)));
2384
2347
  uint32_t x24;
2385
2348
  fiat_p256_uint1 x25;
2386
- fiat_p256_addcarryx_u32(&x24, &x25, x23, 0x0, x7);
2349
+ fiat_p256_addcarryx_u32(&x24, &x25, x23, x7, 0x0);
2387
2350
  uint32_t x26;
2388
2351
  fiat_p256_uint1 x27;
2389
- fiat_p256_addcarryx_u32(&x26, &x27, x25, 0x0, x9);
2352
+ fiat_p256_addcarryx_u32(&x26, &x27, x25, x9, 0x0);
2390
2353
  uint32_t x28;
2391
2354
  fiat_p256_uint1 x29;
2392
- fiat_p256_addcarryx_u32(&x28, &x29, x27, 0x0, x11);
2355
+ fiat_p256_addcarryx_u32(&x28, &x29, x27, x11, 0x0);
2393
2356
  uint32_t x30;
2394
2357
  fiat_p256_uint1 x31;
2395
- fiat_p256_addcarryx_u32(&x30, &x31, x29, (fiat_p256_uint1)(x17 & 0x1), x13);
2358
+ fiat_p256_addcarryx_u32(&x30, &x31, x29, x13, (fiat_p256_uint1)(x17 & 0x1));
2396
2359
  uint32_t x32;
2397
2360
  fiat_p256_uint1 x33;
2398
- fiat_p256_addcarryx_u32(&x32, &x33, x31, (x17 & UINT32_C(0xffffffff)), x15);
2361
+ fiat_p256_addcarryx_u32(&x32, &x33, x31, x15, (x17 & UINT32_C(0xffffffff)));
2399
2362
  out1[0] = x18;
2400
2363
  out1[1] = x20;
2401
2364
  out1[2] = x22;
@@ -2407,6 +2370,13 @@ static void fiat_p256_opp(uint32_t out1[8], const uint32_t arg1[8]) {
2407
2370
  }
2408
2371
 
2409
2372
  /*
2373
+ * The function fiat_p256_from_montgomery translates a field element out of the Montgomery domain.
2374
+ * Preconditions:
2375
+ * 0 ≤ eval arg1 < m
2376
+ * Postconditions:
2377
+ * eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m
2378
+ * 0 ≤ eval out1 < m
2379
+ *
2410
2380
  * Input Bounds:
2411
2381
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
2412
2382
  * Output Bounds:
@@ -2428,589 +2398,523 @@ static void fiat_p256_from_montgomery(uint32_t out1[8], const uint32_t arg1[8])
2428
2398
  fiat_p256_mulx_u32(&x8, &x9, x1, UINT32_C(0xffffffff));
2429
2399
  uint32_t x10;
2430
2400
  fiat_p256_uint1 x11;
2431
- fiat_p256_addcarryx_u32(&x10, &x11, 0x0, x6, x9);
2401
+ fiat_p256_addcarryx_u32(&x10, &x11, 0x0, x9, x6);
2432
2402
  uint32_t x12;
2433
2403
  fiat_p256_uint1 x13;
2434
- fiat_p256_addcarryx_u32(&x12, &x13, x11, x4, x7);
2404
+ fiat_p256_addcarryx_u32(&x12, &x13, x11, x7, x4);
2435
2405
  uint32_t x14;
2436
2406
  fiat_p256_uint1 x15;
2437
- fiat_p256_addcarryx_u32(&x14, &x15, 0x0, x8, x1);
2407
+ fiat_p256_addcarryx_u32(&x14, &x15, 0x0, x1, x8);
2438
2408
  uint32_t x16;
2439
2409
  fiat_p256_uint1 x17;
2440
- fiat_p256_addcarryx_u32(&x16, &x17, x15, x10, 0x0);
2410
+ fiat_p256_addcarryx_u32(&x16, &x17, x15, 0x0, x10);
2441
2411
  uint32_t x18;
2442
2412
  fiat_p256_uint1 x19;
2443
- fiat_p256_addcarryx_u32(&x18, &x19, x17, x12, 0x0);
2413
+ fiat_p256_addcarryx_u32(&x18, &x19, x17, 0x0, x12);
2444
2414
  uint32_t x20;
2445
2415
  fiat_p256_uint1 x21;
2446
- fiat_p256_addcarryx_u32(&x20, &x21, x13, 0x0, x5);
2416
+ fiat_p256_addcarryx_u32(&x20, &x21, x19, 0x0, (x13 + x5));
2447
2417
  uint32_t x22;
2448
2418
  fiat_p256_uint1 x23;
2449
- fiat_p256_addcarryx_u32(&x22, &x23, x19, x20, 0x0);
2419
+ fiat_p256_addcarryx_u32(&x22, &x23, 0x0, x16, (arg1[1]));
2450
2420
  uint32_t x24;
2451
2421
  fiat_p256_uint1 x25;
2452
- fiat_p256_addcarryx_u32(&x24, &x25, 0x0, (arg1[1]), x16);
2422
+ fiat_p256_addcarryx_u32(&x24, &x25, x23, x18, 0x0);
2453
2423
  uint32_t x26;
2454
2424
  fiat_p256_uint1 x27;
2455
- fiat_p256_addcarryx_u32(&x26, &x27, x25, 0x0, x18);
2425
+ fiat_p256_addcarryx_u32(&x26, &x27, x25, x20, 0x0);
2456
2426
  uint32_t x28;
2457
- fiat_p256_uint1 x29;
2458
- fiat_p256_addcarryx_u32(&x28, &x29, x27, 0x0, x22);
2427
+ uint32_t x29;
2428
+ fiat_p256_mulx_u32(&x28, &x29, x22, UINT32_C(0xffffffff));
2459
2429
  uint32_t x30;
2460
2430
  uint32_t x31;
2461
- fiat_p256_mulx_u32(&x30, &x31, x24, UINT32_C(0xffffffff));
2431
+ fiat_p256_mulx_u32(&x30, &x31, x22, UINT32_C(0xffffffff));
2462
2432
  uint32_t x32;
2463
2433
  uint32_t x33;
2464
- fiat_p256_mulx_u32(&x32, &x33, x24, UINT32_C(0xffffffff));
2434
+ fiat_p256_mulx_u32(&x32, &x33, x22, UINT32_C(0xffffffff));
2465
2435
  uint32_t x34;
2466
2436
  uint32_t x35;
2467
- fiat_p256_mulx_u32(&x34, &x35, x24, UINT32_C(0xffffffff));
2437
+ fiat_p256_mulx_u32(&x34, &x35, x22, UINT32_C(0xffffffff));
2468
2438
  uint32_t x36;
2469
- uint32_t x37;
2470
- fiat_p256_mulx_u32(&x36, &x37, x24, UINT32_C(0xffffffff));
2439
+ fiat_p256_uint1 x37;
2440
+ fiat_p256_addcarryx_u32(&x36, &x37, 0x0, x35, x32);
2471
2441
  uint32_t x38;
2472
2442
  fiat_p256_uint1 x39;
2473
- fiat_p256_addcarryx_u32(&x38, &x39, 0x0, x34, x37);
2443
+ fiat_p256_addcarryx_u32(&x38, &x39, x37, x33, x30);
2474
2444
  uint32_t x40;
2475
2445
  fiat_p256_uint1 x41;
2476
- fiat_p256_addcarryx_u32(&x40, &x41, x39, x32, x35);
2446
+ fiat_p256_addcarryx_u32(&x40, &x41, 0x0, x22, x34);
2477
2447
  uint32_t x42;
2478
2448
  fiat_p256_uint1 x43;
2479
- fiat_p256_addcarryx_u32(&x42, &x43, 0x0, x36, x24);
2449
+ fiat_p256_addcarryx_u32(&x42, &x43, x41, x24, x36);
2480
2450
  uint32_t x44;
2481
2451
  fiat_p256_uint1 x45;
2482
- fiat_p256_addcarryx_u32(&x44, &x45, x43, x38, x26);
2452
+ fiat_p256_addcarryx_u32(&x44, &x45, x43, x26, x38);
2483
2453
  uint32_t x46;
2484
2454
  fiat_p256_uint1 x47;
2485
- fiat_p256_addcarryx_u32(&x46, &x47, x45, x40, x28);
2455
+ fiat_p256_addcarryx_u32(&x46, &x47, x45, ((uint32_t)x27 + x21), (x39 + x31));
2486
2456
  uint32_t x48;
2487
2457
  fiat_p256_uint1 x49;
2488
- fiat_p256_addcarryx_u32(&x48, &x49, x23, 0x0, 0x0);
2458
+ fiat_p256_addcarryx_u32(&x48, &x49, 0x0, x2, x22);
2489
2459
  uint32_t x50;
2490
2460
  fiat_p256_uint1 x51;
2491
- fiat_p256_addcarryx_u32(&x50, &x51, x29, 0x0, (fiat_p256_uint1)x48);
2461
+ fiat_p256_addcarryx_u32(&x50, &x51, x49, x3, x28);
2492
2462
  uint32_t x52;
2493
2463
  fiat_p256_uint1 x53;
2494
- fiat_p256_addcarryx_u32(&x52, &x53, x41, 0x0, x33);
2464
+ fiat_p256_addcarryx_u32(&x52, &x53, 0x0, x42, (arg1[2]));
2495
2465
  uint32_t x54;
2496
2466
  fiat_p256_uint1 x55;
2497
- fiat_p256_addcarryx_u32(&x54, &x55, x47, x52, x50);
2467
+ fiat_p256_addcarryx_u32(&x54, &x55, x53, x44, 0x0);
2498
2468
  uint32_t x56;
2499
2469
  fiat_p256_uint1 x57;
2500
- fiat_p256_addcarryx_u32(&x56, &x57, 0x0, x24, x2);
2470
+ fiat_p256_addcarryx_u32(&x56, &x57, x55, x46, 0x0);
2501
2471
  uint32_t x58;
2502
- fiat_p256_uint1 x59;
2503
- fiat_p256_addcarryx_u32(&x58, &x59, x57, x30, x3);
2472
+ uint32_t x59;
2473
+ fiat_p256_mulx_u32(&x58, &x59, x52, UINT32_C(0xffffffff));
2504
2474
  uint32_t x60;
2505
- fiat_p256_uint1 x61;
2506
- fiat_p256_addcarryx_u32(&x60, &x61, 0x0, (arg1[2]), x44);
2475
+ uint32_t x61;
2476
+ fiat_p256_mulx_u32(&x60, &x61, x52, UINT32_C(0xffffffff));
2507
2477
  uint32_t x62;
2508
- fiat_p256_uint1 x63;
2509
- fiat_p256_addcarryx_u32(&x62, &x63, x61, 0x0, x46);
2478
+ uint32_t x63;
2479
+ fiat_p256_mulx_u32(&x62, &x63, x52, UINT32_C(0xffffffff));
2510
2480
  uint32_t x64;
2511
- fiat_p256_uint1 x65;
2512
- fiat_p256_addcarryx_u32(&x64, &x65, x63, 0x0, x54);
2481
+ uint32_t x65;
2482
+ fiat_p256_mulx_u32(&x64, &x65, x52, UINT32_C(0xffffffff));
2513
2483
  uint32_t x66;
2514
- uint32_t x67;
2515
- fiat_p256_mulx_u32(&x66, &x67, x60, UINT32_C(0xffffffff));
2484
+ fiat_p256_uint1 x67;
2485
+ fiat_p256_addcarryx_u32(&x66, &x67, 0x0, x65, x62);
2516
2486
  uint32_t x68;
2517
- uint32_t x69;
2518
- fiat_p256_mulx_u32(&x68, &x69, x60, UINT32_C(0xffffffff));
2487
+ fiat_p256_uint1 x69;
2488
+ fiat_p256_addcarryx_u32(&x68, &x69, x67, x63, x60);
2519
2489
  uint32_t x70;
2520
- uint32_t x71;
2521
- fiat_p256_mulx_u32(&x70, &x71, x60, UINT32_C(0xffffffff));
2490
+ fiat_p256_uint1 x71;
2491
+ fiat_p256_addcarryx_u32(&x70, &x71, 0x0, x52, x64);
2522
2492
  uint32_t x72;
2523
- uint32_t x73;
2524
- fiat_p256_mulx_u32(&x72, &x73, x60, UINT32_C(0xffffffff));
2493
+ fiat_p256_uint1 x73;
2494
+ fiat_p256_addcarryx_u32(&x72, &x73, x71, x54, x66);
2525
2495
  uint32_t x74;
2526
2496
  fiat_p256_uint1 x75;
2527
- fiat_p256_addcarryx_u32(&x74, &x75, 0x0, x70, x73);
2497
+ fiat_p256_addcarryx_u32(&x74, &x75, x73, x56, x68);
2528
2498
  uint32_t x76;
2529
2499
  fiat_p256_uint1 x77;
2530
- fiat_p256_addcarryx_u32(&x76, &x77, x75, x68, x71);
2500
+ fiat_p256_addcarryx_u32(&x76, &x77, x75, ((uint32_t)x57 + x47), (x69 + x61));
2531
2501
  uint32_t x78;
2532
2502
  fiat_p256_uint1 x79;
2533
- fiat_p256_addcarryx_u32(&x78, &x79, 0x0, x72, x60);
2503
+ fiat_p256_addcarryx_u32(&x78, &x79, x77, x1, 0x0);
2534
2504
  uint32_t x80;
2535
2505
  fiat_p256_uint1 x81;
2536
- fiat_p256_addcarryx_u32(&x80, &x81, x79, x74, x62);
2506
+ fiat_p256_addcarryx_u32(&x80, &x81, x79, x48, 0x0);
2537
2507
  uint32_t x82;
2538
2508
  fiat_p256_uint1 x83;
2539
- fiat_p256_addcarryx_u32(&x82, &x83, x81, x76, x64);
2509
+ fiat_p256_addcarryx_u32(&x82, &x83, x81, x50, x52);
2540
2510
  uint32_t x84;
2541
2511
  fiat_p256_uint1 x85;
2542
- fiat_p256_addcarryx_u32(&x84, &x85, x55, 0x0, 0x0);
2512
+ fiat_p256_addcarryx_u32(&x84, &x85, x83, (x51 + x29), x58);
2543
2513
  uint32_t x86;
2544
2514
  fiat_p256_uint1 x87;
2545
- fiat_p256_addcarryx_u32(&x86, &x87, x65, 0x0, (fiat_p256_uint1)x84);
2515
+ fiat_p256_addcarryx_u32(&x86, &x87, 0x0, x72, (arg1[3]));
2546
2516
  uint32_t x88;
2547
2517
  fiat_p256_uint1 x89;
2548
- fiat_p256_addcarryx_u32(&x88, &x89, x77, 0x0, x69);
2518
+ fiat_p256_addcarryx_u32(&x88, &x89, x87, x74, 0x0);
2549
2519
  uint32_t x90;
2550
2520
  fiat_p256_uint1 x91;
2551
- fiat_p256_addcarryx_u32(&x90, &x91, x83, x88, x86);
2521
+ fiat_p256_addcarryx_u32(&x90, &x91, x89, x76, 0x0);
2552
2522
  uint32_t x92;
2553
2523
  fiat_p256_uint1 x93;
2554
- fiat_p256_addcarryx_u32(&x92, &x93, x91, 0x0, x1);
2524
+ fiat_p256_addcarryx_u32(&x92, &x93, x91, x78, 0x0);
2555
2525
  uint32_t x94;
2556
2526
  fiat_p256_uint1 x95;
2557
- fiat_p256_addcarryx_u32(&x94, &x95, x93, 0x0, x56);
2527
+ fiat_p256_addcarryx_u32(&x94, &x95, x93, x80, 0x0);
2558
2528
  uint32_t x96;
2559
2529
  fiat_p256_uint1 x97;
2560
- fiat_p256_addcarryx_u32(&x96, &x97, x95, x60, x58);
2530
+ fiat_p256_addcarryx_u32(&x96, &x97, x95, x82, 0x0);
2561
2531
  uint32_t x98;
2562
2532
  fiat_p256_uint1 x99;
2563
- fiat_p256_addcarryx_u32(&x98, &x99, x59, x31, 0x0);
2533
+ fiat_p256_addcarryx_u32(&x98, &x99, x97, x84, 0x0);
2564
2534
  uint32_t x100;
2565
2535
  fiat_p256_uint1 x101;
2566
- fiat_p256_addcarryx_u32(&x100, &x101, x97, x66, x98);
2536
+ fiat_p256_addcarryx_u32(&x100, &x101, x99, (x85 + x59), 0x0);
2567
2537
  uint32_t x102;
2568
- fiat_p256_uint1 x103;
2569
- fiat_p256_addcarryx_u32(&x102, &x103, 0x0, (arg1[3]), x80);
2538
+ uint32_t x103;
2539
+ fiat_p256_mulx_u32(&x102, &x103, x86, UINT32_C(0xffffffff));
2570
2540
  uint32_t x104;
2571
- fiat_p256_uint1 x105;
2572
- fiat_p256_addcarryx_u32(&x104, &x105, x103, 0x0, x82);
2541
+ uint32_t x105;
2542
+ fiat_p256_mulx_u32(&x104, &x105, x86, UINT32_C(0xffffffff));
2573
2543
  uint32_t x106;
2574
- fiat_p256_uint1 x107;
2575
- fiat_p256_addcarryx_u32(&x106, &x107, x105, 0x0, x90);
2544
+ uint32_t x107;
2545
+ fiat_p256_mulx_u32(&x106, &x107, x86, UINT32_C(0xffffffff));
2576
2546
  uint32_t x108;
2577
- fiat_p256_uint1 x109;
2578
- fiat_p256_addcarryx_u32(&x108, &x109, x107, 0x0, x92);
2547
+ uint32_t x109;
2548
+ fiat_p256_mulx_u32(&x108, &x109, x86, UINT32_C(0xffffffff));
2579
2549
  uint32_t x110;
2580
2550
  fiat_p256_uint1 x111;
2581
- fiat_p256_addcarryx_u32(&x110, &x111, x109, 0x0, x94);
2551
+ fiat_p256_addcarryx_u32(&x110, &x111, 0x0, x109, x106);
2582
2552
  uint32_t x112;
2583
2553
  fiat_p256_uint1 x113;
2584
- fiat_p256_addcarryx_u32(&x112, &x113, x111, 0x0, x96);
2554
+ fiat_p256_addcarryx_u32(&x112, &x113, x111, x107, x104);
2585
2555
  uint32_t x114;
2586
2556
  fiat_p256_uint1 x115;
2587
- fiat_p256_addcarryx_u32(&x114, &x115, x113, 0x0, x100);
2557
+ fiat_p256_addcarryx_u32(&x114, &x115, 0x0, x86, x108);
2588
2558
  uint32_t x116;
2589
2559
  fiat_p256_uint1 x117;
2590
- fiat_p256_addcarryx_u32(&x116, &x117, x101, x67, 0x0);
2560
+ fiat_p256_addcarryx_u32(&x116, &x117, x115, x88, x110);
2591
2561
  uint32_t x118;
2592
2562
  fiat_p256_uint1 x119;
2593
- fiat_p256_addcarryx_u32(&x118, &x119, x115, 0x0, x116);
2563
+ fiat_p256_addcarryx_u32(&x118, &x119, x117, x90, x112);
2594
2564
  uint32_t x120;
2595
- uint32_t x121;
2596
- fiat_p256_mulx_u32(&x120, &x121, x102, UINT32_C(0xffffffff));
2565
+ fiat_p256_uint1 x121;
2566
+ fiat_p256_addcarryx_u32(&x120, &x121, x119, x92, (x113 + x105));
2597
2567
  uint32_t x122;
2598
- uint32_t x123;
2599
- fiat_p256_mulx_u32(&x122, &x123, x102, UINT32_C(0xffffffff));
2568
+ fiat_p256_uint1 x123;
2569
+ fiat_p256_addcarryx_u32(&x122, &x123, x121, x94, 0x0);
2600
2570
  uint32_t x124;
2601
- uint32_t x125;
2602
- fiat_p256_mulx_u32(&x124, &x125, x102, UINT32_C(0xffffffff));
2571
+ fiat_p256_uint1 x125;
2572
+ fiat_p256_addcarryx_u32(&x124, &x125, x123, x96, 0x0);
2603
2573
  uint32_t x126;
2604
- uint32_t x127;
2605
- fiat_p256_mulx_u32(&x126, &x127, x102, UINT32_C(0xffffffff));
2574
+ fiat_p256_uint1 x127;
2575
+ fiat_p256_addcarryx_u32(&x126, &x127, x125, x98, x86);
2606
2576
  uint32_t x128;
2607
2577
  fiat_p256_uint1 x129;
2608
- fiat_p256_addcarryx_u32(&x128, &x129, 0x0, x124, x127);
2578
+ fiat_p256_addcarryx_u32(&x128, &x129, x127, x100, x102);
2609
2579
  uint32_t x130;
2610
2580
  fiat_p256_uint1 x131;
2611
- fiat_p256_addcarryx_u32(&x130, &x131, x129, x122, x125);
2581
+ fiat_p256_addcarryx_u32(&x130, &x131, x129, x101, x103);
2612
2582
  uint32_t x132;
2613
2583
  fiat_p256_uint1 x133;
2614
- fiat_p256_addcarryx_u32(&x132, &x133, 0x0, x126, x102);
2584
+ fiat_p256_addcarryx_u32(&x132, &x133, 0x0, x116, (arg1[4]));
2615
2585
  uint32_t x134;
2616
2586
  fiat_p256_uint1 x135;
2617
- fiat_p256_addcarryx_u32(&x134, &x135, x133, x128, x104);
2587
+ fiat_p256_addcarryx_u32(&x134, &x135, x133, x118, 0x0);
2618
2588
  uint32_t x136;
2619
2589
  fiat_p256_uint1 x137;
2620
- fiat_p256_addcarryx_u32(&x136, &x137, x135, x130, x106);
2590
+ fiat_p256_addcarryx_u32(&x136, &x137, x135, x120, 0x0);
2621
2591
  uint32_t x138;
2622
2592
  fiat_p256_uint1 x139;
2623
- fiat_p256_addcarryx_u32(&x138, &x139, x131, 0x0, x123);
2593
+ fiat_p256_addcarryx_u32(&x138, &x139, x137, x122, 0x0);
2624
2594
  uint32_t x140;
2625
2595
  fiat_p256_uint1 x141;
2626
- fiat_p256_addcarryx_u32(&x140, &x141, x137, x138, x108);
2596
+ fiat_p256_addcarryx_u32(&x140, &x141, x139, x124, 0x0);
2627
2597
  uint32_t x142;
2628
2598
  fiat_p256_uint1 x143;
2629
- fiat_p256_addcarryx_u32(&x142, &x143, x141, 0x0, x110);
2599
+ fiat_p256_addcarryx_u32(&x142, &x143, x141, x126, 0x0);
2630
2600
  uint32_t x144;
2631
2601
  fiat_p256_uint1 x145;
2632
- fiat_p256_addcarryx_u32(&x144, &x145, x143, 0x0, x112);
2602
+ fiat_p256_addcarryx_u32(&x144, &x145, x143, x128, 0x0);
2633
2603
  uint32_t x146;
2634
2604
  fiat_p256_uint1 x147;
2635
- fiat_p256_addcarryx_u32(&x146, &x147, x145, x102, x114);
2605
+ fiat_p256_addcarryx_u32(&x146, &x147, x145, x130, 0x0);
2636
2606
  uint32_t x148;
2637
- fiat_p256_uint1 x149;
2638
- fiat_p256_addcarryx_u32(&x148, &x149, x147, x120, x118);
2607
+ uint32_t x149;
2608
+ fiat_p256_mulx_u32(&x148, &x149, x132, UINT32_C(0xffffffff));
2639
2609
  uint32_t x150;
2640
- fiat_p256_uint1 x151;
2641
- fiat_p256_addcarryx_u32(&x150, &x151, x119, 0x0, 0x0);
2610
+ uint32_t x151;
2611
+ fiat_p256_mulx_u32(&x150, &x151, x132, UINT32_C(0xffffffff));
2642
2612
  uint32_t x152;
2643
- fiat_p256_uint1 x153;
2644
- fiat_p256_addcarryx_u32(&x152, &x153, x149, x121, (fiat_p256_uint1)x150);
2613
+ uint32_t x153;
2614
+ fiat_p256_mulx_u32(&x152, &x153, x132, UINT32_C(0xffffffff));
2645
2615
  uint32_t x154;
2646
- fiat_p256_uint1 x155;
2647
- fiat_p256_addcarryx_u32(&x154, &x155, 0x0, (arg1[4]), x134);
2616
+ uint32_t x155;
2617
+ fiat_p256_mulx_u32(&x154, &x155, x132, UINT32_C(0xffffffff));
2648
2618
  uint32_t x156;
2649
2619
  fiat_p256_uint1 x157;
2650
- fiat_p256_addcarryx_u32(&x156, &x157, x155, 0x0, x136);
2620
+ fiat_p256_addcarryx_u32(&x156, &x157, 0x0, x155, x152);
2651
2621
  uint32_t x158;
2652
2622
  fiat_p256_uint1 x159;
2653
- fiat_p256_addcarryx_u32(&x158, &x159, x157, 0x0, x140);
2623
+ fiat_p256_addcarryx_u32(&x158, &x159, x157, x153, x150);
2654
2624
  uint32_t x160;
2655
2625
  fiat_p256_uint1 x161;
2656
- fiat_p256_addcarryx_u32(&x160, &x161, x159, 0x0, x142);
2626
+ fiat_p256_addcarryx_u32(&x160, &x161, 0x0, x132, x154);
2657
2627
  uint32_t x162;
2658
2628
  fiat_p256_uint1 x163;
2659
- fiat_p256_addcarryx_u32(&x162, &x163, x161, 0x0, x144);
2629
+ fiat_p256_addcarryx_u32(&x162, &x163, x161, x134, x156);
2660
2630
  uint32_t x164;
2661
2631
  fiat_p256_uint1 x165;
2662
- fiat_p256_addcarryx_u32(&x164, &x165, x163, 0x0, x146);
2632
+ fiat_p256_addcarryx_u32(&x164, &x165, x163, x136, x158);
2663
2633
  uint32_t x166;
2664
2634
  fiat_p256_uint1 x167;
2665
- fiat_p256_addcarryx_u32(&x166, &x167, x165, 0x0, x148);
2635
+ fiat_p256_addcarryx_u32(&x166, &x167, x165, x138, (x159 + x151));
2666
2636
  uint32_t x168;
2667
2637
  fiat_p256_uint1 x169;
2668
- fiat_p256_addcarryx_u32(&x168, &x169, x167, 0x0, x152);
2638
+ fiat_p256_addcarryx_u32(&x168, &x169, x167, x140, 0x0);
2669
2639
  uint32_t x170;
2670
- uint32_t x171;
2671
- fiat_p256_mulx_u32(&x170, &x171, x154, UINT32_C(0xffffffff));
2640
+ fiat_p256_uint1 x171;
2641
+ fiat_p256_addcarryx_u32(&x170, &x171, x169, x142, 0x0);
2672
2642
  uint32_t x172;
2673
- uint32_t x173;
2674
- fiat_p256_mulx_u32(&x172, &x173, x154, UINT32_C(0xffffffff));
2643
+ fiat_p256_uint1 x173;
2644
+ fiat_p256_addcarryx_u32(&x172, &x173, x171, x144, x132);
2675
2645
  uint32_t x174;
2676
- uint32_t x175;
2677
- fiat_p256_mulx_u32(&x174, &x175, x154, UINT32_C(0xffffffff));
2646
+ fiat_p256_uint1 x175;
2647
+ fiat_p256_addcarryx_u32(&x174, &x175, x173, x146, x148);
2678
2648
  uint32_t x176;
2679
- uint32_t x177;
2680
- fiat_p256_mulx_u32(&x176, &x177, x154, UINT32_C(0xffffffff));
2649
+ fiat_p256_uint1 x177;
2650
+ fiat_p256_addcarryx_u32(&x176, &x177, x175, ((uint32_t)x147 + x131), x149);
2681
2651
  uint32_t x178;
2682
2652
  fiat_p256_uint1 x179;
2683
- fiat_p256_addcarryx_u32(&x178, &x179, 0x0, x174, x177);
2653
+ fiat_p256_addcarryx_u32(&x178, &x179, 0x0, x162, (arg1[5]));
2684
2654
  uint32_t x180;
2685
2655
  fiat_p256_uint1 x181;
2686
- fiat_p256_addcarryx_u32(&x180, &x181, x179, x172, x175);
2656
+ fiat_p256_addcarryx_u32(&x180, &x181, x179, x164, 0x0);
2687
2657
  uint32_t x182;
2688
2658
  fiat_p256_uint1 x183;
2689
- fiat_p256_addcarryx_u32(&x182, &x183, 0x0, x176, x154);
2659
+ fiat_p256_addcarryx_u32(&x182, &x183, x181, x166, 0x0);
2690
2660
  uint32_t x184;
2691
2661
  fiat_p256_uint1 x185;
2692
- fiat_p256_addcarryx_u32(&x184, &x185, x183, x178, x156);
2662
+ fiat_p256_addcarryx_u32(&x184, &x185, x183, x168, 0x0);
2693
2663
  uint32_t x186;
2694
2664
  fiat_p256_uint1 x187;
2695
- fiat_p256_addcarryx_u32(&x186, &x187, x185, x180, x158);
2665
+ fiat_p256_addcarryx_u32(&x186, &x187, x185, x170, 0x0);
2696
2666
  uint32_t x188;
2697
2667
  fiat_p256_uint1 x189;
2698
- fiat_p256_addcarryx_u32(&x188, &x189, x181, 0x0, x173);
2668
+ fiat_p256_addcarryx_u32(&x188, &x189, x187, x172, 0x0);
2699
2669
  uint32_t x190;
2700
2670
  fiat_p256_uint1 x191;
2701
- fiat_p256_addcarryx_u32(&x190, &x191, x187, x188, x160);
2671
+ fiat_p256_addcarryx_u32(&x190, &x191, x189, x174, 0x0);
2702
2672
  uint32_t x192;
2703
2673
  fiat_p256_uint1 x193;
2704
- fiat_p256_addcarryx_u32(&x192, &x193, x191, 0x0, x162);
2674
+ fiat_p256_addcarryx_u32(&x192, &x193, x191, x176, 0x0);
2705
2675
  uint32_t x194;
2706
- fiat_p256_uint1 x195;
2707
- fiat_p256_addcarryx_u32(&x194, &x195, x193, 0x0, x164);
2676
+ uint32_t x195;
2677
+ fiat_p256_mulx_u32(&x194, &x195, x178, UINT32_C(0xffffffff));
2708
2678
  uint32_t x196;
2709
- fiat_p256_uint1 x197;
2710
- fiat_p256_addcarryx_u32(&x196, &x197, x195, x154, x166);
2679
+ uint32_t x197;
2680
+ fiat_p256_mulx_u32(&x196, &x197, x178, UINT32_C(0xffffffff));
2711
2681
  uint32_t x198;
2712
- fiat_p256_uint1 x199;
2713
- fiat_p256_addcarryx_u32(&x198, &x199, x197, x170, x168);
2682
+ uint32_t x199;
2683
+ fiat_p256_mulx_u32(&x198, &x199, x178, UINT32_C(0xffffffff));
2714
2684
  uint32_t x200;
2715
- fiat_p256_uint1 x201;
2716
- fiat_p256_addcarryx_u32(&x200, &x201, x153, 0x0, 0x0);
2685
+ uint32_t x201;
2686
+ fiat_p256_mulx_u32(&x200, &x201, x178, UINT32_C(0xffffffff));
2717
2687
  uint32_t x202;
2718
2688
  fiat_p256_uint1 x203;
2719
- fiat_p256_addcarryx_u32(&x202, &x203, x169, 0x0, (fiat_p256_uint1)x200);
2689
+ fiat_p256_addcarryx_u32(&x202, &x203, 0x0, x201, x198);
2720
2690
  uint32_t x204;
2721
2691
  fiat_p256_uint1 x205;
2722
- fiat_p256_addcarryx_u32(&x204, &x205, x199, x171, x202);
2692
+ fiat_p256_addcarryx_u32(&x204, &x205, x203, x199, x196);
2723
2693
  uint32_t x206;
2724
2694
  fiat_p256_uint1 x207;
2725
- fiat_p256_addcarryx_u32(&x206, &x207, 0x0, (arg1[5]), x184);
2695
+ fiat_p256_addcarryx_u32(&x206, &x207, 0x0, x178, x200);
2726
2696
  uint32_t x208;
2727
2697
  fiat_p256_uint1 x209;
2728
- fiat_p256_addcarryx_u32(&x208, &x209, x207, 0x0, x186);
2698
+ fiat_p256_addcarryx_u32(&x208, &x209, x207, x180, x202);
2729
2699
  uint32_t x210;
2730
2700
  fiat_p256_uint1 x211;
2731
- fiat_p256_addcarryx_u32(&x210, &x211, x209, 0x0, x190);
2701
+ fiat_p256_addcarryx_u32(&x210, &x211, x209, x182, x204);
2732
2702
  uint32_t x212;
2733
2703
  fiat_p256_uint1 x213;
2734
- fiat_p256_addcarryx_u32(&x212, &x213, x211, 0x0, x192);
2704
+ fiat_p256_addcarryx_u32(&x212, &x213, x211, x184, (x205 + x197));
2735
2705
  uint32_t x214;
2736
2706
  fiat_p256_uint1 x215;
2737
- fiat_p256_addcarryx_u32(&x214, &x215, x213, 0x0, x194);
2707
+ fiat_p256_addcarryx_u32(&x214, &x215, x213, x186, 0x0);
2738
2708
  uint32_t x216;
2739
2709
  fiat_p256_uint1 x217;
2740
- fiat_p256_addcarryx_u32(&x216, &x217, x215, 0x0, x196);
2710
+ fiat_p256_addcarryx_u32(&x216, &x217, x215, x188, 0x0);
2741
2711
  uint32_t x218;
2742
2712
  fiat_p256_uint1 x219;
2743
- fiat_p256_addcarryx_u32(&x218, &x219, x217, 0x0, x198);
2713
+ fiat_p256_addcarryx_u32(&x218, &x219, x217, x190, x178);
2744
2714
  uint32_t x220;
2745
2715
  fiat_p256_uint1 x221;
2746
- fiat_p256_addcarryx_u32(&x220, &x221, x219, 0x0, x204);
2716
+ fiat_p256_addcarryx_u32(&x220, &x221, x219, x192, x194);
2747
2717
  uint32_t x222;
2748
- uint32_t x223;
2749
- fiat_p256_mulx_u32(&x222, &x223, x206, UINT32_C(0xffffffff));
2718
+ fiat_p256_uint1 x223;
2719
+ fiat_p256_addcarryx_u32(&x222, &x223, x221, ((uint32_t)x193 + x177), x195);
2750
2720
  uint32_t x224;
2751
- uint32_t x225;
2752
- fiat_p256_mulx_u32(&x224, &x225, x206, UINT32_C(0xffffffff));
2721
+ fiat_p256_uint1 x225;
2722
+ fiat_p256_addcarryx_u32(&x224, &x225, 0x0, x208, (arg1[6]));
2753
2723
  uint32_t x226;
2754
- uint32_t x227;
2755
- fiat_p256_mulx_u32(&x226, &x227, x206, UINT32_C(0xffffffff));
2724
+ fiat_p256_uint1 x227;
2725
+ fiat_p256_addcarryx_u32(&x226, &x227, x225, x210, 0x0);
2756
2726
  uint32_t x228;
2757
- uint32_t x229;
2758
- fiat_p256_mulx_u32(&x228, &x229, x206, UINT32_C(0xffffffff));
2727
+ fiat_p256_uint1 x229;
2728
+ fiat_p256_addcarryx_u32(&x228, &x229, x227, x212, 0x0);
2759
2729
  uint32_t x230;
2760
2730
  fiat_p256_uint1 x231;
2761
- fiat_p256_addcarryx_u32(&x230, &x231, 0x0, x226, x229);
2731
+ fiat_p256_addcarryx_u32(&x230, &x231, x229, x214, 0x0);
2762
2732
  uint32_t x232;
2763
2733
  fiat_p256_uint1 x233;
2764
- fiat_p256_addcarryx_u32(&x232, &x233, x231, x224, x227);
2734
+ fiat_p256_addcarryx_u32(&x232, &x233, x231, x216, 0x0);
2765
2735
  uint32_t x234;
2766
2736
  fiat_p256_uint1 x235;
2767
- fiat_p256_addcarryx_u32(&x234, &x235, 0x0, x228, x206);
2737
+ fiat_p256_addcarryx_u32(&x234, &x235, x233, x218, 0x0);
2768
2738
  uint32_t x236;
2769
2739
  fiat_p256_uint1 x237;
2770
- fiat_p256_addcarryx_u32(&x236, &x237, x235, x230, x208);
2740
+ fiat_p256_addcarryx_u32(&x236, &x237, x235, x220, 0x0);
2771
2741
  uint32_t x238;
2772
2742
  fiat_p256_uint1 x239;
2773
- fiat_p256_addcarryx_u32(&x238, &x239, x237, x232, x210);
2743
+ fiat_p256_addcarryx_u32(&x238, &x239, x237, x222, 0x0);
2774
2744
  uint32_t x240;
2775
- fiat_p256_uint1 x241;
2776
- fiat_p256_addcarryx_u32(&x240, &x241, x233, 0x0, x225);
2745
+ uint32_t x241;
2746
+ fiat_p256_mulx_u32(&x240, &x241, x224, UINT32_C(0xffffffff));
2777
2747
  uint32_t x242;
2778
- fiat_p256_uint1 x243;
2779
- fiat_p256_addcarryx_u32(&x242, &x243, x239, x240, x212);
2748
+ uint32_t x243;
2749
+ fiat_p256_mulx_u32(&x242, &x243, x224, UINT32_C(0xffffffff));
2780
2750
  uint32_t x244;
2781
- fiat_p256_uint1 x245;
2782
- fiat_p256_addcarryx_u32(&x244, &x245, x243, 0x0, x214);
2751
+ uint32_t x245;
2752
+ fiat_p256_mulx_u32(&x244, &x245, x224, UINT32_C(0xffffffff));
2783
2753
  uint32_t x246;
2784
- fiat_p256_uint1 x247;
2785
- fiat_p256_addcarryx_u32(&x246, &x247, x245, 0x0, x216);
2754
+ uint32_t x247;
2755
+ fiat_p256_mulx_u32(&x246, &x247, x224, UINT32_C(0xffffffff));
2786
2756
  uint32_t x248;
2787
2757
  fiat_p256_uint1 x249;
2788
- fiat_p256_addcarryx_u32(&x248, &x249, x247, x206, x218);
2758
+ fiat_p256_addcarryx_u32(&x248, &x249, 0x0, x247, x244);
2789
2759
  uint32_t x250;
2790
2760
  fiat_p256_uint1 x251;
2791
- fiat_p256_addcarryx_u32(&x250, &x251, x249, x222, x220);
2761
+ fiat_p256_addcarryx_u32(&x250, &x251, x249, x245, x242);
2792
2762
  uint32_t x252;
2793
2763
  fiat_p256_uint1 x253;
2794
- fiat_p256_addcarryx_u32(&x252, &x253, x205, 0x0, 0x0);
2764
+ fiat_p256_addcarryx_u32(&x252, &x253, 0x0, x224, x246);
2795
2765
  uint32_t x254;
2796
2766
  fiat_p256_uint1 x255;
2797
- fiat_p256_addcarryx_u32(&x254, &x255, x221, 0x0, (fiat_p256_uint1)x252);
2767
+ fiat_p256_addcarryx_u32(&x254, &x255, x253, x226, x248);
2798
2768
  uint32_t x256;
2799
2769
  fiat_p256_uint1 x257;
2800
- fiat_p256_addcarryx_u32(&x256, &x257, x251, x223, x254);
2770
+ fiat_p256_addcarryx_u32(&x256, &x257, x255, x228, x250);
2801
2771
  uint32_t x258;
2802
2772
  fiat_p256_uint1 x259;
2803
- fiat_p256_addcarryx_u32(&x258, &x259, 0x0, (arg1[6]), x236);
2773
+ fiat_p256_addcarryx_u32(&x258, &x259, x257, x230, (x251 + x243));
2804
2774
  uint32_t x260;
2805
2775
  fiat_p256_uint1 x261;
2806
- fiat_p256_addcarryx_u32(&x260, &x261, x259, 0x0, x238);
2776
+ fiat_p256_addcarryx_u32(&x260, &x261, x259, x232, 0x0);
2807
2777
  uint32_t x262;
2808
2778
  fiat_p256_uint1 x263;
2809
- fiat_p256_addcarryx_u32(&x262, &x263, x261, 0x0, x242);
2779
+ fiat_p256_addcarryx_u32(&x262, &x263, x261, x234, 0x0);
2810
2780
  uint32_t x264;
2811
2781
  fiat_p256_uint1 x265;
2812
- fiat_p256_addcarryx_u32(&x264, &x265, x263, 0x0, x244);
2782
+ fiat_p256_addcarryx_u32(&x264, &x265, x263, x236, x224);
2813
2783
  uint32_t x266;
2814
2784
  fiat_p256_uint1 x267;
2815
- fiat_p256_addcarryx_u32(&x266, &x267, x265, 0x0, x246);
2785
+ fiat_p256_addcarryx_u32(&x266, &x267, x265, x238, x240);
2816
2786
  uint32_t x268;
2817
2787
  fiat_p256_uint1 x269;
2818
- fiat_p256_addcarryx_u32(&x268, &x269, x267, 0x0, x248);
2788
+ fiat_p256_addcarryx_u32(&x268, &x269, x267, ((uint32_t)x239 + x223), x241);
2819
2789
  uint32_t x270;
2820
2790
  fiat_p256_uint1 x271;
2821
- fiat_p256_addcarryx_u32(&x270, &x271, x269, 0x0, x250);
2791
+ fiat_p256_addcarryx_u32(&x270, &x271, 0x0, x254, (arg1[7]));
2822
2792
  uint32_t x272;
2823
2793
  fiat_p256_uint1 x273;
2824
- fiat_p256_addcarryx_u32(&x272, &x273, x271, 0x0, x256);
2794
+ fiat_p256_addcarryx_u32(&x272, &x273, x271, x256, 0x0);
2825
2795
  uint32_t x274;
2826
- uint32_t x275;
2827
- fiat_p256_mulx_u32(&x274, &x275, x258, UINT32_C(0xffffffff));
2796
+ fiat_p256_uint1 x275;
2797
+ fiat_p256_addcarryx_u32(&x274, &x275, x273, x258, 0x0);
2828
2798
  uint32_t x276;
2829
- uint32_t x277;
2830
- fiat_p256_mulx_u32(&x276, &x277, x258, UINT32_C(0xffffffff));
2799
+ fiat_p256_uint1 x277;
2800
+ fiat_p256_addcarryx_u32(&x276, &x277, x275, x260, 0x0);
2831
2801
  uint32_t x278;
2832
- uint32_t x279;
2833
- fiat_p256_mulx_u32(&x278, &x279, x258, UINT32_C(0xffffffff));
2802
+ fiat_p256_uint1 x279;
2803
+ fiat_p256_addcarryx_u32(&x278, &x279, x277, x262, 0x0);
2834
2804
  uint32_t x280;
2835
- uint32_t x281;
2836
- fiat_p256_mulx_u32(&x280, &x281, x258, UINT32_C(0xffffffff));
2805
+ fiat_p256_uint1 x281;
2806
+ fiat_p256_addcarryx_u32(&x280, &x281, x279, x264, 0x0);
2837
2807
  uint32_t x282;
2838
2808
  fiat_p256_uint1 x283;
2839
- fiat_p256_addcarryx_u32(&x282, &x283, 0x0, x278, x281);
2809
+ fiat_p256_addcarryx_u32(&x282, &x283, x281, x266, 0x0);
2840
2810
  uint32_t x284;
2841
2811
  fiat_p256_uint1 x285;
2842
- fiat_p256_addcarryx_u32(&x284, &x285, x283, x276, x279);
2812
+ fiat_p256_addcarryx_u32(&x284, &x285, x283, x268, 0x0);
2843
2813
  uint32_t x286;
2844
- fiat_p256_uint1 x287;
2845
- fiat_p256_addcarryx_u32(&x286, &x287, 0x0, x280, x258);
2814
+ uint32_t x287;
2815
+ fiat_p256_mulx_u32(&x286, &x287, x270, UINT32_C(0xffffffff));
2846
2816
  uint32_t x288;
2847
- fiat_p256_uint1 x289;
2848
- fiat_p256_addcarryx_u32(&x288, &x289, x287, x282, x260);
2817
+ uint32_t x289;
2818
+ fiat_p256_mulx_u32(&x288, &x289, x270, UINT32_C(0xffffffff));
2849
2819
  uint32_t x290;
2850
- fiat_p256_uint1 x291;
2851
- fiat_p256_addcarryx_u32(&x290, &x291, x289, x284, x262);
2820
+ uint32_t x291;
2821
+ fiat_p256_mulx_u32(&x290, &x291, x270, UINT32_C(0xffffffff));
2852
2822
  uint32_t x292;
2853
- fiat_p256_uint1 x293;
2854
- fiat_p256_addcarryx_u32(&x292, &x293, x285, 0x0, x277);
2823
+ uint32_t x293;
2824
+ fiat_p256_mulx_u32(&x292, &x293, x270, UINT32_C(0xffffffff));
2855
2825
  uint32_t x294;
2856
2826
  fiat_p256_uint1 x295;
2857
- fiat_p256_addcarryx_u32(&x294, &x295, x291, x292, x264);
2827
+ fiat_p256_addcarryx_u32(&x294, &x295, 0x0, x293, x290);
2858
2828
  uint32_t x296;
2859
2829
  fiat_p256_uint1 x297;
2860
- fiat_p256_addcarryx_u32(&x296, &x297, x295, 0x0, x266);
2830
+ fiat_p256_addcarryx_u32(&x296, &x297, x295, x291, x288);
2861
2831
  uint32_t x298;
2862
2832
  fiat_p256_uint1 x299;
2863
- fiat_p256_addcarryx_u32(&x298, &x299, x297, 0x0, x268);
2833
+ fiat_p256_addcarryx_u32(&x298, &x299, 0x0, x270, x292);
2864
2834
  uint32_t x300;
2865
2835
  fiat_p256_uint1 x301;
2866
- fiat_p256_addcarryx_u32(&x300, &x301, x299, x258, x270);
2836
+ fiat_p256_addcarryx_u32(&x300, &x301, x299, x272, x294);
2867
2837
  uint32_t x302;
2868
2838
  fiat_p256_uint1 x303;
2869
- fiat_p256_addcarryx_u32(&x302, &x303, x301, x274, x272);
2839
+ fiat_p256_addcarryx_u32(&x302, &x303, x301, x274, x296);
2870
2840
  uint32_t x304;
2871
2841
  fiat_p256_uint1 x305;
2872
- fiat_p256_addcarryx_u32(&x304, &x305, x257, 0x0, 0x0);
2842
+ fiat_p256_addcarryx_u32(&x304, &x305, x303, x276, (x297 + x289));
2873
2843
  uint32_t x306;
2874
2844
  fiat_p256_uint1 x307;
2875
- fiat_p256_addcarryx_u32(&x306, &x307, x273, 0x0, (fiat_p256_uint1)x304);
2845
+ fiat_p256_addcarryx_u32(&x306, &x307, x305, x278, 0x0);
2876
2846
  uint32_t x308;
2877
2847
  fiat_p256_uint1 x309;
2878
- fiat_p256_addcarryx_u32(&x308, &x309, x303, x275, x306);
2848
+ fiat_p256_addcarryx_u32(&x308, &x309, x307, x280, 0x0);
2879
2849
  uint32_t x310;
2880
2850
  fiat_p256_uint1 x311;
2881
- fiat_p256_addcarryx_u32(&x310, &x311, 0x0, (arg1[7]), x288);
2851
+ fiat_p256_addcarryx_u32(&x310, &x311, x309, x282, x270);
2882
2852
  uint32_t x312;
2883
2853
  fiat_p256_uint1 x313;
2884
- fiat_p256_addcarryx_u32(&x312, &x313, x311, 0x0, x290);
2854
+ fiat_p256_addcarryx_u32(&x312, &x313, x311, x284, x286);
2885
2855
  uint32_t x314;
2886
2856
  fiat_p256_uint1 x315;
2887
- fiat_p256_addcarryx_u32(&x314, &x315, x313, 0x0, x294);
2857
+ fiat_p256_addcarryx_u32(&x314, &x315, x313, ((uint32_t)x285 + x269), x287);
2888
2858
  uint32_t x316;
2889
2859
  fiat_p256_uint1 x317;
2890
- fiat_p256_addcarryx_u32(&x316, &x317, x315, 0x0, x296);
2860
+ fiat_p256_subborrowx_u32(&x316, &x317, 0x0, x300, UINT32_C(0xffffffff));
2891
2861
  uint32_t x318;
2892
2862
  fiat_p256_uint1 x319;
2893
- fiat_p256_addcarryx_u32(&x318, &x319, x317, 0x0, x298);
2863
+ fiat_p256_subborrowx_u32(&x318, &x319, x317, x302, UINT32_C(0xffffffff));
2894
2864
  uint32_t x320;
2895
2865
  fiat_p256_uint1 x321;
2896
- fiat_p256_addcarryx_u32(&x320, &x321, x319, 0x0, x300);
2866
+ fiat_p256_subborrowx_u32(&x320, &x321, x319, x304, UINT32_C(0xffffffff));
2897
2867
  uint32_t x322;
2898
2868
  fiat_p256_uint1 x323;
2899
- fiat_p256_addcarryx_u32(&x322, &x323, x321, 0x0, x302);
2869
+ fiat_p256_subborrowx_u32(&x322, &x323, x321, x306, 0x0);
2900
2870
  uint32_t x324;
2901
2871
  fiat_p256_uint1 x325;
2902
- fiat_p256_addcarryx_u32(&x324, &x325, x323, 0x0, x308);
2872
+ fiat_p256_subborrowx_u32(&x324, &x325, x323, x308, 0x0);
2903
2873
  uint32_t x326;
2904
- uint32_t x327;
2905
- fiat_p256_mulx_u32(&x326, &x327, x310, UINT32_C(0xffffffff));
2874
+ fiat_p256_uint1 x327;
2875
+ fiat_p256_subborrowx_u32(&x326, &x327, x325, x310, 0x0);
2906
2876
  uint32_t x328;
2907
- uint32_t x329;
2908
- fiat_p256_mulx_u32(&x328, &x329, x310, UINT32_C(0xffffffff));
2877
+ fiat_p256_uint1 x329;
2878
+ fiat_p256_subborrowx_u32(&x328, &x329, x327, x312, 0x1);
2909
2879
  uint32_t x330;
2910
- uint32_t x331;
2911
- fiat_p256_mulx_u32(&x330, &x331, x310, UINT32_C(0xffffffff));
2880
+ fiat_p256_uint1 x331;
2881
+ fiat_p256_subborrowx_u32(&x330, &x331, x329, x314, UINT32_C(0xffffffff));
2912
2882
  uint32_t x332;
2913
- uint32_t x333;
2914
- fiat_p256_mulx_u32(&x332, &x333, x310, UINT32_C(0xffffffff));
2883
+ fiat_p256_uint1 x333;
2884
+ fiat_p256_subborrowx_u32(&x332, &x333, x331, x315, 0x0);
2915
2885
  uint32_t x334;
2916
- fiat_p256_uint1 x335;
2917
- fiat_p256_addcarryx_u32(&x334, &x335, 0x0, x330, x333);
2886
+ fiat_p256_cmovznz_u32(&x334, x333, x316, x300);
2887
+ uint32_t x335;
2888
+ fiat_p256_cmovznz_u32(&x335, x333, x318, x302);
2918
2889
  uint32_t x336;
2919
- fiat_p256_uint1 x337;
2920
- fiat_p256_addcarryx_u32(&x336, &x337, x335, x328, x331);
2890
+ fiat_p256_cmovznz_u32(&x336, x333, x320, x304);
2891
+ uint32_t x337;
2892
+ fiat_p256_cmovznz_u32(&x337, x333, x322, x306);
2921
2893
  uint32_t x338;
2922
- fiat_p256_uint1 x339;
2923
- fiat_p256_addcarryx_u32(&x338, &x339, 0x0, x332, x310);
2894
+ fiat_p256_cmovznz_u32(&x338, x333, x324, x308);
2895
+ uint32_t x339;
2896
+ fiat_p256_cmovznz_u32(&x339, x333, x326, x310);
2924
2897
  uint32_t x340;
2925
- fiat_p256_uint1 x341;
2926
- fiat_p256_addcarryx_u32(&x340, &x341, x339, x334, x312);
2927
- uint32_t x342;
2928
- fiat_p256_uint1 x343;
2929
- fiat_p256_addcarryx_u32(&x342, &x343, x341, x336, x314);
2930
- uint32_t x344;
2931
- fiat_p256_uint1 x345;
2932
- fiat_p256_addcarryx_u32(&x344, &x345, x337, 0x0, x329);
2933
- uint32_t x346;
2934
- fiat_p256_uint1 x347;
2935
- fiat_p256_addcarryx_u32(&x346, &x347, x343, x344, x316);
2936
- uint32_t x348;
2937
- fiat_p256_uint1 x349;
2938
- fiat_p256_addcarryx_u32(&x348, &x349, x347, 0x0, x318);
2939
- uint32_t x350;
2940
- fiat_p256_uint1 x351;
2941
- fiat_p256_addcarryx_u32(&x350, &x351, x349, 0x0, x320);
2942
- uint32_t x352;
2943
- fiat_p256_uint1 x353;
2944
- fiat_p256_addcarryx_u32(&x352, &x353, x351, x310, x322);
2945
- uint32_t x354;
2946
- fiat_p256_uint1 x355;
2947
- fiat_p256_addcarryx_u32(&x354, &x355, x353, x326, x324);
2948
- uint32_t x356;
2949
- fiat_p256_uint1 x357;
2950
- fiat_p256_addcarryx_u32(&x356, &x357, x309, 0x0, 0x0);
2951
- uint32_t x358;
2952
- fiat_p256_uint1 x359;
2953
- fiat_p256_addcarryx_u32(&x358, &x359, x325, 0x0, (fiat_p256_uint1)x356);
2954
- uint32_t x360;
2955
- fiat_p256_uint1 x361;
2956
- fiat_p256_addcarryx_u32(&x360, &x361, x355, x327, x358);
2957
- uint32_t x362;
2958
- fiat_p256_uint1 x363;
2959
- fiat_p256_subborrowx_u32(&x362, &x363, 0x0, x340, UINT32_C(0xffffffff));
2960
- uint32_t x364;
2961
- fiat_p256_uint1 x365;
2962
- fiat_p256_subborrowx_u32(&x364, &x365, x363, x342, UINT32_C(0xffffffff));
2963
- uint32_t x366;
2964
- fiat_p256_uint1 x367;
2965
- fiat_p256_subborrowx_u32(&x366, &x367, x365, x346, UINT32_C(0xffffffff));
2966
- uint32_t x368;
2967
- fiat_p256_uint1 x369;
2968
- fiat_p256_subborrowx_u32(&x368, &x369, x367, x348, 0x0);
2969
- uint32_t x370;
2970
- fiat_p256_uint1 x371;
2971
- fiat_p256_subborrowx_u32(&x370, &x371, x369, x350, 0x0);
2972
- uint32_t x372;
2973
- fiat_p256_uint1 x373;
2974
- fiat_p256_subborrowx_u32(&x372, &x373, x371, x352, 0x0);
2975
- uint32_t x374;
2976
- fiat_p256_uint1 x375;
2977
- fiat_p256_subborrowx_u32(&x374, &x375, x373, x354, 0x1);
2978
- uint32_t x376;
2979
- fiat_p256_uint1 x377;
2980
- fiat_p256_subborrowx_u32(&x376, &x377, x375, x360, UINT32_C(0xffffffff));
2981
- uint32_t x378;
2982
- fiat_p256_uint1 x379;
2983
- fiat_p256_addcarryx_u32(&x378, &x379, x361, 0x0, 0x0);
2984
- uint32_t x380;
2985
- fiat_p256_uint1 x381;
2986
- fiat_p256_subborrowx_u32(&x380, &x381, x377, (fiat_p256_uint1)x378, 0x0);
2987
- uint32_t x382;
2988
- fiat_p256_cmovznz_u32(&x382, x381, x362, x340);
2989
- uint32_t x383;
2990
- fiat_p256_cmovznz_u32(&x383, x381, x364, x342);
2991
- uint32_t x384;
2992
- fiat_p256_cmovznz_u32(&x384, x381, x366, x346);
2993
- uint32_t x385;
2994
- fiat_p256_cmovznz_u32(&x385, x381, x368, x348);
2995
- uint32_t x386;
2996
- fiat_p256_cmovznz_u32(&x386, x381, x370, x350);
2997
- uint32_t x387;
2998
- fiat_p256_cmovznz_u32(&x387, x381, x372, x352);
2999
- uint32_t x388;
3000
- fiat_p256_cmovznz_u32(&x388, x381, x374, x354);
3001
- uint32_t x389;
3002
- fiat_p256_cmovznz_u32(&x389, x381, x376, x360);
3003
- out1[0] = x382;
3004
- out1[1] = x383;
3005
- out1[2] = x384;
3006
- out1[3] = x385;
3007
- out1[4] = x386;
3008
- out1[5] = x387;
3009
- out1[6] = x388;
3010
- out1[7] = x389;
2898
+ fiat_p256_cmovznz_u32(&x340, x333, x328, x312);
2899
+ uint32_t x341;
2900
+ fiat_p256_cmovznz_u32(&x341, x333, x330, x314);
2901
+ out1[0] = x334;
2902
+ out1[1] = x335;
2903
+ out1[2] = x336;
2904
+ out1[3] = x337;
2905
+ out1[4] = x338;
2906
+ out1[5] = x339;
2907
+ out1[6] = x340;
2908
+ out1[7] = x341;
3011
2909
  }
3012
2910
 
3013
2911
  /*
2912
+ * The function fiat_p256_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
2913
+ * Preconditions:
2914
+ * 0 ≤ eval arg1 < m
2915
+ * Postconditions:
2916
+ * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
2917
+ *
3014
2918
  * Input Bounds:
3015
2919
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3016
2920
  * Output Bounds:
@@ -3022,6 +2926,10 @@ static void fiat_p256_nonzero(uint32_t* out1, const uint32_t arg1[8]) {
3022
2926
  }
3023
2927
 
3024
2928
  /*
2929
+ * The function fiat_p256_selectznz is a multi-limb conditional select.
2930
+ * Postconditions:
2931
+ * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
2932
+ *
3025
2933
  * Input Bounds:
3026
2934
  * arg1: [0x0 ~> 0x1]
3027
2935
  * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
@@ -3057,6 +2965,12 @@ static void fiat_p256_selectznz(uint32_t out1[8], fiat_p256_uint1 arg1, const ui
3057
2965
  }
3058
2966
 
3059
2967
  /*
2968
+ * The function fiat_p256_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order.
2969
+ * Preconditions:
2970
+ * 0 ≤ eval arg1 < m
2971
+ * Postconditions:
2972
+ * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
2973
+ *
3060
2974
  * Input Bounds:
3061
2975
  * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3062
2976
  * Output Bounds:
@@ -3161,6 +3075,13 @@ static void fiat_p256_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
3161
3075
  }
3162
3076
 
3163
3077
  /*
3078
+ * The function fiat_p256_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order.
3079
+ * Preconditions:
3080
+ * 0 ≤ bytes_eval arg1 < m
3081
+ * Postconditions:
3082
+ * eval out1 mod m = bytes_eval arg1 mod m
3083
+ * 0 ≤ eval out1 < m
3084
+ *
3164
3085
  * Input Bounds:
3165
3086
  * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]
3166
3087
  * Output Bounds: