diff --git a/.gitmodules b/.gitmodules index 87e9f5f95..e69de29bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "provers/stone-demo"] - path = provers/stone-demo - url = https://github.com/lambdaclass/stone-compatibility-testing diff --git a/Cargo.toml b/Cargo.toml index a37b21a79..4e0e89015 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,19 +1,19 @@ [workspace] members = [ - "math", - "crypto", - "gpu", "benches", - "provers/plonk", - "provers/sumcheck", - "provers/stark", - "provers/groth16", - "provers/groth16/arkworks-adapter", - "provers/groth16/circom-adapter", + "crates/crypto", + "crates/gpu", + "crates/math", + "crates/provers/groth16", + "crates/provers/groth16/arkworks-adapter", + "crates/provers/groth16/circom-adapter", + "crates/provers/plonk", + "crates/provers/stark", + "crates/provers/sumcheck", + "crates/provers/winterfell_adapter", "examples/merkle-tree-cli", "examples/prove-miden", - "provers/winterfell_adapter", "examples/shamir_secret_sharing", "examples/pinocchio", "examples/prove-verify-circom", @@ -29,26 +29,26 @@ license = "Apache-2.0" repository = "https://github.com/lambdaclass/lambdaworks" [workspace.dependencies] +lambdaworks-crypto = { path = "./crates/crypto", version = "0.11.0", default-features = false } +lambdaworks-gpu = { path = "./crates/gpu", version = "0.11.0" } +lambdaworks-math = { path = "./crates/math", version = "0.11.0", default-features = false } +lambdaworks-groth16 = { path = "./crates/provers/groth16" } +lambdaworks-circom-adapter = { path = "./crates/provers/groth16/circom-adapter" } +lambdaworks-sumcheck = { path = "./crates/provers/sumcheck" } +lambdaworks-winterfell-adapter = { path = "./crates/provers/winterfell_adapter" } +stark-platinum-prover = { path = "./crates/provers/stark" } iai-callgrind = "0.3.1" -lambdaworks-crypto = { path = "./crypto", version = "0.11.0", default-features = false } -lambdaworks-gpu = { path = "./gpu", version = "0.11.0" } -lambdaworks-math = { path = "./math", version = "0.11.0", default-features = false } -stark-platinum-prover = { path = "./provers/stark" } -lambdaworks-winterfell-adapter = { path = "./provers/winterfell_adapter" } -lambdaworks-groth16 = { path = "./provers/groth16" } -lambdaworks-circom-adapter = { path = "./provers/groth16/circom-adapter" } -lambdaworks-sumcheck = { path = "./provers/sumcheck" } [patch.crates-io] +miden-air = { git = "https://github.com/lambdaclass/miden-vm" } +miden-assembly = { git = "https://github.com/lambdaclass/miden-vm" } +miden-core = { git = "https://github.com/lambdaclass/miden-vm" } +miden-processor = { git = "https://github.com/lambdaclass/miden-vm" } winter-air = { git = "https://github.com/lambdaclass/winterfell-for-lambdaworks.git", branch = "derive-clone-v6.4" } winter-prover = { git = "https://github.com/lambdaclass/winterfell-for-lambdaworks.git", branch = "derive-clone-v6.4" } winter-math = { git = "https://github.com/lambdaclass/winterfell-for-lambdaworks.git", branch = "derive-clone-v6.4" } winter-utils = { git = "https://github.com/lambdaclass/winterfell-for-lambdaworks.git", branch = "derive-clone-v6.4" } winter-crypto = { git = "https://github.com/lambdaclass/winterfell-for-lambdaworks.git", branch = "derive-clone-v6.4" } -miden-air = { git = "https://github.com/lambdaclass/miden-vm" } -miden-core = { git = "https://github.com/lambdaclass/miden-vm" } -miden-assembly = { git = "https://github.com/lambdaclass/miden-vm" } -miden-processor = { git = "https://github.com/lambdaclass/miden-vm" } [profile.bench] lto = true diff --git a/benches/Cargo.toml b/benches/Cargo.toml index 916a92f59..89f922d5e 100644 --- a/benches/Cargo.toml +++ b/benches/Cargo.toml @@ -14,11 +14,8 @@ starknet-ff = { git = "https://github.com/xJonathanLEI/starknet-rs", tag = "star starknet-crypto = { git = "https://github.com/xJonathanLEI/starknet-rs", tag = "starknet-crypto/v0.6.2" } pathfinder-crypto = { git = "https://github.com/eqlabs/pathfinder.git" } -[dependencies.lambdaworks-math] -path = "../math" - -[dependencies.lambdaworks-crypto] -path = "../crypto" +lambdaworks-math.workspace = true +lambdaworks-crypto.workspace = true [dev-dependencies] criterion = { version = "0.5.1", default-features = false } diff --git a/crypto/Cargo.toml b/crates/crypto/Cargo.toml similarity index 100% rename from crypto/Cargo.toml rename to crates/crypto/Cargo.toml diff --git a/crypto/README.md b/crates/crypto/README.md similarity index 100% rename from crypto/README.md rename to crates/crypto/README.md diff --git a/crypto/benches/criterion_merkle.rs b/crates/crypto/benches/criterion_merkle.rs similarity index 100% rename from crypto/benches/criterion_merkle.rs rename to crates/crypto/benches/criterion_merkle.rs diff --git a/crypto/benches/criterion_pedersen.rs b/crates/crypto/benches/criterion_pedersen.rs similarity index 100% rename from crypto/benches/criterion_pedersen.rs rename to crates/crypto/benches/criterion_pedersen.rs diff --git a/crypto/benches/criterion_poseidon.rs b/crates/crypto/benches/criterion_poseidon.rs similarity index 100% rename from crypto/benches/criterion_poseidon.rs rename to crates/crypto/benches/criterion_poseidon.rs diff --git a/crypto/benches/iai_merkle.rs b/crates/crypto/benches/iai_merkle.rs similarity index 100% rename from crypto/benches/iai_merkle.rs rename to crates/crypto/benches/iai_merkle.rs diff --git a/crypto/src/commitments/README.md b/crates/crypto/src/commitments/README.md similarity index 100% rename from crypto/src/commitments/README.md rename to crates/crypto/src/commitments/README.md diff --git a/crypto/src/commitments/kzg.rs b/crates/crypto/src/commitments/kzg.rs similarity index 100% rename from crypto/src/commitments/kzg.rs rename to crates/crypto/src/commitments/kzg.rs diff --git a/crypto/src/commitments/mod.rs b/crates/crypto/src/commitments/mod.rs similarity index 100% rename from crypto/src/commitments/mod.rs rename to crates/crypto/src/commitments/mod.rs diff --git a/crypto/src/commitments/test_srs/srs_3_g1_elements.bin b/crates/crypto/src/commitments/test_srs/srs_3_g1_elements.bin similarity index 100% rename from crypto/src/commitments/test_srs/srs_3_g1_elements.bin rename to crates/crypto/src/commitments/test_srs/srs_3_g1_elements.bin diff --git a/crypto/src/commitments/traits.rs b/crates/crypto/src/commitments/traits.rs similarity index 100% rename from crypto/src/commitments/traits.rs rename to crates/crypto/src/commitments/traits.rs diff --git a/crypto/src/errors.rs b/crates/crypto/src/errors.rs similarity index 100% rename from crypto/src/errors.rs rename to crates/crypto/src/errors.rs diff --git a/crypto/src/fiat_shamir/default_transcript.rs b/crates/crypto/src/fiat_shamir/default_transcript.rs similarity index 100% rename from crypto/src/fiat_shamir/default_transcript.rs rename to crates/crypto/src/fiat_shamir/default_transcript.rs diff --git a/crypto/src/fiat_shamir/is_transcript.rs b/crates/crypto/src/fiat_shamir/is_transcript.rs similarity index 100% rename from crypto/src/fiat_shamir/is_transcript.rs rename to crates/crypto/src/fiat_shamir/is_transcript.rs diff --git a/crypto/src/fiat_shamir/mod.rs b/crates/crypto/src/fiat_shamir/mod.rs similarity index 100% rename from crypto/src/fiat_shamir/mod.rs rename to crates/crypto/src/fiat_shamir/mod.rs diff --git a/crypto/src/fiat_shamir/test_transcript.rs b/crates/crypto/src/fiat_shamir/test_transcript.rs similarity index 100% rename from crypto/src/fiat_shamir/test_transcript.rs rename to crates/crypto/src/fiat_shamir/test_transcript.rs diff --git a/crypto/src/hash/hash_to_field.rs b/crates/crypto/src/hash/hash_to_field.rs similarity index 100% rename from crypto/src/hash/hash_to_field.rs rename to crates/crypto/src/hash/hash_to_field.rs diff --git a/crypto/src/hash/mod.rs b/crates/crypto/src/hash/mod.rs similarity index 100% rename from crypto/src/hash/mod.rs rename to crates/crypto/src/hash/mod.rs diff --git a/crypto/src/hash/monolith/mod.rs b/crates/crypto/src/hash/monolith/mod.rs similarity index 100% rename from crypto/src/hash/monolith/mod.rs rename to crates/crypto/src/hash/monolith/mod.rs diff --git a/crypto/src/hash/monolith/utils.rs b/crates/crypto/src/hash/monolith/utils.rs similarity index 100% rename from crypto/src/hash/monolith/utils.rs rename to crates/crypto/src/hash/monolith/utils.rs diff --git a/crypto/src/hash/pedersen/constants.rs b/crates/crypto/src/hash/pedersen/constants.rs similarity index 100% rename from crypto/src/hash/pedersen/constants.rs rename to crates/crypto/src/hash/pedersen/constants.rs diff --git a/crypto/src/hash/pedersen/mod.rs b/crates/crypto/src/hash/pedersen/mod.rs similarity index 100% rename from crypto/src/hash/pedersen/mod.rs rename to crates/crypto/src/hash/pedersen/mod.rs diff --git a/crypto/src/hash/pedersen/parameters.rs b/crates/crypto/src/hash/pedersen/parameters.rs similarity index 100% rename from crypto/src/hash/pedersen/parameters.rs rename to crates/crypto/src/hash/pedersen/parameters.rs diff --git a/crypto/src/hash/poseidon/mod.rs b/crates/crypto/src/hash/poseidon/mod.rs similarity index 100% rename from crypto/src/hash/poseidon/mod.rs rename to crates/crypto/src/hash/poseidon/mod.rs diff --git a/crypto/src/hash/poseidon/parameters.rs b/crates/crypto/src/hash/poseidon/parameters.rs similarity index 100% rename from crypto/src/hash/poseidon/parameters.rs rename to crates/crypto/src/hash/poseidon/parameters.rs diff --git a/crypto/src/hash/poseidon/starknet/mod.rs b/crates/crypto/src/hash/poseidon/starknet/mod.rs similarity index 100% rename from crypto/src/hash/poseidon/starknet/mod.rs rename to crates/crypto/src/hash/poseidon/starknet/mod.rs diff --git a/crypto/src/hash/poseidon/starknet/parameters.rs b/crates/crypto/src/hash/poseidon/starknet/parameters.rs similarity index 100% rename from crypto/src/hash/poseidon/starknet/parameters.rs rename to crates/crypto/src/hash/poseidon/starknet/parameters.rs diff --git a/crypto/src/hash/rescue_prime/mod.rs b/crates/crypto/src/hash/rescue_prime/mod.rs similarity index 100% rename from crypto/src/hash/rescue_prime/mod.rs rename to crates/crypto/src/hash/rescue_prime/mod.rs diff --git a/crypto/src/hash/rescue_prime/parameters.rs b/crates/crypto/src/hash/rescue_prime/parameters.rs similarity index 100% rename from crypto/src/hash/rescue_prime/parameters.rs rename to crates/crypto/src/hash/rescue_prime/parameters.rs diff --git a/crypto/src/hash/rescue_prime/rescue_prime_optimized.rs b/crates/crypto/src/hash/rescue_prime/rescue_prime_optimized.rs similarity index 100% rename from crypto/src/hash/rescue_prime/rescue_prime_optimized.rs rename to crates/crypto/src/hash/rescue_prime/rescue_prime_optimized.rs diff --git a/crypto/src/hash/rescue_prime/utils.rs b/crates/crypto/src/hash/rescue_prime/utils.rs similarity index 100% rename from crypto/src/hash/rescue_prime/utils.rs rename to crates/crypto/src/hash/rescue_prime/utils.rs diff --git a/crypto/src/hash/sha3/mod.rs b/crates/crypto/src/hash/sha3/mod.rs similarity index 100% rename from crypto/src/hash/sha3/mod.rs rename to crates/crypto/src/hash/sha3/mod.rs diff --git a/crypto/src/lib.rs b/crates/crypto/src/lib.rs similarity index 100% rename from crypto/src/lib.rs rename to crates/crypto/src/lib.rs diff --git a/crypto/src/merkle_tree/backends/field_element.rs b/crates/crypto/src/merkle_tree/backends/field_element.rs similarity index 100% rename from crypto/src/merkle_tree/backends/field_element.rs rename to crates/crypto/src/merkle_tree/backends/field_element.rs diff --git a/crypto/src/merkle_tree/backends/field_element_vector.rs b/crates/crypto/src/merkle_tree/backends/field_element_vector.rs similarity index 100% rename from crypto/src/merkle_tree/backends/field_element_vector.rs rename to crates/crypto/src/merkle_tree/backends/field_element_vector.rs diff --git a/crypto/src/merkle_tree/backends/mod.rs b/crates/crypto/src/merkle_tree/backends/mod.rs similarity index 100% rename from crypto/src/merkle_tree/backends/mod.rs rename to crates/crypto/src/merkle_tree/backends/mod.rs diff --git a/crypto/src/merkle_tree/backends/types.rs b/crates/crypto/src/merkle_tree/backends/types.rs similarity index 100% rename from crypto/src/merkle_tree/backends/types.rs rename to crates/crypto/src/merkle_tree/backends/types.rs diff --git a/crypto/src/merkle_tree/merkle.rs b/crates/crypto/src/merkle_tree/merkle.rs similarity index 100% rename from crypto/src/merkle_tree/merkle.rs rename to crates/crypto/src/merkle_tree/merkle.rs diff --git a/crypto/src/merkle_tree/mod.rs b/crates/crypto/src/merkle_tree/mod.rs similarity index 100% rename from crypto/src/merkle_tree/mod.rs rename to crates/crypto/src/merkle_tree/mod.rs diff --git a/crypto/src/merkle_tree/proof.rs b/crates/crypto/src/merkle_tree/proof.rs similarity index 100% rename from crypto/src/merkle_tree/proof.rs rename to crates/crypto/src/merkle_tree/proof.rs diff --git a/crypto/src/merkle_tree/test_merkle.rs b/crates/crypto/src/merkle_tree/test_merkle.rs similarity index 100% rename from crypto/src/merkle_tree/test_merkle.rs rename to crates/crypto/src/merkle_tree/test_merkle.rs diff --git a/crypto/src/merkle_tree/traits.rs b/crates/crypto/src/merkle_tree/traits.rs similarity index 100% rename from crypto/src/merkle_tree/traits.rs rename to crates/crypto/src/merkle_tree/traits.rs diff --git a/crypto/src/merkle_tree/utils.rs b/crates/crypto/src/merkle_tree/utils.rs similarity index 100% rename from crypto/src/merkle_tree/utils.rs rename to crates/crypto/src/merkle_tree/utils.rs diff --git a/gpu/Cargo.toml b/crates/gpu/Cargo.toml similarity index 100% rename from gpu/Cargo.toml rename to crates/gpu/Cargo.toml index 64ff9bdb8..db3fbeaee 100644 --- a/gpu/Cargo.toml +++ b/crates/gpu/Cargo.toml @@ -12,6 +12,13 @@ thiserror = "1.0.38" metal = { version = "0.24.0", optional = true } objc = { version = "0.2.7", optional = true } +[dev-dependencies] +proptest = "1.1.0" +rand = "0.8.5" + +[build-dependencies] +walkdir = { version = "2.3.3", optional = true } + [features] metal = ["dep:metal", "dep:objc"] cuda = ["dep:walkdir"] @@ -23,10 +30,3 @@ cuda = ["dep:walkdir"] # as default. If you don't want to compile with all of these # use `--no-default-features`. default = [] - -[dev-dependencies] -proptest = "1.1.0" -rand = "0.8.5" - -[build-dependencies] -walkdir = { version = "2.3.3", optional = true } diff --git a/gpu/build.rs b/crates/gpu/build.rs similarity index 100% rename from gpu/build.rs rename to crates/gpu/build.rs diff --git a/gpu/src/cuda/abstractions/errors.rs b/crates/gpu/src/cuda/abstractions/errors.rs similarity index 100% rename from gpu/src/cuda/abstractions/errors.rs rename to crates/gpu/src/cuda/abstractions/errors.rs diff --git a/gpu/src/cuda/abstractions/mod.rs b/crates/gpu/src/cuda/abstractions/mod.rs similarity index 100% rename from gpu/src/cuda/abstractions/mod.rs rename to crates/gpu/src/cuda/abstractions/mod.rs diff --git a/gpu/src/cuda/mod.rs b/crates/gpu/src/cuda/mod.rs similarity index 100% rename from gpu/src/cuda/mod.rs rename to crates/gpu/src/cuda/mod.rs diff --git a/gpu/src/lib.rs b/crates/gpu/src/lib.rs similarity index 100% rename from gpu/src/lib.rs rename to crates/gpu/src/lib.rs diff --git a/gpu/src/metal/abstractions/errors.rs b/crates/gpu/src/metal/abstractions/errors.rs similarity index 100% rename from gpu/src/metal/abstractions/errors.rs rename to crates/gpu/src/metal/abstractions/errors.rs diff --git a/gpu/src/metal/abstractions/mod.rs b/crates/gpu/src/metal/abstractions/mod.rs similarity index 100% rename from gpu/src/metal/abstractions/mod.rs rename to crates/gpu/src/metal/abstractions/mod.rs diff --git a/gpu/src/metal/abstractions/state.rs b/crates/gpu/src/metal/abstractions/state.rs similarity index 100% rename from gpu/src/metal/abstractions/state.rs rename to crates/gpu/src/metal/abstractions/state.rs diff --git a/gpu/src/metal/mod.rs b/crates/gpu/src/metal/mod.rs similarity index 100% rename from gpu/src/metal/mod.rs rename to crates/gpu/src/metal/mod.rs diff --git a/math/Cargo.toml b/crates/math/Cargo.toml similarity index 100% rename from math/Cargo.toml rename to crates/math/Cargo.toml diff --git a/math/README.md b/crates/math/README.md similarity index 100% rename from math/README.md rename to crates/math/README.md diff --git a/math/benches/criterion_elliptic_curve.rs b/crates/math/benches/criterion_elliptic_curve.rs similarity index 100% rename from math/benches/criterion_elliptic_curve.rs rename to crates/math/benches/criterion_elliptic_curve.rs diff --git a/math/benches/criterion_fft.rs b/crates/math/benches/criterion_fft.rs similarity index 100% rename from math/benches/criterion_fft.rs rename to crates/math/benches/criterion_fft.rs diff --git a/math/benches/criterion_field.rs b/crates/math/benches/criterion_field.rs similarity index 100% rename from math/benches/criterion_field.rs rename to crates/math/benches/criterion_field.rs diff --git a/math/benches/criterion_metal.rs b/crates/math/benches/criterion_metal.rs similarity index 100% rename from math/benches/criterion_metal.rs rename to crates/math/benches/criterion_metal.rs diff --git a/math/benches/criterion_msm.rs b/crates/math/benches/criterion_msm.rs similarity index 100% rename from math/benches/criterion_msm.rs rename to crates/math/benches/criterion_msm.rs diff --git a/math/benches/criterion_polynomial.rs b/crates/math/benches/criterion_polynomial.rs similarity index 100% rename from math/benches/criterion_polynomial.rs rename to crates/math/benches/criterion_polynomial.rs diff --git a/math/benches/elliptic_curves/bls12_377.rs b/crates/math/benches/elliptic_curves/bls12_377.rs similarity index 100% rename from math/benches/elliptic_curves/bls12_377.rs rename to crates/math/benches/elliptic_curves/bls12_377.rs diff --git a/math/benches/elliptic_curves/bls12_381.rs b/crates/math/benches/elliptic_curves/bls12_381.rs similarity index 100% rename from math/benches/elliptic_curves/bls12_381.rs rename to crates/math/benches/elliptic_curves/bls12_381.rs diff --git a/math/benches/elliptic_curves/bn_254.rs b/crates/math/benches/elliptic_curves/bn_254.rs similarity index 100% rename from math/benches/elliptic_curves/bn_254.rs rename to crates/math/benches/elliptic_curves/bn_254.rs diff --git a/math/benches/elliptic_curves/iai_bls12_377.rs b/crates/math/benches/elliptic_curves/iai_bls12_377.rs similarity index 100% rename from math/benches/elliptic_curves/iai_bls12_377.rs rename to crates/math/benches/elliptic_curves/iai_bls12_377.rs diff --git a/math/benches/elliptic_curves/iai_bls12_381.rs b/crates/math/benches/elliptic_curves/iai_bls12_381.rs similarity index 100% rename from math/benches/elliptic_curves/iai_bls12_381.rs rename to crates/math/benches/elliptic_curves/iai_bls12_381.rs diff --git a/math/benches/elliptic_curves/mod.rs b/crates/math/benches/elliptic_curves/mod.rs similarity index 100% rename from math/benches/elliptic_curves/mod.rs rename to crates/math/benches/elliptic_curves/mod.rs diff --git a/math/benches/fields/baby_bear.rs b/crates/math/benches/fields/baby_bear.rs similarity index 100% rename from math/benches/fields/baby_bear.rs rename to crates/math/benches/fields/baby_bear.rs diff --git a/math/benches/fields/mersenne31.rs b/crates/math/benches/fields/mersenne31.rs similarity index 100% rename from math/benches/fields/mersenne31.rs rename to crates/math/benches/fields/mersenne31.rs diff --git a/math/benches/fields/mersenne31_montgomery.rs b/crates/math/benches/fields/mersenne31_montgomery.rs similarity index 100% rename from math/benches/fields/mersenne31_montgomery.rs rename to crates/math/benches/fields/mersenne31_montgomery.rs diff --git a/math/benches/fields/mod.rs b/crates/math/benches/fields/mod.rs similarity index 100% rename from math/benches/fields/mod.rs rename to crates/math/benches/fields/mod.rs diff --git a/math/benches/fields/stark252.rs b/crates/math/benches/fields/stark252.rs similarity index 100% rename from math/benches/fields/stark252.rs rename to crates/math/benches/fields/stark252.rs diff --git a/math/benches/fields/u64_goldilocks.rs b/crates/math/benches/fields/u64_goldilocks.rs similarity index 100% rename from math/benches/fields/u64_goldilocks.rs rename to crates/math/benches/fields/u64_goldilocks.rs diff --git a/math/benches/fields/u64_goldilocks_montgomery.rs b/crates/math/benches/fields/u64_goldilocks_montgomery.rs similarity index 100% rename from math/benches/fields/u64_goldilocks_montgomery.rs rename to crates/math/benches/fields/u64_goldilocks_montgomery.rs diff --git a/math/benches/iai_elliptic_curve.rs b/crates/math/benches/iai_elliptic_curve.rs similarity index 100% rename from math/benches/iai_elliptic_curve.rs rename to crates/math/benches/iai_elliptic_curve.rs diff --git a/math/benches/iai_fft.rs b/crates/math/benches/iai_fft.rs similarity index 100% rename from math/benches/iai_fft.rs rename to crates/math/benches/iai_fft.rs diff --git a/math/benches/iai_field.rs b/crates/math/benches/iai_field.rs similarity index 100% rename from math/benches/iai_field.rs rename to crates/math/benches/iai_field.rs diff --git a/math/benches/iai_polynomial.rs b/crates/math/benches/iai_polynomial.rs similarity index 100% rename from math/benches/iai_polynomial.rs rename to crates/math/benches/iai_polynomial.rs diff --git a/math/benches/polynomials/dense_multilinear_poly.rs b/crates/math/benches/polynomials/dense_multilinear_poly.rs similarity index 100% rename from math/benches/polynomials/dense_multilinear_poly.rs rename to crates/math/benches/polynomials/dense_multilinear_poly.rs diff --git a/math/benches/polynomials/mod.rs b/crates/math/benches/polynomials/mod.rs similarity index 100% rename from math/benches/polynomials/mod.rs rename to crates/math/benches/polynomials/mod.rs diff --git a/math/benches/polynomials/polynomial.rs b/crates/math/benches/polynomials/polynomial.rs similarity index 100% rename from math/benches/polynomials/polynomial.rs rename to crates/math/benches/polynomials/polynomial.rs diff --git a/math/benches/polynomials/sparse_multilinear_poly.rs b/crates/math/benches/polynomials/sparse_multilinear_poly.rs similarity index 100% rename from math/benches/polynomials/sparse_multilinear_poly.rs rename to crates/math/benches/polynomials/sparse_multilinear_poly.rs diff --git a/math/benches/polynomials/utils.rs b/crates/math/benches/polynomials/utils.rs similarity index 100% rename from math/benches/polynomials/utils.rs rename to crates/math/benches/polynomials/utils.rs diff --git a/math/benches/utils/fft_functions.rs b/crates/math/benches/utils/fft_functions.rs similarity index 100% rename from math/benches/utils/fft_functions.rs rename to crates/math/benches/utils/fft_functions.rs diff --git a/math/benches/utils/metal_functions.rs b/crates/math/benches/utils/metal_functions.rs similarity index 100% rename from math/benches/utils/metal_functions.rs rename to crates/math/benches/utils/metal_functions.rs diff --git a/math/benches/utils/mod.rs b/crates/math/benches/utils/mod.rs similarity index 100% rename from math/benches/utils/mod.rs rename to crates/math/benches/utils/mod.rs diff --git a/math/benches/utils/stark252_utils.rs b/crates/math/benches/utils/stark252_utils.rs similarity index 100% rename from math/benches/utils/stark252_utils.rs rename to crates/math/benches/utils/stark252_utils.rs diff --git a/math/benches/utils/u64_goldilocks_utils.rs b/crates/math/benches/utils/u64_goldilocks_utils.rs similarity index 100% rename from math/benches/utils/u64_goldilocks_utils.rs rename to crates/math/benches/utils/u64_goldilocks_utils.rs diff --git a/math/benches/utils/u64_utils.rs b/crates/math/benches/utils/u64_utils.rs similarity index 100% rename from math/benches/utils/u64_utils.rs rename to crates/math/benches/utils/u64_utils.rs diff --git a/math/src/circle/cfft.rs b/crates/math/src/circle/cfft.rs similarity index 100% rename from math/src/circle/cfft.rs rename to crates/math/src/circle/cfft.rs diff --git a/math/src/circle/cosets.rs b/crates/math/src/circle/cosets.rs similarity index 100% rename from math/src/circle/cosets.rs rename to crates/math/src/circle/cosets.rs diff --git a/math/src/circle/errors.rs b/crates/math/src/circle/errors.rs similarity index 100% rename from math/src/circle/errors.rs rename to crates/math/src/circle/errors.rs diff --git a/math/src/circle/mod.rs b/crates/math/src/circle/mod.rs similarity index 100% rename from math/src/circle/mod.rs rename to crates/math/src/circle/mod.rs diff --git a/math/src/circle/point.rs b/crates/math/src/circle/point.rs similarity index 100% rename from math/src/circle/point.rs rename to crates/math/src/circle/point.rs diff --git a/math/src/circle/polynomial.rs b/crates/math/src/circle/polynomial.rs similarity index 100% rename from math/src/circle/polynomial.rs rename to crates/math/src/circle/polynomial.rs diff --git a/math/src/circle/twiddles.rs b/crates/math/src/circle/twiddles.rs similarity index 100% rename from math/src/circle/twiddles.rs rename to crates/math/src/circle/twiddles.rs diff --git a/math/src/cyclic_group.rs b/crates/math/src/cyclic_group.rs similarity index 100% rename from math/src/cyclic_group.rs rename to crates/math/src/cyclic_group.rs diff --git a/math/src/elliptic_curve/README.md b/crates/math/src/elliptic_curve/README.md similarity index 100% rename from math/src/elliptic_curve/README.md rename to crates/math/src/elliptic_curve/README.md diff --git a/math/src/elliptic_curve/edwards/curves/bandersnatch/curve.rs b/crates/math/src/elliptic_curve/edwards/curves/bandersnatch/curve.rs similarity index 100% rename from math/src/elliptic_curve/edwards/curves/bandersnatch/curve.rs rename to crates/math/src/elliptic_curve/edwards/curves/bandersnatch/curve.rs diff --git a/math/src/elliptic_curve/edwards/curves/bandersnatch/field.rs b/crates/math/src/elliptic_curve/edwards/curves/bandersnatch/field.rs similarity index 100% rename from math/src/elliptic_curve/edwards/curves/bandersnatch/field.rs rename to crates/math/src/elliptic_curve/edwards/curves/bandersnatch/field.rs diff --git a/math/src/elliptic_curve/edwards/curves/bandersnatch/mod.rs b/crates/math/src/elliptic_curve/edwards/curves/bandersnatch/mod.rs similarity index 100% rename from math/src/elliptic_curve/edwards/curves/bandersnatch/mod.rs rename to crates/math/src/elliptic_curve/edwards/curves/bandersnatch/mod.rs diff --git a/math/src/elliptic_curve/edwards/curves/ed448_goldilocks.rs b/crates/math/src/elliptic_curve/edwards/curves/ed448_goldilocks.rs similarity index 100% rename from math/src/elliptic_curve/edwards/curves/ed448_goldilocks.rs rename to crates/math/src/elliptic_curve/edwards/curves/ed448_goldilocks.rs diff --git a/math/src/elliptic_curve/edwards/curves/mod.rs b/crates/math/src/elliptic_curve/edwards/curves/mod.rs similarity index 100% rename from math/src/elliptic_curve/edwards/curves/mod.rs rename to crates/math/src/elliptic_curve/edwards/curves/mod.rs diff --git a/math/src/elliptic_curve/edwards/curves/tiny_jub_jub.rs b/crates/math/src/elliptic_curve/edwards/curves/tiny_jub_jub.rs similarity index 100% rename from math/src/elliptic_curve/edwards/curves/tiny_jub_jub.rs rename to crates/math/src/elliptic_curve/edwards/curves/tiny_jub_jub.rs diff --git a/math/src/elliptic_curve/edwards/mod.rs b/crates/math/src/elliptic_curve/edwards/mod.rs similarity index 100% rename from math/src/elliptic_curve/edwards/mod.rs rename to crates/math/src/elliptic_curve/edwards/mod.rs diff --git a/math/src/elliptic_curve/edwards/point.rs b/crates/math/src/elliptic_curve/edwards/point.rs similarity index 100% rename from math/src/elliptic_curve/edwards/point.rs rename to crates/math/src/elliptic_curve/edwards/point.rs diff --git a/math/src/elliptic_curve/edwards/traits.rs b/crates/math/src/elliptic_curve/edwards/traits.rs similarity index 100% rename from math/src/elliptic_curve/edwards/traits.rs rename to crates/math/src/elliptic_curve/edwards/traits.rs diff --git a/math/src/elliptic_curve/mod.rs b/crates/math/src/elliptic_curve/mod.rs similarity index 100% rename from math/src/elliptic_curve/mod.rs rename to crates/math/src/elliptic_curve/mod.rs diff --git a/math/src/elliptic_curve/montgomery/curves/mod.rs b/crates/math/src/elliptic_curve/montgomery/curves/mod.rs similarity index 100% rename from math/src/elliptic_curve/montgomery/curves/mod.rs rename to crates/math/src/elliptic_curve/montgomery/curves/mod.rs diff --git a/math/src/elliptic_curve/montgomery/curves/tiny_jub_jub.rs b/crates/math/src/elliptic_curve/montgomery/curves/tiny_jub_jub.rs similarity index 100% rename from math/src/elliptic_curve/montgomery/curves/tiny_jub_jub.rs rename to crates/math/src/elliptic_curve/montgomery/curves/tiny_jub_jub.rs diff --git a/math/src/elliptic_curve/montgomery/mod.rs b/crates/math/src/elliptic_curve/montgomery/mod.rs similarity index 100% rename from math/src/elliptic_curve/montgomery/mod.rs rename to crates/math/src/elliptic_curve/montgomery/mod.rs diff --git a/math/src/elliptic_curve/montgomery/point.rs b/crates/math/src/elliptic_curve/montgomery/point.rs similarity index 100% rename from math/src/elliptic_curve/montgomery/point.rs rename to crates/math/src/elliptic_curve/montgomery/point.rs diff --git a/math/src/elliptic_curve/montgomery/traits.rs b/crates/math/src/elliptic_curve/montgomery/traits.rs similarity index 100% rename from math/src/elliptic_curve/montgomery/traits.rs rename to crates/math/src/elliptic_curve/montgomery/traits.rs diff --git a/math/src/elliptic_curve/point.rs b/crates/math/src/elliptic_curve/point.rs similarity index 100% rename from math/src/elliptic_curve/point.rs rename to crates/math/src/elliptic_curve/point.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_377/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/field_extension.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/field_extension.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_377/field_extension.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/field_extension.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_377/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/pairing.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/pairing.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_377/pairing.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/pairing.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/twist.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/twist.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_377/twist.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/twist.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/compression.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/compression.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/compression.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/compression.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/default_types.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/default_types.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/default_types.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/default_types.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/field_extension.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/field_extension.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/field_extension.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/field_extension.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/pairing.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/pairing.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/pairing.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/pairing.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/sqrt.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/sqrt.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/sqrt.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/sqrt.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/twist.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/twist.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bls12_381/twist.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/twist.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/compression.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/compression.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/compression.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/compression.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/default_types.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/default_types.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/default_types.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/default_types.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/pairing.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/pairing.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/pairing.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/pairing.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/sqrt.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/sqrt.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/sqrt.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/sqrt.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/bn_254/twist.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/twist.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/bn_254/twist.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/bn_254/twist.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/grumpkin/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/grumpkin/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/grumpkin/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/grumpkin/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/pallas/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/pallas/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/pallas/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/pallas/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/pallas/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/pallas/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/pallas/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/pallas/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/secp256k1/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/secp256k1/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/secp256k1/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/secp256k1/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/secp256k1/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/secp256k1/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/secp256k1/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/secp256k1/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/secp256r1/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/secp256r1/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/secp256r1/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/secp256r1/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/secp256r1/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/secp256r1/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/secp256r1/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/secp256r1/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/secq256k1/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/secq256k1/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/secq256k1/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/secq256k1/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/secq256k1/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/secq256k1/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/secq256k1/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/secq256k1/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/stark_curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/stark_curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/stark_curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/stark_curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/test_curve_1.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/test_curve_1.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/test_curve_1.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/test_curve_1.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/test_curve_2.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/test_curve_2.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/test_curve_2.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/test_curve_2.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/vesta/curve.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/vesta/curve.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/vesta/curve.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/vesta/curve.rs diff --git a/math/src/elliptic_curve/short_weierstrass/curves/vesta/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/curves/vesta/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/curves/vesta/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/curves/vesta/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/errors.rs b/crates/math/src/elliptic_curve/short_weierstrass/errors.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/errors.rs rename to crates/math/src/elliptic_curve/short_weierstrass/errors.rs diff --git a/math/src/elliptic_curve/short_weierstrass/mod.rs b/crates/math/src/elliptic_curve/short_weierstrass/mod.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/mod.rs rename to crates/math/src/elliptic_curve/short_weierstrass/mod.rs diff --git a/math/src/elliptic_curve/short_weierstrass/point.rs b/crates/math/src/elliptic_curve/short_weierstrass/point.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/point.rs rename to crates/math/src/elliptic_curve/short_weierstrass/point.rs diff --git a/math/src/elliptic_curve/short_weierstrass/traits.rs b/crates/math/src/elliptic_curve/short_weierstrass/traits.rs similarity index 100% rename from math/src/elliptic_curve/short_weierstrass/traits.rs rename to crates/math/src/elliptic_curve/short_weierstrass/traits.rs diff --git a/math/src/elliptic_curve/traits.rs b/crates/math/src/elliptic_curve/traits.rs similarity index 100% rename from math/src/elliptic_curve/traits.rs rename to crates/math/src/elliptic_curve/traits.rs diff --git a/math/src/errors.rs b/crates/math/src/errors.rs similarity index 100% rename from math/src/errors.rs rename to crates/math/src/errors.rs diff --git a/math/src/fft/README.md b/crates/math/src/fft/README.md similarity index 100% rename from math/src/fft/README.md rename to crates/math/src/fft/README.md diff --git a/math/src/fft/cpu/bit_reversing.rs b/crates/math/src/fft/cpu/bit_reversing.rs similarity index 100% rename from math/src/fft/cpu/bit_reversing.rs rename to crates/math/src/fft/cpu/bit_reversing.rs diff --git a/math/src/fft/cpu/fft.rs b/crates/math/src/fft/cpu/fft.rs similarity index 100% rename from math/src/fft/cpu/fft.rs rename to crates/math/src/fft/cpu/fft.rs diff --git a/math/src/fft/cpu/mod.rs b/crates/math/src/fft/cpu/mod.rs similarity index 100% rename from math/src/fft/cpu/mod.rs rename to crates/math/src/fft/cpu/mod.rs diff --git a/math/src/fft/cpu/ops.rs b/crates/math/src/fft/cpu/ops.rs similarity index 100% rename from math/src/fft/cpu/ops.rs rename to crates/math/src/fft/cpu/ops.rs diff --git a/math/src/fft/cpu/roots_of_unity.rs b/crates/math/src/fft/cpu/roots_of_unity.rs similarity index 100% rename from math/src/fft/cpu/roots_of_unity.rs rename to crates/math/src/fft/cpu/roots_of_unity.rs diff --git a/math/src/fft/errors.rs b/crates/math/src/fft/errors.rs similarity index 100% rename from math/src/fft/errors.rs rename to crates/math/src/fft/errors.rs diff --git a/math/src/fft/gpu/cuda/mod.rs b/crates/math/src/fft/gpu/cuda/mod.rs similarity index 100% rename from math/src/fft/gpu/cuda/mod.rs rename to crates/math/src/fft/gpu/cuda/mod.rs diff --git a/math/src/fft/gpu/cuda/ops.rs b/crates/math/src/fft/gpu/cuda/ops.rs similarity index 100% rename from math/src/fft/gpu/cuda/ops.rs rename to crates/math/src/fft/gpu/cuda/ops.rs diff --git a/math/src/fft/gpu/cuda/polynomial.rs b/crates/math/src/fft/gpu/cuda/polynomial.rs similarity index 100% rename from math/src/fft/gpu/cuda/polynomial.rs rename to crates/math/src/fft/gpu/cuda/polynomial.rs diff --git a/math/src/fft/gpu/cuda/state.rs b/crates/math/src/fft/gpu/cuda/state.rs similarity index 100% rename from math/src/fft/gpu/cuda/state.rs rename to crates/math/src/fft/gpu/cuda/state.rs diff --git a/math/src/fft/gpu/metal/mod.rs b/crates/math/src/fft/gpu/metal/mod.rs similarity index 100% rename from math/src/fft/gpu/metal/mod.rs rename to crates/math/src/fft/gpu/metal/mod.rs diff --git a/math/src/fft/gpu/metal/ops.rs b/crates/math/src/fft/gpu/metal/ops.rs similarity index 100% rename from math/src/fft/gpu/metal/ops.rs rename to crates/math/src/fft/gpu/metal/ops.rs diff --git a/math/src/fft/gpu/metal/polynomial.rs b/crates/math/src/fft/gpu/metal/polynomial.rs similarity index 100% rename from math/src/fft/gpu/metal/polynomial.rs rename to crates/math/src/fft/gpu/metal/polynomial.rs diff --git a/math/src/fft/gpu/mod.rs b/crates/math/src/fft/gpu/mod.rs similarity index 100% rename from math/src/fft/gpu/mod.rs rename to crates/math/src/fft/gpu/mod.rs diff --git a/math/src/fft/mod.rs b/crates/math/src/fft/mod.rs similarity index 100% rename from math/src/fft/mod.rs rename to crates/math/src/fft/mod.rs diff --git a/math/src/fft/polynomial.rs b/crates/math/src/fft/polynomial.rs similarity index 100% rename from math/src/fft/polynomial.rs rename to crates/math/src/fft/polynomial.rs diff --git a/math/src/fft/test_helpers.rs b/crates/math/src/fft/test_helpers.rs similarity index 100% rename from math/src/fft/test_helpers.rs rename to crates/math/src/fft/test_helpers.rs diff --git a/math/src/field/README.md b/crates/math/src/field/README.md similarity index 100% rename from math/src/field/README.md rename to crates/math/src/field/README.md diff --git a/math/src/field/element.rs b/crates/math/src/field/element.rs similarity index 100% rename from math/src/field/element.rs rename to crates/math/src/field/element.rs diff --git a/math/src/field/errors.rs b/crates/math/src/field/errors.rs similarity index 100% rename from math/src/field/errors.rs rename to crates/math/src/field/errors.rs diff --git a/math/src/field/extensions/cubic.rs b/crates/math/src/field/extensions/cubic.rs similarity index 100% rename from math/src/field/extensions/cubic.rs rename to crates/math/src/field/extensions/cubic.rs diff --git a/math/src/field/extensions/mod.rs b/crates/math/src/field/extensions/mod.rs similarity index 100% rename from math/src/field/extensions/mod.rs rename to crates/math/src/field/extensions/mod.rs diff --git a/math/src/field/extensions/quadratic.rs b/crates/math/src/field/extensions/quadratic.rs similarity index 100% rename from math/src/field/extensions/quadratic.rs rename to crates/math/src/field/extensions/quadratic.rs diff --git a/math/src/field/fields/fft_friendly/babybear.rs b/crates/math/src/field/fields/fft_friendly/babybear.rs similarity index 100% rename from math/src/field/fields/fft_friendly/babybear.rs rename to crates/math/src/field/fields/fft_friendly/babybear.rs diff --git a/math/src/field/fields/fft_friendly/babybear_u32.rs b/crates/math/src/field/fields/fft_friendly/babybear_u32.rs similarity index 100% rename from math/src/field/fields/fft_friendly/babybear_u32.rs rename to crates/math/src/field/fields/fft_friendly/babybear_u32.rs diff --git a/math/src/field/fields/fft_friendly/mod.rs b/crates/math/src/field/fields/fft_friendly/mod.rs similarity index 100% rename from math/src/field/fields/fft_friendly/mod.rs rename to crates/math/src/field/fields/fft_friendly/mod.rs diff --git a/math/src/field/fields/fft_friendly/quadratic_babybear.rs b/crates/math/src/field/fields/fft_friendly/quadratic_babybear.rs similarity index 100% rename from math/src/field/fields/fft_friendly/quadratic_babybear.rs rename to crates/math/src/field/fields/fft_friendly/quadratic_babybear.rs diff --git a/math/src/field/fields/fft_friendly/quartic_babybear.rs b/crates/math/src/field/fields/fft_friendly/quartic_babybear.rs similarity index 100% rename from math/src/field/fields/fft_friendly/quartic_babybear.rs rename to crates/math/src/field/fields/fft_friendly/quartic_babybear.rs diff --git a/math/src/field/fields/fft_friendly/quartic_babybear_u32.rs b/crates/math/src/field/fields/fft_friendly/quartic_babybear_u32.rs similarity index 100% rename from math/src/field/fields/fft_friendly/quartic_babybear_u32.rs rename to crates/math/src/field/fields/fft_friendly/quartic_babybear_u32.rs diff --git a/math/src/field/fields/fft_friendly/stark_101_prime_field.rs b/crates/math/src/field/fields/fft_friendly/stark_101_prime_field.rs similarity index 100% rename from math/src/field/fields/fft_friendly/stark_101_prime_field.rs rename to crates/math/src/field/fields/fft_friendly/stark_101_prime_field.rs diff --git a/math/src/field/fields/fft_friendly/stark_252_prime_field.rs b/crates/math/src/field/fields/fft_friendly/stark_252_prime_field.rs similarity index 100% rename from math/src/field/fields/fft_friendly/stark_252_prime_field.rs rename to crates/math/src/field/fields/fft_friendly/stark_252_prime_field.rs diff --git a/math/src/field/fields/fft_friendly/u64_goldilocks.rs b/crates/math/src/field/fields/fft_friendly/u64_goldilocks.rs similarity index 100% rename from math/src/field/fields/fft_friendly/u64_goldilocks.rs rename to crates/math/src/field/fields/fft_friendly/u64_goldilocks.rs diff --git a/math/src/field/fields/fft_friendly/u64_mersenne_montgomery_field.rs b/crates/math/src/field/fields/fft_friendly/u64_mersenne_montgomery_field.rs similarity index 100% rename from math/src/field/fields/fft_friendly/u64_mersenne_montgomery_field.rs rename to crates/math/src/field/fields/fft_friendly/u64_mersenne_montgomery_field.rs diff --git a/math/src/field/fields/mersenne31/extensions.rs b/crates/math/src/field/fields/mersenne31/extensions.rs similarity index 100% rename from math/src/field/fields/mersenne31/extensions.rs rename to crates/math/src/field/fields/mersenne31/extensions.rs diff --git a/math/src/field/fields/mersenne31/field.rs b/crates/math/src/field/fields/mersenne31/field.rs similarity index 100% rename from math/src/field/fields/mersenne31/field.rs rename to crates/math/src/field/fields/mersenne31/field.rs diff --git a/math/src/field/fields/mersenne31/mod.rs b/crates/math/src/field/fields/mersenne31/mod.rs similarity index 100% rename from math/src/field/fields/mersenne31/mod.rs rename to crates/math/src/field/fields/mersenne31/mod.rs diff --git a/math/src/field/fields/mod.rs b/crates/math/src/field/fields/mod.rs similarity index 100% rename from math/src/field/fields/mod.rs rename to crates/math/src/field/fields/mod.rs diff --git a/math/src/field/fields/montgomery_backed_prime_fields.rs b/crates/math/src/field/fields/montgomery_backed_prime_fields.rs similarity index 100% rename from math/src/field/fields/montgomery_backed_prime_fields.rs rename to crates/math/src/field/fields/montgomery_backed_prime_fields.rs diff --git a/math/src/field/fields/p448_goldilocks_prime_field.rs b/crates/math/src/field/fields/p448_goldilocks_prime_field.rs similarity index 100% rename from math/src/field/fields/p448_goldilocks_prime_field.rs rename to crates/math/src/field/fields/p448_goldilocks_prime_field.rs diff --git a/math/src/field/fields/pallas_field.rs b/crates/math/src/field/fields/pallas_field.rs similarity index 100% rename from math/src/field/fields/pallas_field.rs rename to crates/math/src/field/fields/pallas_field.rs diff --git a/math/src/field/fields/secp256k1_field.rs b/crates/math/src/field/fields/secp256k1_field.rs similarity index 100% rename from math/src/field/fields/secp256k1_field.rs rename to crates/math/src/field/fields/secp256k1_field.rs diff --git a/math/src/field/fields/secp256k1_scalarfield.rs b/crates/math/src/field/fields/secp256k1_scalarfield.rs similarity index 100% rename from math/src/field/fields/secp256k1_scalarfield.rs rename to crates/math/src/field/fields/secp256k1_scalarfield.rs diff --git a/math/src/field/fields/secp256r1_field.rs b/crates/math/src/field/fields/secp256r1_field.rs similarity index 100% rename from math/src/field/fields/secp256r1_field.rs rename to crates/math/src/field/fields/secp256r1_field.rs diff --git a/math/src/field/fields/u32_montgomery_backend_prime_field.rs b/crates/math/src/field/fields/u32_montgomery_backend_prime_field.rs similarity index 100% rename from math/src/field/fields/u32_montgomery_backend_prime_field.rs rename to crates/math/src/field/fields/u32_montgomery_backend_prime_field.rs diff --git a/math/src/field/fields/u64_goldilocks_field.rs b/crates/math/src/field/fields/u64_goldilocks_field.rs similarity index 100% rename from math/src/field/fields/u64_goldilocks_field.rs rename to crates/math/src/field/fields/u64_goldilocks_field.rs diff --git a/math/src/field/fields/u64_prime_field.rs b/crates/math/src/field/fields/u64_prime_field.rs similarity index 100% rename from math/src/field/fields/u64_prime_field.rs rename to crates/math/src/field/fields/u64_prime_field.rs diff --git a/math/src/field/fields/vesta_field.rs b/crates/math/src/field/fields/vesta_field.rs similarity index 100% rename from math/src/field/fields/vesta_field.rs rename to crates/math/src/field/fields/vesta_field.rs diff --git a/math/src/field/fields/winterfell.rs b/crates/math/src/field/fields/winterfell.rs similarity index 100% rename from math/src/field/fields/winterfell.rs rename to crates/math/src/field/fields/winterfell.rs diff --git a/math/src/field/mod.rs b/crates/math/src/field/mod.rs similarity index 100% rename from math/src/field/mod.rs rename to crates/math/src/field/mod.rs diff --git a/math/src/field/test_fields/mod.rs b/crates/math/src/field/test_fields/mod.rs similarity index 100% rename from math/src/field/test_fields/mod.rs rename to crates/math/src/field/test_fields/mod.rs diff --git a/math/src/field/test_fields/u32_test_field.rs b/crates/math/src/field/test_fields/u32_test_field.rs similarity index 100% rename from math/src/field/test_fields/u32_test_field.rs rename to crates/math/src/field/test_fields/u32_test_field.rs diff --git a/math/src/field/test_fields/u64_test_field.rs b/crates/math/src/field/test_fields/u64_test_field.rs similarity index 100% rename from math/src/field/test_fields/u64_test_field.rs rename to crates/math/src/field/test_fields/u64_test_field.rs diff --git a/math/src/field/traits.rs b/crates/math/src/field/traits.rs similarity index 100% rename from math/src/field/traits.rs rename to crates/math/src/field/traits.rs diff --git a/math/src/gpu/cuda/field/element.rs b/crates/math/src/gpu/cuda/field/element.rs similarity index 100% rename from math/src/gpu/cuda/field/element.rs rename to crates/math/src/gpu/cuda/field/element.rs diff --git a/math/src/gpu/cuda/field/mod.rs b/crates/math/src/gpu/cuda/field/mod.rs similarity index 100% rename from math/src/gpu/cuda/field/mod.rs rename to crates/math/src/gpu/cuda/field/mod.rs diff --git a/math/src/gpu/cuda/mod.rs b/crates/math/src/gpu/cuda/mod.rs similarity index 100% rename from math/src/gpu/cuda/mod.rs rename to crates/math/src/gpu/cuda/mod.rs diff --git a/math/src/gpu/cuda/shaders/fft/bitrev_permutation.cuh b/crates/math/src/gpu/cuda/shaders/fft/bitrev_permutation.cuh similarity index 100% rename from math/src/gpu/cuda/shaders/fft/bitrev_permutation.cuh rename to crates/math/src/gpu/cuda/shaders/fft/bitrev_permutation.cuh diff --git a/math/src/gpu/cuda/shaders/fft/fft.cuh b/crates/math/src/gpu/cuda/shaders/fft/fft.cuh similarity index 100% rename from math/src/gpu/cuda/shaders/fft/fft.cuh rename to crates/math/src/gpu/cuda/shaders/fft/fft.cuh diff --git a/math/src/gpu/cuda/shaders/fft/twiddles.cuh b/crates/math/src/gpu/cuda/shaders/fft/twiddles.cuh similarity index 100% rename from math/src/gpu/cuda/shaders/fft/twiddles.cuh rename to crates/math/src/gpu/cuda/shaders/fft/twiddles.cuh diff --git a/math/src/gpu/cuda/shaders/field/fp_u256.cuh b/crates/math/src/gpu/cuda/shaders/field/fp_u256.cuh similarity index 100% rename from math/src/gpu/cuda/shaders/field/fp_u256.cuh rename to crates/math/src/gpu/cuda/shaders/field/fp_u256.cuh diff --git a/math/src/gpu/cuda/shaders/field/stark256.cu b/crates/math/src/gpu/cuda/shaders/field/stark256.cu similarity index 100% rename from math/src/gpu/cuda/shaders/field/stark256.cu rename to crates/math/src/gpu/cuda/shaders/field/stark256.cu diff --git a/math/src/gpu/cuda/shaders/unsigned_integer/u128.cuh b/crates/math/src/gpu/cuda/shaders/unsigned_integer/u128.cuh similarity index 100% rename from math/src/gpu/cuda/shaders/unsigned_integer/u128.cuh rename to crates/math/src/gpu/cuda/shaders/unsigned_integer/u128.cuh diff --git a/math/src/gpu/cuda/shaders/unsigned_integer/u256.cuh b/crates/math/src/gpu/cuda/shaders/unsigned_integer/u256.cuh similarity index 100% rename from math/src/gpu/cuda/shaders/unsigned_integer/u256.cuh rename to crates/math/src/gpu/cuda/shaders/unsigned_integer/u256.cuh diff --git a/math/src/gpu/cuda/shaders/utils.h b/crates/math/src/gpu/cuda/shaders/utils.h similarity index 100% rename from math/src/gpu/cuda/shaders/utils.h rename to crates/math/src/gpu/cuda/shaders/utils.h diff --git a/math/src/gpu/metal/all.metal b/crates/math/src/gpu/metal/all.metal similarity index 100% rename from math/src/gpu/metal/all.metal rename to crates/math/src/gpu/metal/all.metal diff --git a/math/src/gpu/metal/shaders/fft/fft.h.metal b/crates/math/src/gpu/metal/shaders/fft/fft.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/fft/fft.h.metal rename to crates/math/src/gpu/metal/shaders/fft/fft.h.metal diff --git a/math/src/gpu/metal/shaders/fft/permutation.h.metal b/crates/math/src/gpu/metal/shaders/fft/permutation.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/fft/permutation.h.metal rename to crates/math/src/gpu/metal/shaders/fft/permutation.h.metal diff --git a/math/src/gpu/metal/shaders/fft/twiddles.h.metal b/crates/math/src/gpu/metal/shaders/fft/twiddles.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/fft/twiddles.h.metal rename to crates/math/src/gpu/metal/shaders/fft/twiddles.h.metal diff --git a/math/src/gpu/metal/shaders/fft/util.h.metal b/crates/math/src/gpu/metal/shaders/fft/util.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/fft/util.h.metal rename to crates/math/src/gpu/metal/shaders/fft/util.h.metal diff --git a/math/src/gpu/metal/shaders/field/fp_u256.h.metal b/crates/math/src/gpu/metal/shaders/field/fp_u256.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/field/fp_u256.h.metal rename to crates/math/src/gpu/metal/shaders/field/fp_u256.h.metal diff --git a/math/src/gpu/metal/shaders/field/stark256.h.metal b/crates/math/src/gpu/metal/shaders/field/stark256.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/field/stark256.h.metal rename to crates/math/src/gpu/metal/shaders/field/stark256.h.metal diff --git a/math/src/gpu/metal/shaders/unsigned_integer/u128.h.metal b/crates/math/src/gpu/metal/shaders/unsigned_integer/u128.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/unsigned_integer/u128.h.metal rename to crates/math/src/gpu/metal/shaders/unsigned_integer/u128.h.metal diff --git a/math/src/gpu/metal/shaders/unsigned_integer/u256.h.metal b/crates/math/src/gpu/metal/shaders/unsigned_integer/u256.h.metal similarity index 100% rename from math/src/gpu/metal/shaders/unsigned_integer/u256.h.metal rename to crates/math/src/gpu/metal/shaders/unsigned_integer/u256.h.metal diff --git a/math/src/gpu/mod.rs b/crates/math/src/gpu/mod.rs similarity index 100% rename from math/src/gpu/mod.rs rename to crates/math/src/gpu/mod.rs diff --git a/math/src/helpers.rs b/crates/math/src/helpers.rs similarity index 100% rename from math/src/helpers.rs rename to crates/math/src/helpers.rs diff --git a/math/src/lib.rs b/crates/math/src/lib.rs similarity index 100% rename from math/src/lib.rs rename to crates/math/src/lib.rs diff --git a/math/src/msm/mod.rs b/crates/math/src/msm/mod.rs similarity index 100% rename from math/src/msm/mod.rs rename to crates/math/src/msm/mod.rs diff --git a/math/src/msm/naive.rs b/crates/math/src/msm/naive.rs similarity index 100% rename from math/src/msm/naive.rs rename to crates/math/src/msm/naive.rs diff --git a/math/src/msm/pippenger.rs b/crates/math/src/msm/pippenger.rs similarity index 100% rename from math/src/msm/pippenger.rs rename to crates/math/src/msm/pippenger.rs diff --git a/math/src/polynomial/README.md b/crates/math/src/polynomial/README.md similarity index 100% rename from math/src/polynomial/README.md rename to crates/math/src/polynomial/README.md diff --git a/math/src/polynomial/dense_multilinear_poly.rs b/crates/math/src/polynomial/dense_multilinear_poly.rs similarity index 100% rename from math/src/polynomial/dense_multilinear_poly.rs rename to crates/math/src/polynomial/dense_multilinear_poly.rs diff --git a/math/src/polynomial/error.rs b/crates/math/src/polynomial/error.rs similarity index 100% rename from math/src/polynomial/error.rs rename to crates/math/src/polynomial/error.rs diff --git a/math/src/polynomial/mod.rs b/crates/math/src/polynomial/mod.rs similarity index 100% rename from math/src/polynomial/mod.rs rename to crates/math/src/polynomial/mod.rs diff --git a/math/src/polynomial/sparse_multilinear_poly.rs b/crates/math/src/polynomial/sparse_multilinear_poly.rs similarity index 100% rename from math/src/polynomial/sparse_multilinear_poly.rs rename to crates/math/src/polynomial/sparse_multilinear_poly.rs diff --git a/math/src/traits.rs b/crates/math/src/traits.rs similarity index 100% rename from math/src/traits.rs rename to crates/math/src/traits.rs diff --git a/math/src/unsigned_integer/element.rs b/crates/math/src/unsigned_integer/element.rs similarity index 100% rename from math/src/unsigned_integer/element.rs rename to crates/math/src/unsigned_integer/element.rs diff --git a/math/src/unsigned_integer/mod.rs b/crates/math/src/unsigned_integer/mod.rs similarity index 100% rename from math/src/unsigned_integer/mod.rs rename to crates/math/src/unsigned_integer/mod.rs diff --git a/math/src/unsigned_integer/montgomery.rs b/crates/math/src/unsigned_integer/montgomery.rs similarity index 100% rename from math/src/unsigned_integer/montgomery.rs rename to crates/math/src/unsigned_integer/montgomery.rs diff --git a/math/src/unsigned_integer/traits.rs b/crates/math/src/unsigned_integer/traits.rs similarity index 100% rename from math/src/unsigned_integer/traits.rs rename to crates/math/src/unsigned_integer/traits.rs diff --git a/provers/README.md b/crates/provers/README.md similarity index 100% rename from provers/README.md rename to crates/provers/README.md diff --git a/provers/groth16/Cargo.toml b/crates/provers/groth16/Cargo.toml similarity index 100% rename from provers/groth16/Cargo.toml rename to crates/provers/groth16/Cargo.toml diff --git a/provers/groth16/README.md b/crates/provers/groth16/README.md similarity index 100% rename from provers/groth16/README.md rename to crates/provers/groth16/README.md diff --git a/provers/groth16/arkworks-adapter/Cargo.toml b/crates/provers/groth16/arkworks-adapter/Cargo.toml similarity index 67% rename from provers/groth16/arkworks-adapter/Cargo.toml rename to crates/provers/groth16/arkworks-adapter/Cargo.toml index 637070bdb..dd5082a98 100644 --- a/provers/groth16/arkworks-adapter/Cargo.toml +++ b/crates/provers/groth16/arkworks-adapter/Cargo.toml @@ -8,12 +8,12 @@ repository.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -lambdaworks-math = { path = "../../../math" } -lambdaworks-groth16 = { path = "../" } -ark-r1cs-std = { version = "^0.3.1"} -ark-bls12-381 = { version = "0.4.0"} +lambdaworks-math.workspace = true +lambdaworks-groth16.workspace = true +ark-r1cs-std = { version = "^0.3.1" } +ark-bls12-381 = { version = "0.4.0" } ark-ff = { version = "^0.4.2" } ark-relations = { version = "^0.4.0" } -ark-serialize = {version = "0.4.2"} +ark-serialize = { version = "0.4.2" } num-bigint = { version = "0.4", default-features = false } rand = "0.8.5" diff --git a/provers/groth16/arkworks-adapter/README.md b/crates/provers/groth16/arkworks-adapter/README.md similarity index 100% rename from provers/groth16/arkworks-adapter/README.md rename to crates/provers/groth16/arkworks-adapter/README.md diff --git a/provers/groth16/arkworks-adapter/src/integration_tests.rs b/crates/provers/groth16/arkworks-adapter/src/integration_tests.rs similarity index 100% rename from provers/groth16/arkworks-adapter/src/integration_tests.rs rename to crates/provers/groth16/arkworks-adapter/src/integration_tests.rs diff --git a/provers/groth16/arkworks-adapter/src/lib.rs b/crates/provers/groth16/arkworks-adapter/src/lib.rs similarity index 100% rename from provers/groth16/arkworks-adapter/src/lib.rs rename to crates/provers/groth16/arkworks-adapter/src/lib.rs diff --git a/provers/groth16/circom-adapter/Cargo.toml b/crates/provers/groth16/circom-adapter/Cargo.toml similarity index 78% rename from provers/groth16/circom-adapter/Cargo.toml rename to crates/provers/groth16/circom-adapter/Cargo.toml index aa7ff88b0..7cabeefb9 100644 --- a/provers/groth16/circom-adapter/Cargo.toml +++ b/crates/provers/groth16/circom-adapter/Cargo.toml @@ -8,7 +8,8 @@ repository.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -lambdaworks-math = { path = "../../../math" } -lambdaworks-groth16 = { path = "../" } +lambdaworks-math.workspace = true +lambdaworks-groth16.workspace = true + serde = { version = "1.0" } serde_json = "1" diff --git a/provers/groth16/circom-adapter/src/README.md b/crates/provers/groth16/circom-adapter/src/README.md similarity index 100% rename from provers/groth16/circom-adapter/src/README.md rename to crates/provers/groth16/circom-adapter/src/README.md diff --git a/provers/groth16/circom-adapter/src/integration_tests.rs b/crates/provers/groth16/circom-adapter/src/integration_tests.rs similarity index 100% rename from provers/groth16/circom-adapter/src/integration_tests.rs rename to crates/provers/groth16/circom-adapter/src/integration_tests.rs diff --git a/provers/groth16/circom-adapter/src/lib.rs b/crates/provers/groth16/circom-adapter/src/lib.rs similarity index 100% rename from provers/groth16/circom-adapter/src/lib.rs rename to crates/provers/groth16/circom-adapter/src/lib.rs diff --git a/provers/groth16/circom-adapter/test_files/poseidon/test.r1cs.json b/crates/provers/groth16/circom-adapter/test_files/poseidon/test.r1cs.json similarity index 100% rename from provers/groth16/circom-adapter/test_files/poseidon/test.r1cs.json rename to crates/provers/groth16/circom-adapter/test_files/poseidon/test.r1cs.json diff --git a/provers/groth16/circom-adapter/test_files/poseidon/witness.json b/crates/provers/groth16/circom-adapter/test_files/poseidon/witness.json similarity index 100% rename from provers/groth16/circom-adapter/test_files/poseidon/witness.json rename to crates/provers/groth16/circom-adapter/test_files/poseidon/witness.json diff --git a/provers/groth16/circom-adapter/test_files/vitalik_example/test.r1cs.json b/crates/provers/groth16/circom-adapter/test_files/vitalik_example/test.r1cs.json similarity index 100% rename from provers/groth16/circom-adapter/test_files/vitalik_example/test.r1cs.json rename to crates/provers/groth16/circom-adapter/test_files/vitalik_example/test.r1cs.json diff --git a/provers/groth16/circom-adapter/test_files/vitalik_example/witness.json b/crates/provers/groth16/circom-adapter/test_files/vitalik_example/witness.json similarity index 100% rename from provers/groth16/circom-adapter/test_files/vitalik_example/witness.json rename to crates/provers/groth16/circom-adapter/test_files/vitalik_example/witness.json diff --git a/provers/groth16/src/common.rs b/crates/provers/groth16/src/common.rs similarity index 100% rename from provers/groth16/src/common.rs rename to crates/provers/groth16/src/common.rs diff --git a/provers/groth16/src/lib.rs b/crates/provers/groth16/src/lib.rs similarity index 100% rename from provers/groth16/src/lib.rs rename to crates/provers/groth16/src/lib.rs diff --git a/provers/groth16/src/prover.rs b/crates/provers/groth16/src/prover.rs similarity index 100% rename from provers/groth16/src/prover.rs rename to crates/provers/groth16/src/prover.rs diff --git a/provers/groth16/src/qap.rs b/crates/provers/groth16/src/qap.rs similarity index 100% rename from provers/groth16/src/qap.rs rename to crates/provers/groth16/src/qap.rs diff --git a/provers/groth16/src/r1cs.rs b/crates/provers/groth16/src/r1cs.rs similarity index 100% rename from provers/groth16/src/r1cs.rs rename to crates/provers/groth16/src/r1cs.rs diff --git a/provers/groth16/src/setup.rs b/crates/provers/groth16/src/setup.rs similarity index 100% rename from provers/groth16/src/setup.rs rename to crates/provers/groth16/src/setup.rs diff --git a/provers/groth16/src/verifier.rs b/crates/provers/groth16/src/verifier.rs similarity index 100% rename from provers/groth16/src/verifier.rs rename to crates/provers/groth16/src/verifier.rs diff --git a/provers/groth16/tests/groth16.rs b/crates/provers/groth16/tests/groth16.rs similarity index 100% rename from provers/groth16/tests/groth16.rs rename to crates/provers/groth16/tests/groth16.rs diff --git a/provers/groth16/tests/test_circuits/mod.rs b/crates/provers/groth16/tests/test_circuits/mod.rs similarity index 100% rename from provers/groth16/tests/test_circuits/mod.rs rename to crates/provers/groth16/tests/test_circuits/mod.rs diff --git a/provers/plonk/Cargo.toml b/crates/provers/plonk/Cargo.toml similarity index 99% rename from provers/plonk/Cargo.toml rename to crates/provers/plonk/Cargo.toml index 5f3784d48..18c3fab33 100644 --- a/provers/plonk/Cargo.toml +++ b/crates/provers/plonk/Cargo.toml @@ -8,6 +8,7 @@ edition = "2021" [dependencies] lambdaworks-math.workspace = true lambdaworks-crypto.workspace = true + serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" sha3 = { version = "0.10", default-features = false } diff --git a/provers/plonk/README.md b/crates/provers/plonk/README.md similarity index 100% rename from provers/plonk/README.md rename to crates/provers/plonk/README.md diff --git a/provers/plonk/src/constraint_system/conditional.rs b/crates/provers/plonk/src/constraint_system/conditional.rs similarity index 100% rename from provers/plonk/src/constraint_system/conditional.rs rename to crates/provers/plonk/src/constraint_system/conditional.rs diff --git a/provers/plonk/src/constraint_system/errors.rs b/crates/provers/plonk/src/constraint_system/errors.rs similarity index 100% rename from provers/plonk/src/constraint_system/errors.rs rename to crates/provers/plonk/src/constraint_system/errors.rs diff --git a/provers/plonk/src/constraint_system/examples/mimc.rs b/crates/provers/plonk/src/constraint_system/examples/mimc.rs similarity index 100% rename from provers/plonk/src/constraint_system/examples/mimc.rs rename to crates/provers/plonk/src/constraint_system/examples/mimc.rs diff --git a/provers/plonk/src/constraint_system/examples/mod.rs b/crates/provers/plonk/src/constraint_system/examples/mod.rs similarity index 100% rename from provers/plonk/src/constraint_system/examples/mod.rs rename to crates/provers/plonk/src/constraint_system/examples/mod.rs diff --git a/provers/plonk/src/constraint_system/examples/pow.rs b/crates/provers/plonk/src/constraint_system/examples/pow.rs similarity index 100% rename from provers/plonk/src/constraint_system/examples/pow.rs rename to crates/provers/plonk/src/constraint_system/examples/pow.rs diff --git a/provers/plonk/src/constraint_system/mod.rs b/crates/provers/plonk/src/constraint_system/mod.rs similarity index 100% rename from provers/plonk/src/constraint_system/mod.rs rename to crates/provers/plonk/src/constraint_system/mod.rs diff --git a/provers/plonk/src/constraint_system/operations.rs b/crates/provers/plonk/src/constraint_system/operations.rs similarity index 100% rename from provers/plonk/src/constraint_system/operations.rs rename to crates/provers/plonk/src/constraint_system/operations.rs diff --git a/provers/plonk/src/constraint_system/solver.rs b/crates/provers/plonk/src/constraint_system/solver.rs similarity index 100% rename from provers/plonk/src/constraint_system/solver.rs rename to crates/provers/plonk/src/constraint_system/solver.rs diff --git a/provers/plonk/src/constraint_system/types.rs b/crates/provers/plonk/src/constraint_system/types.rs similarity index 100% rename from provers/plonk/src/constraint_system/types.rs rename to crates/provers/plonk/src/constraint_system/types.rs diff --git a/provers/plonk/src/lib.rs b/crates/provers/plonk/src/lib.rs similarity index 100% rename from provers/plonk/src/lib.rs rename to crates/provers/plonk/src/lib.rs diff --git a/provers/plonk/src/prover.rs b/crates/provers/plonk/src/prover.rs similarity index 100% rename from provers/plonk/src/prover.rs rename to crates/provers/plonk/src/prover.rs diff --git a/provers/plonk/src/setup.rs b/crates/provers/plonk/src/setup.rs similarity index 100% rename from provers/plonk/src/setup.rs rename to crates/provers/plonk/src/setup.rs diff --git a/provers/plonk/src/test_utils/circuit_1.rs b/crates/provers/plonk/src/test_utils/circuit_1.rs similarity index 100% rename from provers/plonk/src/test_utils/circuit_1.rs rename to crates/provers/plonk/src/test_utils/circuit_1.rs diff --git a/provers/plonk/src/test_utils/circuit_2.rs b/crates/provers/plonk/src/test_utils/circuit_2.rs similarity index 100% rename from provers/plonk/src/test_utils/circuit_2.rs rename to crates/provers/plonk/src/test_utils/circuit_2.rs diff --git a/provers/plonk/src/test_utils/circuit_json.rs b/crates/provers/plonk/src/test_utils/circuit_json.rs similarity index 100% rename from provers/plonk/src/test_utils/circuit_json.rs rename to crates/provers/plonk/src/test_utils/circuit_json.rs diff --git a/provers/plonk/src/test_utils/mod.rs b/crates/provers/plonk/src/test_utils/mod.rs similarity index 100% rename from provers/plonk/src/test_utils/mod.rs rename to crates/provers/plonk/src/test_utils/mod.rs diff --git a/provers/plonk/src/test_utils/utils.rs b/crates/provers/plonk/src/test_utils/utils.rs similarity index 100% rename from provers/plonk/src/test_utils/utils.rs rename to crates/provers/plonk/src/test_utils/utils.rs diff --git a/provers/plonk/src/verifier.rs b/crates/provers/plonk/src/verifier.rs similarity index 100% rename from provers/plonk/src/verifier.rs rename to crates/provers/plonk/src/verifier.rs diff --git a/provers/stark/Cargo.toml b/crates/provers/stark/Cargo.toml similarity index 89% rename from provers/stark/Cargo.toml rename to crates/provers/stark/Cargo.toml index 2c181a729..044242fb9 100644 --- a/provers/stark/Cargo.toml +++ b/crates/provers/stark/Cargo.toml @@ -9,9 +9,13 @@ license.workspace = true crate-type = ["cdylib", "rlib"] [dependencies] -lambdaworks-math = { workspace = true , features = ["std", "lambdaworks-serde-binary"] } +lambdaworks-math = { workspace = true, features = [ + "std", + "lambdaworks-serde-binary", +] } lambdaworks-crypto = { workspace = true, features = ["std", "serde"] } -miden-core = { git="https://github.com/lambdaclass/miden-vm", optional=true} + +miden-core = { git = "https://github.com/lambdaclass/miden-vm", optional = true } rand = "0.8.5" thiserror = "1.0.38" @@ -30,7 +34,7 @@ rayon = { version = "1.8.0", optional = true } wasm-bindgen = { version = "0.2", optional = true } serde-wasm-bindgen = { version = "0.5", optional = true } web-sys = { version = "0.3.64", features = ['console'], optional = true } -serde_cbor = { version = "0.11.1"} +serde_cbor = { version = "0.11.1" } [dev-dependencies] hex = "0.4.3" @@ -44,7 +48,7 @@ wasm-bindgen-test = "0.3.0" [features] test_fiat_shamir = [] -instruments = [] # This enables timing prints in prover and verifier +instruments = [] # This enables timing prints in prover and verifier metal = ["lambdaworks-math/metal"] parallel = ["dep:rayon", "lambdaworks-crypto/parallel"] wasm = ["dep:wasm-bindgen", "dep:serde-wasm-bindgen", "dep:web-sys"] diff --git a/provers/stark/README.md b/crates/provers/stark/README.md similarity index 100% rename from provers/stark/README.md rename to crates/provers/stark/README.md diff --git a/provers/stark/src/config.rs b/crates/provers/stark/src/config.rs similarity index 100% rename from provers/stark/src/config.rs rename to crates/provers/stark/src/config.rs diff --git a/provers/stark/src/constraints/boundary.rs b/crates/provers/stark/src/constraints/boundary.rs similarity index 100% rename from provers/stark/src/constraints/boundary.rs rename to crates/provers/stark/src/constraints/boundary.rs diff --git a/provers/stark/src/constraints/evaluator.rs b/crates/provers/stark/src/constraints/evaluator.rs similarity index 100% rename from provers/stark/src/constraints/evaluator.rs rename to crates/provers/stark/src/constraints/evaluator.rs diff --git a/provers/stark/src/constraints/mod.rs b/crates/provers/stark/src/constraints/mod.rs similarity index 100% rename from provers/stark/src/constraints/mod.rs rename to crates/provers/stark/src/constraints/mod.rs diff --git a/provers/stark/src/constraints/transition.rs b/crates/provers/stark/src/constraints/transition.rs similarity index 100% rename from provers/stark/src/constraints/transition.rs rename to crates/provers/stark/src/constraints/transition.rs diff --git a/provers/stark/src/context.rs b/crates/provers/stark/src/context.rs similarity index 100% rename from provers/stark/src/context.rs rename to crates/provers/stark/src/context.rs diff --git a/provers/stark/src/debug.rs b/crates/provers/stark/src/debug.rs similarity index 100% rename from provers/stark/src/debug.rs rename to crates/provers/stark/src/debug.rs diff --git a/provers/stark/src/domain.rs b/crates/provers/stark/src/domain.rs similarity index 100% rename from provers/stark/src/domain.rs rename to crates/provers/stark/src/domain.rs diff --git a/provers/stark/src/examples/bit_flags.rs b/crates/provers/stark/src/examples/bit_flags.rs similarity index 100% rename from provers/stark/src/examples/bit_flags.rs rename to crates/provers/stark/src/examples/bit_flags.rs diff --git a/provers/stark/src/examples/dummy_air.rs b/crates/provers/stark/src/examples/dummy_air.rs similarity index 100% rename from provers/stark/src/examples/dummy_air.rs rename to crates/provers/stark/src/examples/dummy_air.rs diff --git a/provers/stark/src/examples/fibonacci_2_cols_shifted.rs b/crates/provers/stark/src/examples/fibonacci_2_cols_shifted.rs similarity index 100% rename from provers/stark/src/examples/fibonacci_2_cols_shifted.rs rename to crates/provers/stark/src/examples/fibonacci_2_cols_shifted.rs diff --git a/provers/stark/src/examples/fibonacci_2_columns.rs b/crates/provers/stark/src/examples/fibonacci_2_columns.rs similarity index 100% rename from provers/stark/src/examples/fibonacci_2_columns.rs rename to crates/provers/stark/src/examples/fibonacci_2_columns.rs diff --git a/provers/stark/src/examples/fibonacci_rap.rs b/crates/provers/stark/src/examples/fibonacci_rap.rs similarity index 100% rename from provers/stark/src/examples/fibonacci_rap.rs rename to crates/provers/stark/src/examples/fibonacci_rap.rs diff --git a/provers/stark/src/examples/mod.rs b/crates/provers/stark/src/examples/mod.rs similarity index 100% rename from provers/stark/src/examples/mod.rs rename to crates/provers/stark/src/examples/mod.rs diff --git a/provers/stark/src/examples/quadratic_air.rs b/crates/provers/stark/src/examples/quadratic_air.rs similarity index 100% rename from provers/stark/src/examples/quadratic_air.rs rename to crates/provers/stark/src/examples/quadratic_air.rs diff --git a/provers/stark/src/examples/read_only_memory.rs b/crates/provers/stark/src/examples/read_only_memory.rs similarity index 100% rename from provers/stark/src/examples/read_only_memory.rs rename to crates/provers/stark/src/examples/read_only_memory.rs diff --git a/provers/stark/src/examples/read_only_memory_logup.rs b/crates/provers/stark/src/examples/read_only_memory_logup.rs similarity index 100% rename from provers/stark/src/examples/read_only_memory_logup.rs rename to crates/provers/stark/src/examples/read_only_memory_logup.rs diff --git a/provers/stark/src/examples/simple_fibonacci.rs b/crates/provers/stark/src/examples/simple_fibonacci.rs similarity index 100% rename from provers/stark/src/examples/simple_fibonacci.rs rename to crates/provers/stark/src/examples/simple_fibonacci.rs diff --git a/provers/stark/src/examples/simple_periodic_cols.rs b/crates/provers/stark/src/examples/simple_periodic_cols.rs similarity index 100% rename from provers/stark/src/examples/simple_periodic_cols.rs rename to crates/provers/stark/src/examples/simple_periodic_cols.rs diff --git a/provers/stark/src/frame.rs b/crates/provers/stark/src/frame.rs similarity index 100% rename from provers/stark/src/frame.rs rename to crates/provers/stark/src/frame.rs diff --git a/provers/stark/src/fri/fri_commitment.rs b/crates/provers/stark/src/fri/fri_commitment.rs similarity index 100% rename from provers/stark/src/fri/fri_commitment.rs rename to crates/provers/stark/src/fri/fri_commitment.rs diff --git a/provers/stark/src/fri/fri_decommit.rs b/crates/provers/stark/src/fri/fri_decommit.rs similarity index 100% rename from provers/stark/src/fri/fri_decommit.rs rename to crates/provers/stark/src/fri/fri_decommit.rs diff --git a/provers/stark/src/fri/fri_functions.rs b/crates/provers/stark/src/fri/fri_functions.rs similarity index 100% rename from provers/stark/src/fri/fri_functions.rs rename to crates/provers/stark/src/fri/fri_functions.rs diff --git a/provers/stark/src/fri/mod.rs b/crates/provers/stark/src/fri/mod.rs similarity index 100% rename from provers/stark/src/fri/mod.rs rename to crates/provers/stark/src/fri/mod.rs diff --git a/provers/stark/src/grinding.rs b/crates/provers/stark/src/grinding.rs similarity index 100% rename from provers/stark/src/grinding.rs rename to crates/provers/stark/src/grinding.rs diff --git a/provers/stark/src/lib.rs b/crates/provers/stark/src/lib.rs similarity index 100% rename from provers/stark/src/lib.rs rename to crates/provers/stark/src/lib.rs diff --git a/provers/stark/src/proof/errors.rs b/crates/provers/stark/src/proof/errors.rs similarity index 100% rename from provers/stark/src/proof/errors.rs rename to crates/provers/stark/src/proof/errors.rs diff --git a/provers/stark/src/proof/mod.rs b/crates/provers/stark/src/proof/mod.rs similarity index 100% rename from provers/stark/src/proof/mod.rs rename to crates/provers/stark/src/proof/mod.rs diff --git a/provers/stark/src/proof/options.rs b/crates/provers/stark/src/proof/options.rs similarity index 100% rename from provers/stark/src/proof/options.rs rename to crates/provers/stark/src/proof/options.rs diff --git a/provers/stark/src/proof/stark.rs b/crates/provers/stark/src/proof/stark.rs similarity index 100% rename from provers/stark/src/proof/stark.rs rename to crates/provers/stark/src/proof/stark.rs diff --git a/provers/stark/src/prover.rs b/crates/provers/stark/src/prover.rs similarity index 100% rename from provers/stark/src/prover.rs rename to crates/provers/stark/src/prover.rs diff --git a/provers/stark/src/table.rs b/crates/provers/stark/src/table.rs similarity index 100% rename from provers/stark/src/table.rs rename to crates/provers/stark/src/table.rs diff --git a/provers/stark/src/tests/integration_tests.rs b/crates/provers/stark/src/tests/integration_tests.rs similarity index 100% rename from provers/stark/src/tests/integration_tests.rs rename to crates/provers/stark/src/tests/integration_tests.rs diff --git a/provers/stark/src/tests/mod.rs b/crates/provers/stark/src/tests/mod.rs similarity index 100% rename from provers/stark/src/tests/mod.rs rename to crates/provers/stark/src/tests/mod.rs diff --git a/provers/stark/src/trace.rs b/crates/provers/stark/src/trace.rs similarity index 100% rename from provers/stark/src/trace.rs rename to crates/provers/stark/src/trace.rs diff --git a/provers/stark/src/traits.rs b/crates/provers/stark/src/traits.rs similarity index 100% rename from provers/stark/src/traits.rs rename to crates/provers/stark/src/traits.rs diff --git a/provers/stark/src/transcript.rs b/crates/provers/stark/src/transcript.rs similarity index 100% rename from provers/stark/src/transcript.rs rename to crates/provers/stark/src/transcript.rs diff --git a/provers/stark/src/utils.rs b/crates/provers/stark/src/utils.rs similarity index 100% rename from provers/stark/src/utils.rs rename to crates/provers/stark/src/utils.rs diff --git a/provers/stark/src/verifier.rs b/crates/provers/stark/src/verifier.rs similarity index 100% rename from provers/stark/src/verifier.rs rename to crates/provers/stark/src/verifier.rs diff --git a/provers/sumcheck/Cargo.toml b/crates/provers/sumcheck/Cargo.toml similarity index 100% rename from provers/sumcheck/Cargo.toml rename to crates/provers/sumcheck/Cargo.toml diff --git a/provers/sumcheck/README.md b/crates/provers/sumcheck/README.md similarity index 100% rename from provers/sumcheck/README.md rename to crates/provers/sumcheck/README.md diff --git a/provers/sumcheck/src/lib.rs b/crates/provers/sumcheck/src/lib.rs similarity index 100% rename from provers/sumcheck/src/lib.rs rename to crates/provers/sumcheck/src/lib.rs diff --git a/provers/sumcheck/src/prover.rs b/crates/provers/sumcheck/src/prover.rs similarity index 100% rename from provers/sumcheck/src/prover.rs rename to crates/provers/sumcheck/src/prover.rs diff --git a/provers/sumcheck/src/verifier.rs b/crates/provers/sumcheck/src/verifier.rs similarity index 100% rename from provers/sumcheck/src/verifier.rs rename to crates/provers/sumcheck/src/verifier.rs diff --git a/provers/winterfell_adapter/Cargo.toml b/crates/provers/winterfell_adapter/Cargo.toml similarity index 81% rename from provers/winterfell_adapter/Cargo.toml rename to crates/provers/winterfell_adapter/Cargo.toml index 3daecf6d9..a8346b430 100644 --- a/provers/winterfell_adapter/Cargo.toml +++ b/crates/provers/winterfell_adapter/Cargo.toml @@ -5,26 +5,28 @@ edition.workspace = true license.workspace = true [dependencies] -lambdaworks-math = { git = "https://github.com/lambdaclass/lambdaworks", branch = "miden-version", features = ["winter_compatibility"] } -stark-platinum-prover = { git = "https://github.com/lambdaclass/lambdaworks" , branch = "miden-version", features = ["winter_compatibility"] } +lambdaworks-math = { git = "https://github.com/lambdaclass/lambdaworks", branch = "miden-version", features = [ + "winter_compatibility", +] } +stark-platinum-prover = { git = "https://github.com/lambdaclass/lambdaworks", branch = "miden-version", features = [ + "winter_compatibility", +] } + rand = "0.8.5" winter-air = { package = "winter-air", version = "0.6.4", default-features = false } winter-prover = { package = "winter-prover", version = "0.6.4", default-features = false } winter-math = { package = "winter-math", version = "0.6.4", default-features = false } winter-utils = { package = "winter-utils", version = "0.6.4", default-features = false } miden-air = { package = "miden-air", version = "0.7", default-features = false } -miden-core = { package = "miden-core" , version = "0.7", default-features = false } +miden-core = { package = "miden-core", version = "0.7", default-features = false } miden-assembly = { package = "miden-assembly", version = "0.7", default-features = false } miden-processor = { package = "miden-processor", version = "0.7", default-features = false } sha3 = "0.10" - [dev-dependencies] criterion = { version = "0.4", default-features = false } miden-prover = { package = "miden-prover", version = "0.7", default-features = false } - [[bench]] name = "proving" harness = false - diff --git a/provers/winterfell_adapter/README.md b/crates/provers/winterfell_adapter/README.md similarity index 100% rename from provers/winterfell_adapter/README.md rename to crates/provers/winterfell_adapter/README.md diff --git a/provers/winterfell_adapter/benches/proving.rs b/crates/provers/winterfell_adapter/benches/proving.rs similarity index 100% rename from provers/winterfell_adapter/benches/proving.rs rename to crates/provers/winterfell_adapter/benches/proving.rs diff --git a/provers/winterfell_adapter/src/adapter/air.rs b/crates/provers/winterfell_adapter/src/adapter/air.rs similarity index 100% rename from provers/winterfell_adapter/src/adapter/air.rs rename to crates/provers/winterfell_adapter/src/adapter/air.rs diff --git a/provers/winterfell_adapter/src/adapter/mod.rs b/crates/provers/winterfell_adapter/src/adapter/mod.rs similarity index 100% rename from provers/winterfell_adapter/src/adapter/mod.rs rename to crates/provers/winterfell_adapter/src/adapter/mod.rs diff --git a/provers/winterfell_adapter/src/adapter/public_inputs.rs b/crates/provers/winterfell_adapter/src/adapter/public_inputs.rs similarity index 100% rename from provers/winterfell_adapter/src/adapter/public_inputs.rs rename to crates/provers/winterfell_adapter/src/adapter/public_inputs.rs diff --git a/provers/winterfell_adapter/src/examples/cubic.rs b/crates/provers/winterfell_adapter/src/examples/cubic.rs similarity index 100% rename from provers/winterfell_adapter/src/examples/cubic.rs rename to crates/provers/winterfell_adapter/src/examples/cubic.rs diff --git a/provers/winterfell_adapter/src/examples/fibonacci_2_terms.rs b/crates/provers/winterfell_adapter/src/examples/fibonacci_2_terms.rs similarity index 100% rename from provers/winterfell_adapter/src/examples/fibonacci_2_terms.rs rename to crates/provers/winterfell_adapter/src/examples/fibonacci_2_terms.rs diff --git a/provers/winterfell_adapter/src/examples/fibonacci_rap.rs b/crates/provers/winterfell_adapter/src/examples/fibonacci_rap.rs similarity index 100% rename from provers/winterfell_adapter/src/examples/fibonacci_rap.rs rename to crates/provers/winterfell_adapter/src/examples/fibonacci_rap.rs diff --git a/provers/winterfell_adapter/src/examples/miden_vm.rs b/crates/provers/winterfell_adapter/src/examples/miden_vm.rs similarity index 100% rename from provers/winterfell_adapter/src/examples/miden_vm.rs rename to crates/provers/winterfell_adapter/src/examples/miden_vm.rs diff --git a/provers/winterfell_adapter/src/examples/mod.rs b/crates/provers/winterfell_adapter/src/examples/mod.rs similarity index 100% rename from provers/winterfell_adapter/src/examples/mod.rs rename to crates/provers/winterfell_adapter/src/examples/mod.rs diff --git a/provers/winterfell_adapter/src/field_element/element.rs b/crates/provers/winterfell_adapter/src/field_element/element.rs similarity index 100% rename from provers/winterfell_adapter/src/field_element/element.rs rename to crates/provers/winterfell_adapter/src/field_element/element.rs diff --git a/provers/winterfell_adapter/src/field_element/mod.rs b/crates/provers/winterfell_adapter/src/field_element/mod.rs similarity index 100% rename from provers/winterfell_adapter/src/field_element/mod.rs rename to crates/provers/winterfell_adapter/src/field_element/mod.rs diff --git a/provers/winterfell_adapter/src/field_element/positive_integer.rs b/crates/provers/winterfell_adapter/src/field_element/positive_integer.rs similarity index 100% rename from provers/winterfell_adapter/src/field_element/positive_integer.rs rename to crates/provers/winterfell_adapter/src/field_element/positive_integer.rs diff --git a/provers/winterfell_adapter/src/lib.rs b/crates/provers/winterfell_adapter/src/lib.rs similarity index 100% rename from provers/winterfell_adapter/src/lib.rs rename to crates/provers/winterfell_adapter/src/lib.rs diff --git a/provers/winterfell_adapter/src/utils.rs b/crates/provers/winterfell_adapter/src/utils.rs similarity index 100% rename from provers/winterfell_adapter/src/utils.rs rename to crates/provers/winterfell_adapter/src/utils.rs diff --git a/ensure-no_std/Cargo.toml b/ensure-no_std/Cargo.toml index 492686ab4..b45167a0e 100644 --- a/ensure-no_std/Cargo.toml +++ b/ensure-no_std/Cargo.toml @@ -5,8 +5,14 @@ edition = "2021" [dependencies] -lambdaworks-math = { path = "../math", default-features = false, features = ["alloc", "lambdaworks-serde-binary", "lambdaworks-serde-string"] } -lambdaworks-crypto = { path = "../crypto", default-features = false, features = ["serde"] } +lambdaworks-crypto = { path = "../crates/crypto", default-features = false, features = [ + "serde", +] } +lambdaworks-math = { path = "../crates/math", default-features = false, features = [ + "alloc", + "lambdaworks-serde-binary", + "lambdaworks-serde-string", +] } wee_alloc = "0.4.5" diff --git a/math/src/gpu/cuda/shaders/field/stark256.ptx b/math/src/gpu/cuda/shaders/field/stark256.ptx deleted file mode 100644 index 30227ef35..000000000 --- a/math/src/gpu/cuda/shaders/field/stark256.ptx +++ /dev/null @@ -1,4044 +0,0 @@ -// -// Generated by NVIDIA NVVM Compiler -// -// Compiler Build ID: CL-32965470 -// Cuda compilation tools, release 12.2, V12.2.91 -// Based on NVVM 7.0.1 -// - -.version 8.2 -.target sm_52 -.address_size 64 - - // .globl radix2_dit_butterfly - -.visible .entry radix2_dit_butterfly( - .param .u64 radix2_dit_butterfly_param_0, - .param .u64 radix2_dit_butterfly_param_1, - .param .u32 radix2_dit_butterfly_param_2, - .param .u32 radix2_dit_butterfly_param_3 -) -{ - .reg .pred %p<312>; - .reg .b32 %r<26>; - .reg .b64 %rd<705>; - - - ld.param.u64 %rd109, [radix2_dit_butterfly_param_0]; - ld.param.u64 %rd110, [radix2_dit_butterfly_param_1]; - ld.param.u32 %r2, [radix2_dit_butterfly_param_2]; - ld.param.u32 %r3, [radix2_dit_butterfly_param_3]; - mov.u32 %r4, %ctaid.x; - mov.u32 %r5, %ntid.x; - mov.u32 %r6, %tid.x; - mad.lo.s32 %r1, %r5, %r4, %r6; - setp.ge.s32 %p13, %r1, %r3; - @%p13 bra $L__BB0_16; - - cvta.to.global.u64 %rd112, %rd109; - shr.s32 %r7, %r3, %r2; - div.s32 %r8, %r1, %r7; - add.s32 %r9, %r7, -1; - and.b32 %r10, %r9, %r1; - shl.b32 %r11, %r1, 1; - sub.s32 %r12, %r11, %r10; - cvta.to.global.u64 %rd113, %rd110; - mul.wide.s32 %rd114, %r8, 32; - add.s64 %rd115, %rd113, %rd114; - mul.wide.s32 %rd116, %r12, 32; - add.s64 %rd1, %rd112, %rd116; - ld.global.u64 %rd2, [%rd1]; - mov.u64 %rd117, 0; - ld.global.u64 %rd3, [%rd1+8]; - ld.global.u64 %rd4, [%rd1+16]; - ld.global.u64 %rd5, [%rd1+24]; - add.s32 %r13, %r12, %r7; - mul.wide.s32 %rd118, %r13, 32; - add.s64 %rd6, %rd112, %rd118; - ld.global.u64 %rd119, [%rd6+8]; - mul.hi.u64 %rd7, %rd117, %rd119; - ld.global.u64 %rd120, [%rd115+8]; - mul.hi.u64 %rd121, %rd120, %rd119; - mul.lo.s64 %rd122, %rd119, %rd120; - ld.global.u64 %rd123, [%rd115]; - mul.hi.u64 %rd124, %rd123, %rd119; - mul.lo.s64 %rd125, %rd119, %rd123; - ld.global.u64 %rd126, [%rd6]; - mul.hi.u64 %rd127, %rd120, %rd126; - mul.lo.s64 %rd128, %rd126, %rd120; - add.s64 %rd129, %rd121, %rd128; - setp.lt.u64 %p14, %rd129, %rd121; - selp.u64 %rd130, 1, 0, %p14; - mul.hi.u64 %rd8, %rd123, %rd126; - mul.lo.s64 %rd131, %rd126, %rd123; - mul.hi.u64 %rd9, %rd120, %rd117; - add.s64 %rd132, %rd129, %rd125; - setp.lt.u64 %p15, %rd132, %rd129; - selp.u64 %rd133, 1, 0, %p15; - add.s64 %rd134, %rd124, %rd131; - setp.lt.u64 %p16, %rd134, %rd124; - selp.u64 %rd10, 1, 0, %p16; - add.s64 %rd135, %rd127, %rd134; - setp.lt.u64 %p17, %rd135, %rd127; - selp.u64 %rd11, 1, 0, %p17; - add.s64 %rd136, %rd135, %rd130; - add.s64 %rd137, %rd136, %rd133; - setp.lt.u64 %p18, %rd137, %rd135; - selp.u64 %rd12, 1, 0, %p18; - ld.global.u64 %rd138, [%rd6+24]; - mul.hi.u64 %rd139, %rd117, %rd138; - mul.hi.u64 %rd140, %rd120, %rd138; - mul.lo.s64 %rd141, %rd138, %rd120; - mul.hi.u64 %rd142, %rd123, %rd138; - mul.lo.s64 %rd143, %rd138, %rd123; - ld.global.u64 %rd144, [%rd6+16]; - mul.hi.u64 %rd145, %rd120, %rd144; - mul.lo.s64 %rd146, %rd144, %rd120; - add.s64 %rd147, %rd140, %rd146; - setp.lt.u64 %p19, %rd147, %rd140; - selp.u64 %rd148, 1, 0, %p19; - mul.hi.u64 %rd149, %rd123, %rd144; - mul.lo.s64 %rd150, %rd144, %rd123; - add.s64 %rd151, %rd147, %rd143; - setp.lt.u64 %p20, %rd151, %rd147; - selp.u64 %rd152, 1, 0, %p20; - add.s64 %rd153, %rd142, %rd150; - setp.lt.u64 %p21, %rd153, %rd142; - selp.u64 %rd154, 1, 0, %p21; - add.s64 %rd155, %rd145, %rd153; - setp.lt.u64 %p22, %rd155, %rd145; - selp.u64 %rd156, 1, 0, %p22; - add.s64 %rd157, %rd155, %rd148; - add.s64 %rd158, %rd157, %rd152; - setp.lt.u64 %p23, %rd158, %rd155; - selp.u64 %rd159, 1, 0, %p23; - ld.global.u64 %rd160, [%rd115+24]; - mul.hi.u64 %rd161, %rd117, %rd160; - mul.hi.u64 %rd162, %rd119, %rd160; - mul.lo.s64 %rd163, %rd119, %rd160; - mul.hi.u64 %rd164, %rd126, %rd160; - mul.lo.s64 %rd165, %rd126, %rd160; - ld.global.u64 %rd166, [%rd115+16]; - mul.hi.u64 %rd167, %rd119, %rd166; - mul.lo.s64 %rd168, %rd119, %rd166; - add.s64 %rd169, %rd162, %rd168; - setp.lt.u64 %p24, %rd169, %rd162; - selp.u64 %rd170, 1, 0, %p24; - mul.hi.u64 %rd171, %rd126, %rd166; - mul.lo.s64 %rd172, %rd126, %rd166; - mul.hi.u64 %rd173, %rd119, %rd117; - add.s64 %rd174, %rd169, %rd165; - setp.lt.u64 %p25, %rd174, %rd169; - selp.u64 %rd175, 1, 0, %p25; - add.s64 %rd176, %rd164, %rd172; - setp.lt.u64 %p26, %rd176, %rd164; - selp.u64 %rd177, 1, 0, %p26; - add.s64 %rd178, %rd167, %rd176; - setp.lt.u64 %p27, %rd178, %rd167; - selp.u64 %rd179, 1, 0, %p27; - add.s64 %rd180, %rd178, %rd170; - add.s64 %rd181, %rd180, %rd175; - setp.lt.u64 %p28, %rd181, %rd178; - selp.u64 %rd182, 1, 0, %p28; - mul.hi.u64 %rd183, %rd160, %rd138; - mul.lo.s64 %rd184, %rd138, %rd160; - mul.hi.u64 %rd185, %rd166, %rd138; - mul.lo.s64 %rd186, %rd138, %rd166; - mul.hi.u64 %rd187, %rd160, %rd144; - mul.lo.s64 %rd188, %rd144, %rd160; - add.s64 %rd189, %rd183, %rd188; - setp.lt.u64 %p29, %rd189, %rd183; - selp.u64 %rd190, 1, 0, %p29; - mul.hi.u64 %rd191, %rd166, %rd144; - mul.lo.s64 %rd192, %rd144, %rd166; - mul.hi.u64 %rd193, %rd160, %rd117; - add.s64 %rd194, %rd189, %rd186; - setp.lt.u64 %p30, %rd194, %rd189; - selp.u64 %rd195, 1, 0, %p30; - add.s64 %rd196, %rd185, %rd192; - setp.lt.u64 %p31, %rd196, %rd185; - selp.u64 %rd197, 1, 0, %p31; - add.s64 %rd198, %rd187, %rd196; - setp.lt.u64 %p32, %rd198, %rd187; - selp.u64 %rd199, 1, 0, %p32; - add.s64 %rd200, %rd198, %rd190; - add.s64 %rd201, %rd200, %rd195; - setp.lt.u64 %p33, %rd201, %rd198; - selp.u64 %rd202, 1, 0, %p33; - add.s64 %rd203, %rd141, %rd163; - setp.lt.u64 %p34, %rd203, %rd141; - selp.u64 %rd204, 1, 0, %p34; - add.s64 %rd205, %rd151, %rd204; - add.s64 %rd206, %rd205, %rd174; - setp.eq.s64 %p35, %rd206, %rd151; - and.pred %p36, %p34, %p35; - setp.lt.u64 %p37, %rd206, %rd151; - or.pred %p38, %p37, %p36; - selp.u64 %rd207, 1, 0, %p38; - add.s64 %rd208, %rd201, %rd203; - setp.lt.u64 %p39, %rd208, %rd201; - selp.u64 %rd209, 1, 0, %p39; - add.s64 %rd210, %rd206, %rd139; - add.s64 %rd211, %rd210, %rd191; - add.s64 %rd212, %rd211, %rd193; - add.s64 %rd213, %rd212, %rd197; - add.s64 %rd214, %rd213, %rd199; - add.s64 %rd215, %rd214, %rd202; - add.s64 %rd13, %rd215, %rd209; - setp.eq.s64 %p40, %rd13, %rd206; - and.pred %p41, %p39, %p40; - setp.lt.u64 %p42, %rd13, %rd206; - or.pred %p43, %p42, %p41; - selp.u64 %rd216, 1, 0, %p43; - add.s64 %rd217, %rd158, %rd122; - setp.lt.u64 %p44, %rd217, %rd158; - selp.u64 %rd218, 1, 0, %p44; - add.s64 %rd219, %rd9, %rd132; - add.s64 %rd220, %rd219, %rd139; - add.s64 %rd221, %rd220, %rd149; - add.s64 %rd222, %rd221, %rd154; - add.s64 %rd223, %rd222, %rd156; - add.s64 %rd224, %rd223, %rd159; - add.s64 %rd225, %rd224, %rd218; - setp.eq.s64 %p45, %rd225, %rd132; - and.pred %p46, %p44, %p45; - setp.lt.u64 %p47, %rd225, %rd132; - or.pred %p48, %p47, %p46; - selp.u64 %rd226, 1, 0, %p48; - add.s64 %rd227, %rd137, %rd226; - setp.lt.u64 %p49, %rd227, %rd137; - selp.u64 %rd14, 1, 0, %p49; - add.s64 %rd17, %rd181, %rd217; - setp.lt.u64 %p50, %rd17, %rd181; - selp.u64 %rd228, 1, 0, %p50; - add.s64 %rd229, %rd171, %rd161; - add.s64 %rd230, %rd229, %rd173; - add.s64 %rd231, %rd230, %rd177; - add.s64 %rd232, %rd225, %rd179; - add.s64 %rd233, %rd232, %rd231; - add.s64 %rd234, %rd233, %rd182; - add.s64 %rd15, %rd234, %rd228; - setp.eq.s64 %p51, %rd15, %rd225; - and.pred %p52, %p50, %p51; - setp.lt.u64 %p53, %rd15, %rd225; - or.pred %p54, %p53, %p52; - selp.u64 %rd235, 1, 0, %p54; - add.s64 %rd16, %rd227, %rd235; - setp.lt.u64 %p1, %rd16, %rd227; - add.s64 %rd236, %rd17, %rd207; - add.s64 %rd18, %rd236, %rd216; - mul.lo.s64 %rd237, %rd184, 576460752303423504; - mov.u64 %rd238, -1; - mul.hi.u64 %rd239, %rd208, %rd238; - mul.hi.u64 %rd240, %rd184, %rd238; - neg.s64 %rd241, %rd184; - mul.hi.u64 %rd242, %rd194, %rd238; - sub.s64 %rd243, %rd240, %rd184; - setp.lt.u64 %p55, %rd243, %rd241; - selp.u64 %rd244, 1, 0, %p55; - neg.s64 %rd245, %rd194; - sub.s64 %rd246, %rd242, %rd194; - sub.s64 %rd247, %rd243, %rd194; - setp.lt.u64 %p56, %rd247, %rd243; - selp.u64 %rd248, 1, 0, %p56; - add.s64 %rd249, %rd248, %rd244; - setp.lt.u64 %p57, %rd246, %rd245; - selp.u64 %rd19, 1, 0, %p57; - add.s64 %rd250, %rd246, %rd243; - setp.lt.u64 %p58, %rd250, %rd246; - selp.u64 %rd20, 1, 0, %p58; - sub.s64 %rd251, %rd250, %rd208; - setp.lt.u64 %p59, %rd251, %rd250; - selp.u64 %rd21, 1, 0, %p59; - add.s64 %rd25, %rd249, %rd251; - setp.lt.u64 %p60, %rd25, %rd249; - selp.u64 %rd22, 1, 0, %p60; - add.s64 %rd252, %rd239, %rd237; - add.s64 %rd253, %rd252, %rd240; - sub.s64 %rd254, %rd253, %rd208; - add.s64 %rd255, %rd254, %rd246; - add.s64 %rd23, %rd255, %rd244; - sub.s64 %rd256, %rd19, %rd13; - add.s64 %rd257, %rd256, %rd23; - add.s64 %rd258, %rd257, %rd20; - add.s64 %rd259, %rd258, %rd21; - add.s64 %rd24, %rd259, %rd22; - mul.hi.u64 %rd26, %rd25, %rd117; - mov.u64 %rd260, 576460752303423505; - mul.hi.u64 %rd27, %rd25, %rd260; - mul.lo.s64 %rd261, %rd25, 576460752303423505; - add.s64 %rd41, %rd261, %rd26; - setp.lt.u64 %p61, %rd41, %rd261; - selp.u64 %rd28, 1, 0, %p61; - mov.u64 %rd111, 1; - mul.hi.u64 %rd29, %rd25, %rd111; - add.s64 %rd30, %rd24, %rd29; - mul.hi.u64 %rd262, %rd117, %rd241; - mul.hi.u64 %rd263, %rd260, %rd241; - mul.lo.s64 %rd264, %rd184, -576460752303423505; - mul.hi.u64 %rd265, %rd117, %rd247; - mul.hi.u64 %rd266, %rd260, %rd247; - mul.lo.s64 %rd267, %rd247, 576460752303423505; - add.s64 %rd35, %rd262, %rd264; - setp.lt.u64 %p62, %rd35, %rd262; - selp.u64 %rd268, 1, 0, %p62; - add.s64 %rd269, %rd263, %rd267; - setp.lt.u64 %p63, %rd269, %rd263; - selp.u64 %rd270, 1, 0, %p63; - add.s64 %rd271, %rd265, %rd269; - setp.lt.u64 %p64, %rd271, %rd265; - selp.u64 %rd272, 1, 0, %p64; - add.s64 %rd42, %rd271, %rd268; - setp.lt.u64 %p65, %rd42, %rd271; - selp.u64 %rd273, 1, 0, %p65; - mul.hi.u64 %rd274, %rd241, %rd111; - mul.hi.u64 %rd275, %rd247, %rd111; - mul.hi.u64 %rd31, %rd241, %rd117; - mul.hi.u64 %rd32, %rd247, %rd117; - add.s64 %rd276, %rd274, %rd247; - setp.lt.u64 %p66, %rd276, %rd274; - selp.u64 %rd277, 1, 0, %p66; - add.s64 %rd278, %rd31, %rd275; - setp.lt.u64 %p67, %rd278, %rd31; - selp.u64 %rd33, 1, 0, %p67; - add.s64 %rd279, %rd278, %rd277; - setp.lt.u64 %p68, %rd279, %rd278; - selp.u64 %rd34, 1, 0, %p68; - add.s64 %rd36, %rd35, %rd30; - setp.lt.u64 %p3, %rd36, %rd35; - add.s64 %rd45, %rd279, %rd25; - setp.lt.u64 %p4, %rd45, %rd279; - selp.u64 %rd37, 1, 0, %p4; - mul.hi.u64 %rd39, %rd117, %rd111; - add.s64 %rd280, %rd36, %rd39; - add.s64 %rd281, %rd280, %rd31; - add.s64 %rd282, %rd281, %rd32; - add.s64 %rd283, %rd282, %rd33; - add.s64 %rd284, %rd283, %rd34; - add.s64 %rd40, %rd284, %rd37; - mul.hi.u64 %rd43, %rd117, %rd117; - add.s64 %rd285, %rd262, %rd43; - add.s64 %rd286, %rd285, %rd266; - add.s64 %rd287, %rd286, %rd270; - add.s64 %rd288, %rd287, %rd272; - add.s64 %rd44, %rd288, %rd273; - add.s64 %rd289, %rd45, %rd208; - setp.lt.u64 %p69, %rd289, %rd45; - selp.u64 %rd290, 1, 0, %p69; - setp.ne.s64 %p70, %rd184, 0; - selp.u64 %rd291, 1, 0, %p70; - add.s64 %rd292, %rd243, %rd291; - add.s64 %rd293, %rd292, %rd274; - setp.eq.s64 %p71, %rd292, %rd247; - and.pred %p72, %p70, %p71; - setp.lt.u64 %p73, %rd293, %rd276; - or.pred %p74, %p73, %p72; - selp.u64 %rd294, 1, 0, %p74; - add.s64 %rd47, %rd289, %rd294; - setp.lt.u64 %p75, %rd47, %rd289; - selp.u64 %rd295, 1, 0, %p75; - add.s64 %rd296, %rd13, %rd290; - add.s64 %rd46, %rd296, %rd295; - setp.ne.s64 %p76, %rd46, 0; - setp.ne.s64 %p77, %rd47, %rd45; - or.pred %p78, %p77, %p76; - not.pred %p79, %p74; - or.pred %p5, %p78, %p79; - not.pred %p80, %p5; - mov.u64 %rd699, %rd111; - @%p80 bra $L__BB0_3; - - setp.eq.s64 %p81, %rd46, 0; - setp.lt.u64 %p82, %rd47, %rd45; - and.pred %p83, %p82, %p81; - add.s64 %rd297, %rd46, %rd40; - setp.lt.u64 %p84, %rd297, %rd46; - or.pred %p85, %p84, %p83; - selp.u64 %rd699, 1, 0, %p85; - -$L__BB0_3: - setp.lt.u64 %p311, %rd45, %rd279; - mov.u64 %rd700, 1; - mov.u64 %rd682, 0; - mul.hi.u64 %rd681, %rd682, %rd700; - mov.u64 %rd676, 0; - add.s64 %rd675, %rd24, %rd29; - setp.lt.u64 %p310, %rd675, %rd24; - mul.hi.u64 %rd674, %rd676, %rd676; - add.s64 %rd664, %rd261, %rd26; - setp.lt.u64 %p86, %rd18, %rd17; - selp.u64 %rd299, 1, 0, %p86; - add.s64 %rd50, %rd15, %rd299; - setp.lt.u64 %p87, %rd50, %rd15; - selp.u64 %rd300, 1, 0, %p87; - add.s64 %rd51, %rd16, %rd300; - setp.lt.u64 %p88, %rd51, %rd16; - mul.hi.u64 %rd302, %rd24, %rd676; - mul.lo.s64 %rd303, %rd24, 576460752303423505; - add.s64 %rd305, %rd303, %rd302; - setp.lt.u64 %p89, %rd305, %rd303; - add.s64 %rd306, %rd305, %rd27; - setp.lt.u64 %p90, %rd306, %rd305; - add.s64 %rd307, %rd306, %rd28; - setp.lt.u64 %p91, %rd307, %rd306; - mul.hi.u64 %rd308, %rd24, %rd700; - add.s64 %rd309, %rd308, %rd26; - setp.lt.u64 %p92, %rd309, %rd308; - selp.u64 %rd310, 1, 0, %p310; - add.s64 %rd311, %rd309, %rd310; - setp.lt.u64 %p93, %rd311, %rd309; - add.s64 %rd312, %rd302, %rd26; - add.s64 %rd313, %rd312, %rd681; - add.s64 %rd314, %rd313, %rd664; - selp.u64 %rd315, 1, 0, %p92; - add.s64 %rd316, %rd314, %rd315; - selp.u64 %rd317, 1, 0, %p93; - add.s64 %rd318, %rd316, %rd317; - setp.lt.u64 %p94, %rd318, %rd664; - selp.u64 %rd319, 1, 0, %p94; - add.s64 %rd320, %rd307, %rd319; - setp.lt.u64 %p95, %rd320, %rd307; - add.s64 %rd321, %rd42, %rd311; - setp.lt.u64 %p96, %rd321, %rd42; - selp.u64 %rd322, 1, 0, %p96; - add.s64 %rd323, %rd44, %rd322; - add.s64 %rd324, %rd323, %rd318; - setp.lt.u64 %p97, %rd324, %rd323; - setp.eq.s64 %p98, %rd323, 0; - and.pred %p99, %p96, %p98; - or.pred %p100, %p97, %p99; - selp.u64 %rd325, 1, 0, %p100; - add.s64 %rd326, %rd320, %rd325; - setp.lt.u64 %p101, %rd326, %rd320; - selp.u64 %rd327, 1, 0, %p3; - add.s64 %rd328, %rd321, %rd327; - setp.lt.u64 %p102, %rd40, %rd36; - setp.eq.s64 %p103, %rd40, %rd36; - and.pred %p104, %p311, %p103; - or.pred %p105, %p102, %p104; - selp.u64 %rd329, 1, 0, %p105; - add.s64 %rd330, %rd328, %rd329; - setp.lt.u64 %p106, %rd330, %rd321; - selp.u64 %rd331, 1, 0, %p106; - add.s64 %rd332, %rd324, %rd331; - setp.lt.u64 %p107, %rd332, %rd324; - selp.u64 %rd333, 1, 0, %p107; - add.s64 %rd334, %rd326, %rd333; - setp.lt.u64 %p108, %rd334, %rd326; - add.s64 %rd335, %rd699, %rd18; - setp.lt.u64 %p109, %rd335, %rd699; - selp.u64 %rd336, 1, 0, %p109; - add.s64 %rd337, %rd50, %rd336; - setp.lt.u64 %p110, %rd337, %rd50; - selp.u64 %rd338, 1, 0, %p110; - add.s64 %rd54, %rd51, %rd338; - setp.lt.u64 %p111, %rd54, %rd51; - selp.u64 %rd339, 1, 0, %p111; - add.s64 %rd340, %rd8, %rd7; - add.s64 %rd341, %rd340, %rd9; - add.s64 %rd342, %rd341, %rd10; - add.s64 %rd343, %rd342, %rd11; - add.s64 %rd344, %rd343, %rd12; - add.s64 %rd345, %rd344, %rd14; - selp.u64 %rd346, 1, 0, %p1; - add.s64 %rd347, %rd345, %rd346; - selp.u64 %rd348, 1, 0, %p88; - add.s64 %rd52, %rd347, %rd348; - add.s64 %rd53, %rd52, %rd339; - add.s64 %rd349, %rd54, %rd334; - setp.lt.u64 %p112, %rd349, %rd54; - selp.u64 %rd350, 1, 0, %p112; - add.s64 %rd351, %rd337, %rd332; - add.s64 %rd55, %rd335, %rd330; - setp.lt.u64 %p113, %rd55, %rd335; - selp.u64 %rd352, 1, 0, %p113; - add.s64 %rd56, %rd351, %rd352; - setp.eq.s64 %p114, %rd56, %rd337; - and.pred %p115, %p113, %p114; - setp.lt.u64 %p116, %rd56, %rd337; - or.pred %p117, %p116, %p115; - selp.u64 %rd353, 1, 0, %p117; - add.s64 %rd59, %rd349, %rd353; - setp.lt.u64 %p118, %rd59, %rd349; - selp.u64 %rd354, 1, 0, %p118; - add.s64 %rd57, %rd26, %rd674; - mul.hi.u64 %rd355, %rd24, %rd260; - add.s64 %rd356, %rd355, %rd57; - selp.u64 %rd357, 1, 0, %p89; - add.s64 %rd358, %rd356, %rd357; - selp.u64 %rd359, 1, 0, %p90; - add.s64 %rd360, %rd358, %rd359; - selp.u64 %rd361, 1, 0, %p91; - add.s64 %rd362, %rd360, %rd361; - selp.u64 %rd363, 1, 0, %p95; - add.s64 %rd364, %rd362, %rd363; - selp.u64 %rd365, 1, 0, %p101; - add.s64 %rd366, %rd364, %rd365; - selp.u64 %rd367, 1, 0, %p108; - add.s64 %rd368, %rd366, %rd367; - add.s64 %rd369, %rd368, %rd53; - add.s64 %rd370, %rd369, %rd350; - add.s64 %rd58, %rd370, %rd354; - setp.ne.s64 %p119, %rd58, %rd53; - setp.ne.s64 %p120, %rd59, %rd54; - or.pred %p121, %p120, %p119; - not.pred %p122, %p117; - or.pred %p123, %p121, %p122; - not.pred %p124, %p123; - @%p124 bra $L__BB0_5; - - setp.eq.s64 %p125, %rd58, %rd53; - setp.lt.u64 %p126, %rd59, %rd54; - and.pred %p127, %p126, %p125; - setp.lt.u64 %p128, %rd58, %rd53; - or.pred %p129, %p128, %p127; - selp.u64 %rd700, 1, 0, %p129; - -$L__BB0_5: - mov.u64 %rd684, 0; - mul.hi.u64 %rd683, %rd684, %rd111; - mov.u64 %rd678, 0; - mul.hi.u64 %rd677, %rd678, %rd678; - or.b64 %rd372, %rd56, %rd55; - or.b64 %rd373, %rd372, %rd59; - setp.ne.s64 %p130, %rd373, 0; - mov.u64 %rd374, 0; - setp.ne.s64 %p131, %rd58, 576460752303423505; - or.pred %p132, %p130, %p131; - setp.gt.u64 %p133, %rd58, 576460752303423504; - and.pred %p134, %p133, %p132; - selp.u64 %rd375, 1, 0, %p134; - mov.u64 %rd376, -1; - mul.hi.u64 %rd377, %rd700, %rd376; - sub.s64 %rd378, %rd377, %rd700; - neg.s64 %rd379, %rd700; - setp.lt.u64 %p135, %rd378, %rd379; - selp.u64 %rd380, 1, 0, %p135; - mul.hi.u64 %rd62, %rd374, %rd376; - add.s64 %rd381, %rd378, %rd62; - setp.lt.u64 %p136, %rd381, %rd378; - selp.u64 %rd382, 1, 0, %p136; - add.s64 %rd383, %rd381, %rd380; - setp.lt.u64 %p137, %rd383, %rd381; - selp.u64 %rd384, 1, 0, %p137; - add.s64 %rd385, %rd383, %rd59; - setp.lt.u64 %p138, %rd385, %rd383; - selp.u64 %rd386, 1, 0, %p138; - add.s64 %rd387, %rd378, %rd56; - sub.s64 %rd388, %rd55, %rd700; - setp.lt.u64 %p139, %rd388, %rd55; - selp.u64 %rd389, 1, 0, %p139; - add.s64 %rd390, %rd387, %rd389; - setp.eq.s64 %p140, %rd390, %rd56; - and.pred %p141, %p139, %p140; - setp.lt.u64 %p142, %rd390, %rd56; - or.pred %p143, %p142, %p141; - selp.u64 %rd391, 1, 0, %p143; - add.s64 %rd392, %rd385, %rd391; - setp.lt.u64 %p144, %rd392, %rd385; - selp.u64 %rd393, 1, 0, %p144; - mov.u64 %rd702, 1; - mul.hi.u64 %rd394, %rd375, %rd702; - mul.hi.u64 %rd395, %rd375, %rd374; - add.s64 %rd396, %rd395, %rd683; - setp.lt.u64 %p145, %rd396, %rd395; - selp.b64 %rd397, -576460752303423505, 0, %p134; - selp.b64 %rd398, -1, 0, %p145; - setp.lt.u64 %p146, %rd392, %rd396; - selp.b64 %rd399, -1, 0, %p146; - sub.s64 %rd400, %rd392, %rd396; - sub.s64 %rd401, %rd390, %rd394; - setp.lt.u64 %p147, %rd388, %rd375; - selp.b64 %rd402, -1, 0, %p147; - add.s64 %rd403, %rd401, %rd402; - setp.eq.s64 %p148, %rd403, %rd390; - and.pred %p149, %p147, %p148; - setp.gt.u64 %p150, %rd403, %rd390; - or.pred %p151, %p150, %p149; - selp.u64 %rd404, 1, 0, %p151; - setp.lt.u64 %p152, %rd400, %rd404; - selp.b64 %rd405, -1, 0, %p152; - sub.s64 %rd406, %rd400, %rd404; - sub.s64 %rd407, %rd388, %rd375; - add.s64 %rd408, %rd406, %rd3; - setp.lt.u64 %p153, %rd408, %rd406; - selp.u64 %rd409, 1, 0, %p153; - add.s64 %rd65, %rd407, %rd5; - setp.lt.u64 %p154, %rd65, %rd407; - selp.u64 %rd410, 1, 0, %p154; - add.s64 %rd411, %rd4, %rd410; - add.s64 %rd63, %rd411, %rd403; - setp.eq.s64 %p155, %rd63, %rd4; - and.pred %p156, %p154, %p155; - setp.lt.u64 %p157, %rd63, %rd4; - or.pred %p158, %p157, %p156; - selp.u64 %rd412, 1, 0, %p158; - add.s64 %rd66, %rd408, %rd412; - setp.lt.u64 %p159, %rd66, %rd408; - selp.u64 %rd413, 1, 0, %p159; - sub.s64 %rd414, %rd2, %rd677; - sub.s64 %rd415, %rd414, %rd683; - add.s64 %rd416, %rd415, %rd58; - add.s64 %rd417, %rd416, %rd397; - mul.lo.s64 %rd418, %rd700, -576460752303423506; - add.s64 %rd419, %rd417, %rd418; - add.s64 %rd420, %rd419, %rd62; - add.s64 %rd421, %rd420, %rd62; - add.s64 %rd422, %rd421, %rd377; - sub.s64 %rd423, %rd422, %rd395; - add.s64 %rd424, %rd423, %rd380; - add.s64 %rd425, %rd424, %rd382; - add.s64 %rd426, %rd425, %rd398; - add.s64 %rd427, %rd426, %rd384; - add.s64 %rd428, %rd427, %rd386; - add.s64 %rd429, %rd428, %rd393; - add.s64 %rd430, %rd429, %rd399; - add.s64 %rd431, %rd430, %rd405; - add.s64 %rd432, %rd431, %rd409; - add.s64 %rd64, %rd432, %rd413; - setp.ne.s64 %p160, %rd64, 576460752303423505; - or.b64 %rd433, %rd63, %rd65; - or.b64 %rd434, %rd433, %rd66; - setp.ne.s64 %p161, %rd434, 0; - setp.gt.u64 %p162, %rd64, 576460752303423504; - or.pred %p163, %p161, %p160; - and.pred %p6, %p162, %p163; - selp.u64 %rd67, 1, 0, %p6; - mul.hi.u64 %rd68, %rd67, %rd374; - add.s64 %rd69, %rd68, %rd683; - setp.lt.u64 %p7, %rd69, %rd68; - setp.ne.s64 %p164, %rd64, %rd2; - setp.ne.s64 %p165, %rd66, %rd3; - or.pred %p166, %p165, %p164; - not.pred %p167, %p158; - or.pred %p168, %p166, %p167; - not.pred %p169, %p168; - mov.u64 %rd701, %rd702; - @%p169 bra $L__BB0_7; - - setp.eq.s64 %p170, %rd64, %rd2; - setp.lt.u64 %p171, %rd66, %rd3; - and.pred %p172, %p171, %p170; - setp.lt.u64 %p173, %rd64, %rd2; - or.pred %p174, %p173, %p172; - selp.u64 %rd701, 1, 0, %p174; - -$L__BB0_7: - mov.u64 %rd694, 0; - mul.hi.u64 %rd693, %rd694, %rd376; - mov.u64 %rd686, 0; - mul.hi.u64 %rd685, %rd686, %rd111; - mov.u64 %rd680, 0; - mul.hi.u64 %rd679, %rd680, %rd680; - selp.u64 %rd667, 1, 0, %p4; - mul.hi.u64 %rd666, %rd241, %rd680; - add.s64 %rd665, %rd261, %rd26; - sub.s64 %rd436, %rd66, %rd69; - setp.lt.u64 %p175, %rd65, %rd67; - selp.b64 %rd437, -1, 0, %p175; - mul.hi.u64 %rd438, %rd67, %rd702; - sub.s64 %rd439, %rd63, %rd438; - add.s64 %rd440, %rd439, %rd437; - setp.gt.u64 %p176, %rd440, %rd63; - setp.eq.s64 %p177, %rd440, %rd63; - and.pred %p178, %p175, %p177; - or.pred %p179, %p176, %p178; - selp.u64 %rd441, 1, 0, %p179; - sub.s64 %rd442, %rd65, %rd67; - mul.hi.u64 %rd444, %rd701, %rd376; - sub.s64 %rd445, %rd444, %rd701; - neg.s64 %rd446, %rd701; - setp.lt.u64 %p180, %rd445, %rd446; - selp.u64 %rd448, 1, 0, %p180; - add.s64 %rd449, %rd445, %rd693; - setp.lt.u64 %p181, %rd449, %rd445; - selp.u64 %rd450, 1, 0, %p181; - add.s64 %rd451, %rd449, %rd448; - setp.lt.u64 %p182, %rd451, %rd449; - selp.u64 %rd452, 1, 0, %p182; - sub.s64 %rd453, %rd436, %rd441; - add.s64 %rd454, %rd451, %rd453; - setp.lt.u64 %p183, %rd454, %rd451; - selp.u64 %rd455, 1, 0, %p183; - add.s64 %rd456, %rd445, %rd440; - sub.s64 %rd72, %rd442, %rd701; - setp.lt.u64 %p184, %rd72, %rd442; - selp.u64 %rd457, 1, 0, %p184; - add.s64 %rd73, %rd456, %rd457; - setp.eq.s64 %p185, %rd73, %rd440; - and.pred %p186, %p184, %p185; - setp.lt.u64 %p187, %rd73, %rd440; - or.pred %p188, %p187, %p186; - selp.u64 %rd458, 1, 0, %p188; - add.s64 %rd74, %rd454, %rd458; - setp.lt.u64 %p189, %rd74, %rd454; - selp.u64 %rd459, 1, 0, %p189; - add.s64 %rd75, %rd685, %rd679; - sub.s64 %rd460, %rd693, %rd75; - add.s64 %rd76, %rd460, %rd693; - sub.s64 %rd461, %rd76, %rd68; - selp.s64 %rd462, -1, 0, %p7; - add.s64 %rd463, %rd461, %rd462; - setp.lt.u64 %p190, %rd66, %rd69; - selp.b64 %rd464, -1, 0, %p190; - add.s64 %rd465, %rd463, %rd464; - add.s64 %rd466, %rd465, %rd64; - selp.b64 %rd467, -576460752303423505, 0, %p6; - add.s64 %rd468, %rd466, %rd467; - setp.lt.u64 %p191, %rd436, %rd441; - selp.b64 %rd469, -1, 0, %p191; - add.s64 %rd470, %rd468, %rd469; - add.s64 %rd471, %rd470, %rd444; - mul.lo.s64 %rd472, %rd701, -576460752303423506; - add.s64 %rd473, %rd471, %rd472; - add.s64 %rd474, %rd473, %rd448; - add.s64 %rd475, %rd474, %rd450; - add.s64 %rd476, %rd475, %rd452; - add.s64 %rd477, %rd476, %rd455; - add.s64 %rd77, %rd477, %rd459; - sub.s64 %rd478, %rd23, %rd13; - add.s64 %rd479, %rd478, %rd19; - add.s64 %rd480, %rd479, %rd20; - add.s64 %rd481, %rd480, %rd21; - add.s64 %rd482, %rd481, %rd22; - mul.hi.u64 %rd483, %rd482, %rd694; - mov.u64 %rd484, 576460752303423505; - mul.hi.u64 %rd78, %rd482, %rd484; - mul.lo.s64 %rd485, %rd482, 576460752303423505; - add.s64 %rd486, %rd483, %rd485; - setp.lt.u64 %p192, %rd486, %rd483; - selp.u64 %rd79, 1, 0, %p192; - add.s64 %rd487, %rd486, %rd27; - setp.lt.u64 %p193, %rd487, %rd486; - selp.u64 %rd80, 1, 0, %p193; - add.s64 %rd488, %rd487, %rd28; - setp.lt.u64 %p194, %rd488, %rd487; - selp.u64 %rd81, 1, 0, %p194; - mul.hi.u64 %rd489, %rd482, %rd702; - add.s64 %rd490, %rd482, %rd29; - setp.lt.u64 %p195, %rd490, %rd482; - selp.u64 %rd491, 1, 0, %p195; - add.s64 %rd492, %rd489, %rd26; - setp.lt.u64 %p196, %rd492, %rd489; - selp.u64 %rd493, 1, 0, %p196; - add.s64 %rd494, %rd492, %rd491; - setp.lt.u64 %p197, %rd494, %rd492; - selp.u64 %rd495, 1, 0, %p197; - add.s64 %rd496, %rd35, %rd490; - setp.lt.u64 %p198, %rd496, %rd35; - selp.u64 %rd497, 1, 0, %p198; - add.s64 %rd498, %rd496, %rd685; - add.s64 %rd499, %rd498, %rd666; - add.s64 %rd500, %rd499, %rd32; - add.s64 %rd501, %rd500, %rd33; - add.s64 %rd502, %rd501, %rd34; - add.s64 %rd82, %rd502, %rd667; - setp.eq.s64 %p199, %rd82, %rd496; - setp.lt.u64 %p200, %rd45, %rd25; - and.pred %p201, %p200, %p199; - setp.lt.u64 %p202, %rd82, %rd496; - or.pred %p203, %p202, %p201; - selp.u64 %rd503, 1, 0, %p203; - add.s64 %rd504, %rd685, %rd26; - add.s64 %rd505, %rd504, %rd665; - add.s64 %rd506, %rd505, %rd483; - add.s64 %rd507, %rd506, %rd493; - add.s64 %rd508, %rd507, %rd495; - setp.lt.u64 %p204, %rd508, %rd665; - selp.u64 %rd509, 1, 0, %p204; - add.s64 %rd510, %rd488, %rd509; - setp.lt.u64 %p205, %rd510, %rd488; - selp.u64 %rd83, 1, 0, %p205; - add.s64 %rd511, %rd494, %rd42; - setp.lt.u64 %p206, %rd511, %rd494; - selp.u64 %rd512, 1, 0, %p206; - add.s64 %rd513, %rd44, %rd512; - add.s64 %rd84, %rd513, %rd508; - setp.lt.u64 %p8, %rd84, %rd513; - setp.eq.s64 %p207, %rd513, 0; - and.pred %p208, %p206, %p207; - or.pred %p209, %p8, %p208; - selp.u64 %rd514, 1, 0, %p209; - add.s64 %rd85, %rd510, %rd514; - setp.lt.u64 %p9, %rd85, %rd510; - selp.u64 %rd86, 1, 0, %p9; - add.s64 %rd515, %rd503, %rd497; - add.s64 %rd87, %rd515, %rd511; - setp.lt.u64 %p10, %rd87, %rd515; - @%p80 bra $L__BB0_9; - - setp.eq.s64 %p211, %rd46, 0; - setp.lt.u64 %p212, %rd47, %rd45; - and.pred %p213, %p212, %p211; - add.s64 %rd516, %rd46, %rd82; - setp.lt.u64 %p214, %rd516, %rd46; - or.pred %p215, %p214, %p213; - selp.u64 %rd702, 1, 0, %p215; - -$L__BB0_9: - mov.u64 %rd691, 0; - mul.hi.u64 %rd690, %rd691, %rd691; - add.s64 %rd689, %rd26, %rd690; - selp.u64 %rd517, 1, 0, %p10; - add.s64 %rd518, %rd84, %rd517; - setp.lt.u64 %p216, %rd518, %rd84; - selp.u64 %rd519, 1, 0, %p216; - add.s64 %rd520, %rd85, %rd519; - setp.lt.u64 %p217, %rd520, %rd85; - add.s64 %rd93, %rd702, %rd18; - setp.lt.u64 %p218, %rd93, %rd702; - selp.u64 %rd521, 1, 0, %p218; - add.s64 %rd92, %rd50, %rd521; - setp.lt.u64 %p219, %rd92, %rd50; - selp.u64 %rd522, 1, 0, %p219; - add.s64 %rd91, %rd51, %rd522; - setp.lt.u64 %p220, %rd91, %rd51; - selp.u64 %rd523, 1, 0, %p220; - add.s64 %rd90, %rd52, %rd523; - add.s64 %rd524, %rd91, %rd520; - setp.lt.u64 %p221, %rd524, %rd91; - selp.u64 %rd525, 1, 0, %p221; - add.s64 %rd526, %rd92, %rd518; - add.s64 %rd94, %rd93, %rd87; - setp.lt.u64 %p222, %rd94, %rd93; - selp.u64 %rd527, 1, 0, %p222; - add.s64 %rd95, %rd526, %rd527; - setp.eq.s64 %p223, %rd95, %rd92; - and.pred %p224, %p222, %p223; - setp.lt.u64 %p225, %rd95, %rd92; - or.pred %p226, %p225, %p224; - selp.u64 %rd528, 1, 0, %p226; - add.s64 %rd97, %rd524, %rd528; - setp.lt.u64 %p227, %rd97, %rd524; - selp.u64 %rd529, 1, 0, %p227; - add.s64 %rd530, %rd78, %rd689; - add.s64 %rd531, %rd530, %rd79; - add.s64 %rd532, %rd531, %rd80; - add.s64 %rd533, %rd532, %rd81; - add.s64 %rd534, %rd533, %rd83; - add.s64 %rd535, %rd534, %rd86; - selp.u64 %rd536, 1, 0, %p217; - add.s64 %rd537, %rd535, %rd536; - add.s64 %rd538, %rd537, %rd90; - add.s64 %rd539, %rd538, %rd525; - add.s64 %rd96, %rd539, %rd529; - setp.ne.s64 %p228, %rd96, %rd90; - setp.ne.s64 %p229, %rd97, %rd91; - or.pred %p230, %p229, %p228; - @%p230 bra $L__BB0_11; - - mov.u64 %rd703, 1; - @%p226 bra $L__BB0_12; - -$L__BB0_11: - setp.eq.s64 %p236, %rd96, %rd90; - setp.lt.u64 %p237, %rd97, %rd91; - and.pred %p238, %p237, %p236; - setp.lt.u64 %p239, %rd96, %rd90; - or.pred %p240, %p239, %p238; - selp.u64 %rd703, 1, 0, %p240; - -$L__BB0_12: - mov.u64 %rd696, 0; - mul.hi.u64 %rd695, %rd696, %rd376; - mov.u64 %rd688, 0; - mul.hi.u64 %rd687, %rd688, %rd111; - or.b64 %rd541, %rd95, %rd94; - or.b64 %rd542, %rd541, %rd97; - setp.eq.s64 %p241, %rd542, 0; - mov.u64 %rd543, 0; - setp.eq.s64 %p242, %rd96, 576460752303423505; - and.pred %p243, %p241, %p242; - setp.gt.u64 %p244, %rd96, 576460752303423504; - xor.pred %p245, %p244, %p243; - selp.u64 %rd544, 1, 0, %p245; - mov.u64 %rd545, -1; - mul.hi.u64 %rd546, %rd703, %rd545; - sub.s64 %rd547, %rd546, %rd703; - neg.s64 %rd548, %rd703; - setp.lt.u64 %p246, %rd547, %rd548; - selp.u64 %rd549, 1, 0, %p246; - add.s64 %rd550, %rd547, %rd695; - setp.lt.u64 %p247, %rd550, %rd547; - add.s64 %rd551, %rd550, %rd549; - setp.lt.u64 %p248, %rd551, %rd550; - add.s64 %rd552, %rd551, %rd97; - setp.lt.u64 %p249, %rd552, %rd551; - add.s64 %rd553, %rd547, %rd95; - sub.s64 %rd554, %rd94, %rd703; - setp.lt.u64 %p250, %rd554, %rd94; - selp.u64 %rd555, 1, 0, %p250; - add.s64 %rd556, %rd553, %rd555; - setp.eq.s64 %p251, %rd556, %rd95; - and.pred %p252, %p250, %p251; - setp.lt.u64 %p253, %rd556, %rd95; - or.pred %p254, %p253, %p252; - selp.u64 %rd557, 1, 0, %p254; - add.s64 %rd558, %rd552, %rd557; - setp.lt.u64 %p255, %rd558, %rd552; - mov.u64 %rd704, 1; - mul.hi.u64 %rd560, %rd544, %rd704; - mul.hi.u64 %rd561, %rd544, %rd543; - add.s64 %rd562, %rd561, %rd687; - setp.lt.u64 %p256, %rd562, %rd561; - setp.lt.u64 %p257, %rd558, %rd562; - sub.s64 %rd563, %rd558, %rd562; - sub.s64 %rd564, %rd556, %rd560; - setp.lt.u64 %p258, %rd554, %rd544; - selp.b64 %rd565, -1, 0, %p258; - add.s64 %rd566, %rd564, %rd565; - neg.s64 %rd567, %rd566; - setp.eq.s64 %p259, %rd566, %rd556; - and.pred %p260, %p258, %p259; - setp.gt.u64 %p261, %rd566, %rd556; - or.pred %p262, %p261, %p260; - selp.u64 %rd568, 1, 0, %p262; - setp.lt.u64 %p263, %rd563, %rd568; - sub.s64 %rd569, %rd563, %rd568; - sub.s64 %rd570, %rd554, %rd544; - selp.u64 %rd571, 1, 0, %p263; - selp.u64 %rd572, 1, 0, %p257; - selp.b64 %rd573, -1, 0, %p249; - selp.b64 %rd574, -1, 0, %p248; - selp.u64 %rd575, 1, 0, %p256; - selp.b64 %rd576, -1, 0, %p247; - selp.b64 %rd577, -1, 0, %p246; - selp.b64 %rd578, 576460752303423505, 0, %p245; - selp.b64 %rd579, -1, 0, %p255; - setp.ne.s64 %p264, %rd569, 0; - selp.b64 %rd580, -1, 0, %p264; - neg.s64 %rd581, %rd569; - setp.gt.u64 %p265, %rd570, 1; - selp.u64 %rd582, 1, 0, %p265; - setp.ne.s64 %p266, %rd567, %rd582; - or.pred %p267, %p265, %p266; - selp.u64 %rd583, 1, 0, %p267; - setp.lt.u64 %p268, %rd581, %rd583; - selp.b64 %rd584, -1, 0, %p268; - sub.s64 %rd585, %rd581, %rd583; - selp.b64 %rd586, -1, 0, %p265; - sub.s64 %rd587, %rd704, %rd570; - add.s64 %rd588, %rd585, %rd3; - setp.lt.u64 %p269, %rd588, %rd585; - selp.u64 %rd589, 1, 0, %p269; - add.s64 %rd102, %rd587, %rd5; - setp.lt.u64 %p270, %rd102, %rd587; - selp.u64 %rd590, 1, 0, %p270; - add.s64 %rd591, %rd4, %rd586; - add.s64 %rd592, %rd591, %rd590; - sub.s64 %rd100, %rd592, %rd566; - setp.eq.s64 %p271, %rd100, %rd4; - and.pred %p272, %p270, %p271; - setp.lt.u64 %p273, %rd100, %rd4; - or.pred %p274, %p273, %p272; - selp.u64 %rd593, 1, 0, %p274; - add.s64 %rd103, %rd588, %rd593; - setp.lt.u64 %p275, %rd103, %rd588; - selp.u64 %rd594, 1, 0, %p275; - add.s64 %rd595, %rd75, %rd2; - add.s64 %rd596, %rd595, 576460752303423505; - sub.s64 %rd597, %rd596, %rd695; - sub.s64 %rd598, %rd597, %rd695; - sub.s64 %rd599, %rd598, %rd96; - add.s64 %rd600, %rd599, %rd578; - mul.lo.s64 %rd601, %rd703, 576460752303423506; - add.s64 %rd602, %rd600, %rd601; - sub.s64 %rd603, %rd602, %rd546; - add.s64 %rd604, %rd603, %rd561; - add.s64 %rd605, %rd604, %rd577; - add.s64 %rd606, %rd605, %rd576; - add.s64 %rd607, %rd606, %rd575; - add.s64 %rd608, %rd607, %rd574; - add.s64 %rd609, %rd608, %rd573; - add.s64 %rd610, %rd609, %rd579; - add.s64 %rd611, %rd610, %rd572; - add.s64 %rd612, %rd611, %rd571; - add.s64 %rd613, %rd612, %rd580; - add.s64 %rd614, %rd613, %rd584; - add.s64 %rd615, %rd614, %rd589; - add.s64 %rd101, %rd615, %rd594; - setp.eq.s64 %p276, %rd101, 576460752303423505; - or.b64 %rd616, %rd100, %rd102; - or.b64 %rd617, %rd616, %rd103; - setp.eq.s64 %p277, %rd617, 0; - and.pred %p278, %p277, %p276; - setp.gt.u64 %p279, %rd101, 576460752303423504; - xor.pred %p11, %p279, %p278; - selp.u64 %rd104, 1, 0, %p11; - mul.hi.u64 %rd105, %rd104, %rd543; - add.s64 %rd106, %rd105, %rd687; - setp.lt.u64 %p12, %rd106, %rd105; - setp.ne.s64 %p280, %rd101, %rd2; - setp.ne.s64 %p281, %rd103, %rd3; - or.pred %p282, %p281, %p280; - @%p282 bra $L__BB0_14; - - setp.lt.u64 %p284, %rd102, %rd5; - and.pred %p285, %p284, %p271; - or.pred %p287, %p273, %p285; - @%p287 bra $L__BB0_15; - -$L__BB0_14: - setp.eq.s64 %p288, %rd101, %rd2; - setp.lt.u64 %p289, %rd103, %rd3; - and.pred %p290, %p289, %p288; - setp.lt.u64 %p291, %rd101, %rd2; - or.pred %p292, %p291, %p290; - selp.u64 %rd704, 1, 0, %p292; - -$L__BB0_15: - mov.u64 %rd698, 0; - mul.hi.u64 %rd697, %rd698, %rd376; - ld.param.u32 %r25, [radix2_dit_butterfly_param_2]; - ld.param.u32 %r24, [radix2_dit_butterfly_param_3]; - shr.s32 %r23, %r24, %r25; - mov.u32 %r22, %tid.x; - mov.u32 %r21, %ctaid.x; - mov.u32 %r20, %ntid.x; - mad.lo.s32 %r19, %r20, %r21, %r22; - add.s32 %r18, %r23, -1; - and.b32 %r17, %r18, %r19; - ld.param.u64 %rd673, [radix2_dit_butterfly_param_0]; - shl.b32 %r16, %r19, 1; - sub.s32 %r15, %r16, %r17; - cvta.to.global.u64 %rd672, %rd673; - add.s32 %r14, %r15, %r23; - mul.wide.s32 %rd671, %r14, 32; - add.s64 %rd670, %rd672, %rd671; - mul.wide.s32 %rd669, %r15, 32; - add.s64 %rd668, %rd672, %rd669; - sub.s64 %rd619, %rd103, %rd106; - setp.lt.u64 %p293, %rd102, %rd104; - selp.b64 %rd620, -1, 0, %p293; - mov.u64 %rd621, 1; - mul.hi.u64 %rd622, %rd104, %rd621; - sub.s64 %rd623, %rd100, %rd622; - add.s64 %rd624, %rd623, %rd620; - setp.gt.u64 %p294, %rd624, %rd100; - setp.eq.s64 %p295, %rd624, %rd100; - and.pred %p296, %p293, %p295; - or.pred %p297, %p294, %p296; - selp.u64 %rd625, 1, 0, %p297; - sub.s64 %rd626, %rd102, %rd104; - mov.u64 %rd627, -1; - mul.hi.u64 %rd628, %rd704, %rd627; - sub.s64 %rd629, %rd628, %rd704; - neg.s64 %rd630, %rd704; - setp.lt.u64 %p298, %rd629, %rd630; - selp.u64 %rd631, 1, 0, %p298; - add.s64 %rd632, %rd629, %rd697; - setp.lt.u64 %p299, %rd632, %rd629; - selp.u64 %rd633, 1, 0, %p299; - add.s64 %rd634, %rd632, %rd631; - setp.lt.u64 %p300, %rd634, %rd632; - selp.u64 %rd635, 1, 0, %p300; - sub.s64 %rd636, %rd619, %rd625; - add.s64 %rd637, %rd634, %rd636; - setp.lt.u64 %p301, %rd637, %rd634; - selp.u64 %rd638, 1, 0, %p301; - add.s64 %rd639, %rd629, %rd624; - sub.s64 %rd640, %rd626, %rd704; - setp.lt.u64 %p302, %rd640, %rd626; - selp.u64 %rd641, 1, 0, %p302; - add.s64 %rd642, %rd639, %rd641; - setp.eq.s64 %p303, %rd642, %rd624; - and.pred %p304, %p302, %p303; - setp.lt.u64 %p305, %rd642, %rd624; - or.pred %p306, %p305, %p304; - selp.u64 %rd643, 1, 0, %p306; - add.s64 %rd644, %rd637, %rd643; - setp.lt.u64 %p307, %rd644, %rd637; - selp.u64 %rd645, 1, 0, %p307; - sub.s64 %rd646, %rd76, %rd105; - selp.s64 %rd647, -1, 0, %p12; - add.s64 %rd648, %rd646, %rd647; - setp.lt.u64 %p308, %rd103, %rd106; - selp.b64 %rd649, -1, 0, %p308; - add.s64 %rd650, %rd648, %rd649; - add.s64 %rd651, %rd650, %rd101; - selp.b64 %rd652, -576460752303423505, 0, %p11; - add.s64 %rd653, %rd651, %rd652; - setp.lt.u64 %p309, %rd619, %rd625; - selp.b64 %rd654, -1, 0, %p309; - add.s64 %rd655, %rd653, %rd654; - add.s64 %rd656, %rd655, %rd628; - mul.lo.s64 %rd657, %rd704, -576460752303423506; - add.s64 %rd658, %rd656, %rd657; - add.s64 %rd659, %rd658, %rd631; - add.s64 %rd660, %rd659, %rd633; - add.s64 %rd661, %rd660, %rd635; - add.s64 %rd662, %rd661, %rd638; - add.s64 %rd663, %rd662, %rd645; - st.global.u64 [%rd668], %rd77; - st.global.u64 [%rd668+8], %rd74; - st.global.u64 [%rd668+16], %rd73; - st.global.u64 [%rd668+24], %rd72; - st.global.u64 [%rd670], %rd663; - st.global.u64 [%rd670+8], %rd644; - st.global.u64 [%rd670+16], %rd642; - st.global.u64 [%rd670+24], %rd640; - -$L__BB0_16: - ret; - -} - // .globl calc_twiddles -.visible .entry calc_twiddles( - .param .u64 calc_twiddles_param_0, - .param .u64 calc_twiddles_param_1, - .param .u32 calc_twiddles_param_2 -) -{ - .reg .pred %p<421>; - .reg .b32 %r<14>; - .reg .b64 %rd<1037>; - - - ld.param.u64 %rd139, [calc_twiddles_param_1]; - ld.param.u32 %r4, [calc_twiddles_param_2]; - mov.u32 %r5, %ctaid.x; - mov.u32 %r6, %ntid.x; - mov.u32 %r7, %tid.x; - mad.lo.s32 %r13, %r6, %r5, %r7; - setp.ge.u32 %p18, %r13, %r4; - @%p18 bra $L__BB1_21; - - cvta.to.global.u64 %rd141, %rd139; - ld.global.u64 %rd1017, [%rd141]; - mov.u64 %rd142, 0; - ld.global.u64 %rd1018, [%rd141+8]; - ld.global.u64 %rd1019, [%rd141+16]; - ld.global.u64 %rd1020, [%rd141+24]; - mov.u64 %rd143, 5151653887; - mul.hi.u64 %rd144, %rd142, %rd143; - mov.u64 %rd145, -2802499714047; - mul.hi.u64 %rd5, %rd142, %rd145; - add.s64 %rd6, %rd144, %rd5; - mov.u64 %rd140, 1; - mov.u64 %rd146, -9469952; - mul.hi.u64 %rd7, %rd146, %rd140; - mul.hi.u64 %rd147, %rd140, %rd145; - setp.gt.u64 %p19, %rd147, -5151653888; - selp.u64 %rd148, 1, 0, %p19; - add.s64 %rd149, %rd147, 5151653887; - mul.hi.u64 %rd150, %rd140, %rd143; - add.s64 %rd151, %rd150, %rd5; - setp.lt.u64 %p20, %rd151, %rd150; - selp.u64 %rd152, 1, 0, %p20; - add.s64 %rd153, %rd151, %rd148; - setp.lt.u64 %p21, %rd153, %rd151; - selp.u64 %rd154, 1, 0, %p21; - add.s64 %rd155, %rd5, %rd7; - add.s64 %rd8, %rd155, 576413109808302096; - setp.gt.u64 %p2, %rd153, 9469951; - selp.u64 %rd156, 1, 0, %p2; - add.s64 %rd157, %rd6, %rd8; - mul.hi.u64 %rd158, %rd140, %rd142; - add.s64 %rd159, %rd157, %rd158; - add.s64 %rd160, %rd159, %rd152; - add.s64 %rd161, %rd160, %rd154; - add.s64 %rd10, %rd161, %rd156; - add.s64 %rd162, %rd153, -9469952; - mul.hi.u64 %rd11, %rd142, %rd142; - mul.hi.u64 %rd12, %rd142, %rd140; - mov.u64 %rd163, 9469952; - sub.s64 %rd164, %rd163, %rd153; - mov.u64 %rd165, -1; - mul.hi.u64 %rd166, %rd162, %rd165; - mul.hi.u64 %rd167, %rd149, %rd165; - mov.u64 %rd168, -5151653887; - sub.s64 %rd169, %rd168, %rd147; - mul.hi.u64 %rd170, %rd145, %rd165; - setp.gt.u64 %p22, %rd170, -2802499714048; - selp.u64 %rd171, 1, 0, %p22; - add.s64 %rd172, %rd170, 2802499714047; - mov.u64 %rd173, 2802499714047; - add.s64 %rd174, %rd167, %rd169; - setp.lt.u64 %p23, %rd174, %rd167; - add.s64 %rd16, %rd172, %rd169; - setp.lt.u64 %p24, %rd16, %rd172; - selp.u64 %rd175, 1, 0, %p24; - add.s64 %rd176, %rd175, %rd171; - selp.u64 %rd177, 1, 0, %p23; - add.s64 %rd178, %rd174, %rd172; - setp.lt.u64 %p25, %rd178, %rd174; - selp.u64 %rd179, 1, 0, %p25; - add.s64 %rd180, %rd178, %rd164; - setp.lt.u64 %p26, %rd180, %rd178; - selp.u64 %rd181, 1, 0, %p26; - add.s64 %rd14, %rd176, %rd180; - setp.lt.u64 %p27, %rd14, %rd176; - selp.u64 %rd182, 1, 0, %p27; - add.s64 %rd183, %rd166, %rd164; - add.s64 %rd184, %rd183, %rd170; - add.s64 %rd185, %rd184, %rd174; - add.s64 %rd186, %rd185, %rd171; - add.s64 %rd187, %rd186, %rd177; - add.s64 %rd188, %rd187, 576415912307998736; - sub.s64 %rd189, %rd188, %rd10; - add.s64 %rd190, %rd189, %rd179; - add.s64 %rd191, %rd190, %rd181; - add.s64 %rd13, %rd191, %rd182; - mul.hi.u64 %rd192, %rd14, %rd140; - add.s64 %rd15, %rd13, %rd192; - mul.hi.u64 %rd17, %rd142, %rd173; - add.s64 %rd193, %rd17, -576413109808284689; - mul.hi.u64 %rd194, %rd16, %rd140; - mul.hi.u64 %rd195, %rd16, %rd142; - mul.hi.u64 %rd196, %rd173, %rd140; - add.s64 %rd197, %rd196, %rd16; - setp.lt.u64 %p28, %rd197, %rd196; - selp.u64 %rd198, 1, 0, %p28; - mul.hi.u64 %rd199, %rd173, %rd142; - add.s64 %rd200, %rd199, %rd194; - setp.lt.u64 %p29, %rd200, %rd199; - selp.u64 %rd201, 1, 0, %p29; - add.s64 %rd202, %rd200, %rd198; - setp.lt.u64 %p30, %rd202, %rd200; - selp.u64 %rd203, 1, 0, %p30; - add.s64 %rd18, %rd193, %rd15; - add.s64 %rd21, %rd202, %rd14; - setp.lt.u64 %p5, %rd21, %rd202; - selp.u64 %rd204, 1, 0, %p5; - add.s64 %rd205, %rd18, %rd12; - add.s64 %rd206, %rd205, %rd199; - add.s64 %rd207, %rd206, %rd195; - add.s64 %rd208, %rd207, %rd201; - add.s64 %rd209, %rd208, %rd203; - add.s64 %rd20, %rd209, %rd204; - add.s64 %rd210, %rd21, %rd162; - setp.lt.u64 %p31, %rd210, %rd21; - selp.u64 %rd211, 1, 0, %p31; - add.s64 %rd212, %rd170, %rd196; - add.s64 %rd213, %rd212, 2802499714048; - setp.le.u64 %p32, %rd213, %rd197; - selp.u64 %rd214, 1, 0, %p32; - add.s64 %rd23, %rd210, %rd214; - setp.lt.u64 %p33, %rd23, %rd210; - selp.u64 %rd215, 1, 0, %p33; - add.s64 %rd216, %rd10, %rd211; - add.s64 %rd22, %rd216, %rd215; - setp.eq.s64 %p34, %rd22, 0; - setp.eq.s64 %p35, %rd23, %rd21; - and.pred %p36, %p35, %p34; - and.pred %p37, %p32, %p36; - mov.u64 %rd1015, %rd140; - @%p37 bra $L__BB1_3; - - setp.lt.u64 %p39, %rd23, %rd21; - and.pred %p40, %p39, %p34; - add.s64 %rd217, %rd22, %rd20; - setp.lt.u64 %p41, %rd217, %rd22; - or.pred %p42, %p41, %p40; - selp.u64 %rd1015, 1, 0, %p42; - -$L__BB1_3: - mul.hi.u64 %rd1012, %rd14, %rd140; - add.s64 %rd1011, %rd13, %rd1012; - add.s64 %rd1010, %rd17, -576413109808284689; - add.s64 %rd1009, %rd1010, %rd1011; - setp.lt.u64 %p419, %rd1009, %rd1010; - setp.lt.u64 %p418, %rd1011, %rd13; - mov.u64 %rd1008, 5151653887; - mul.hi.u64 %rd1007, %rd142, %rd1008; - setp.lt.u64 %p417, %rd6, %rd1007; - mul.hi.u64 %rd220, %rd142, %rd146; - mov.u64 %rd221, 576413109808302096; - mul.hi.u64 %rd222, %rd142, %rd221; - add.s64 %rd223, %rd222, %rd220; - setp.lt.u64 %p43, %rd223, %rd222; - mul.hi.u64 %rd224, %rd146, %rd142; - mul.hi.u64 %rd226, %rd221, %rd140; - add.s64 %rd227, %rd224, %rd226; - setp.lt.u64 %p44, %rd227, %rd224; - setp.gt.u64 %p45, %rd7, -576413109808302097; - selp.u64 %rd228, 1, 0, %p45; - add.s64 %rd229, %rd227, %rd228; - setp.lt.u64 %p46, %rd229, %rd227; - add.s64 %rd230, %rd11, %rd220; - add.s64 %rd231, %rd6, %rd230; - selp.u64 %rd232, 1, 0, %p417; - add.s64 %rd233, %rd231, %rd232; - setp.lt.u64 %p47, %rd233, %rd220; - selp.u64 %rd234, 1, 0, %p47; - add.s64 %rd235, %rd223, %rd234; - setp.lt.u64 %p48, %rd235, %rd223; - add.s64 %rd236, %rd229, %rd6; - setp.lt.u64 %p49, %rd236, %rd229; - mul.hi.u64 %rd237, %rd221, %rd142; - add.s64 %rd238, %rd224, %rd12; - add.s64 %rd239, %rd238, %rd237; - add.s64 %rd240, %rd239, %rd233; - selp.u64 %rd241, 1, 0, %p44; - add.s64 %rd242, %rd240, %rd241; - selp.u64 %rd243, 1, 0, %p46; - add.s64 %rd244, %rd242, %rd243; - selp.u64 %rd245, 1, 0, %p49; - add.s64 %rd246, %rd244, %rd245; - setp.lt.u64 %p50, %rd246, %rd233; - setp.eq.s64 %p51, %rd246, %rd233; - and.pred %p52, %p49, %p51; - or.pred %p53, %p50, %p52; - selp.u64 %rd247, 1, 0, %p53; - add.s64 %rd248, %rd235, %rd247; - setp.lt.u64 %p54, %rd248, %rd235; - setp.lt.u64 %p55, %rd8, %rd5; - selp.u64 %rd249, 1, 0, %p55; - add.s64 %rd250, %rd236, %rd249; - setp.lt.u64 %p56, %rd10, %rd8; - setp.eq.s64 %p57, %rd10, %rd8; - and.pred %p58, %p2, %p57; - or.pred %p59, %p56, %p58; - selp.u64 %rd251, 1, 0, %p59; - add.s64 %rd252, %rd250, %rd251; - setp.lt.u64 %p60, %rd252, %rd236; - selp.u64 %rd253, 1, 0, %p60; - add.s64 %rd254, %rd246, %rd253; - setp.lt.u64 %p61, %rd254, %rd246; - selp.u64 %rd255, 1, 0, %p61; - add.s64 %rd256, %rd248, %rd255; - setp.lt.u64 %p62, %rd256, %rd248; - mul.hi.u64 %rd257, %rd14, %rd142; - mul.hi.u64 %rd258, %rd13, %rd142; - mul.lo.s64 %rd259, %rd14, 576460752303423505; - mov.u64 %rd260, 576460752303423505; - add.s64 %rd261, %rd259, %rd257; - setp.lt.u64 %p63, %rd261, %rd259; - mul.lo.s64 %rd262, %rd13, 576460752303423505; - add.s64 %rd263, %rd262, %rd258; - setp.lt.u64 %p64, %rd263, %rd262; - mul.hi.u64 %rd264, %rd14, %rd260; - add.s64 %rd265, %rd263, %rd264; - setp.lt.u64 %p65, %rd265, %rd263; - selp.u64 %rd266, 1, 0, %p63; - add.s64 %rd267, %rd265, %rd266; - setp.lt.u64 %p66, %rd267, %rd265; - mul.hi.u64 %rd268, %rd13, %rd140; - add.s64 %rd269, %rd268, %rd257; - setp.lt.u64 %p67, %rd269, %rd268; - selp.u64 %rd270, 1, 0, %p418; - add.s64 %rd271, %rd269, %rd270; - setp.lt.u64 %p68, %rd271, %rd269; - mul.hi.u64 %rd273, %rd260, %rd173; - mul.lo.s64 %rd274, %rd16, 576460752303423505; - add.s64 %rd275, %rd273, %rd274; - setp.lt.u64 %p69, %rd275, %rd273; - mul.hi.u64 %rd276, %rd142, %rd16; - add.s64 %rd277, %rd276, %rd275; - setp.lt.u64 %p70, %rd277, %rd276; - setp.gt.u64 %p71, %rd17, 576413109808284688; - selp.u64 %rd278, 1, 0, %p71; - add.s64 %rd279, %rd277, %rd278; - setp.lt.u64 %p72, %rd279, %rd277; - add.s64 %rd280, %rd257, %rd12; - add.s64 %rd281, %rd280, %rd258; - add.s64 %rd282, %rd281, %rd261; - selp.u64 %rd283, 1, 0, %p67; - add.s64 %rd284, %rd282, %rd283; - selp.u64 %rd285, 1, 0, %p68; - add.s64 %rd286, %rd284, %rd285; - setp.lt.u64 %p73, %rd286, %rd261; - selp.u64 %rd287, 1, 0, %p73; - add.s64 %rd288, %rd267, %rd287; - setp.lt.u64 %p74, %rd288, %rd267; - add.s64 %rd289, %rd271, %rd279; - setp.lt.u64 %p75, %rd289, %rd271; - add.s64 %rd290, %rd17, %rd11; - mul.hi.u64 %rd291, %rd260, %rd16; - add.s64 %rd292, %rd290, %rd291; - selp.u64 %rd293, 1, 0, %p69; - add.s64 %rd294, %rd292, %rd293; - selp.u64 %rd295, 1, 0, %p70; - add.s64 %rd296, %rd294, %rd295; - selp.u64 %rd297, 1, 0, %p72; - add.s64 %rd298, %rd296, %rd297; - selp.u64 %rd299, 1, 0, %p75; - add.s64 %rd300, %rd298, %rd299; - add.s64 %rd301, %rd300, %rd286; - setp.lt.u64 %p76, %rd301, %rd300; - setp.eq.s64 %p77, %rd300, 0; - and.pred %p78, %p75, %p77; - or.pred %p79, %p76, %p78; - selp.u64 %rd302, 1, 0, %p79; - add.s64 %rd303, %rd288, %rd302; - setp.lt.u64 %p80, %rd303, %rd288; - selp.u64 %rd304, 1, 0, %p419; - add.s64 %rd305, %rd289, %rd304; - setp.lt.u64 %p81, %rd20, %rd1009; - setp.eq.s64 %p82, %rd20, %rd1009; - and.pred %p83, %p5, %p82; - or.pred %p84, %p81, %p83; - selp.u64 %rd306, 1, 0, %p84; - add.s64 %rd307, %rd305, %rd306; - setp.lt.u64 %p85, %rd307, %rd289; - selp.u64 %rd308, 1, 0, %p85; - add.s64 %rd309, %rd301, %rd308; - setp.lt.u64 %p86, %rd309, %rd301; - selp.u64 %rd310, 1, 0, %p86; - add.s64 %rd311, %rd303, %rd310; - setp.lt.u64 %p87, %rd311, %rd303; - add.s64 %rd29, %rd1015, %rd252; - setp.lt.u64 %p88, %rd29, %rd1015; - selp.u64 %rd312, 1, 0, %p88; - add.s64 %rd28, %rd254, %rd312; - setp.lt.u64 %p89, %rd28, %rd254; - selp.u64 %rd313, 1, 0, %p89; - add.s64 %rd27, %rd256, %rd313; - setp.lt.u64 %p90, %rd27, %rd256; - selp.u64 %rd314, 1, 0, %p90; - add.s64 %rd315, %rd223, %rd11; - selp.u64 %rd316, 1, 0, %p43; - add.s64 %rd317, %rd315, %rd316; - selp.u64 %rd318, 1, 0, %p48; - add.s64 %rd319, %rd317, %rd318; - selp.u64 %rd320, 1, 0, %p54; - add.s64 %rd321, %rd319, %rd320; - selp.u64 %rd322, 1, 0, %p62; - add.s64 %rd323, %rd321, %rd322; - add.s64 %rd26, %rd323, %rd314; - add.s64 %rd324, %rd27, %rd311; - setp.lt.u64 %p91, %rd324, %rd27; - selp.u64 %rd325, 1, 0, %p91; - add.s64 %rd326, %rd28, %rd309; - add.s64 %rd30, %rd29, %rd307; - setp.lt.u64 %p92, %rd30, %rd29; - selp.u64 %rd327, 1, 0, %p92; - add.s64 %rd31, %rd326, %rd327; - setp.eq.s64 %p93, %rd31, %rd28; - and.pred %p94, %p92, %p93; - setp.lt.u64 %p95, %rd31, %rd28; - or.pred %p96, %p95, %p94; - selp.u64 %rd328, 1, 0, %p96; - add.s64 %rd33, %rd324, %rd328; - setp.lt.u64 %p97, %rd33, %rd324; - selp.u64 %rd329, 1, 0, %p97; - add.s64 %rd330, %rd257, %rd11; - mul.hi.u64 %rd331, %rd13, %rd260; - add.s64 %rd332, %rd330, %rd331; - selp.u64 %rd333, 1, 0, %p64; - add.s64 %rd334, %rd332, %rd333; - selp.u64 %rd335, 1, 0, %p65; - add.s64 %rd336, %rd334, %rd335; - selp.u64 %rd337, 1, 0, %p66; - add.s64 %rd338, %rd336, %rd337; - selp.u64 %rd339, 1, 0, %p74; - add.s64 %rd340, %rd338, %rd339; - selp.u64 %rd341, 1, 0, %p80; - add.s64 %rd342, %rd340, %rd341; - selp.u64 %rd343, 1, 0, %p87; - add.s64 %rd344, %rd342, %rd343; - add.s64 %rd345, %rd344, %rd26; - add.s64 %rd346, %rd345, %rd325; - add.s64 %rd32, %rd346, %rd329; - setp.ne.s64 %p98, %rd32, %rd26; - setp.ne.s64 %p99, %rd33, %rd27; - or.pred %p100, %p99, %p98; - @%p100 bra $L__BB1_5; - - mov.u64 %rd1016, 1; - @%p96 bra $L__BB1_6; - -$L__BB1_5: - setp.eq.s64 %p106, %rd32, %rd26; - setp.lt.u64 %p107, %rd33, %rd27; - and.pred %p108, %p107, %p106; - setp.lt.u64 %p109, %rd32, %rd26; - or.pred %p110, %p109, %p108; - selp.u64 %rd1016, 1, 0, %p110; - -$L__BB1_6: - or.b64 %rd348, %rd31, %rd30; - or.b64 %rd349, %rd348, %rd33; - setp.eq.s64 %p111, %rd349, 0; - mov.u64 %rd350, 0; - setp.eq.s64 %p112, %rd32, 576460752303423505; - and.pred %p113, %p111, %p112; - setp.gt.u64 %p114, %rd32, 576460752303423504; - xor.pred %p115, %p114, %p113; - selp.u64 %rd351, 1, 0, %p115; - mov.u64 %rd352, -1; - mul.hi.u64 %rd353, %rd1016, %rd352; - sub.s64 %rd354, %rd353, %rd1016; - neg.s64 %rd355, %rd1016; - setp.lt.u64 %p116, %rd354, %rd355; - selp.u64 %rd356, 1, 0, %p116; - mul.hi.u64 %rd36, %rd350, %rd352; - add.s64 %rd357, %rd354, %rd36; - setp.lt.u64 %p117, %rd357, %rd354; - selp.u64 %rd358, 1, 0, %p117; - add.s64 %rd359, %rd357, %rd356; - setp.lt.u64 %p118, %rd359, %rd357; - selp.u64 %rd360, 1, 0, %p118; - add.s64 %rd361, %rd359, %rd33; - setp.lt.u64 %p119, %rd361, %rd359; - selp.u64 %rd362, 1, 0, %p119; - add.s64 %rd363, %rd354, %rd31; - sub.s64 %rd364, %rd30, %rd1016; - setp.lt.u64 %p120, %rd364, %rd30; - selp.u64 %rd365, 1, 0, %p120; - add.s64 %rd366, %rd363, %rd365; - setp.eq.s64 %p121, %rd366, %rd31; - and.pred %p122, %p120, %p121; - setp.lt.u64 %p123, %rd366, %rd31; - or.pred %p124, %p123, %p122; - selp.u64 %rd367, 1, 0, %p124; - add.s64 %rd368, %rd361, %rd367; - setp.lt.u64 %p125, %rd368, %rd361; - selp.u64 %rd369, 1, 0, %p125; - mov.u64 %rd370, 1; - mul.hi.u64 %rd371, %rd351, %rd370; - mul.hi.u64 %rd372, %rd351, %rd350; - add.s64 %rd373, %rd372, %rd12; - setp.lt.u64 %p126, %rd373, %rd372; - selp.b64 %rd374, -576460752303423505, 0, %p115; - selp.b64 %rd375, -1, 0, %p126; - setp.lt.u64 %p127, %rd368, %rd373; - selp.b64 %rd376, -1, 0, %p127; - sub.s64 %rd377, %rd368, %rd373; - sub.s64 %rd378, %rd366, %rd371; - setp.lt.u64 %p128, %rd364, %rd351; - selp.b64 %rd379, -1, 0, %p128; - add.s64 %rd1023, %rd378, %rd379; - setp.eq.s64 %p129, %rd1023, %rd366; - and.pred %p130, %p128, %p129; - setp.gt.u64 %p131, %rd1023, %rd366; - or.pred %p132, %p131, %p130; - selp.u64 %rd380, 1, 0, %p132; - setp.lt.u64 %p133, %rd377, %rd380; - selp.b64 %rd381, -1, 0, %p133; - add.s64 %rd38, %rd12, %rd11; - sub.s64 %rd382, %rd32, %rd38; - add.s64 %rd383, %rd382, %rd374; - mul.lo.s64 %rd384, %rd1016, -576460752303423506; - add.s64 %rd385, %rd383, %rd384; - add.s64 %rd386, %rd385, %rd36; - add.s64 %rd387, %rd386, %rd36; - add.s64 %rd388, %rd387, %rd353; - sub.s64 %rd389, %rd388, %rd372; - add.s64 %rd390, %rd389, %rd356; - add.s64 %rd391, %rd390, %rd358; - add.s64 %rd392, %rd391, %rd375; - add.s64 %rd393, %rd392, %rd360; - add.s64 %rd394, %rd393, %rd362; - add.s64 %rd395, %rd394, %rd369; - add.s64 %rd396, %rd395, %rd376; - add.s64 %rd1021, %rd396, %rd381; - sub.s64 %rd1022, %rd377, %rd380; - sub.s64 %rd1024, %rd364, %rd351; - setp.eq.s32 %p134, %r13, 0; - @%p134 bra $L__BB1_20; - -$L__BB1_7: - and.b32 %r8, %r13, 1; - setp.eq.b32 %p135, %r8, 1; - mov.pred %p136, 0; - xor.pred %p137, %p135, %p136; - not.pred %p138, %p137; - @%p138 bra $L__BB1_14; - - mov.u64 %rd398, 0; - mul.lo.s64 %rd399, %rd1017, %rd1022; - mul.hi.u64 %rd400, %rd1022, %rd1018; - add.s64 %rd401, %rd400, %rd399; - setp.lt.u64 %p139, %rd401, %rd400; - selp.u64 %rd402, 1, 0, %p139; - mul.hi.u64 %rd51, %rd1021, %rd1017; - mul.lo.s64 %rd403, %rd1018, %rd1021; - add.s64 %rd404, %rd401, %rd403; - setp.lt.u64 %p140, %rd404, %rd401; - selp.u64 %rd405, 1, 0, %p140; - mul.lo.s64 %rd406, %rd1017, %rd1021; - mul.hi.u64 %rd407, %rd1021, %rd1018; - add.s64 %rd408, %rd407, %rd406; - setp.lt.u64 %p141, %rd408, %rd407; - selp.u64 %rd52, 1, 0, %p141; - mul.hi.u64 %rd409, %rd1022, %rd1017; - add.s64 %rd410, %rd409, %rd408; - setp.lt.u64 %p142, %rd410, %rd409; - selp.u64 %rd53, 1, 0, %p142; - add.s64 %rd411, %rd410, %rd402; - add.s64 %rd412, %rd411, %rd405; - setp.lt.u64 %p143, %rd412, %rd410; - selp.u64 %rd54, 1, 0, %p143; - mul.lo.s64 %rd413, %rd1019, %rd1022; - mul.hi.u64 %rd414, %rd1022, %rd1020; - add.s64 %rd415, %rd414, %rd413; - setp.lt.u64 %p144, %rd415, %rd414; - selp.u64 %rd416, 1, 0, %p144; - mul.lo.s64 %rd417, %rd1020, %rd1021; - add.s64 %rd418, %rd415, %rd417; - setp.lt.u64 %p145, %rd418, %rd415; - selp.u64 %rd419, 1, 0, %p145; - mul.lo.s64 %rd420, %rd1019, %rd1021; - mul.hi.u64 %rd421, %rd1021, %rd1020; - add.s64 %rd422, %rd421, %rd420; - setp.lt.u64 %p146, %rd422, %rd421; - selp.u64 %rd423, 1, 0, %p146; - mul.hi.u64 %rd424, %rd1022, %rd1019; - add.s64 %rd425, %rd424, %rd422; - setp.lt.u64 %p147, %rd425, %rd424; - selp.u64 %rd426, 1, 0, %p147; - add.s64 %rd427, %rd425, %rd416; - add.s64 %rd428, %rd427, %rd419; - setp.lt.u64 %p148, %rd428, %rd425; - selp.u64 %rd429, 1, 0, %p148; - mul.lo.s64 %rd430, %rd1018, %rd1023; - mul.hi.u64 %rd431, %rd1018, %rd1024; - add.s64 %rd432, %rd431, %rd430; - setp.lt.u64 %p149, %rd432, %rd431; - selp.u64 %rd433, 1, 0, %p149; - mul.lo.s64 %rd434, %rd1017, %rd1024; - add.s64 %rd435, %rd432, %rd434; - setp.lt.u64 %p150, %rd435, %rd432; - selp.u64 %rd436, 1, 0, %p150; - mul.lo.s64 %rd437, %rd1017, %rd1023; - mul.hi.u64 %rd438, %rd1017, %rd1024; - add.s64 %rd439, %rd438, %rd437; - setp.lt.u64 %p151, %rd439, %rd438; - selp.u64 %rd440, 1, 0, %p151; - mul.hi.u64 %rd441, %rd1018, %rd1023; - add.s64 %rd442, %rd441, %rd439; - setp.lt.u64 %p152, %rd442, %rd441; - selp.u64 %rd443, 1, 0, %p152; - add.s64 %rd444, %rd442, %rd433; - add.s64 %rd445, %rd444, %rd436; - setp.lt.u64 %p153, %rd445, %rd442; - selp.u64 %rd446, 1, 0, %p153; - mul.lo.s64 %rd447, %rd1019, %rd1024; - mul.hi.u64 %rd448, %rd1024, %rd1020; - add.s64 %rd449, %rd448, %rd447; - setp.lt.u64 %p154, %rd449, %rd448; - selp.u64 %rd450, 1, 0, %p154; - mul.lo.s64 %rd451, %rd1020, %rd1023; - add.s64 %rd452, %rd449, %rd451; - setp.lt.u64 %p155, %rd452, %rd449; - selp.u64 %rd453, 1, 0, %p155; - mul.lo.s64 %rd454, %rd1019, %rd1023; - mul.hi.u64 %rd455, %rd1023, %rd1020; - add.s64 %rd456, %rd455, %rd454; - setp.lt.u64 %p156, %rd456, %rd455; - selp.u64 %rd457, 1, 0, %p156; - mul.hi.u64 %rd458, %rd1024, %rd1019; - add.s64 %rd459, %rd458, %rd456; - setp.lt.u64 %p157, %rd459, %rd458; - selp.u64 %rd460, 1, 0, %p157; - add.s64 %rd461, %rd459, %rd450; - add.s64 %rd462, %rd461, %rd453; - setp.lt.u64 %p158, %rd462, %rd459; - selp.u64 %rd463, 1, 0, %p158; - mul.lo.s64 %rd464, %rd1018, %rd1024; - mul.lo.s64 %rd465, %rd1020, %rd1022; - add.s64 %rd466, %rd464, %rd465; - setp.lt.u64 %p159, %rd466, %rd464; - selp.u64 %rd467, 1, 0, %p159; - add.s64 %rd468, %rd418, %rd467; - add.s64 %rd469, %rd468, %rd435; - setp.eq.s64 %p160, %rd469, %rd418; - and.pred %p161, %p159, %p160; - setp.lt.u64 %p162, %rd469, %rd418; - or.pred %p163, %p162, %p161; - selp.u64 %rd470, 1, 0, %p163; - add.s64 %rd471, %rd462, %rd466; - setp.lt.u64 %p164, %rd471, %rd462; - selp.u64 %rd472, 1, 0, %p164; - mul.hi.u64 %rd473, %rd398, %rd1020; - add.s64 %rd474, %rd469, %rd473; - mul.hi.u64 %rd475, %rd1023, %rd1019; - add.s64 %rd476, %rd474, %rd475; - mul.hi.u64 %rd477, %rd1024, %rd398; - add.s64 %rd478, %rd476, %rd477; - add.s64 %rd479, %rd478, %rd457; - add.s64 %rd480, %rd479, %rd460; - add.s64 %rd481, %rd480, %rd463; - add.s64 %rd482, %rd481, %rd472; - setp.eq.s64 %p165, %rd482, %rd469; - and.pred %p166, %p164, %p165; - setp.lt.u64 %p167, %rd482, %rd469; - or.pred %p168, %p167, %p166; - selp.u64 %rd483, 1, 0, %p168; - mul.lo.s64 %rd484, %rd1018, %rd1022; - add.s64 %rd485, %rd428, %rd484; - setp.lt.u64 %p169, %rd485, %rd428; - selp.u64 %rd486, 1, 0, %p169; - mul.hi.u64 %rd55, %rd1022, %rd398; - add.s64 %rd487, %rd55, %rd404; - add.s64 %rd488, %rd487, %rd473; - mul.hi.u64 %rd489, %rd1021, %rd1019; - add.s64 %rd490, %rd488, %rd489; - add.s64 %rd491, %rd490, %rd423; - add.s64 %rd492, %rd491, %rd426; - add.s64 %rd493, %rd492, %rd429; - add.s64 %rd494, %rd493, %rd486; - setp.eq.s64 %p170, %rd494, %rd404; - and.pred %p171, %p169, %p170; - setp.lt.u64 %p172, %rd494, %rd404; - or.pred %p173, %p172, %p171; - selp.u64 %rd495, 1, 0, %p173; - add.s64 %rd496, %rd412, %rd495; - setp.lt.u64 %p174, %rd496, %rd412; - selp.u64 %rd56, 1, 0, %p174; - add.s64 %rd497, %rd445, %rd485; - setp.lt.u64 %p175, %rd497, %rd445; - selp.u64 %rd498, 1, 0, %p175; - mul.hi.u64 %rd499, %rd1017, %rd1023; - mul.hi.u64 %rd500, %rd398, %rd1024; - add.s64 %rd501, %rd499, %rd500; - mul.hi.u64 %rd502, %rd1018, %rd398; - add.s64 %rd503, %rd501, %rd502; - add.s64 %rd504, %rd503, %rd440; - add.s64 %rd505, %rd504, %rd494; - add.s64 %rd506, %rd505, %rd443; - add.s64 %rd507, %rd506, %rd446; - add.s64 %rd508, %rd507, %rd498; - setp.eq.s64 %p176, %rd508, %rd494; - and.pred %p177, %p175, %p176; - setp.lt.u64 %p178, %rd508, %rd494; - or.pred %p179, %p178, %p177; - selp.u64 %rd509, 1, 0, %p179; - add.s64 %rd57, %rd496, %rd509; - add.s64 %rd510, %rd497, %rd470; - add.s64 %rd59, %rd510, %rd483; - setp.lt.u64 %p180, %rd59, %rd497; - selp.u64 %rd511, 1, 0, %p180; - add.s64 %rd60, %rd508, %rd511; - setp.lt.u64 %p7, %rd60, %rd508; - mul.lo.s64 %rd512, %rd1020, %rd1024; - mul.lo.s64 %rd513, %rd512, 576460752303423504; - mov.u64 %rd514, -1; - mul.hi.u64 %rd515, %rd471, %rd514; - mul.hi.u64 %rd516, %rd512, %rd514; - neg.s64 %rd61, %rd512; - mul.hi.u64 %rd517, %rd452, %rd514; - sub.s64 %rd518, %rd516, %rd512; - setp.lt.u64 %p181, %rd518, %rd61; - selp.u64 %rd519, 1, 0, %p181; - neg.s64 %rd520, %rd452; - sub.s64 %rd521, %rd517, %rd452; - sub.s64 %rd62, %rd518, %rd452; - setp.lt.u64 %p182, %rd62, %rd518; - selp.u64 %rd522, 1, 0, %p182; - add.s64 %rd523, %rd522, %rd519; - setp.lt.u64 %p183, %rd521, %rd520; - selp.u64 %rd524, 1, 0, %p183; - add.s64 %rd525, %rd521, %rd518; - setp.lt.u64 %p184, %rd525, %rd521; - selp.u64 %rd526, 1, 0, %p184; - sub.s64 %rd527, %rd525, %rd471; - setp.lt.u64 %p185, %rd527, %rd525; - selp.u64 %rd528, 1, 0, %p185; - add.s64 %rd64, %rd523, %rd527; - setp.lt.u64 %p186, %rd64, %rd523; - selp.u64 %rd529, 1, 0, %p186; - add.s64 %rd530, %rd515, %rd513; - add.s64 %rd531, %rd530, %rd516; - sub.s64 %rd532, %rd531, %rd471; - add.s64 %rd533, %rd532, %rd521; - add.s64 %rd534, %rd533, %rd519; - sub.s64 %rd535, %rd534, %rd482; - add.s64 %rd536, %rd535, %rd524; - add.s64 %rd537, %rd536, %rd526; - add.s64 %rd538, %rd537, %rd528; - add.s64 %rd63, %rd538, %rd529; - mov.u64 %rd397, 1; - mul.hi.u64 %rd539, %rd64, %rd397; - add.s64 %rd65, %rd63, %rd539; - mul.hi.u64 %rd66, %rd398, %rd61; - mul.lo.s64 %rd540, %rd512, -576460752303423505; - add.s64 %rd67, %rd66, %rd540; - setp.lt.u64 %p9, %rd67, %rd66; - mul.hi.u64 %rd541, %rd61, %rd397; - mul.hi.u64 %rd542, %rd62, %rd397; - mul.hi.u64 %rd543, %rd61, %rd398; - mul.hi.u64 %rd544, %rd62, %rd398; - add.s64 %rd545, %rd541, %rd62; - setp.lt.u64 %p187, %rd545, %rd541; - selp.u64 %rd546, 1, 0, %p187; - add.s64 %rd547, %rd543, %rd542; - setp.lt.u64 %p188, %rd547, %rd543; - selp.u64 %rd548, 1, 0, %p188; - add.s64 %rd549, %rd547, %rd546; - setp.lt.u64 %p189, %rd549, %rd547; - selp.u64 %rd550, 1, 0, %p189; - add.s64 %rd68, %rd67, %rd65; - setp.lt.u64 %p10, %rd68, %rd67; - add.s64 %rd71, %rd549, %rd64; - setp.lt.u64 %p11, %rd71, %rd549; - selp.u64 %rd551, 1, 0, %p11; - add.s64 %rd552, %rd68, %rd12; - add.s64 %rd553, %rd552, %rd543; - add.s64 %rd554, %rd553, %rd544; - add.s64 %rd555, %rd554, %rd548; - add.s64 %rd556, %rd555, %rd550; - add.s64 %rd70, %rd556, %rd551; - add.s64 %rd557, %rd71, %rd471; - setp.lt.u64 %p190, %rd557, %rd71; - selp.u64 %rd558, 1, 0, %p190; - setp.ne.s64 %p191, %rd512, 0; - selp.u64 %rd559, 1, 0, %p191; - add.s64 %rd560, %rd518, %rd559; - add.s64 %rd561, %rd560, %rd541; - setp.eq.s64 %p192, %rd560, %rd62; - and.pred %p193, %p191, %p192; - setp.lt.u64 %p194, %rd561, %rd545; - or.pred %p195, %p194, %p193; - selp.u64 %rd562, 1, 0, %p195; - add.s64 %rd73, %rd557, %rd562; - setp.lt.u64 %p196, %rd73, %rd557; - selp.u64 %rd563, 1, 0, %p196; - add.s64 %rd564, %rd482, %rd558; - add.s64 %rd72, %rd564, %rd563; - setp.ne.s64 %p197, %rd72, 0; - setp.ne.s64 %p198, %rd73, %rd71; - or.pred %p199, %p198, %p197; - not.pred %p200, %p195; - or.pred %p201, %p199, %p200; - not.pred %p202, %p201; - mov.u64 %rd1025, %rd397; - @%p202 bra $L__BB1_10; - - setp.eq.s64 %p203, %rd72, 0; - setp.lt.u64 %p204, %rd73, %rd71; - and.pred %p205, %p204, %p203; - add.s64 %rd565, %rd72, %rd70; - setp.lt.u64 %p206, %rd565, %rd72; - or.pred %p207, %p206, %p205; - selp.u64 %rd1025, 1, 0, %p207; - -$L__BB1_10: - mul.hi.u64 %rd1014, %rd64, %rd397; - add.s64 %rd1013, %rd63, %rd1014; - setp.lt.u64 %p420, %rd1013, %rd63; - setp.lt.u64 %p415, %rd57, %rd496; - selp.u64 %rd1002, 1, 0, %p415; - mul.hi.u64 %rd1001, %rd398, %rd1018; - selp.u64 %rd566, 1, 0, %p7; - add.s64 %rd567, %rd57, %rd566; - setp.lt.u64 %p208, %rd567, %rd57; - mul.hi.u64 %rd569, %rd64, %rd398; - mul.hi.u64 %rd570, %rd63, %rd398; - mul.lo.s64 %rd571, %rd64, 576460752303423505; - mov.u64 %rd572, 576460752303423505; - add.s64 %rd573, %rd571, %rd569; - setp.lt.u64 %p209, %rd573, %rd571; - mul.lo.s64 %rd574, %rd63, 576460752303423505; - add.s64 %rd575, %rd574, %rd570; - setp.lt.u64 %p210, %rd575, %rd574; - mul.hi.u64 %rd576, %rd64, %rd572; - add.s64 %rd577, %rd575, %rd576; - setp.lt.u64 %p211, %rd577, %rd575; - selp.u64 %rd578, 1, 0, %p209; - add.s64 %rd579, %rd577, %rd578; - setp.lt.u64 %p212, %rd579, %rd577; - mul.hi.u64 %rd581, %rd63, %rd397; - add.s64 %rd582, %rd581, %rd569; - setp.lt.u64 %p213, %rd582, %rd581; - selp.u64 %rd583, 1, 0, %p420; - add.s64 %rd584, %rd582, %rd583; - setp.lt.u64 %p214, %rd584, %rd582; - mul.lo.s64 %rd585, %rd62, 576460752303423505; - mul.hi.u64 %rd586, %rd572, %rd61; - add.s64 %rd587, %rd586, %rd585; - setp.lt.u64 %p215, %rd587, %rd586; - mul.hi.u64 %rd588, %rd398, %rd62; - add.s64 %rd589, %rd588, %rd587; - setp.lt.u64 %p216, %rd589, %rd588; - selp.u64 %rd590, 1, 0, %p9; - add.s64 %rd591, %rd589, %rd590; - setp.lt.u64 %p217, %rd591, %rd589; - add.s64 %rd592, %rd570, %rd569; - add.s64 %rd593, %rd592, %rd12; - add.s64 %rd594, %rd593, %rd573; - selp.u64 %rd595, 1, 0, %p213; - add.s64 %rd596, %rd594, %rd595; - selp.u64 %rd597, 1, 0, %p214; - add.s64 %rd598, %rd596, %rd597; - setp.lt.u64 %p218, %rd598, %rd573; - selp.u64 %rd599, 1, 0, %p218; - add.s64 %rd600, %rd579, %rd599; - setp.lt.u64 %p219, %rd600, %rd579; - add.s64 %rd601, %rd591, %rd584; - setp.lt.u64 %p220, %rd601, %rd591; - add.s64 %rd602, %rd66, %rd11; - mul.hi.u64 %rd603, %rd572, %rd62; - add.s64 %rd604, %rd602, %rd603; - selp.u64 %rd605, 1, 0, %p215; - add.s64 %rd606, %rd604, %rd605; - selp.u64 %rd607, 1, 0, %p216; - add.s64 %rd608, %rd606, %rd607; - selp.u64 %rd609, 1, 0, %p217; - add.s64 %rd610, %rd608, %rd609; - selp.u64 %rd611, 1, 0, %p220; - add.s64 %rd612, %rd610, %rd611; - add.s64 %rd613, %rd612, %rd598; - setp.lt.u64 %p221, %rd613, %rd612; - setp.eq.s64 %p222, %rd612, 0; - and.pred %p223, %p220, %p222; - or.pred %p224, %p221, %p223; - selp.u64 %rd614, 1, 0, %p224; - add.s64 %rd615, %rd600, %rd614; - setp.lt.u64 %p225, %rd615, %rd600; - selp.u64 %rd616, 1, 0, %p10; - add.s64 %rd617, %rd601, %rd616; - setp.lt.u64 %p226, %rd70, %rd68; - setp.eq.s64 %p227, %rd70, %rd68; - and.pred %p228, %p11, %p227; - or.pred %p229, %p226, %p228; - selp.u64 %rd618, 1, 0, %p229; - add.s64 %rd619, %rd617, %rd618; - setp.lt.u64 %p230, %rd619, %rd601; - selp.u64 %rd620, 1, 0, %p230; - add.s64 %rd621, %rd613, %rd620; - setp.lt.u64 %p231, %rd621, %rd613; - selp.u64 %rd622, 1, 0, %p231; - add.s64 %rd623, %rd615, %rd622; - setp.lt.u64 %p232, %rd623, %rd615; - add.s64 %rd79, %rd1025, %rd59; - setp.lt.u64 %p233, %rd79, %rd1025; - selp.u64 %rd624, 1, 0, %p233; - add.s64 %rd78, %rd60, %rd624; - setp.lt.u64 %p234, %rd78, %rd60; - selp.u64 %rd625, 1, 0, %p234; - add.s64 %rd77, %rd567, %rd625; - setp.lt.u64 %p235, %rd77, %rd567; - selp.u64 %rd626, 1, 0, %p235; - add.s64 %rd627, %rd51, %rd1001; - add.s64 %rd628, %rd627, %rd55; - add.s64 %rd629, %rd628, %rd52; - add.s64 %rd630, %rd629, %rd53; - add.s64 %rd631, %rd630, %rd54; - add.s64 %rd632, %rd631, %rd56; - add.s64 %rd633, %rd632, %rd1002; - selp.u64 %rd634, 1, 0, %p208; - add.s64 %rd635, %rd633, %rd634; - add.s64 %rd76, %rd635, %rd626; - add.s64 %rd636, %rd77, %rd623; - setp.lt.u64 %p236, %rd636, %rd77; - selp.u64 %rd637, 1, 0, %p236; - add.s64 %rd638, %rd78, %rd621; - add.s64 %rd80, %rd79, %rd619; - setp.lt.u64 %p237, %rd80, %rd79; - selp.u64 %rd639, 1, 0, %p237; - add.s64 %rd81, %rd638, %rd639; - setp.eq.s64 %p238, %rd81, %rd78; - and.pred %p239, %p237, %p238; - setp.lt.u64 %p240, %rd81, %rd78; - or.pred %p241, %p240, %p239; - selp.u64 %rd640, 1, 0, %p241; - add.s64 %rd83, %rd636, %rd640; - setp.lt.u64 %p242, %rd83, %rd636; - selp.u64 %rd641, 1, 0, %p242; - add.s64 %rd642, %rd569, %rd11; - mul.hi.u64 %rd643, %rd63, %rd572; - add.s64 %rd644, %rd642, %rd643; - selp.u64 %rd645, 1, 0, %p210; - add.s64 %rd646, %rd644, %rd645; - selp.u64 %rd647, 1, 0, %p211; - add.s64 %rd648, %rd646, %rd647; - selp.u64 %rd649, 1, 0, %p212; - add.s64 %rd650, %rd648, %rd649; - selp.u64 %rd651, 1, 0, %p219; - add.s64 %rd652, %rd650, %rd651; - selp.u64 %rd653, 1, 0, %p225; - add.s64 %rd654, %rd652, %rd653; - selp.u64 %rd655, 1, 0, %p232; - add.s64 %rd656, %rd654, %rd655; - add.s64 %rd657, %rd656, %rd76; - add.s64 %rd658, %rd657, %rd637; - add.s64 %rd82, %rd658, %rd641; - setp.ne.s64 %p243, %rd82, %rd76; - setp.ne.s64 %p244, %rd83, %rd77; - or.pred %p245, %p244, %p243; - @%p245 bra $L__BB1_12; - - mov.u64 %rd1026, 1; - @%p241 bra $L__BB1_13; - -$L__BB1_12: - setp.eq.s64 %p251, %rd82, %rd76; - setp.lt.u64 %p252, %rd83, %rd77; - and.pred %p253, %p252, %p251; - setp.lt.u64 %p254, %rd82, %rd76; - or.pred %p255, %p254, %p253; - selp.u64 %rd1026, 1, 0, %p255; - -$L__BB1_13: - or.b64 %rd660, %rd81, %rd80; - or.b64 %rd661, %rd660, %rd83; - setp.eq.s64 %p256, %rd661, 0; - mov.u64 %rd662, 0; - setp.eq.s64 %p257, %rd82, 576460752303423505; - and.pred %p258, %p256, %p257; - setp.gt.u64 %p259, %rd82, 576460752303423504; - xor.pred %p260, %p259, %p258; - selp.u64 %rd663, 1, 0, %p260; - mov.u64 %rd664, -1; - mul.hi.u64 %rd665, %rd1026, %rd664; - sub.s64 %rd666, %rd665, %rd1026; - neg.s64 %rd667, %rd1026; - setp.lt.u64 %p261, %rd666, %rd667; - selp.u64 %rd668, 1, 0, %p261; - add.s64 %rd669, %rd666, %rd36; - setp.lt.u64 %p262, %rd669, %rd666; - selp.u64 %rd670, 1, 0, %p262; - add.s64 %rd671, %rd669, %rd668; - setp.lt.u64 %p263, %rd671, %rd669; - selp.u64 %rd672, 1, 0, %p263; - add.s64 %rd673, %rd671, %rd83; - setp.lt.u64 %p264, %rd673, %rd671; - selp.u64 %rd674, 1, 0, %p264; - add.s64 %rd675, %rd666, %rd81; - sub.s64 %rd676, %rd80, %rd1026; - setp.lt.u64 %p265, %rd676, %rd80; - selp.u64 %rd677, 1, 0, %p265; - add.s64 %rd678, %rd675, %rd677; - setp.eq.s64 %p266, %rd678, %rd81; - and.pred %p267, %p265, %p266; - setp.lt.u64 %p268, %rd678, %rd81; - or.pred %p269, %p268, %p267; - selp.u64 %rd679, 1, 0, %p269; - add.s64 %rd680, %rd673, %rd679; - setp.lt.u64 %p270, %rd680, %rd673; - selp.u64 %rd681, 1, 0, %p270; - mov.u64 %rd682, 1; - mul.hi.u64 %rd683, %rd663, %rd682; - mul.hi.u64 %rd684, %rd663, %rd662; - add.s64 %rd685, %rd684, %rd12; - setp.lt.u64 %p271, %rd685, %rd684; - selp.b64 %rd686, -576460752303423505, 0, %p260; - selp.b64 %rd687, -1, 0, %p271; - setp.lt.u64 %p272, %rd680, %rd685; - selp.b64 %rd688, -1, 0, %p272; - sub.s64 %rd689, %rd680, %rd685; - sub.s64 %rd690, %rd678, %rd683; - setp.lt.u64 %p273, %rd676, %rd663; - selp.b64 %rd691, -1, 0, %p273; - add.s64 %rd1023, %rd690, %rd691; - setp.eq.s64 %p274, %rd1023, %rd678; - and.pred %p275, %p273, %p274; - setp.gt.u64 %p276, %rd1023, %rd678; - or.pred %p277, %p276, %p275; - selp.u64 %rd692, 1, 0, %p277; - setp.lt.u64 %p278, %rd689, %rd692; - selp.b64 %rd693, -1, 0, %p278; - sub.s64 %rd694, %rd82, %rd38; - add.s64 %rd695, %rd694, %rd686; - mul.lo.s64 %rd696, %rd1026, -576460752303423506; - add.s64 %rd697, %rd695, %rd696; - add.s64 %rd698, %rd697, %rd36; - add.s64 %rd699, %rd698, %rd36; - add.s64 %rd700, %rd699, %rd665; - sub.s64 %rd701, %rd700, %rd684; - add.s64 %rd702, %rd701, %rd668; - add.s64 %rd703, %rd702, %rd670; - add.s64 %rd704, %rd703, %rd687; - add.s64 %rd705, %rd704, %rd672; - add.s64 %rd706, %rd705, %rd674; - add.s64 %rd707, %rd706, %rd681; - add.s64 %rd708, %rd707, %rd688; - add.s64 %rd1021, %rd708, %rd693; - sub.s64 %rd1022, %rd689, %rd692; - sub.s64 %rd1024, %rd676, %rd663; - -$L__BB1_14: - mov.u64 %rd710, 0; - shr.u32 %r13, %r13, 1; - mul.lo.s64 %rd711, %rd1017, %rd1018; - mul.hi.u64 %rd712, %rd1018, %rd1018; - add.s64 %rd713, %rd712, %rd711; - setp.lt.u64 %p279, %rd713, %rd712; - selp.u64 %rd714, 1, 0, %p279; - mul.hi.u64 %rd95, %rd1017, %rd1017; - add.s64 %rd715, %rd713, %rd711; - setp.lt.u64 %p280, %rd715, %rd713; - selp.u64 %rd716, 1, 0, %p280; - mul.lo.s64 %rd717, %rd1017, %rd1017; - mul.hi.u64 %rd718, %rd1017, %rd1018; - add.s64 %rd719, %rd718, %rd717; - setp.lt.u64 %p281, %rd719, %rd718; - selp.u64 %rd96, 1, 0, %p281; - mul.hi.u64 %rd720, %rd1018, %rd1017; - add.s64 %rd721, %rd720, %rd719; - setp.lt.u64 %p282, %rd721, %rd720; - selp.u64 %rd97, 1, 0, %p282; - add.s64 %rd722, %rd721, %rd714; - add.s64 %rd723, %rd722, %rd716; - setp.lt.u64 %p283, %rd723, %rd721; - selp.u64 %rd98, 1, 0, %p283; - mul.lo.s64 %rd724, %rd1018, %rd1019; - mul.hi.u64 %rd725, %rd1018, %rd1020; - add.s64 %rd726, %rd725, %rd724; - setp.lt.u64 %p284, %rd726, %rd725; - selp.u64 %rd727, 1, 0, %p284; - mul.lo.s64 %rd728, %rd1017, %rd1020; - add.s64 %rd729, %rd726, %rd728; - setp.lt.u64 %p285, %rd729, %rd726; - selp.u64 %rd730, 1, 0, %p285; - mul.lo.s64 %rd731, %rd1017, %rd1019; - mul.hi.u64 %rd732, %rd1017, %rd1020; - add.s64 %rd733, %rd732, %rd731; - setp.lt.u64 %p286, %rd733, %rd732; - selp.u64 %rd734, 1, 0, %p286; - mul.hi.u64 %rd735, %rd1018, %rd1019; - add.s64 %rd736, %rd735, %rd733; - setp.lt.u64 %p287, %rd736, %rd735; - selp.u64 %rd737, 1, 0, %p287; - add.s64 %rd738, %rd736, %rd727; - add.s64 %rd739, %rd738, %rd730; - setp.lt.u64 %p288, %rd739, %rd736; - selp.u64 %rd740, 1, 0, %p288; - mul.lo.s64 %rd741, %rd1019, %rd1020; - mul.hi.u64 %rd742, %rd1020, %rd1020; - add.s64 %rd743, %rd742, %rd741; - setp.lt.u64 %p289, %rd743, %rd742; - selp.u64 %rd744, 1, 0, %p289; - add.s64 %rd745, %rd743, %rd741; - setp.lt.u64 %p290, %rd745, %rd743; - selp.u64 %rd746, 1, 0, %p290; - mul.lo.s64 %rd747, %rd1019, %rd1019; - mul.hi.u64 %rd748, %rd1019, %rd1020; - add.s64 %rd749, %rd748, %rd747; - setp.lt.u64 %p291, %rd749, %rd748; - selp.u64 %rd750, 1, 0, %p291; - mul.hi.u64 %rd751, %rd1020, %rd1019; - add.s64 %rd752, %rd751, %rd749; - setp.lt.u64 %p292, %rd752, %rd751; - selp.u64 %rd753, 1, 0, %p292; - add.s64 %rd754, %rd752, %rd744; - add.s64 %rd755, %rd754, %rd746; - setp.lt.u64 %p293, %rd755, %rd752; - selp.u64 %rd756, 1, 0, %p293; - mul.lo.s64 %rd757, %rd1018, %rd1020; - shl.b64 %rd758, %rd757, 1; - mov.u64 %rd709, 1; - setp.lt.u64 %p294, %rd758, %rd757; - selp.u64 %rd759, 1, 0, %p294; - add.s64 %rd760, %rd729, %rd759; - add.s64 %rd761, %rd760, %rd729; - setp.lt.u64 %p295, %rd761, %rd760; - setp.eq.s64 %p296, %rd760, 0; - and.pred %p297, %p294, %p296; - or.pred %p298, %p295, %p297; - selp.u64 %rd762, 1, 0, %p298; - add.s64 %rd763, %rd755, %rd758; - setp.lt.u64 %p299, %rd763, %rd755; - selp.u64 %rd764, 1, 0, %p299; - mul.hi.u64 %rd765, %rd710, %rd1020; - add.s64 %rd766, %rd761, %rd765; - mul.hi.u64 %rd767, %rd1019, %rd1019; - add.s64 %rd768, %rd766, %rd767; - mul.hi.u64 %rd769, %rd1020, %rd710; - add.s64 %rd770, %rd768, %rd769; - add.s64 %rd771, %rd770, %rd750; - add.s64 %rd772, %rd771, %rd753; - add.s64 %rd773, %rd772, %rd756; - add.s64 %rd774, %rd773, %rd764; - setp.eq.s64 %p300, %rd774, %rd761; - and.pred %p301, %p299, %p300; - setp.lt.u64 %p302, %rd774, %rd761; - or.pred %p303, %p302, %p301; - selp.u64 %rd775, 1, 0, %p303; - mul.lo.s64 %rd776, %rd1018, %rd1018; - add.s64 %rd777, %rd739, %rd776; - setp.lt.u64 %p304, %rd777, %rd739; - selp.u64 %rd778, 1, 0, %p304; - mul.hi.u64 %rd99, %rd1018, %rd710; - add.s64 %rd779, %rd99, %rd715; - add.s64 %rd780, %rd779, %rd765; - mul.hi.u64 %rd781, %rd1017, %rd1019; - add.s64 %rd782, %rd780, %rd781; - add.s64 %rd783, %rd782, %rd734; - add.s64 %rd784, %rd783, %rd737; - add.s64 %rd785, %rd784, %rd740; - add.s64 %rd786, %rd785, %rd778; - setp.eq.s64 %p305, %rd786, %rd715; - and.pred %p306, %p304, %p305; - setp.lt.u64 %p307, %rd786, %rd715; - or.pred %p308, %p307, %p306; - selp.u64 %rd787, 1, 0, %p308; - add.s64 %rd788, %rd723, %rd787; - setp.lt.u64 %p309, %rd788, %rd723; - selp.u64 %rd100, 1, 0, %p309; - add.s64 %rd789, %rd739, %rd777; - setp.lt.u64 %p310, %rd789, %rd739; - selp.u64 %rd790, 1, 0, %p310; - add.s64 %rd791, %rd781, %rd765; - add.s64 %rd792, %rd791, %rd99; - add.s64 %rd793, %rd792, %rd734; - add.s64 %rd794, %rd793, %rd786; - add.s64 %rd795, %rd794, %rd737; - add.s64 %rd796, %rd795, %rd740; - add.s64 %rd797, %rd796, %rd790; - setp.eq.s64 %p311, %rd797, %rd786; - and.pred %p312, %p310, %p311; - setp.lt.u64 %p313, %rd797, %rd786; - or.pred %p314, %p313, %p312; - selp.u64 %rd798, 1, 0, %p314; - add.s64 %rd101, %rd788, %rd798; - setp.lt.u64 %p12, %rd101, %rd788; - selp.u64 %rd102, 1, 0, %p12; - add.s64 %rd799, %rd789, %rd762; - add.s64 %rd103, %rd799, %rd775; - setp.lt.u64 %p315, %rd103, %rd789; - selp.u64 %rd800, 1, 0, %p315; - add.s64 %rd104, %rd797, %rd800; - setp.lt.u64 %p13, %rd104, %rd797; - mul.lo.s64 %rd801, %rd1020, %rd1020; - mul.lo.s64 %rd802, %rd801, 576460752303423504; - mov.u64 %rd803, -1; - mul.hi.u64 %rd804, %rd763, %rd803; - mul.hi.u64 %rd805, %rd801, %rd803; - neg.s64 %rd105, %rd801; - mul.hi.u64 %rd806, %rd745, %rd803; - sub.s64 %rd807, %rd805, %rd801; - setp.lt.u64 %p316, %rd807, %rd105; - selp.u64 %rd808, 1, 0, %p316; - neg.s64 %rd809, %rd745; - sub.s64 %rd810, %rd806, %rd745; - sub.s64 %rd106, %rd807, %rd745; - setp.lt.u64 %p317, %rd106, %rd807; - selp.u64 %rd811, 1, 0, %p317; - add.s64 %rd812, %rd811, %rd808; - setp.lt.u64 %p318, %rd810, %rd809; - selp.u64 %rd813, 1, 0, %p318; - add.s64 %rd814, %rd810, %rd807; - setp.lt.u64 %p319, %rd814, %rd810; - selp.u64 %rd815, 1, 0, %p319; - sub.s64 %rd816, %rd814, %rd763; - setp.lt.u64 %p320, %rd816, %rd814; - selp.u64 %rd817, 1, 0, %p320; - add.s64 %rd108, %rd812, %rd816; - setp.lt.u64 %p321, %rd108, %rd812; - selp.u64 %rd818, 1, 0, %p321; - add.s64 %rd819, %rd804, %rd802; - add.s64 %rd820, %rd819, %rd805; - sub.s64 %rd821, %rd820, %rd763; - add.s64 %rd822, %rd821, %rd810; - add.s64 %rd823, %rd822, %rd808; - sub.s64 %rd824, %rd823, %rd774; - add.s64 %rd825, %rd824, %rd813; - add.s64 %rd826, %rd825, %rd815; - add.s64 %rd827, %rd826, %rd817; - add.s64 %rd107, %rd827, %rd818; - mul.hi.u64 %rd828, %rd108, %rd709; - add.s64 %rd109, %rd107, %rd828; - mul.hi.u64 %rd110, %rd710, %rd105; - mul.lo.s64 %rd829, %rd801, -576460752303423505; - add.s64 %rd111, %rd110, %rd829; - setp.lt.u64 %p15, %rd111, %rd110; - mul.hi.u64 %rd830, %rd105, %rd709; - mul.hi.u64 %rd831, %rd106, %rd709; - mul.hi.u64 %rd832, %rd105, %rd710; - mul.hi.u64 %rd833, %rd106, %rd710; - add.s64 %rd834, %rd830, %rd106; - setp.lt.u64 %p322, %rd834, %rd830; - selp.u64 %rd835, 1, 0, %p322; - add.s64 %rd836, %rd832, %rd831; - setp.lt.u64 %p323, %rd836, %rd832; - selp.u64 %rd837, 1, 0, %p323; - add.s64 %rd838, %rd836, %rd835; - setp.lt.u64 %p324, %rd838, %rd836; - selp.u64 %rd839, 1, 0, %p324; - add.s64 %rd112, %rd111, %rd109; - setp.lt.u64 %p16, %rd112, %rd111; - add.s64 %rd115, %rd838, %rd108; - setp.lt.u64 %p17, %rd115, %rd838; - selp.u64 %rd840, 1, 0, %p17; - add.s64 %rd841, %rd112, %rd12; - add.s64 %rd842, %rd841, %rd832; - add.s64 %rd843, %rd842, %rd833; - add.s64 %rd844, %rd843, %rd837; - add.s64 %rd845, %rd844, %rd839; - add.s64 %rd114, %rd845, %rd840; - add.s64 %rd846, %rd115, %rd763; - setp.lt.u64 %p325, %rd846, %rd115; - selp.u64 %rd847, 1, 0, %p325; - setp.ne.s64 %p326, %rd801, 0; - selp.u64 %rd848, 1, 0, %p326; - add.s64 %rd849, %rd807, %rd848; - add.s64 %rd850, %rd849, %rd830; - setp.eq.s64 %p327, %rd849, %rd106; - and.pred %p328, %p326, %p327; - setp.lt.u64 %p329, %rd850, %rd834; - or.pred %p330, %p329, %p328; - selp.u64 %rd851, 1, 0, %p330; - add.s64 %rd117, %rd846, %rd851; - setp.lt.u64 %p331, %rd117, %rd846; - selp.u64 %rd852, 1, 0, %p331; - add.s64 %rd853, %rd774, %rd847; - add.s64 %rd116, %rd853, %rd852; - setp.ne.s64 %p332, %rd116, 0; - setp.ne.s64 %p333, %rd117, %rd115; - or.pred %p334, %p333, %p332; - not.pred %p335, %p330; - or.pred %p336, %p334, %p335; - not.pred %p337, %p336; - mov.u64 %rd1031, %rd709; - @%p337 bra $L__BB1_16; - - setp.eq.s64 %p338, %rd116, 0; - setp.lt.u64 %p339, %rd117, %rd115; - and.pred %p340, %p339, %p338; - add.s64 %rd854, %rd116, %rd114; - setp.lt.u64 %p341, %rd854, %rd116; - or.pred %p342, %p341, %p340; - selp.u64 %rd1031, 1, 0, %p342; - -$L__BB1_16: - mul.hi.u64 %rd1006, %rd710, %rd1018; - mul.hi.u64 %rd1005, %rd108, %rd709; - add.s64 %rd1004, %rd107, %rd1005; - setp.lt.u64 %p416, %rd1004, %rd107; - selp.u64 %rd855, 1, 0, %p13; - add.s64 %rd856, %rd101, %rd855; - setp.lt.u64 %p343, %rd856, %rd101; - mul.hi.u64 %rd858, %rd108, %rd710; - mul.hi.u64 %rd859, %rd107, %rd710; - mul.lo.s64 %rd860, %rd108, 576460752303423505; - mov.u64 %rd861, 576460752303423505; - add.s64 %rd862, %rd860, %rd858; - setp.lt.u64 %p344, %rd862, %rd860; - mul.lo.s64 %rd863, %rd107, 576460752303423505; - add.s64 %rd864, %rd863, %rd859; - setp.lt.u64 %p345, %rd864, %rd863; - mul.hi.u64 %rd865, %rd108, %rd861; - add.s64 %rd866, %rd864, %rd865; - setp.lt.u64 %p346, %rd866, %rd864; - selp.u64 %rd867, 1, 0, %p344; - add.s64 %rd868, %rd866, %rd867; - setp.lt.u64 %p347, %rd868, %rd866; - mul.hi.u64 %rd870, %rd107, %rd709; - add.s64 %rd871, %rd870, %rd858; - setp.lt.u64 %p348, %rd871, %rd870; - selp.u64 %rd872, 1, 0, %p416; - add.s64 %rd873, %rd871, %rd872; - setp.lt.u64 %p349, %rd873, %rd871; - mul.lo.s64 %rd874, %rd106, 576460752303423505; - mul.hi.u64 %rd875, %rd861, %rd105; - add.s64 %rd876, %rd875, %rd874; - setp.lt.u64 %p350, %rd876, %rd875; - mul.hi.u64 %rd877, %rd710, %rd106; - add.s64 %rd878, %rd877, %rd876; - setp.lt.u64 %p351, %rd878, %rd877; - selp.u64 %rd879, 1, 0, %p15; - add.s64 %rd880, %rd878, %rd879; - setp.lt.u64 %p352, %rd880, %rd878; - add.s64 %rd881, %rd859, %rd858; - add.s64 %rd882, %rd881, %rd12; - add.s64 %rd883, %rd882, %rd862; - selp.u64 %rd884, 1, 0, %p348; - add.s64 %rd885, %rd883, %rd884; - selp.u64 %rd886, 1, 0, %p349; - add.s64 %rd887, %rd885, %rd886; - setp.lt.u64 %p353, %rd887, %rd862; - selp.u64 %rd888, 1, 0, %p353; - add.s64 %rd889, %rd868, %rd888; - setp.lt.u64 %p354, %rd889, %rd868; - add.s64 %rd890, %rd880, %rd873; - setp.lt.u64 %p355, %rd890, %rd880; - add.s64 %rd891, %rd110, %rd11; - mul.hi.u64 %rd892, %rd861, %rd106; - add.s64 %rd893, %rd891, %rd892; - selp.u64 %rd894, 1, 0, %p350; - add.s64 %rd895, %rd893, %rd894; - selp.u64 %rd896, 1, 0, %p351; - add.s64 %rd897, %rd895, %rd896; - selp.u64 %rd898, 1, 0, %p352; - add.s64 %rd899, %rd897, %rd898; - selp.u64 %rd900, 1, 0, %p355; - add.s64 %rd901, %rd899, %rd900; - add.s64 %rd902, %rd901, %rd887; - setp.lt.u64 %p356, %rd902, %rd901; - setp.eq.s64 %p357, %rd901, 0; - and.pred %p358, %p355, %p357; - or.pred %p359, %p356, %p358; - selp.u64 %rd903, 1, 0, %p359; - add.s64 %rd904, %rd889, %rd903; - setp.lt.u64 %p360, %rd904, %rd889; - selp.u64 %rd905, 1, 0, %p16; - add.s64 %rd906, %rd890, %rd905; - setp.lt.u64 %p361, %rd114, %rd112; - setp.eq.s64 %p362, %rd114, %rd112; - and.pred %p363, %p17, %p362; - or.pred %p364, %p361, %p363; - selp.u64 %rd907, 1, 0, %p364; - add.s64 %rd908, %rd906, %rd907; - setp.lt.u64 %p365, %rd908, %rd890; - selp.u64 %rd909, 1, 0, %p365; - add.s64 %rd910, %rd902, %rd909; - setp.lt.u64 %p366, %rd910, %rd902; - selp.u64 %rd911, 1, 0, %p366; - add.s64 %rd912, %rd904, %rd911; - setp.lt.u64 %p367, %rd912, %rd904; - add.s64 %rd123, %rd1031, %rd103; - setp.lt.u64 %p368, %rd123, %rd1031; - selp.u64 %rd913, 1, 0, %p368; - add.s64 %rd122, %rd104, %rd913; - setp.lt.u64 %p369, %rd122, %rd104; - selp.u64 %rd914, 1, 0, %p369; - add.s64 %rd121, %rd856, %rd914; - setp.lt.u64 %p370, %rd121, %rd856; - selp.u64 %rd915, 1, 0, %p370; - add.s64 %rd916, %rd95, %rd1006; - add.s64 %rd917, %rd916, %rd99; - add.s64 %rd918, %rd917, %rd96; - add.s64 %rd919, %rd918, %rd97; - add.s64 %rd920, %rd919, %rd98; - add.s64 %rd921, %rd920, %rd100; - add.s64 %rd922, %rd921, %rd102; - selp.u64 %rd923, 1, 0, %p343; - add.s64 %rd924, %rd922, %rd923; - add.s64 %rd120, %rd924, %rd915; - add.s64 %rd925, %rd121, %rd912; - setp.lt.u64 %p371, %rd925, %rd121; - selp.u64 %rd926, 1, 0, %p371; - add.s64 %rd927, %rd122, %rd910; - add.s64 %rd124, %rd123, %rd908; - setp.lt.u64 %p372, %rd124, %rd123; - selp.u64 %rd928, 1, 0, %p372; - add.s64 %rd125, %rd927, %rd928; - setp.eq.s64 %p373, %rd125, %rd122; - and.pred %p374, %p372, %p373; - setp.lt.u64 %p375, %rd125, %rd122; - or.pred %p376, %p375, %p374; - selp.u64 %rd929, 1, 0, %p376; - add.s64 %rd127, %rd925, %rd929; - setp.lt.u64 %p377, %rd127, %rd925; - selp.u64 %rd930, 1, 0, %p377; - add.s64 %rd931, %rd858, %rd11; - mul.hi.u64 %rd932, %rd107, %rd861; - add.s64 %rd933, %rd931, %rd932; - selp.u64 %rd934, 1, 0, %p345; - add.s64 %rd935, %rd933, %rd934; - selp.u64 %rd936, 1, 0, %p346; - add.s64 %rd937, %rd935, %rd936; - selp.u64 %rd938, 1, 0, %p347; - add.s64 %rd939, %rd937, %rd938; - selp.u64 %rd940, 1, 0, %p354; - add.s64 %rd941, %rd939, %rd940; - selp.u64 %rd942, 1, 0, %p360; - add.s64 %rd943, %rd941, %rd942; - selp.u64 %rd944, 1, 0, %p367; - add.s64 %rd945, %rd943, %rd944; - add.s64 %rd946, %rd945, %rd120; - add.s64 %rd947, %rd946, %rd926; - add.s64 %rd126, %rd947, %rd930; - setp.ne.s64 %p378, %rd126, %rd120; - setp.ne.s64 %p379, %rd127, %rd121; - or.pred %p380, %p379, %p378; - @%p380 bra $L__BB1_18; - - mov.u64 %rd1032, 1; - @%p376 bra $L__BB1_19; - -$L__BB1_18: - setp.eq.s64 %p386, %rd126, %rd120; - setp.lt.u64 %p387, %rd127, %rd121; - and.pred %p388, %p387, %p386; - setp.lt.u64 %p389, %rd126, %rd120; - or.pred %p390, %p389, %p388; - selp.u64 %rd1032, 1, 0, %p390; - -$L__BB1_19: - or.b64 %rd949, %rd125, %rd124; - or.b64 %rd950, %rd949, %rd127; - setp.eq.s64 %p391, %rd950, 0; - mov.u64 %rd951, 0; - setp.eq.s64 %p392, %rd126, 576460752303423505; - and.pred %p393, %p391, %p392; - setp.gt.u64 %p394, %rd126, 576460752303423504; - xor.pred %p395, %p394, %p393; - selp.u64 %rd952, 1, 0, %p395; - mov.u64 %rd953, -1; - mul.hi.u64 %rd954, %rd1032, %rd953; - sub.s64 %rd955, %rd954, %rd1032; - neg.s64 %rd956, %rd1032; - setp.lt.u64 %p396, %rd955, %rd956; - selp.u64 %rd957, 1, 0, %p396; - add.s64 %rd958, %rd955, %rd36; - setp.lt.u64 %p397, %rd958, %rd955; - selp.u64 %rd959, 1, 0, %p397; - add.s64 %rd960, %rd958, %rd957; - setp.lt.u64 %p398, %rd960, %rd958; - selp.u64 %rd961, 1, 0, %p398; - add.s64 %rd962, %rd960, %rd127; - setp.lt.u64 %p399, %rd962, %rd960; - selp.u64 %rd963, 1, 0, %p399; - add.s64 %rd964, %rd955, %rd125; - sub.s64 %rd965, %rd124, %rd1032; - setp.lt.u64 %p400, %rd965, %rd124; - selp.u64 %rd966, 1, 0, %p400; - add.s64 %rd967, %rd964, %rd966; - setp.eq.s64 %p401, %rd967, %rd125; - and.pred %p402, %p400, %p401; - setp.lt.u64 %p403, %rd967, %rd125; - or.pred %p404, %p403, %p402; - selp.u64 %rd968, 1, 0, %p404; - add.s64 %rd969, %rd962, %rd968; - setp.lt.u64 %p405, %rd969, %rd962; - selp.u64 %rd970, 1, 0, %p405; - mov.u64 %rd971, 1; - mul.hi.u64 %rd972, %rd952, %rd971; - mul.hi.u64 %rd973, %rd952, %rd951; - add.s64 %rd974, %rd973, %rd12; - setp.lt.u64 %p406, %rd974, %rd973; - selp.b64 %rd975, -576460752303423505, 0, %p395; - selp.b64 %rd976, -1, 0, %p406; - setp.lt.u64 %p407, %rd969, %rd974; - selp.b64 %rd977, -1, 0, %p407; - sub.s64 %rd978, %rd969, %rd974; - sub.s64 %rd979, %rd967, %rd972; - setp.lt.u64 %p408, %rd965, %rd952; - selp.b64 %rd980, -1, 0, %p408; - add.s64 %rd1019, %rd979, %rd980; - setp.eq.s64 %p409, %rd1019, %rd967; - and.pred %p410, %p408, %p409; - setp.gt.u64 %p411, %rd1019, %rd967; - or.pred %p412, %p411, %p410; - selp.u64 %rd981, 1, 0, %p412; - setp.lt.u64 %p413, %rd978, %rd981; - selp.b64 %rd982, -1, 0, %p413; - sub.s64 %rd983, %rd126, %rd38; - add.s64 %rd984, %rd983, %rd975; - mul.lo.s64 %rd985, %rd1032, -576460752303423506; - add.s64 %rd986, %rd984, %rd985; - add.s64 %rd987, %rd986, %rd36; - add.s64 %rd988, %rd987, %rd36; - add.s64 %rd989, %rd988, %rd954; - sub.s64 %rd990, %rd989, %rd973; - add.s64 %rd991, %rd990, %rd957; - add.s64 %rd992, %rd991, %rd959; - add.s64 %rd993, %rd992, %rd976; - add.s64 %rd994, %rd993, %rd961; - add.s64 %rd995, %rd994, %rd963; - add.s64 %rd996, %rd995, %rd970; - add.s64 %rd997, %rd996, %rd977; - add.s64 %rd1017, %rd997, %rd982; - sub.s64 %rd1018, %rd978, %rd981; - sub.s64 %rd1020, %rd965, %rd952; - setp.ne.s32 %p414, %r13, 0; - @%p414 bra $L__BB1_7; - -$L__BB1_20: - ld.param.u64 %rd1003, [calc_twiddles_param_0]; - mov.u32 %r12, %tid.x; - mov.u32 %r11, %ctaid.x; - mov.u32 %r10, %ntid.x; - mad.lo.s32 %r9, %r10, %r11, %r12; - cvta.to.global.u64 %rd998, %rd1003; - mul.wide.u32 %rd999, %r9, 32; - add.s64 %rd1000, %rd998, %rd999; - st.global.u64 [%rd1000], %rd1021; - st.global.u64 [%rd1000+8], %rd1022; - st.global.u64 [%rd1000+16], %rd1023; - st.global.u64 [%rd1000+24], %rd1024; - -$L__BB1_21: - ret; - -} - // .globl calc_twiddles_bitrev -.visible .entry calc_twiddles_bitrev( - .param .u64 calc_twiddles_bitrev_param_0, - .param .u64 calc_twiddles_bitrev_param_1, - .param .u32 calc_twiddles_bitrev_param_2 -) -{ - .reg .pred %p<421>; - .reg .b32 %r<19>; - .reg .b64 %rd<1035>; - - - ld.param.u64 %rd139, [calc_twiddles_bitrev_param_1]; - ld.param.u32 %r5, [calc_twiddles_bitrev_param_2]; - mov.u32 %r6, %ctaid.x; - mov.u32 %r7, %ntid.x; - mov.u32 %r8, %tid.x; - mad.lo.s32 %r1, %r7, %r6, %r8; - setp.ge.u32 %p18, %r1, %r5; - @%p18 bra $L__BB2_21; - - cvta.to.global.u64 %rd141, %rd139; - ld.global.u64 %rd1015, [%rd141]; - mov.u64 %rd142, 0; - ld.global.u64 %rd1016, [%rd141+8]; - ld.global.u64 %rd1017, [%rd141+16]; - ld.global.u64 %rd1018, [%rd141+24]; - clz.b32 %r9, %r5; - add.s32 %r10, %r9, 1; - brev.b32 %r11, %r1; - shr.u32 %r12, %r11, %r10; - setp.eq.s32 %p19, %r5, 1; - selp.b32 %r18, %r1, %r12, %p19; - mov.u64 %rd143, 5151653887; - mul.hi.u64 %rd144, %rd142, %rd143; - mov.u64 %rd145, -2802499714047; - mul.hi.u64 %rd5, %rd142, %rd145; - add.s64 %rd6, %rd144, %rd5; - mov.u64 %rd140, 1; - mov.u64 %rd146, -9469952; - mul.hi.u64 %rd7, %rd146, %rd140; - mul.hi.u64 %rd147, %rd140, %rd145; - setp.gt.u64 %p20, %rd147, -5151653888; - selp.u64 %rd148, 1, 0, %p20; - add.s64 %rd149, %rd147, 5151653887; - mul.hi.u64 %rd150, %rd140, %rd143; - add.s64 %rd151, %rd150, %rd5; - setp.lt.u64 %p21, %rd151, %rd150; - selp.u64 %rd152, 1, 0, %p21; - add.s64 %rd153, %rd151, %rd148; - setp.lt.u64 %p22, %rd153, %rd151; - selp.u64 %rd154, 1, 0, %p22; - add.s64 %rd155, %rd5, %rd7; - add.s64 %rd8, %rd155, 576413109808302096; - setp.gt.u64 %p2, %rd153, 9469951; - selp.u64 %rd156, 1, 0, %p2; - add.s64 %rd157, %rd6, %rd8; - mul.hi.u64 %rd158, %rd140, %rd142; - add.s64 %rd159, %rd157, %rd158; - add.s64 %rd160, %rd159, %rd152; - add.s64 %rd161, %rd160, %rd154; - add.s64 %rd10, %rd161, %rd156; - add.s64 %rd162, %rd153, -9469952; - mul.hi.u64 %rd11, %rd142, %rd142; - mul.hi.u64 %rd12, %rd142, %rd140; - mov.u64 %rd163, 9469952; - sub.s64 %rd164, %rd163, %rd153; - mov.u64 %rd165, -1; - mul.hi.u64 %rd166, %rd162, %rd165; - mul.hi.u64 %rd167, %rd149, %rd165; - mov.u64 %rd168, -5151653887; - sub.s64 %rd169, %rd168, %rd147; - mul.hi.u64 %rd170, %rd145, %rd165; - setp.gt.u64 %p23, %rd170, -2802499714048; - selp.u64 %rd171, 1, 0, %p23; - add.s64 %rd172, %rd170, 2802499714047; - mov.u64 %rd173, 2802499714047; - add.s64 %rd174, %rd167, %rd169; - setp.lt.u64 %p24, %rd174, %rd167; - add.s64 %rd16, %rd172, %rd169; - setp.lt.u64 %p25, %rd16, %rd172; - selp.u64 %rd175, 1, 0, %p25; - add.s64 %rd176, %rd175, %rd171; - selp.u64 %rd177, 1, 0, %p24; - add.s64 %rd178, %rd174, %rd172; - setp.lt.u64 %p26, %rd178, %rd174; - selp.u64 %rd179, 1, 0, %p26; - add.s64 %rd180, %rd178, %rd164; - setp.lt.u64 %p27, %rd180, %rd178; - selp.u64 %rd181, 1, 0, %p27; - add.s64 %rd14, %rd176, %rd180; - setp.lt.u64 %p28, %rd14, %rd176; - selp.u64 %rd182, 1, 0, %p28; - add.s64 %rd183, %rd166, %rd164; - add.s64 %rd184, %rd183, %rd170; - add.s64 %rd185, %rd184, %rd174; - add.s64 %rd186, %rd185, %rd171; - add.s64 %rd187, %rd186, %rd177; - add.s64 %rd188, %rd187, 576415912307998736; - sub.s64 %rd189, %rd188, %rd10; - add.s64 %rd190, %rd189, %rd179; - add.s64 %rd191, %rd190, %rd181; - add.s64 %rd13, %rd191, %rd182; - mul.hi.u64 %rd192, %rd14, %rd140; - add.s64 %rd15, %rd13, %rd192; - mul.hi.u64 %rd17, %rd142, %rd173; - add.s64 %rd193, %rd17, -576413109808284689; - mul.hi.u64 %rd194, %rd16, %rd140; - mul.hi.u64 %rd195, %rd16, %rd142; - mul.hi.u64 %rd196, %rd173, %rd140; - add.s64 %rd197, %rd196, %rd16; - setp.lt.u64 %p29, %rd197, %rd196; - selp.u64 %rd198, 1, 0, %p29; - mul.hi.u64 %rd199, %rd173, %rd142; - add.s64 %rd200, %rd199, %rd194; - setp.lt.u64 %p30, %rd200, %rd199; - selp.u64 %rd201, 1, 0, %p30; - add.s64 %rd202, %rd200, %rd198; - setp.lt.u64 %p31, %rd202, %rd200; - selp.u64 %rd203, 1, 0, %p31; - add.s64 %rd18, %rd193, %rd15; - setp.lt.u64 %p4, %rd18, %rd193; - add.s64 %rd21, %rd202, %rd14; - setp.lt.u64 %p5, %rd21, %rd202; - selp.u64 %rd204, 1, 0, %p5; - add.s64 %rd205, %rd18, %rd12; - add.s64 %rd206, %rd205, %rd199; - add.s64 %rd207, %rd206, %rd195; - add.s64 %rd208, %rd207, %rd201; - add.s64 %rd209, %rd208, %rd203; - add.s64 %rd20, %rd209, %rd204; - add.s64 %rd210, %rd21, %rd162; - setp.lt.u64 %p32, %rd210, %rd21; - selp.u64 %rd211, 1, 0, %p32; - add.s64 %rd212, %rd170, %rd196; - add.s64 %rd213, %rd212, 2802499714048; - setp.le.u64 %p33, %rd213, %rd197; - selp.u64 %rd214, 1, 0, %p33; - add.s64 %rd23, %rd210, %rd214; - setp.lt.u64 %p34, %rd23, %rd210; - selp.u64 %rd215, 1, 0, %p34; - add.s64 %rd216, %rd10, %rd211; - add.s64 %rd22, %rd216, %rd215; - setp.eq.s64 %p35, %rd22, 0; - setp.eq.s64 %p36, %rd23, %rd21; - and.pred %p37, %p36, %p35; - and.pred %p38, %p33, %p37; - mov.u64 %rd1013, %rd140; - @%p38 bra $L__BB2_3; - - setp.lt.u64 %p40, %rd23, %rd21; - and.pred %p41, %p40, %p35; - add.s64 %rd217, %rd22, %rd20; - setp.lt.u64 %p42, %rd217, %rd22; - or.pred %p43, %p42, %p41; - selp.u64 %rd1013, 1, 0, %p43; - -$L__BB2_3: - mul.hi.u64 %rd1010, %rd14, %rd140; - add.s64 %rd1009, %rd13, %rd1010; - setp.lt.u64 %p419, %rd1009, %rd13; - mov.u64 %rd1008, 5151653887; - mul.hi.u64 %rd1007, %rd142, %rd1008; - setp.lt.u64 %p418, %rd6, %rd1007; - mul.hi.u64 %rd220, %rd142, %rd146; - mov.u64 %rd221, 576413109808302096; - mul.hi.u64 %rd222, %rd142, %rd221; - add.s64 %rd223, %rd222, %rd220; - setp.lt.u64 %p44, %rd223, %rd222; - mul.hi.u64 %rd224, %rd146, %rd142; - mul.hi.u64 %rd226, %rd221, %rd140; - add.s64 %rd227, %rd224, %rd226; - setp.lt.u64 %p45, %rd227, %rd224; - setp.gt.u64 %p46, %rd7, -576413109808302097; - selp.u64 %rd228, 1, 0, %p46; - add.s64 %rd229, %rd227, %rd228; - setp.lt.u64 %p47, %rd229, %rd227; - add.s64 %rd230, %rd11, %rd220; - add.s64 %rd231, %rd6, %rd230; - selp.u64 %rd232, 1, 0, %p418; - add.s64 %rd233, %rd231, %rd232; - setp.lt.u64 %p48, %rd233, %rd220; - selp.u64 %rd234, 1, 0, %p48; - add.s64 %rd235, %rd223, %rd234; - setp.lt.u64 %p49, %rd235, %rd223; - add.s64 %rd236, %rd229, %rd6; - setp.lt.u64 %p50, %rd236, %rd229; - mul.hi.u64 %rd237, %rd221, %rd142; - add.s64 %rd238, %rd224, %rd12; - add.s64 %rd239, %rd238, %rd237; - add.s64 %rd240, %rd239, %rd233; - selp.u64 %rd241, 1, 0, %p45; - add.s64 %rd242, %rd240, %rd241; - selp.u64 %rd243, 1, 0, %p47; - add.s64 %rd244, %rd242, %rd243; - selp.u64 %rd245, 1, 0, %p50; - add.s64 %rd246, %rd244, %rd245; - setp.lt.u64 %p51, %rd246, %rd233; - setp.eq.s64 %p52, %rd246, %rd233; - and.pred %p53, %p50, %p52; - or.pred %p54, %p51, %p53; - selp.u64 %rd247, 1, 0, %p54; - add.s64 %rd248, %rd235, %rd247; - setp.lt.u64 %p55, %rd248, %rd235; - setp.lt.u64 %p56, %rd8, %rd5; - selp.u64 %rd249, 1, 0, %p56; - add.s64 %rd250, %rd236, %rd249; - setp.lt.u64 %p57, %rd10, %rd8; - setp.eq.s64 %p58, %rd10, %rd8; - and.pred %p59, %p2, %p58; - or.pred %p60, %p57, %p59; - selp.u64 %rd251, 1, 0, %p60; - add.s64 %rd252, %rd250, %rd251; - setp.lt.u64 %p61, %rd252, %rd236; - selp.u64 %rd253, 1, 0, %p61; - add.s64 %rd254, %rd246, %rd253; - setp.lt.u64 %p62, %rd254, %rd246; - selp.u64 %rd255, 1, 0, %p62; - add.s64 %rd256, %rd248, %rd255; - setp.lt.u64 %p63, %rd256, %rd248; - mul.hi.u64 %rd257, %rd14, %rd142; - mul.hi.u64 %rd258, %rd13, %rd142; - mul.lo.s64 %rd259, %rd14, 576460752303423505; - mov.u64 %rd260, 576460752303423505; - add.s64 %rd261, %rd259, %rd257; - setp.lt.u64 %p64, %rd261, %rd259; - mul.lo.s64 %rd262, %rd13, 576460752303423505; - add.s64 %rd263, %rd262, %rd258; - setp.lt.u64 %p65, %rd263, %rd262; - mul.hi.u64 %rd264, %rd14, %rd260; - add.s64 %rd265, %rd263, %rd264; - setp.lt.u64 %p66, %rd265, %rd263; - selp.u64 %rd266, 1, 0, %p64; - add.s64 %rd267, %rd265, %rd266; - setp.lt.u64 %p67, %rd267, %rd265; - mul.hi.u64 %rd268, %rd13, %rd140; - add.s64 %rd269, %rd268, %rd257; - setp.lt.u64 %p68, %rd269, %rd268; - selp.u64 %rd270, 1, 0, %p419; - add.s64 %rd271, %rd269, %rd270; - setp.lt.u64 %p69, %rd271, %rd269; - mul.hi.u64 %rd273, %rd260, %rd173; - mul.lo.s64 %rd274, %rd16, 576460752303423505; - add.s64 %rd275, %rd273, %rd274; - setp.lt.u64 %p70, %rd275, %rd273; - mul.hi.u64 %rd276, %rd142, %rd16; - add.s64 %rd277, %rd276, %rd275; - setp.lt.u64 %p71, %rd277, %rd276; - setp.gt.u64 %p72, %rd17, 576413109808284688; - selp.u64 %rd278, 1, 0, %p72; - add.s64 %rd279, %rd277, %rd278; - setp.lt.u64 %p73, %rd279, %rd277; - add.s64 %rd280, %rd257, %rd12; - add.s64 %rd281, %rd280, %rd258; - add.s64 %rd282, %rd281, %rd261; - selp.u64 %rd283, 1, 0, %p68; - add.s64 %rd284, %rd282, %rd283; - selp.u64 %rd285, 1, 0, %p69; - add.s64 %rd286, %rd284, %rd285; - setp.lt.u64 %p74, %rd286, %rd261; - selp.u64 %rd287, 1, 0, %p74; - add.s64 %rd288, %rd267, %rd287; - setp.lt.u64 %p75, %rd288, %rd267; - add.s64 %rd289, %rd271, %rd279; - setp.lt.u64 %p76, %rd289, %rd271; - add.s64 %rd290, %rd17, %rd11; - mul.hi.u64 %rd291, %rd260, %rd16; - add.s64 %rd292, %rd290, %rd291; - selp.u64 %rd293, 1, 0, %p70; - add.s64 %rd294, %rd292, %rd293; - selp.u64 %rd295, 1, 0, %p71; - add.s64 %rd296, %rd294, %rd295; - selp.u64 %rd297, 1, 0, %p73; - add.s64 %rd298, %rd296, %rd297; - selp.u64 %rd299, 1, 0, %p76; - add.s64 %rd300, %rd298, %rd299; - add.s64 %rd301, %rd300, %rd286; - setp.lt.u64 %p77, %rd301, %rd300; - setp.eq.s64 %p78, %rd300, 0; - and.pred %p79, %p76, %p78; - or.pred %p80, %p77, %p79; - selp.u64 %rd302, 1, 0, %p80; - add.s64 %rd303, %rd288, %rd302; - setp.lt.u64 %p81, %rd303, %rd288; - selp.u64 %rd304, 1, 0, %p4; - add.s64 %rd305, %rd289, %rd304; - setp.lt.u64 %p82, %rd20, %rd18; - setp.eq.s64 %p83, %rd20, %rd18; - and.pred %p84, %p5, %p83; - or.pred %p85, %p82, %p84; - selp.u64 %rd306, 1, 0, %p85; - add.s64 %rd307, %rd305, %rd306; - setp.lt.u64 %p86, %rd307, %rd289; - selp.u64 %rd308, 1, 0, %p86; - add.s64 %rd309, %rd301, %rd308; - setp.lt.u64 %p87, %rd309, %rd301; - selp.u64 %rd310, 1, 0, %p87; - add.s64 %rd311, %rd303, %rd310; - setp.lt.u64 %p88, %rd311, %rd303; - add.s64 %rd29, %rd1013, %rd252; - setp.lt.u64 %p89, %rd29, %rd1013; - selp.u64 %rd312, 1, 0, %p89; - add.s64 %rd28, %rd254, %rd312; - setp.lt.u64 %p90, %rd28, %rd254; - selp.u64 %rd313, 1, 0, %p90; - add.s64 %rd27, %rd256, %rd313; - setp.lt.u64 %p91, %rd27, %rd256; - selp.u64 %rd314, 1, 0, %p91; - add.s64 %rd315, %rd223, %rd11; - selp.u64 %rd316, 1, 0, %p44; - add.s64 %rd317, %rd315, %rd316; - selp.u64 %rd318, 1, 0, %p49; - add.s64 %rd319, %rd317, %rd318; - selp.u64 %rd320, 1, 0, %p55; - add.s64 %rd321, %rd319, %rd320; - selp.u64 %rd322, 1, 0, %p63; - add.s64 %rd323, %rd321, %rd322; - add.s64 %rd26, %rd323, %rd314; - add.s64 %rd324, %rd27, %rd311; - setp.lt.u64 %p92, %rd324, %rd27; - selp.u64 %rd325, 1, 0, %p92; - add.s64 %rd326, %rd28, %rd309; - add.s64 %rd30, %rd29, %rd307; - setp.lt.u64 %p93, %rd30, %rd29; - selp.u64 %rd327, 1, 0, %p93; - add.s64 %rd31, %rd326, %rd327; - setp.eq.s64 %p94, %rd31, %rd28; - and.pred %p95, %p93, %p94; - setp.lt.u64 %p96, %rd31, %rd28; - or.pred %p97, %p96, %p95; - selp.u64 %rd328, 1, 0, %p97; - add.s64 %rd33, %rd324, %rd328; - setp.lt.u64 %p98, %rd33, %rd324; - selp.u64 %rd329, 1, 0, %p98; - add.s64 %rd330, %rd257, %rd11; - mul.hi.u64 %rd331, %rd13, %rd260; - add.s64 %rd332, %rd330, %rd331; - selp.u64 %rd333, 1, 0, %p65; - add.s64 %rd334, %rd332, %rd333; - selp.u64 %rd335, 1, 0, %p66; - add.s64 %rd336, %rd334, %rd335; - selp.u64 %rd337, 1, 0, %p67; - add.s64 %rd338, %rd336, %rd337; - selp.u64 %rd339, 1, 0, %p75; - add.s64 %rd340, %rd338, %rd339; - selp.u64 %rd341, 1, 0, %p81; - add.s64 %rd342, %rd340, %rd341; - selp.u64 %rd343, 1, 0, %p88; - add.s64 %rd344, %rd342, %rd343; - add.s64 %rd345, %rd344, %rd26; - add.s64 %rd346, %rd345, %rd325; - add.s64 %rd32, %rd346, %rd329; - setp.ne.s64 %p99, %rd32, %rd26; - setp.ne.s64 %p100, %rd33, %rd27; - or.pred %p101, %p100, %p99; - @%p101 bra $L__BB2_5; - - mov.u64 %rd1014, 1; - @%p97 bra $L__BB2_6; - -$L__BB2_5: - setp.eq.s64 %p107, %rd32, %rd26; - setp.lt.u64 %p108, %rd33, %rd27; - and.pred %p109, %p108, %p107; - setp.lt.u64 %p110, %rd32, %rd26; - or.pred %p111, %p110, %p109; - selp.u64 %rd1014, 1, 0, %p111; - -$L__BB2_6: - or.b64 %rd348, %rd31, %rd30; - or.b64 %rd349, %rd348, %rd33; - setp.eq.s64 %p112, %rd349, 0; - mov.u64 %rd350, 0; - setp.eq.s64 %p113, %rd32, 576460752303423505; - and.pred %p114, %p112, %p113; - setp.gt.u64 %p115, %rd32, 576460752303423504; - xor.pred %p116, %p115, %p114; - selp.u64 %rd351, 1, 0, %p116; - mov.u64 %rd352, -1; - mul.hi.u64 %rd353, %rd1014, %rd352; - sub.s64 %rd354, %rd353, %rd1014; - neg.s64 %rd355, %rd1014; - setp.lt.u64 %p117, %rd354, %rd355; - selp.u64 %rd356, 1, 0, %p117; - mul.hi.u64 %rd36, %rd350, %rd352; - add.s64 %rd357, %rd354, %rd36; - setp.lt.u64 %p118, %rd357, %rd354; - selp.u64 %rd358, 1, 0, %p118; - add.s64 %rd359, %rd357, %rd356; - setp.lt.u64 %p119, %rd359, %rd357; - selp.u64 %rd360, 1, 0, %p119; - add.s64 %rd361, %rd359, %rd33; - setp.lt.u64 %p120, %rd361, %rd359; - selp.u64 %rd362, 1, 0, %p120; - add.s64 %rd363, %rd354, %rd31; - sub.s64 %rd364, %rd30, %rd1014; - setp.lt.u64 %p121, %rd364, %rd30; - selp.u64 %rd365, 1, 0, %p121; - add.s64 %rd366, %rd363, %rd365; - setp.eq.s64 %p122, %rd366, %rd31; - and.pred %p123, %p121, %p122; - setp.lt.u64 %p124, %rd366, %rd31; - or.pred %p125, %p124, %p123; - selp.u64 %rd367, 1, 0, %p125; - add.s64 %rd368, %rd361, %rd367; - setp.lt.u64 %p126, %rd368, %rd361; - selp.u64 %rd369, 1, 0, %p126; - mov.u64 %rd370, 1; - mul.hi.u64 %rd371, %rd351, %rd370; - mul.hi.u64 %rd372, %rd351, %rd350; - add.s64 %rd373, %rd372, %rd12; - setp.lt.u64 %p127, %rd373, %rd372; - selp.b64 %rd374, -576460752303423505, 0, %p116; - selp.b64 %rd375, -1, 0, %p127; - setp.lt.u64 %p128, %rd368, %rd373; - selp.b64 %rd376, -1, 0, %p128; - sub.s64 %rd377, %rd368, %rd373; - sub.s64 %rd378, %rd366, %rd371; - setp.lt.u64 %p129, %rd364, %rd351; - selp.b64 %rd379, -1, 0, %p129; - add.s64 %rd1021, %rd378, %rd379; - setp.eq.s64 %p130, %rd1021, %rd366; - and.pred %p131, %p129, %p130; - setp.gt.u64 %p132, %rd1021, %rd366; - or.pred %p133, %p132, %p131; - selp.u64 %rd380, 1, 0, %p133; - setp.lt.u64 %p134, %rd377, %rd380; - selp.b64 %rd381, -1, 0, %p134; - add.s64 %rd38, %rd12, %rd11; - sub.s64 %rd382, %rd32, %rd38; - add.s64 %rd383, %rd382, %rd374; - mul.lo.s64 %rd384, %rd1014, -576460752303423506; - add.s64 %rd385, %rd383, %rd384; - add.s64 %rd386, %rd385, %rd36; - add.s64 %rd387, %rd386, %rd36; - add.s64 %rd388, %rd387, %rd353; - sub.s64 %rd389, %rd388, %rd372; - add.s64 %rd390, %rd389, %rd356; - add.s64 %rd391, %rd390, %rd358; - add.s64 %rd392, %rd391, %rd375; - add.s64 %rd393, %rd392, %rd360; - add.s64 %rd394, %rd393, %rd362; - add.s64 %rd395, %rd394, %rd369; - add.s64 %rd396, %rd395, %rd376; - add.s64 %rd1019, %rd396, %rd381; - sub.s64 %rd1020, %rd377, %rd380; - sub.s64 %rd1022, %rd364, %rd351; - setp.eq.s32 %p135, %r18, 0; - @%p135 bra $L__BB2_20; - -$L__BB2_7: - and.b32 %r13, %r18, 1; - setp.eq.b32 %p136, %r13, 1; - mov.pred %p137, 0; - xor.pred %p138, %p136, %p137; - not.pred %p139, %p138; - @%p139 bra $L__BB2_14; - - mov.u64 %rd398, 0; - mul.lo.s64 %rd399, %rd1015, %rd1020; - mul.hi.u64 %rd400, %rd1020, %rd1016; - add.s64 %rd401, %rd400, %rd399; - setp.lt.u64 %p140, %rd401, %rd400; - selp.u64 %rd402, 1, 0, %p140; - mul.hi.u64 %rd51, %rd1019, %rd1015; - mul.lo.s64 %rd403, %rd1016, %rd1019; - add.s64 %rd404, %rd401, %rd403; - setp.lt.u64 %p141, %rd404, %rd401; - selp.u64 %rd405, 1, 0, %p141; - mul.lo.s64 %rd406, %rd1015, %rd1019; - mul.hi.u64 %rd407, %rd1019, %rd1016; - add.s64 %rd408, %rd407, %rd406; - setp.lt.u64 %p142, %rd408, %rd407; - selp.u64 %rd52, 1, 0, %p142; - mul.hi.u64 %rd409, %rd1020, %rd1015; - add.s64 %rd410, %rd409, %rd408; - setp.lt.u64 %p143, %rd410, %rd409; - selp.u64 %rd53, 1, 0, %p143; - add.s64 %rd411, %rd410, %rd402; - add.s64 %rd412, %rd411, %rd405; - setp.lt.u64 %p144, %rd412, %rd410; - selp.u64 %rd54, 1, 0, %p144; - mul.lo.s64 %rd413, %rd1017, %rd1020; - mul.hi.u64 %rd414, %rd1020, %rd1018; - add.s64 %rd415, %rd414, %rd413; - setp.lt.u64 %p145, %rd415, %rd414; - selp.u64 %rd416, 1, 0, %p145; - mul.lo.s64 %rd417, %rd1018, %rd1019; - add.s64 %rd418, %rd415, %rd417; - setp.lt.u64 %p146, %rd418, %rd415; - selp.u64 %rd419, 1, 0, %p146; - mul.lo.s64 %rd420, %rd1017, %rd1019; - mul.hi.u64 %rd421, %rd1019, %rd1018; - add.s64 %rd422, %rd421, %rd420; - setp.lt.u64 %p147, %rd422, %rd421; - selp.u64 %rd423, 1, 0, %p147; - mul.hi.u64 %rd424, %rd1020, %rd1017; - add.s64 %rd425, %rd424, %rd422; - setp.lt.u64 %p148, %rd425, %rd424; - selp.u64 %rd426, 1, 0, %p148; - add.s64 %rd427, %rd425, %rd416; - add.s64 %rd428, %rd427, %rd419; - setp.lt.u64 %p149, %rd428, %rd425; - selp.u64 %rd429, 1, 0, %p149; - mul.lo.s64 %rd430, %rd1016, %rd1021; - mul.hi.u64 %rd431, %rd1016, %rd1022; - add.s64 %rd432, %rd431, %rd430; - setp.lt.u64 %p150, %rd432, %rd431; - selp.u64 %rd433, 1, 0, %p150; - mul.lo.s64 %rd434, %rd1015, %rd1022; - add.s64 %rd435, %rd432, %rd434; - setp.lt.u64 %p151, %rd435, %rd432; - selp.u64 %rd436, 1, 0, %p151; - mul.lo.s64 %rd437, %rd1015, %rd1021; - mul.hi.u64 %rd438, %rd1015, %rd1022; - add.s64 %rd439, %rd438, %rd437; - setp.lt.u64 %p152, %rd439, %rd438; - selp.u64 %rd440, 1, 0, %p152; - mul.hi.u64 %rd441, %rd1016, %rd1021; - add.s64 %rd442, %rd441, %rd439; - setp.lt.u64 %p153, %rd442, %rd441; - selp.u64 %rd443, 1, 0, %p153; - add.s64 %rd444, %rd442, %rd433; - add.s64 %rd445, %rd444, %rd436; - setp.lt.u64 %p154, %rd445, %rd442; - selp.u64 %rd446, 1, 0, %p154; - mul.lo.s64 %rd447, %rd1017, %rd1022; - mul.hi.u64 %rd448, %rd1022, %rd1018; - add.s64 %rd449, %rd448, %rd447; - setp.lt.u64 %p155, %rd449, %rd448; - selp.u64 %rd450, 1, 0, %p155; - mul.lo.s64 %rd451, %rd1018, %rd1021; - add.s64 %rd452, %rd449, %rd451; - setp.lt.u64 %p156, %rd452, %rd449; - selp.u64 %rd453, 1, 0, %p156; - mul.lo.s64 %rd454, %rd1017, %rd1021; - mul.hi.u64 %rd455, %rd1021, %rd1018; - add.s64 %rd456, %rd455, %rd454; - setp.lt.u64 %p157, %rd456, %rd455; - selp.u64 %rd457, 1, 0, %p157; - mul.hi.u64 %rd458, %rd1022, %rd1017; - add.s64 %rd459, %rd458, %rd456; - setp.lt.u64 %p158, %rd459, %rd458; - selp.u64 %rd460, 1, 0, %p158; - add.s64 %rd461, %rd459, %rd450; - add.s64 %rd462, %rd461, %rd453; - setp.lt.u64 %p159, %rd462, %rd459; - selp.u64 %rd463, 1, 0, %p159; - mul.lo.s64 %rd464, %rd1016, %rd1022; - mul.lo.s64 %rd465, %rd1018, %rd1020; - add.s64 %rd466, %rd464, %rd465; - setp.lt.u64 %p160, %rd466, %rd464; - selp.u64 %rd467, 1, 0, %p160; - add.s64 %rd468, %rd418, %rd467; - add.s64 %rd469, %rd468, %rd435; - setp.eq.s64 %p161, %rd469, %rd418; - and.pred %p162, %p160, %p161; - setp.lt.u64 %p163, %rd469, %rd418; - or.pred %p164, %p163, %p162; - selp.u64 %rd470, 1, 0, %p164; - add.s64 %rd471, %rd462, %rd466; - setp.lt.u64 %p165, %rd471, %rd462; - selp.u64 %rd472, 1, 0, %p165; - mul.hi.u64 %rd473, %rd398, %rd1018; - add.s64 %rd474, %rd469, %rd473; - mul.hi.u64 %rd475, %rd1021, %rd1017; - add.s64 %rd476, %rd474, %rd475; - mul.hi.u64 %rd477, %rd1022, %rd398; - add.s64 %rd478, %rd476, %rd477; - add.s64 %rd479, %rd478, %rd457; - add.s64 %rd480, %rd479, %rd460; - add.s64 %rd481, %rd480, %rd463; - add.s64 %rd482, %rd481, %rd472; - setp.eq.s64 %p166, %rd482, %rd469; - and.pred %p167, %p165, %p166; - setp.lt.u64 %p168, %rd482, %rd469; - or.pred %p169, %p168, %p167; - selp.u64 %rd483, 1, 0, %p169; - mul.lo.s64 %rd484, %rd1016, %rd1020; - add.s64 %rd485, %rd428, %rd484; - setp.lt.u64 %p170, %rd485, %rd428; - selp.u64 %rd486, 1, 0, %p170; - mul.hi.u64 %rd55, %rd1020, %rd398; - add.s64 %rd487, %rd55, %rd404; - add.s64 %rd488, %rd487, %rd473; - mul.hi.u64 %rd489, %rd1019, %rd1017; - add.s64 %rd490, %rd488, %rd489; - add.s64 %rd491, %rd490, %rd423; - add.s64 %rd492, %rd491, %rd426; - add.s64 %rd493, %rd492, %rd429; - add.s64 %rd494, %rd493, %rd486; - setp.eq.s64 %p171, %rd494, %rd404; - and.pred %p172, %p170, %p171; - setp.lt.u64 %p173, %rd494, %rd404; - or.pred %p174, %p173, %p172; - selp.u64 %rd495, 1, 0, %p174; - add.s64 %rd496, %rd412, %rd495; - setp.lt.u64 %p175, %rd496, %rd412; - selp.u64 %rd56, 1, 0, %p175; - add.s64 %rd497, %rd445, %rd485; - setp.lt.u64 %p176, %rd497, %rd445; - selp.u64 %rd498, 1, 0, %p176; - mul.hi.u64 %rd499, %rd1015, %rd1021; - mul.hi.u64 %rd500, %rd398, %rd1022; - add.s64 %rd501, %rd499, %rd500; - mul.hi.u64 %rd502, %rd1016, %rd398; - add.s64 %rd503, %rd501, %rd502; - add.s64 %rd504, %rd503, %rd440; - add.s64 %rd505, %rd504, %rd494; - add.s64 %rd506, %rd505, %rd443; - add.s64 %rd507, %rd506, %rd446; - add.s64 %rd508, %rd507, %rd498; - setp.eq.s64 %p177, %rd508, %rd494; - and.pred %p178, %p176, %p177; - setp.lt.u64 %p179, %rd508, %rd494; - or.pred %p180, %p179, %p178; - selp.u64 %rd509, 1, 0, %p180; - add.s64 %rd57, %rd496, %rd509; - add.s64 %rd510, %rd497, %rd470; - add.s64 %rd59, %rd510, %rd483; - setp.lt.u64 %p181, %rd59, %rd497; - selp.u64 %rd511, 1, 0, %p181; - add.s64 %rd60, %rd508, %rd511; - setp.lt.u64 %p7, %rd60, %rd508; - mul.lo.s64 %rd512, %rd1018, %rd1022; - mul.lo.s64 %rd513, %rd512, 576460752303423504; - mov.u64 %rd514, -1; - mul.hi.u64 %rd515, %rd471, %rd514; - mul.hi.u64 %rd516, %rd512, %rd514; - neg.s64 %rd61, %rd512; - mul.hi.u64 %rd517, %rd452, %rd514; - sub.s64 %rd518, %rd516, %rd512; - setp.lt.u64 %p182, %rd518, %rd61; - selp.u64 %rd519, 1, 0, %p182; - neg.s64 %rd520, %rd452; - sub.s64 %rd521, %rd517, %rd452; - sub.s64 %rd62, %rd518, %rd452; - setp.lt.u64 %p183, %rd62, %rd518; - selp.u64 %rd522, 1, 0, %p183; - add.s64 %rd523, %rd522, %rd519; - setp.lt.u64 %p184, %rd521, %rd520; - selp.u64 %rd524, 1, 0, %p184; - add.s64 %rd525, %rd521, %rd518; - setp.lt.u64 %p185, %rd525, %rd521; - selp.u64 %rd526, 1, 0, %p185; - sub.s64 %rd527, %rd525, %rd471; - setp.lt.u64 %p186, %rd527, %rd525; - selp.u64 %rd528, 1, 0, %p186; - add.s64 %rd64, %rd523, %rd527; - setp.lt.u64 %p187, %rd64, %rd523; - selp.u64 %rd529, 1, 0, %p187; - add.s64 %rd530, %rd515, %rd513; - add.s64 %rd531, %rd530, %rd516; - sub.s64 %rd532, %rd531, %rd471; - add.s64 %rd533, %rd532, %rd521; - add.s64 %rd534, %rd533, %rd519; - sub.s64 %rd535, %rd534, %rd482; - add.s64 %rd536, %rd535, %rd524; - add.s64 %rd537, %rd536, %rd526; - add.s64 %rd538, %rd537, %rd528; - add.s64 %rd63, %rd538, %rd529; - mov.u64 %rd397, 1; - mul.hi.u64 %rd539, %rd64, %rd397; - add.s64 %rd65, %rd63, %rd539; - mul.hi.u64 %rd66, %rd398, %rd61; - mul.lo.s64 %rd540, %rd512, -576460752303423505; - add.s64 %rd67, %rd66, %rd540; - setp.lt.u64 %p9, %rd67, %rd66; - mul.hi.u64 %rd541, %rd61, %rd397; - mul.hi.u64 %rd542, %rd62, %rd397; - mul.hi.u64 %rd543, %rd61, %rd398; - mul.hi.u64 %rd544, %rd62, %rd398; - add.s64 %rd545, %rd541, %rd62; - setp.lt.u64 %p188, %rd545, %rd541; - selp.u64 %rd546, 1, 0, %p188; - add.s64 %rd547, %rd543, %rd542; - setp.lt.u64 %p189, %rd547, %rd543; - selp.u64 %rd548, 1, 0, %p189; - add.s64 %rd549, %rd547, %rd546; - setp.lt.u64 %p190, %rd549, %rd547; - selp.u64 %rd550, 1, 0, %p190; - add.s64 %rd68, %rd67, %rd65; - setp.lt.u64 %p10, %rd68, %rd67; - add.s64 %rd71, %rd549, %rd64; - setp.lt.u64 %p11, %rd71, %rd549; - selp.u64 %rd551, 1, 0, %p11; - add.s64 %rd552, %rd68, %rd12; - add.s64 %rd553, %rd552, %rd543; - add.s64 %rd554, %rd553, %rd544; - add.s64 %rd555, %rd554, %rd548; - add.s64 %rd556, %rd555, %rd550; - add.s64 %rd70, %rd556, %rd551; - add.s64 %rd557, %rd71, %rd471; - setp.lt.u64 %p191, %rd557, %rd71; - selp.u64 %rd558, 1, 0, %p191; - setp.ne.s64 %p192, %rd512, 0; - selp.u64 %rd559, 1, 0, %p192; - add.s64 %rd560, %rd518, %rd559; - add.s64 %rd561, %rd560, %rd541; - setp.eq.s64 %p193, %rd560, %rd62; - and.pred %p194, %p192, %p193; - setp.lt.u64 %p195, %rd561, %rd545; - or.pred %p196, %p195, %p194; - selp.u64 %rd562, 1, 0, %p196; - add.s64 %rd73, %rd557, %rd562; - setp.lt.u64 %p197, %rd73, %rd557; - selp.u64 %rd563, 1, 0, %p197; - add.s64 %rd564, %rd482, %rd558; - add.s64 %rd72, %rd564, %rd563; - setp.ne.s64 %p198, %rd72, 0; - setp.ne.s64 %p199, %rd73, %rd71; - or.pred %p200, %p199, %p198; - not.pred %p201, %p196; - or.pred %p202, %p200, %p201; - not.pred %p203, %p202; - mov.u64 %rd1023, %rd397; - @%p203 bra $L__BB2_10; - - setp.eq.s64 %p204, %rd72, 0; - setp.lt.u64 %p205, %rd73, %rd71; - and.pred %p206, %p205, %p204; - add.s64 %rd565, %rd72, %rd70; - setp.lt.u64 %p207, %rd565, %rd72; - or.pred %p208, %p207, %p206; - selp.u64 %rd1023, 1, 0, %p208; - -$L__BB2_10: - mul.hi.u64 %rd1012, %rd64, %rd397; - add.s64 %rd1011, %rd63, %rd1012; - setp.lt.u64 %p420, %rd1011, %rd63; - setp.lt.u64 %p416, %rd57, %rd496; - selp.u64 %rd1002, 1, 0, %p416; - mul.hi.u64 %rd1001, %rd398, %rd1016; - selp.u64 %rd566, 1, 0, %p7; - add.s64 %rd567, %rd57, %rd566; - setp.lt.u64 %p209, %rd567, %rd57; - mul.hi.u64 %rd569, %rd64, %rd398; - mul.hi.u64 %rd570, %rd63, %rd398; - mul.lo.s64 %rd571, %rd64, 576460752303423505; - mov.u64 %rd572, 576460752303423505; - add.s64 %rd573, %rd571, %rd569; - setp.lt.u64 %p210, %rd573, %rd571; - mul.lo.s64 %rd574, %rd63, 576460752303423505; - add.s64 %rd575, %rd574, %rd570; - setp.lt.u64 %p211, %rd575, %rd574; - mul.hi.u64 %rd576, %rd64, %rd572; - add.s64 %rd577, %rd575, %rd576; - setp.lt.u64 %p212, %rd577, %rd575; - selp.u64 %rd578, 1, 0, %p210; - add.s64 %rd579, %rd577, %rd578; - setp.lt.u64 %p213, %rd579, %rd577; - mul.hi.u64 %rd581, %rd63, %rd397; - add.s64 %rd582, %rd581, %rd569; - setp.lt.u64 %p214, %rd582, %rd581; - selp.u64 %rd583, 1, 0, %p420; - add.s64 %rd584, %rd582, %rd583; - setp.lt.u64 %p215, %rd584, %rd582; - mul.lo.s64 %rd585, %rd62, 576460752303423505; - mul.hi.u64 %rd586, %rd572, %rd61; - add.s64 %rd587, %rd586, %rd585; - setp.lt.u64 %p216, %rd587, %rd586; - mul.hi.u64 %rd588, %rd398, %rd62; - add.s64 %rd589, %rd588, %rd587; - setp.lt.u64 %p217, %rd589, %rd588; - selp.u64 %rd590, 1, 0, %p9; - add.s64 %rd591, %rd589, %rd590; - setp.lt.u64 %p218, %rd591, %rd589; - add.s64 %rd592, %rd570, %rd569; - add.s64 %rd593, %rd592, %rd12; - add.s64 %rd594, %rd593, %rd573; - selp.u64 %rd595, 1, 0, %p214; - add.s64 %rd596, %rd594, %rd595; - selp.u64 %rd597, 1, 0, %p215; - add.s64 %rd598, %rd596, %rd597; - setp.lt.u64 %p219, %rd598, %rd573; - selp.u64 %rd599, 1, 0, %p219; - add.s64 %rd600, %rd579, %rd599; - setp.lt.u64 %p220, %rd600, %rd579; - add.s64 %rd601, %rd591, %rd584; - setp.lt.u64 %p221, %rd601, %rd591; - add.s64 %rd602, %rd66, %rd11; - mul.hi.u64 %rd603, %rd572, %rd62; - add.s64 %rd604, %rd602, %rd603; - selp.u64 %rd605, 1, 0, %p216; - add.s64 %rd606, %rd604, %rd605; - selp.u64 %rd607, 1, 0, %p217; - add.s64 %rd608, %rd606, %rd607; - selp.u64 %rd609, 1, 0, %p218; - add.s64 %rd610, %rd608, %rd609; - selp.u64 %rd611, 1, 0, %p221; - add.s64 %rd612, %rd610, %rd611; - add.s64 %rd613, %rd612, %rd598; - setp.lt.u64 %p222, %rd613, %rd612; - setp.eq.s64 %p223, %rd612, 0; - and.pred %p224, %p221, %p223; - or.pred %p225, %p222, %p224; - selp.u64 %rd614, 1, 0, %p225; - add.s64 %rd615, %rd600, %rd614; - setp.lt.u64 %p226, %rd615, %rd600; - selp.u64 %rd616, 1, 0, %p10; - add.s64 %rd617, %rd601, %rd616; - setp.lt.u64 %p227, %rd70, %rd68; - setp.eq.s64 %p228, %rd70, %rd68; - and.pred %p229, %p11, %p228; - or.pred %p230, %p227, %p229; - selp.u64 %rd618, 1, 0, %p230; - add.s64 %rd619, %rd617, %rd618; - setp.lt.u64 %p231, %rd619, %rd601; - selp.u64 %rd620, 1, 0, %p231; - add.s64 %rd621, %rd613, %rd620; - setp.lt.u64 %p232, %rd621, %rd613; - selp.u64 %rd622, 1, 0, %p232; - add.s64 %rd623, %rd615, %rd622; - setp.lt.u64 %p233, %rd623, %rd615; - add.s64 %rd79, %rd1023, %rd59; - setp.lt.u64 %p234, %rd79, %rd1023; - selp.u64 %rd624, 1, 0, %p234; - add.s64 %rd78, %rd60, %rd624; - setp.lt.u64 %p235, %rd78, %rd60; - selp.u64 %rd625, 1, 0, %p235; - add.s64 %rd77, %rd567, %rd625; - setp.lt.u64 %p236, %rd77, %rd567; - selp.u64 %rd626, 1, 0, %p236; - add.s64 %rd627, %rd51, %rd1001; - add.s64 %rd628, %rd627, %rd55; - add.s64 %rd629, %rd628, %rd52; - add.s64 %rd630, %rd629, %rd53; - add.s64 %rd631, %rd630, %rd54; - add.s64 %rd632, %rd631, %rd56; - add.s64 %rd633, %rd632, %rd1002; - selp.u64 %rd634, 1, 0, %p209; - add.s64 %rd635, %rd633, %rd634; - add.s64 %rd76, %rd635, %rd626; - add.s64 %rd636, %rd77, %rd623; - setp.lt.u64 %p237, %rd636, %rd77; - selp.u64 %rd637, 1, 0, %p237; - add.s64 %rd638, %rd78, %rd621; - add.s64 %rd80, %rd79, %rd619; - setp.lt.u64 %p238, %rd80, %rd79; - selp.u64 %rd639, 1, 0, %p238; - add.s64 %rd81, %rd638, %rd639; - setp.eq.s64 %p239, %rd81, %rd78; - and.pred %p240, %p238, %p239; - setp.lt.u64 %p241, %rd81, %rd78; - or.pred %p242, %p241, %p240; - selp.u64 %rd640, 1, 0, %p242; - add.s64 %rd83, %rd636, %rd640; - setp.lt.u64 %p243, %rd83, %rd636; - selp.u64 %rd641, 1, 0, %p243; - add.s64 %rd642, %rd569, %rd11; - mul.hi.u64 %rd643, %rd63, %rd572; - add.s64 %rd644, %rd642, %rd643; - selp.u64 %rd645, 1, 0, %p211; - add.s64 %rd646, %rd644, %rd645; - selp.u64 %rd647, 1, 0, %p212; - add.s64 %rd648, %rd646, %rd647; - selp.u64 %rd649, 1, 0, %p213; - add.s64 %rd650, %rd648, %rd649; - selp.u64 %rd651, 1, 0, %p220; - add.s64 %rd652, %rd650, %rd651; - selp.u64 %rd653, 1, 0, %p226; - add.s64 %rd654, %rd652, %rd653; - selp.u64 %rd655, 1, 0, %p233; - add.s64 %rd656, %rd654, %rd655; - add.s64 %rd657, %rd656, %rd76; - add.s64 %rd658, %rd657, %rd637; - add.s64 %rd82, %rd658, %rd641; - setp.ne.s64 %p244, %rd82, %rd76; - setp.ne.s64 %p245, %rd83, %rd77; - or.pred %p246, %p245, %p244; - @%p246 bra $L__BB2_12; - - mov.u64 %rd1024, 1; - @%p242 bra $L__BB2_13; - -$L__BB2_12: - setp.eq.s64 %p252, %rd82, %rd76; - setp.lt.u64 %p253, %rd83, %rd77; - and.pred %p254, %p253, %p252; - setp.lt.u64 %p255, %rd82, %rd76; - or.pred %p256, %p255, %p254; - selp.u64 %rd1024, 1, 0, %p256; - -$L__BB2_13: - or.b64 %rd660, %rd81, %rd80; - or.b64 %rd661, %rd660, %rd83; - setp.eq.s64 %p257, %rd661, 0; - mov.u64 %rd662, 0; - setp.eq.s64 %p258, %rd82, 576460752303423505; - and.pred %p259, %p257, %p258; - setp.gt.u64 %p260, %rd82, 576460752303423504; - xor.pred %p261, %p260, %p259; - selp.u64 %rd663, 1, 0, %p261; - mov.u64 %rd664, -1; - mul.hi.u64 %rd665, %rd1024, %rd664; - sub.s64 %rd666, %rd665, %rd1024; - neg.s64 %rd667, %rd1024; - setp.lt.u64 %p262, %rd666, %rd667; - selp.u64 %rd668, 1, 0, %p262; - add.s64 %rd669, %rd666, %rd36; - setp.lt.u64 %p263, %rd669, %rd666; - selp.u64 %rd670, 1, 0, %p263; - add.s64 %rd671, %rd669, %rd668; - setp.lt.u64 %p264, %rd671, %rd669; - selp.u64 %rd672, 1, 0, %p264; - add.s64 %rd673, %rd671, %rd83; - setp.lt.u64 %p265, %rd673, %rd671; - selp.u64 %rd674, 1, 0, %p265; - add.s64 %rd675, %rd666, %rd81; - sub.s64 %rd676, %rd80, %rd1024; - setp.lt.u64 %p266, %rd676, %rd80; - selp.u64 %rd677, 1, 0, %p266; - add.s64 %rd678, %rd675, %rd677; - setp.eq.s64 %p267, %rd678, %rd81; - and.pred %p268, %p266, %p267; - setp.lt.u64 %p269, %rd678, %rd81; - or.pred %p270, %p269, %p268; - selp.u64 %rd679, 1, 0, %p270; - add.s64 %rd680, %rd673, %rd679; - setp.lt.u64 %p271, %rd680, %rd673; - selp.u64 %rd681, 1, 0, %p271; - mov.u64 %rd682, 1; - mul.hi.u64 %rd683, %rd663, %rd682; - mul.hi.u64 %rd684, %rd663, %rd662; - add.s64 %rd685, %rd684, %rd12; - setp.lt.u64 %p272, %rd685, %rd684; - selp.b64 %rd686, -576460752303423505, 0, %p261; - selp.b64 %rd687, -1, 0, %p272; - setp.lt.u64 %p273, %rd680, %rd685; - selp.b64 %rd688, -1, 0, %p273; - sub.s64 %rd689, %rd680, %rd685; - sub.s64 %rd690, %rd678, %rd683; - setp.lt.u64 %p274, %rd676, %rd663; - selp.b64 %rd691, -1, 0, %p274; - add.s64 %rd1021, %rd690, %rd691; - setp.eq.s64 %p275, %rd1021, %rd678; - and.pred %p276, %p274, %p275; - setp.gt.u64 %p277, %rd1021, %rd678; - or.pred %p278, %p277, %p276; - selp.u64 %rd692, 1, 0, %p278; - setp.lt.u64 %p279, %rd689, %rd692; - selp.b64 %rd693, -1, 0, %p279; - sub.s64 %rd694, %rd82, %rd38; - add.s64 %rd695, %rd694, %rd686; - mul.lo.s64 %rd696, %rd1024, -576460752303423506; - add.s64 %rd697, %rd695, %rd696; - add.s64 %rd698, %rd697, %rd36; - add.s64 %rd699, %rd698, %rd36; - add.s64 %rd700, %rd699, %rd665; - sub.s64 %rd701, %rd700, %rd684; - add.s64 %rd702, %rd701, %rd668; - add.s64 %rd703, %rd702, %rd670; - add.s64 %rd704, %rd703, %rd687; - add.s64 %rd705, %rd704, %rd672; - add.s64 %rd706, %rd705, %rd674; - add.s64 %rd707, %rd706, %rd681; - add.s64 %rd708, %rd707, %rd688; - add.s64 %rd1019, %rd708, %rd693; - sub.s64 %rd1020, %rd689, %rd692; - sub.s64 %rd1022, %rd676, %rd663; - -$L__BB2_14: - mov.u64 %rd710, 0; - shr.u32 %r18, %r18, 1; - mul.lo.s64 %rd711, %rd1015, %rd1016; - mul.hi.u64 %rd712, %rd1016, %rd1016; - add.s64 %rd713, %rd712, %rd711; - setp.lt.u64 %p280, %rd713, %rd712; - selp.u64 %rd714, 1, 0, %p280; - mul.hi.u64 %rd95, %rd1015, %rd1015; - add.s64 %rd715, %rd713, %rd711; - setp.lt.u64 %p281, %rd715, %rd713; - selp.u64 %rd716, 1, 0, %p281; - mul.lo.s64 %rd717, %rd1015, %rd1015; - mul.hi.u64 %rd718, %rd1015, %rd1016; - add.s64 %rd719, %rd718, %rd717; - setp.lt.u64 %p282, %rd719, %rd718; - selp.u64 %rd96, 1, 0, %p282; - mul.hi.u64 %rd720, %rd1016, %rd1015; - add.s64 %rd721, %rd720, %rd719; - setp.lt.u64 %p283, %rd721, %rd720; - selp.u64 %rd97, 1, 0, %p283; - add.s64 %rd722, %rd721, %rd714; - add.s64 %rd723, %rd722, %rd716; - setp.lt.u64 %p284, %rd723, %rd721; - selp.u64 %rd98, 1, 0, %p284; - mul.lo.s64 %rd724, %rd1016, %rd1017; - mul.hi.u64 %rd725, %rd1016, %rd1018; - add.s64 %rd726, %rd725, %rd724; - setp.lt.u64 %p285, %rd726, %rd725; - selp.u64 %rd727, 1, 0, %p285; - mul.lo.s64 %rd728, %rd1015, %rd1018; - add.s64 %rd729, %rd726, %rd728; - setp.lt.u64 %p286, %rd729, %rd726; - selp.u64 %rd730, 1, 0, %p286; - mul.lo.s64 %rd731, %rd1015, %rd1017; - mul.hi.u64 %rd732, %rd1015, %rd1018; - add.s64 %rd733, %rd732, %rd731; - setp.lt.u64 %p287, %rd733, %rd732; - selp.u64 %rd734, 1, 0, %p287; - mul.hi.u64 %rd735, %rd1016, %rd1017; - add.s64 %rd736, %rd735, %rd733; - setp.lt.u64 %p288, %rd736, %rd735; - selp.u64 %rd737, 1, 0, %p288; - add.s64 %rd738, %rd736, %rd727; - add.s64 %rd739, %rd738, %rd730; - setp.lt.u64 %p289, %rd739, %rd736; - selp.u64 %rd740, 1, 0, %p289; - mul.lo.s64 %rd741, %rd1017, %rd1018; - mul.hi.u64 %rd742, %rd1018, %rd1018; - add.s64 %rd743, %rd742, %rd741; - setp.lt.u64 %p290, %rd743, %rd742; - selp.u64 %rd744, 1, 0, %p290; - add.s64 %rd745, %rd743, %rd741; - setp.lt.u64 %p291, %rd745, %rd743; - selp.u64 %rd746, 1, 0, %p291; - mul.lo.s64 %rd747, %rd1017, %rd1017; - mul.hi.u64 %rd748, %rd1017, %rd1018; - add.s64 %rd749, %rd748, %rd747; - setp.lt.u64 %p292, %rd749, %rd748; - selp.u64 %rd750, 1, 0, %p292; - mul.hi.u64 %rd751, %rd1018, %rd1017; - add.s64 %rd752, %rd751, %rd749; - setp.lt.u64 %p293, %rd752, %rd751; - selp.u64 %rd753, 1, 0, %p293; - add.s64 %rd754, %rd752, %rd744; - add.s64 %rd755, %rd754, %rd746; - setp.lt.u64 %p294, %rd755, %rd752; - selp.u64 %rd756, 1, 0, %p294; - mul.lo.s64 %rd757, %rd1016, %rd1018; - shl.b64 %rd758, %rd757, 1; - mov.u64 %rd709, 1; - setp.lt.u64 %p295, %rd758, %rd757; - selp.u64 %rd759, 1, 0, %p295; - add.s64 %rd760, %rd729, %rd759; - add.s64 %rd761, %rd760, %rd729; - setp.lt.u64 %p296, %rd761, %rd760; - setp.eq.s64 %p297, %rd760, 0; - and.pred %p298, %p295, %p297; - or.pred %p299, %p296, %p298; - selp.u64 %rd762, 1, 0, %p299; - add.s64 %rd763, %rd755, %rd758; - setp.lt.u64 %p300, %rd763, %rd755; - selp.u64 %rd764, 1, 0, %p300; - mul.hi.u64 %rd765, %rd710, %rd1018; - add.s64 %rd766, %rd761, %rd765; - mul.hi.u64 %rd767, %rd1017, %rd1017; - add.s64 %rd768, %rd766, %rd767; - mul.hi.u64 %rd769, %rd1018, %rd710; - add.s64 %rd770, %rd768, %rd769; - add.s64 %rd771, %rd770, %rd750; - add.s64 %rd772, %rd771, %rd753; - add.s64 %rd773, %rd772, %rd756; - add.s64 %rd774, %rd773, %rd764; - setp.eq.s64 %p301, %rd774, %rd761; - and.pred %p302, %p300, %p301; - setp.lt.u64 %p303, %rd774, %rd761; - or.pred %p304, %p303, %p302; - selp.u64 %rd775, 1, 0, %p304; - mul.lo.s64 %rd776, %rd1016, %rd1016; - add.s64 %rd777, %rd739, %rd776; - setp.lt.u64 %p305, %rd777, %rd739; - selp.u64 %rd778, 1, 0, %p305; - mul.hi.u64 %rd99, %rd1016, %rd710; - add.s64 %rd779, %rd99, %rd715; - add.s64 %rd780, %rd779, %rd765; - mul.hi.u64 %rd781, %rd1015, %rd1017; - add.s64 %rd782, %rd780, %rd781; - add.s64 %rd783, %rd782, %rd734; - add.s64 %rd784, %rd783, %rd737; - add.s64 %rd785, %rd784, %rd740; - add.s64 %rd786, %rd785, %rd778; - setp.eq.s64 %p306, %rd786, %rd715; - and.pred %p307, %p305, %p306; - setp.lt.u64 %p308, %rd786, %rd715; - or.pred %p309, %p308, %p307; - selp.u64 %rd787, 1, 0, %p309; - add.s64 %rd788, %rd723, %rd787; - setp.lt.u64 %p310, %rd788, %rd723; - selp.u64 %rd100, 1, 0, %p310; - add.s64 %rd789, %rd739, %rd777; - setp.lt.u64 %p311, %rd789, %rd739; - selp.u64 %rd790, 1, 0, %p311; - add.s64 %rd791, %rd781, %rd765; - add.s64 %rd792, %rd791, %rd99; - add.s64 %rd793, %rd792, %rd734; - add.s64 %rd794, %rd793, %rd786; - add.s64 %rd795, %rd794, %rd737; - add.s64 %rd796, %rd795, %rd740; - add.s64 %rd797, %rd796, %rd790; - setp.eq.s64 %p312, %rd797, %rd786; - and.pred %p313, %p311, %p312; - setp.lt.u64 %p314, %rd797, %rd786; - or.pred %p315, %p314, %p313; - selp.u64 %rd798, 1, 0, %p315; - add.s64 %rd101, %rd788, %rd798; - setp.lt.u64 %p12, %rd101, %rd788; - selp.u64 %rd102, 1, 0, %p12; - add.s64 %rd799, %rd789, %rd762; - add.s64 %rd103, %rd799, %rd775; - setp.lt.u64 %p316, %rd103, %rd789; - selp.u64 %rd800, 1, 0, %p316; - add.s64 %rd104, %rd797, %rd800; - setp.lt.u64 %p13, %rd104, %rd797; - mul.lo.s64 %rd801, %rd1018, %rd1018; - mul.lo.s64 %rd802, %rd801, 576460752303423504; - mov.u64 %rd803, -1; - mul.hi.u64 %rd804, %rd763, %rd803; - mul.hi.u64 %rd805, %rd801, %rd803; - neg.s64 %rd105, %rd801; - mul.hi.u64 %rd806, %rd745, %rd803; - sub.s64 %rd807, %rd805, %rd801; - setp.lt.u64 %p317, %rd807, %rd105; - selp.u64 %rd808, 1, 0, %p317; - neg.s64 %rd809, %rd745; - sub.s64 %rd810, %rd806, %rd745; - sub.s64 %rd106, %rd807, %rd745; - setp.lt.u64 %p318, %rd106, %rd807; - selp.u64 %rd811, 1, 0, %p318; - add.s64 %rd812, %rd811, %rd808; - setp.lt.u64 %p319, %rd810, %rd809; - selp.u64 %rd813, 1, 0, %p319; - add.s64 %rd814, %rd810, %rd807; - setp.lt.u64 %p320, %rd814, %rd810; - selp.u64 %rd815, 1, 0, %p320; - sub.s64 %rd816, %rd814, %rd763; - setp.lt.u64 %p321, %rd816, %rd814; - selp.u64 %rd817, 1, 0, %p321; - add.s64 %rd108, %rd812, %rd816; - setp.lt.u64 %p322, %rd108, %rd812; - selp.u64 %rd818, 1, 0, %p322; - add.s64 %rd819, %rd804, %rd802; - add.s64 %rd820, %rd819, %rd805; - sub.s64 %rd821, %rd820, %rd763; - add.s64 %rd822, %rd821, %rd810; - add.s64 %rd823, %rd822, %rd808; - sub.s64 %rd824, %rd823, %rd774; - add.s64 %rd825, %rd824, %rd813; - add.s64 %rd826, %rd825, %rd815; - add.s64 %rd827, %rd826, %rd817; - add.s64 %rd107, %rd827, %rd818; - mul.hi.u64 %rd828, %rd108, %rd709; - add.s64 %rd109, %rd107, %rd828; - mul.hi.u64 %rd110, %rd710, %rd105; - mul.lo.s64 %rd829, %rd801, -576460752303423505; - add.s64 %rd111, %rd110, %rd829; - setp.lt.u64 %p15, %rd111, %rd110; - mul.hi.u64 %rd830, %rd105, %rd709; - mul.hi.u64 %rd831, %rd106, %rd709; - mul.hi.u64 %rd832, %rd105, %rd710; - mul.hi.u64 %rd833, %rd106, %rd710; - add.s64 %rd834, %rd830, %rd106; - setp.lt.u64 %p323, %rd834, %rd830; - selp.u64 %rd835, 1, 0, %p323; - add.s64 %rd836, %rd832, %rd831; - setp.lt.u64 %p324, %rd836, %rd832; - selp.u64 %rd837, 1, 0, %p324; - add.s64 %rd838, %rd836, %rd835; - setp.lt.u64 %p325, %rd838, %rd836; - selp.u64 %rd839, 1, 0, %p325; - add.s64 %rd112, %rd111, %rd109; - setp.lt.u64 %p16, %rd112, %rd111; - add.s64 %rd115, %rd838, %rd108; - setp.lt.u64 %p17, %rd115, %rd838; - selp.u64 %rd840, 1, 0, %p17; - add.s64 %rd841, %rd112, %rd12; - add.s64 %rd842, %rd841, %rd832; - add.s64 %rd843, %rd842, %rd833; - add.s64 %rd844, %rd843, %rd837; - add.s64 %rd845, %rd844, %rd839; - add.s64 %rd114, %rd845, %rd840; - add.s64 %rd846, %rd115, %rd763; - setp.lt.u64 %p326, %rd846, %rd115; - selp.u64 %rd847, 1, 0, %p326; - setp.ne.s64 %p327, %rd801, 0; - selp.u64 %rd848, 1, 0, %p327; - add.s64 %rd849, %rd807, %rd848; - add.s64 %rd850, %rd849, %rd830; - setp.eq.s64 %p328, %rd849, %rd106; - and.pred %p329, %p327, %p328; - setp.lt.u64 %p330, %rd850, %rd834; - or.pred %p331, %p330, %p329; - selp.u64 %rd851, 1, 0, %p331; - add.s64 %rd117, %rd846, %rd851; - setp.lt.u64 %p332, %rd117, %rd846; - selp.u64 %rd852, 1, 0, %p332; - add.s64 %rd853, %rd774, %rd847; - add.s64 %rd116, %rd853, %rd852; - setp.ne.s64 %p333, %rd116, 0; - setp.ne.s64 %p334, %rd117, %rd115; - or.pred %p335, %p334, %p333; - not.pred %p336, %p331; - or.pred %p337, %p335, %p336; - not.pred %p338, %p337; - mov.u64 %rd1029, %rd709; - @%p338 bra $L__BB2_16; - - setp.eq.s64 %p339, %rd116, 0; - setp.lt.u64 %p340, %rd117, %rd115; - and.pred %p341, %p340, %p339; - add.s64 %rd854, %rd116, %rd114; - setp.lt.u64 %p342, %rd854, %rd116; - or.pred %p343, %p342, %p341; - selp.u64 %rd1029, 1, 0, %p343; - -$L__BB2_16: - mul.hi.u64 %rd1006, %rd710, %rd1016; - mul.hi.u64 %rd1005, %rd108, %rd709; - add.s64 %rd1004, %rd107, %rd1005; - setp.lt.u64 %p417, %rd1004, %rd107; - selp.u64 %rd855, 1, 0, %p13; - add.s64 %rd856, %rd101, %rd855; - setp.lt.u64 %p344, %rd856, %rd101; - mul.hi.u64 %rd858, %rd108, %rd710; - mul.hi.u64 %rd859, %rd107, %rd710; - mul.lo.s64 %rd860, %rd108, 576460752303423505; - mov.u64 %rd861, 576460752303423505; - add.s64 %rd862, %rd860, %rd858; - setp.lt.u64 %p345, %rd862, %rd860; - mul.lo.s64 %rd863, %rd107, 576460752303423505; - add.s64 %rd864, %rd863, %rd859; - setp.lt.u64 %p346, %rd864, %rd863; - mul.hi.u64 %rd865, %rd108, %rd861; - add.s64 %rd866, %rd864, %rd865; - setp.lt.u64 %p347, %rd866, %rd864; - selp.u64 %rd867, 1, 0, %p345; - add.s64 %rd868, %rd866, %rd867; - setp.lt.u64 %p348, %rd868, %rd866; - mul.hi.u64 %rd870, %rd107, %rd709; - add.s64 %rd871, %rd870, %rd858; - setp.lt.u64 %p349, %rd871, %rd870; - selp.u64 %rd872, 1, 0, %p417; - add.s64 %rd873, %rd871, %rd872; - setp.lt.u64 %p350, %rd873, %rd871; - mul.lo.s64 %rd874, %rd106, 576460752303423505; - mul.hi.u64 %rd875, %rd861, %rd105; - add.s64 %rd876, %rd875, %rd874; - setp.lt.u64 %p351, %rd876, %rd875; - mul.hi.u64 %rd877, %rd710, %rd106; - add.s64 %rd878, %rd877, %rd876; - setp.lt.u64 %p352, %rd878, %rd877; - selp.u64 %rd879, 1, 0, %p15; - add.s64 %rd880, %rd878, %rd879; - setp.lt.u64 %p353, %rd880, %rd878; - add.s64 %rd881, %rd859, %rd858; - add.s64 %rd882, %rd881, %rd12; - add.s64 %rd883, %rd882, %rd862; - selp.u64 %rd884, 1, 0, %p349; - add.s64 %rd885, %rd883, %rd884; - selp.u64 %rd886, 1, 0, %p350; - add.s64 %rd887, %rd885, %rd886; - setp.lt.u64 %p354, %rd887, %rd862; - selp.u64 %rd888, 1, 0, %p354; - add.s64 %rd889, %rd868, %rd888; - setp.lt.u64 %p355, %rd889, %rd868; - add.s64 %rd890, %rd880, %rd873; - setp.lt.u64 %p356, %rd890, %rd880; - add.s64 %rd891, %rd110, %rd11; - mul.hi.u64 %rd892, %rd861, %rd106; - add.s64 %rd893, %rd891, %rd892; - selp.u64 %rd894, 1, 0, %p351; - add.s64 %rd895, %rd893, %rd894; - selp.u64 %rd896, 1, 0, %p352; - add.s64 %rd897, %rd895, %rd896; - selp.u64 %rd898, 1, 0, %p353; - add.s64 %rd899, %rd897, %rd898; - selp.u64 %rd900, 1, 0, %p356; - add.s64 %rd901, %rd899, %rd900; - add.s64 %rd902, %rd901, %rd887; - setp.lt.u64 %p357, %rd902, %rd901; - setp.eq.s64 %p358, %rd901, 0; - and.pred %p359, %p356, %p358; - or.pred %p360, %p357, %p359; - selp.u64 %rd903, 1, 0, %p360; - add.s64 %rd904, %rd889, %rd903; - setp.lt.u64 %p361, %rd904, %rd889; - selp.u64 %rd905, 1, 0, %p16; - add.s64 %rd906, %rd890, %rd905; - setp.lt.u64 %p362, %rd114, %rd112; - setp.eq.s64 %p363, %rd114, %rd112; - and.pred %p364, %p17, %p363; - or.pred %p365, %p362, %p364; - selp.u64 %rd907, 1, 0, %p365; - add.s64 %rd908, %rd906, %rd907; - setp.lt.u64 %p366, %rd908, %rd890; - selp.u64 %rd909, 1, 0, %p366; - add.s64 %rd910, %rd902, %rd909; - setp.lt.u64 %p367, %rd910, %rd902; - selp.u64 %rd911, 1, 0, %p367; - add.s64 %rd912, %rd904, %rd911; - setp.lt.u64 %p368, %rd912, %rd904; - add.s64 %rd123, %rd1029, %rd103; - setp.lt.u64 %p369, %rd123, %rd1029; - selp.u64 %rd913, 1, 0, %p369; - add.s64 %rd122, %rd104, %rd913; - setp.lt.u64 %p370, %rd122, %rd104; - selp.u64 %rd914, 1, 0, %p370; - add.s64 %rd121, %rd856, %rd914; - setp.lt.u64 %p371, %rd121, %rd856; - selp.u64 %rd915, 1, 0, %p371; - add.s64 %rd916, %rd95, %rd1006; - add.s64 %rd917, %rd916, %rd99; - add.s64 %rd918, %rd917, %rd96; - add.s64 %rd919, %rd918, %rd97; - add.s64 %rd920, %rd919, %rd98; - add.s64 %rd921, %rd920, %rd100; - add.s64 %rd922, %rd921, %rd102; - selp.u64 %rd923, 1, 0, %p344; - add.s64 %rd924, %rd922, %rd923; - add.s64 %rd120, %rd924, %rd915; - add.s64 %rd925, %rd121, %rd912; - setp.lt.u64 %p372, %rd925, %rd121; - selp.u64 %rd926, 1, 0, %p372; - add.s64 %rd927, %rd122, %rd910; - add.s64 %rd124, %rd123, %rd908; - setp.lt.u64 %p373, %rd124, %rd123; - selp.u64 %rd928, 1, 0, %p373; - add.s64 %rd125, %rd927, %rd928; - setp.eq.s64 %p374, %rd125, %rd122; - and.pred %p375, %p373, %p374; - setp.lt.u64 %p376, %rd125, %rd122; - or.pred %p377, %p376, %p375; - selp.u64 %rd929, 1, 0, %p377; - add.s64 %rd127, %rd925, %rd929; - setp.lt.u64 %p378, %rd127, %rd925; - selp.u64 %rd930, 1, 0, %p378; - add.s64 %rd931, %rd858, %rd11; - mul.hi.u64 %rd932, %rd107, %rd861; - add.s64 %rd933, %rd931, %rd932; - selp.u64 %rd934, 1, 0, %p346; - add.s64 %rd935, %rd933, %rd934; - selp.u64 %rd936, 1, 0, %p347; - add.s64 %rd937, %rd935, %rd936; - selp.u64 %rd938, 1, 0, %p348; - add.s64 %rd939, %rd937, %rd938; - selp.u64 %rd940, 1, 0, %p355; - add.s64 %rd941, %rd939, %rd940; - selp.u64 %rd942, 1, 0, %p361; - add.s64 %rd943, %rd941, %rd942; - selp.u64 %rd944, 1, 0, %p368; - add.s64 %rd945, %rd943, %rd944; - add.s64 %rd946, %rd945, %rd120; - add.s64 %rd947, %rd946, %rd926; - add.s64 %rd126, %rd947, %rd930; - setp.ne.s64 %p379, %rd126, %rd120; - setp.ne.s64 %p380, %rd127, %rd121; - or.pred %p381, %p380, %p379; - @%p381 bra $L__BB2_18; - - mov.u64 %rd1030, 1; - @%p377 bra $L__BB2_19; - -$L__BB2_18: - setp.eq.s64 %p387, %rd126, %rd120; - setp.lt.u64 %p388, %rd127, %rd121; - and.pred %p389, %p388, %p387; - setp.lt.u64 %p390, %rd126, %rd120; - or.pred %p391, %p390, %p389; - selp.u64 %rd1030, 1, 0, %p391; - -$L__BB2_19: - or.b64 %rd949, %rd125, %rd124; - or.b64 %rd950, %rd949, %rd127; - setp.eq.s64 %p392, %rd950, 0; - mov.u64 %rd951, 0; - setp.eq.s64 %p393, %rd126, 576460752303423505; - and.pred %p394, %p392, %p393; - setp.gt.u64 %p395, %rd126, 576460752303423504; - xor.pred %p396, %p395, %p394; - selp.u64 %rd952, 1, 0, %p396; - mov.u64 %rd953, -1; - mul.hi.u64 %rd954, %rd1030, %rd953; - sub.s64 %rd955, %rd954, %rd1030; - neg.s64 %rd956, %rd1030; - setp.lt.u64 %p397, %rd955, %rd956; - selp.u64 %rd957, 1, 0, %p397; - add.s64 %rd958, %rd955, %rd36; - setp.lt.u64 %p398, %rd958, %rd955; - selp.u64 %rd959, 1, 0, %p398; - add.s64 %rd960, %rd958, %rd957; - setp.lt.u64 %p399, %rd960, %rd958; - selp.u64 %rd961, 1, 0, %p399; - add.s64 %rd962, %rd960, %rd127; - setp.lt.u64 %p400, %rd962, %rd960; - selp.u64 %rd963, 1, 0, %p400; - add.s64 %rd964, %rd955, %rd125; - sub.s64 %rd965, %rd124, %rd1030; - setp.lt.u64 %p401, %rd965, %rd124; - selp.u64 %rd966, 1, 0, %p401; - add.s64 %rd967, %rd964, %rd966; - setp.eq.s64 %p402, %rd967, %rd125; - and.pred %p403, %p401, %p402; - setp.lt.u64 %p404, %rd967, %rd125; - or.pred %p405, %p404, %p403; - selp.u64 %rd968, 1, 0, %p405; - add.s64 %rd969, %rd962, %rd968; - setp.lt.u64 %p406, %rd969, %rd962; - selp.u64 %rd970, 1, 0, %p406; - mov.u64 %rd971, 1; - mul.hi.u64 %rd972, %rd952, %rd971; - mul.hi.u64 %rd973, %rd952, %rd951; - add.s64 %rd974, %rd973, %rd12; - setp.lt.u64 %p407, %rd974, %rd973; - selp.b64 %rd975, -576460752303423505, 0, %p396; - selp.b64 %rd976, -1, 0, %p407; - setp.lt.u64 %p408, %rd969, %rd974; - selp.b64 %rd977, -1, 0, %p408; - sub.s64 %rd978, %rd969, %rd974; - sub.s64 %rd979, %rd967, %rd972; - setp.lt.u64 %p409, %rd965, %rd952; - selp.b64 %rd980, -1, 0, %p409; - add.s64 %rd1017, %rd979, %rd980; - setp.eq.s64 %p410, %rd1017, %rd967; - and.pred %p411, %p409, %p410; - setp.gt.u64 %p412, %rd1017, %rd967; - or.pred %p413, %p412, %p411; - selp.u64 %rd981, 1, 0, %p413; - setp.lt.u64 %p414, %rd978, %rd981; - selp.b64 %rd982, -1, 0, %p414; - sub.s64 %rd983, %rd126, %rd38; - add.s64 %rd984, %rd983, %rd975; - mul.lo.s64 %rd985, %rd1030, -576460752303423506; - add.s64 %rd986, %rd984, %rd985; - add.s64 %rd987, %rd986, %rd36; - add.s64 %rd988, %rd987, %rd36; - add.s64 %rd989, %rd988, %rd954; - sub.s64 %rd990, %rd989, %rd973; - add.s64 %rd991, %rd990, %rd957; - add.s64 %rd992, %rd991, %rd959; - add.s64 %rd993, %rd992, %rd976; - add.s64 %rd994, %rd993, %rd961; - add.s64 %rd995, %rd994, %rd963; - add.s64 %rd996, %rd995, %rd970; - add.s64 %rd997, %rd996, %rd977; - add.s64 %rd1015, %rd997, %rd982; - sub.s64 %rd1016, %rd978, %rd981; - sub.s64 %rd1018, %rd965, %rd952; - setp.ne.s32 %p415, %r18, 0; - @%p415 bra $L__BB2_7; - -$L__BB2_20: - ld.param.u64 %rd1003, [calc_twiddles_bitrev_param_0]; - mov.u32 %r17, %tid.x; - mov.u32 %r16, %ctaid.x; - mov.u32 %r15, %ntid.x; - mad.lo.s32 %r14, %r15, %r16, %r17; - cvta.to.global.u64 %rd998, %rd1003; - mul.wide.u32 %rd999, %r14, 32; - add.s64 %rd1000, %rd998, %rd999; - st.global.u64 [%rd1000], %rd1019; - st.global.u64 [%rd1000+8], %rd1020; - st.global.u64 [%rd1000+16], %rd1021; - st.global.u64 [%rd1000+24], %rd1022; - -$L__BB2_21: - ret; - -} - // .globl bitrev_permutation -.visible .entry bitrev_permutation( - .param .u64 bitrev_permutation_param_0, - .param .u64 bitrev_permutation_param_1, - .param .u32 bitrev_permutation_param_2 -) -{ - .reg .pred %p<3>; - .reg .b32 %r<11>; - .reg .b64 %rd<13>; - - - ld.param.u64 %rd1, [bitrev_permutation_param_0]; - ld.param.u64 %rd2, [bitrev_permutation_param_1]; - ld.param.u32 %r2, [bitrev_permutation_param_2]; - mov.u32 %r3, %ctaid.x; - mov.u32 %r4, %ntid.x; - mov.u32 %r5, %tid.x; - mad.lo.s32 %r1, %r4, %r3, %r5; - setp.ge.u32 %p1, %r1, %r2; - @%p1 bra $L__BB3_2; - - clz.b32 %r6, %r2; - add.s32 %r7, %r6, 1; - brev.b32 %r8, %r1; - shr.u32 %r9, %r8, %r7; - setp.eq.s32 %p2, %r2, 1; - selp.b32 %r10, %r1, %r9, %p2; - cvta.to.global.u64 %rd3, %rd1; - mul.wide.u32 %rd4, %r10, 32; - add.s64 %rd5, %rd3, %rd4; - ld.global.u64 %rd6, [%rd5]; - ld.global.u64 %rd7, [%rd5+8]; - ld.global.u64 %rd8, [%rd5+16]; - ld.global.u64 %rd9, [%rd5+24]; - cvta.to.global.u64 %rd10, %rd2; - mul.wide.u32 %rd11, %r1, 32; - add.s64 %rd12, %rd10, %rd11; - st.global.u64 [%rd12], %rd6; - st.global.u64 [%rd12+8], %rd7; - st.global.u64 [%rd12+16], %rd8; - st.global.u64 [%rd12+24], %rd9; - -$L__BB3_2: - ret; - -} - diff --git a/provers/stone-demo b/provers/stone-demo deleted file mode 160000 index 41b401ea6..000000000 --- a/provers/stone-demo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 41b401ea663b799606d56aae0be20dda5441b607