Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Zig
Javascript
GIMPLE
Ygen
sway
c++ source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
6502-c++ 11.1.0
ARM GCC 10.2.0
ARM GCC 10.3.0
ARM GCC 10.4.0
ARM GCC 10.5.0
ARM GCC 11.1.0
ARM GCC 11.2.0
ARM GCC 11.3.0
ARM GCC 11.4.0
ARM GCC 12.1.0
ARM GCC 12.2.0
ARM GCC 12.3.0
ARM GCC 12.4.0
ARM GCC 12.5.0
ARM GCC 13.1.0
ARM GCC 13.2.0
ARM GCC 13.2.0 (unknown-eabi)
ARM GCC 13.3.0
ARM GCC 13.3.0 (unknown-eabi)
ARM GCC 13.4.0
ARM GCC 13.4.0 (unknown-eabi)
ARM GCC 14.1.0
ARM GCC 14.1.0 (unknown-eabi)
ARM GCC 14.2.0
ARM GCC 14.2.0 (unknown-eabi)
ARM GCC 14.3.0
ARM GCC 14.3.0 (unknown-eabi)
ARM GCC 15.1.0
ARM GCC 15.1.0 (unknown-eabi)
ARM GCC 15.2.0
ARM GCC 15.2.0 (unknown-eabi)
ARM GCC 4.5.4
ARM GCC 4.6.4
ARM GCC 5.4
ARM GCC 6.3.0
ARM GCC 6.4.0
ARM GCC 7.3.0
ARM GCC 7.5.0
ARM GCC 8.2.0
ARM GCC 8.5.0
ARM GCC 9.3.0
ARM GCC 9.4.0
ARM GCC 9.5.0
ARM GCC trunk
ARM gcc 10.2.1 (none)
ARM gcc 10.3.1 (2021.07 none)
ARM gcc 10.3.1 (2021.10 none)
ARM gcc 11.2.1 (none)
ARM gcc 5.4.1 (none)
ARM gcc 7.2.1 (none)
ARM gcc 8.2 (WinCE)
ARM gcc 8.3.1 (none)
ARM gcc 9.2.1 (none)
ARM msvc v19.0 (ex-WINE)
ARM msvc v19.10 (ex-WINE)
ARM msvc v19.14 (ex-WINE)
ARM64 Morello gcc 10.1 Alpha 2
ARM64 gcc 10.2
ARM64 gcc 10.3
ARM64 gcc 10.4
ARM64 gcc 10.5.0
ARM64 gcc 11.1
ARM64 gcc 11.2
ARM64 gcc 11.3
ARM64 gcc 11.4.0
ARM64 gcc 12.1
ARM64 gcc 12.2.0
ARM64 gcc 12.3.0
ARM64 gcc 12.4.0
ARM64 gcc 12.5.0
ARM64 gcc 13.1.0
ARM64 gcc 13.2.0
ARM64 gcc 13.3.0
ARM64 gcc 13.4.0
ARM64 gcc 14.1.0
ARM64 gcc 14.2.0
ARM64 gcc 14.3.0
ARM64 gcc 15.1.0
ARM64 gcc 15.2.0
ARM64 gcc 4.9.4
ARM64 gcc 5.4
ARM64 gcc 5.5.0
ARM64 gcc 6.3
ARM64 gcc 6.4
ARM64 gcc 7.3
ARM64 gcc 7.5
ARM64 gcc 8.2
ARM64 gcc 8.5
ARM64 gcc 9.3
ARM64 gcc 9.4
ARM64 gcc 9.5
ARM64 gcc trunk
ARM64 msvc v19.14 (ex-WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.1.0
AVR gcc 12.2.0
AVR gcc 12.3.0
AVR gcc 12.4.0
AVR gcc 12.5.0
AVR gcc 13.1.0
AVR gcc 13.2.0
AVR gcc 13.3.0
AVR gcc 13.4.0
AVR gcc 14.1.0
AVR gcc 14.2.0
AVR gcc 14.3.0
AVR gcc 15.1.0
AVR gcc 15.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF clang 17.0.1
BPF clang 18.1.0
BPF clang 19.1.0
BPF clang 20.1.0
EDG (experimental reflection)
EDG 6.5
EDG 6.5 (GNU mode gcc 13)
EDG 6.6
EDG 6.6 (GNU mode gcc 13)
EDG 6.7
EDG 6.7 (GNU mode gcc 14)
FRC 2019
FRC 2020
FRC 2023
HPPA gcc 14.2.0
HPPA gcc 14.3.0
HPPA gcc 15.1.0
HPPA gcc 15.2.0
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.12.0 (GCC 11.3.0)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
KVX ACB 5.0.0 (GCC 12.2.1)
KVX ACB 5.2.0 (GCC 13.2.1)
LoongArch64 clang (trunk)
LoongArch64 clang 17.0.1
LoongArch64 clang 18.1.0
LoongArch64 clang 19.1.0
LoongArch64 clang 20.1.0
M68K gcc 13.1.0
M68K gcc 13.2.0
M68K gcc 13.3.0
M68K gcc 13.4.0
M68K gcc 14.1.0
M68K gcc 14.2.0
M68K gcc 14.3.0
M68K gcc 15.1.0
M68K gcc 15.2.0
M68k clang (trunk)
MRISC32 gcc (trunk)
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW clang 16.0.0
MinGW clang 16.0.2
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
MinGW gcc 13.1.0
RISC-V (32-bits) gcc (trunk)
RISC-V (32-bits) gcc 10.2.0
RISC-V (32-bits) gcc 10.3.0
RISC-V (32-bits) gcc 11.2.0
RISC-V (32-bits) gcc 11.3.0
RISC-V (32-bits) gcc 11.4.0
RISC-V (32-bits) gcc 12.1.0
RISC-V (32-bits) gcc 12.2.0
RISC-V (32-bits) gcc 12.3.0
RISC-V (32-bits) gcc 12.4.0
RISC-V (32-bits) gcc 12.5.0
RISC-V (32-bits) gcc 13.1.0
RISC-V (32-bits) gcc 13.2.0
RISC-V (32-bits) gcc 13.3.0
RISC-V (32-bits) gcc 13.4.0
RISC-V (32-bits) gcc 14.1.0
RISC-V (32-bits) gcc 14.2.0
RISC-V (32-bits) gcc 14.3.0
RISC-V (32-bits) gcc 15.1.0
RISC-V (32-bits) gcc 15.2.0
RISC-V (32-bits) gcc 8.2.0
RISC-V (32-bits) gcc 8.5.0
RISC-V (32-bits) gcc 9.4.0
RISC-V (64-bits) gcc (trunk)
RISC-V (64-bits) gcc 10.2.0
RISC-V (64-bits) gcc 10.3.0
RISC-V (64-bits) gcc 11.2.0
RISC-V (64-bits) gcc 11.3.0
RISC-V (64-bits) gcc 11.4.0
RISC-V (64-bits) gcc 12.1.0
RISC-V (64-bits) gcc 12.2.0
RISC-V (64-bits) gcc 12.3.0
RISC-V (64-bits) gcc 12.4.0
RISC-V (64-bits) gcc 12.5.0
RISC-V (64-bits) gcc 13.1.0
RISC-V (64-bits) gcc 13.2.0
RISC-V (64-bits) gcc 13.3.0
RISC-V (64-bits) gcc 13.4.0
RISC-V (64-bits) gcc 14.1.0
RISC-V (64-bits) gcc 14.2.0
RISC-V (64-bits) gcc 14.3.0
RISC-V (64-bits) gcc 15.1.0
RISC-V (64-bits) gcc 15.2.0
RISC-V (64-bits) gcc 8.2.0
RISC-V (64-bits) gcc 8.5.0
RISC-V (64-bits) gcc 9.4.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 17.0.1
RISC-V rv32gc clang 18.1.0
RISC-V rv32gc clang 19.1.0
RISC-V rv32gc clang 20.1.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 17.0.1
RISC-V rv64gc clang 18.1.0
RISC-V rv64gc clang 19.1.0
RISC-V rv64gc clang 20.1.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
Raspbian Buster
Raspbian Stretch
SPARC LEON gcc 12.2.0
SPARC LEON gcc 12.3.0
SPARC LEON gcc 12.4.0
SPARC LEON gcc 12.5.0
SPARC LEON gcc 13.1.0
SPARC LEON gcc 13.2.0
SPARC LEON gcc 13.3.0
SPARC LEON gcc 13.4.0
SPARC LEON gcc 14.1.0
SPARC LEON gcc 14.2.0
SPARC LEON gcc 14.3.0
SPARC LEON gcc 15.1.0
SPARC LEON gcc 15.2.0
SPARC gcc 12.2.0
SPARC gcc 12.3.0
SPARC gcc 12.4.0
SPARC gcc 12.5.0
SPARC gcc 13.1.0
SPARC gcc 13.2.0
SPARC gcc 13.3.0
SPARC gcc 13.4.0
SPARC gcc 14.1.0
SPARC gcc 14.2.0
SPARC gcc 14.3.0
SPARC gcc 15.1.0
SPARC gcc 15.2.0
SPARC64 gcc 12.2.0
SPARC64 gcc 12.3.0
SPARC64 gcc 12.4.0
SPARC64 gcc 12.5.0
SPARC64 gcc 13.1.0
SPARC64 gcc 13.2.0
SPARC64 gcc 13.3.0
SPARC64 gcc 13.4.0
SPARC64 gcc 14.1.0
SPARC64 gcc 14.2.0
SPARC64 gcc 14.3.0
SPARC64 gcc 15.1.0
SPARC64 gcc 15.2.0
TI C6x gcc 12.2.0
TI C6x gcc 12.3.0
TI C6x gcc 12.4.0
TI C6x gcc 12.5.0
TI C6x gcc 13.1.0
TI C6x gcc 13.2.0
TI C6x gcc 13.3.0
TI C6x gcc 13.4.0
TI C6x gcc 14.1.0
TI C6x gcc 14.2.0
TI C6x gcc 14.3.0
TI C6x gcc 15.1.0
TI C6x gcc 15.2.0
TI CL430 21.6.1
Tricore gcc 11.3.0 (EEESlab)
VAX gcc NetBSDELF 10.4.0
VAX gcc NetBSDELF 10.5.0 (Nov 15 03:50:22 2023)
VAX gcc NetBSDELF 12.4.0 (Apr 16 05:27 2025)
WebAssembly clang (trunk)
Xtensa ESP32 gcc 11.2.0 (2022r1)
Xtensa ESP32 gcc 12.2.0 (20230208)
Xtensa ESP32 gcc 14.2.0 (20241119)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 11.2.0 (2022r1)
Xtensa ESP32-S2 gcc 12.2.0 (20230208)
Xtensa ESP32-S2 gcc 14.2.0 (20241119)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 11.2.0 (2022r1)
Xtensa ESP32-S3 gcc 12.2.0 (20230208)
Xtensa ESP32-S3 gcc 14.2.0 (20241119)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.20 VS16.0
arm64 msvc v19.21 VS16.1
arm64 msvc v19.22 VS16.2
arm64 msvc v19.23 VS16.3
arm64 msvc v19.24 VS16.4
arm64 msvc v19.25 VS16.5
arm64 msvc v19.27 VS16.7
arm64 msvc v19.28 VS16.8
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30 VS17.0
arm64 msvc v19.31 VS17.1
arm64 msvc v19.32 VS17.2
arm64 msvc v19.33 VS17.3
arm64 msvc v19.34 VS17.4
arm64 msvc v19.35 VS17.5
arm64 msvc v19.36 VS17.6
arm64 msvc v19.37 VS17.7
arm64 msvc v19.38 VS17.8
arm64 msvc v19.39 VS17.9
arm64 msvc v19.40 VS17.10
arm64 msvc v19.41 VS17.11
arm64 msvc v19.42 VS17.12
arm64 msvc v19.43 VS17.13
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 17.0.1
armv7-a clang 18.1.0
armv7-a clang 19.1.0
armv7-a clang 20.1.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (all architectural features, trunk)
armv8-a clang (trunk)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 13.0.0
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 17.0.1
armv8-a clang 18.1.0
armv8-a clang 19.1.0
armv8-a clang 20.1.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
clad trunk (clang 20.1.0)
clad v1.10 (clang 20.1.0)
clad v1.8 (clang 18.1.0)
clad v1.9 (clang 19.1.0)
clad v2.00 (clang 20.1.0)
clang-cl 18.1.0
ellcc 0.1.33
ellcc 0.1.34
ellcc 2017-07-16
ez80-clang 15.0.0
ez80-clang 15.0.7
hexagon-clang 16.0.5
llvm-mos atari2600-3e
llvm-mos atari2600-4k
llvm-mos atari2600-common
llvm-mos atari5200-supercart
llvm-mos atari8-cart-megacart
llvm-mos atari8-cart-std
llvm-mos atari8-cart-xegs
llvm-mos atari8-common
llvm-mos atari8-dos
llvm-mos c128
llvm-mos c64
llvm-mos commodore
llvm-mos cpm65
llvm-mos cx16
llvm-mos dodo
llvm-mos eater
llvm-mos mega65
llvm-mos nes
llvm-mos nes-action53
llvm-mos nes-cnrom
llvm-mos nes-gtrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos nes-unrom
llvm-mos nes-unrom-512
llvm-mos osi-c1p
llvm-mos pce
llvm-mos pce-cd
llvm-mos pce-common
llvm-mos pet
llvm-mos rp6502
llvm-mos rpc8e
llvm-mos supervision
llvm-mos vic20
loongarch64 gcc 12.2.0
loongarch64 gcc 12.3.0
loongarch64 gcc 12.4.0
loongarch64 gcc 12.5.0
loongarch64 gcc 13.1.0
loongarch64 gcc 13.2.0
loongarch64 gcc 13.3.0
loongarch64 gcc 13.4.0
loongarch64 gcc 14.1.0
loongarch64 gcc 14.2.0
loongarch64 gcc 14.3.0
loongarch64 gcc 15.1.0
loongarch64 gcc 15.2.0
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips clang 17.0.1
mips clang 18.1.0
mips clang 19.1.0
mips clang 20.1.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 12.3.0
mips gcc 12.4.0
mips gcc 12.5.0
mips gcc 13.1.0
mips gcc 13.2.0
mips gcc 13.3.0
mips gcc 13.4.0
mips gcc 14.1.0
mips gcc 14.2.0
mips gcc 14.3.0
mips gcc 15.1.0
mips gcc 15.2.0
mips gcc 4.9.4
mips gcc 5.4
mips gcc 5.5.0
mips gcc 9.3.0 (codescape)
mips gcc 9.5.0
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 (el) gcc 12.3.0
mips64 (el) gcc 12.4.0
mips64 (el) gcc 12.5.0
mips64 (el) gcc 13.1.0
mips64 (el) gcc 13.2.0
mips64 (el) gcc 13.3.0
mips64 (el) gcc 13.4.0
mips64 (el) gcc 14.1.0
mips64 (el) gcc 14.2.0
mips64 (el) gcc 14.3.0
mips64 (el) gcc 15.1.0
mips64 (el) gcc 15.2.0
mips64 (el) gcc 4.9.4
mips64 (el) gcc 5.4.0
mips64 (el) gcc 5.5.0
mips64 (el) gcc 9.5.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 clang 17.0.1
mips64 clang 18.1.0
mips64 clang 19.1.0
mips64 clang 20.1.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 12.3.0
mips64 gcc 12.4.0
mips64 gcc 12.5.0
mips64 gcc 13.1.0
mips64 gcc 13.2.0
mips64 gcc 13.3.0
mips64 gcc 13.4.0
mips64 gcc 14.1.0
mips64 gcc 14.2.0
mips64 gcc 14.3.0
mips64 gcc 15.1.0
mips64 gcc 15.2.0
mips64 gcc 4.9.4
mips64 gcc 5.4.0
mips64 gcc 5.5.0
mips64 gcc 9.5.0
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mips64el clang 17.0.1
mips64el clang 18.1.0
mips64el clang 19.1.0
mips64el clang 20.1.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
mipsel clang 17.0.1
mipsel clang 18.1.0
mipsel clang 19.1.0
mipsel clang 20.1.0
mipsel gcc 12.1.0
mipsel gcc 12.2.0
mipsel gcc 12.3.0
mipsel gcc 12.4.0
mipsel gcc 12.5.0
mipsel gcc 13.1.0
mipsel gcc 13.2.0
mipsel gcc 13.3.0
mipsel gcc 13.4.0
mipsel gcc 14.1.0
mipsel gcc 14.2.0
mipsel gcc 14.3.0
mipsel gcc 15.1.0
mipsel gcc 15.2.0
mipsel gcc 4.9.4
mipsel gcc 5.4.0
mipsel gcc 5.5.0
mipsel gcc 9.5.0
nanoMIPS gcc 6.3.0 (mtk)
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 12.3.0
power gcc 12.4.0
power gcc 12.5.0
power gcc 13.1.0
power gcc 13.2.0
power gcc 13.3.0
power gcc 13.4.0
power gcc 14.1.0
power gcc 14.2.0
power gcc 14.3.0
power gcc 15.1.0
power gcc 15.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64 gcc 11.2.0
power64 gcc 12.1.0
power64 gcc 12.2.0
power64 gcc 12.3.0
power64 gcc 12.4.0
power64 gcc 12.5.0
power64 gcc 13.1.0
power64 gcc 13.2.0
power64 gcc 13.3.0
power64 gcc 13.4.0
power64 gcc 14.1.0
power64 gcc 14.2.0
power64 gcc 14.3.0
power64 gcc 15.1.0
power64 gcc 15.2.0
power64 gcc trunk
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 12.3.0
power64le gcc 12.4.0
power64le gcc 12.5.0
power64le gcc 13.1.0
power64le gcc 13.2.0
power64le gcc 13.3.0
power64le gcc 13.4.0
power64le gcc 14.1.0
power64le gcc 14.2.0
power64le gcc 14.3.0
power64le gcc 15.1.0
power64le gcc 15.2.0
power64le gcc 6.3.0
power64le gcc trunk
powerpc64 clang (trunk)
qnx 8.0.0
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
s390x gcc 12.3.0
s390x gcc 12.4.0
s390x gcc 12.5.0
s390x gcc 13.1.0
s390x gcc 13.2.0
s390x gcc 13.3.0
s390x gcc 13.4.0
s390x gcc 14.1.0
s390x gcc 14.2.0
s390x gcc 14.3.0
s390x gcc 15.1.0
s390x gcc 15.2.0
sh gcc 12.2.0
sh gcc 12.3.0
sh gcc 12.4.0
sh gcc 12.5.0
sh gcc 13.1.0
sh gcc 13.2.0
sh gcc 13.3.0
sh gcc 13.4.0
sh gcc 14.1.0
sh gcc 14.2.0
sh gcc 14.3.0
sh gcc 15.1.0
sh gcc 15.2.0
sh gcc 4.9.4
sh gcc 9.5.0
vast (trunk)
x64 msvc v19.0 (ex-WINE)
x64 msvc v19.10 (ex-WINE)
x64 msvc v19.14 (ex-WINE)
x64 msvc v19.20 VS16.0
x64 msvc v19.21 VS16.1
x64 msvc v19.22 VS16.2
x64 msvc v19.23 VS16.3
x64 msvc v19.24 VS16.4
x64 msvc v19.25 VS16.5
x64 msvc v19.27 VS16.7
x64 msvc v19.28 VS16.8
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30 VS17.0
x64 msvc v19.31 VS17.1
x64 msvc v19.32 VS17.2
x64 msvc v19.33 VS17.3
x64 msvc v19.34 VS17.4
x64 msvc v19.35 VS17.5
x64 msvc v19.36 VS17.6
x64 msvc v19.37 VS17.7
x64 msvc v19.38 VS17.8
x64 msvc v19.39 VS17.9
x64 msvc v19.40 VS17.10
x64 msvc v19.41 VS17.11
x64 msvc v19.42 VS17.12
x64 msvc v19.43 VS17.13
x64 msvc v19.latest
x86 djgpp 4.9.4
x86 djgpp 5.5.0
x86 djgpp 6.4.0
x86 djgpp 7.2.0
x86 msvc v19.0 (ex-WINE)
x86 msvc v19.10 (ex-WINE)
x86 msvc v19.14 (ex-WINE)
x86 msvc v19.20 VS16.0
x86 msvc v19.21 VS16.1
x86 msvc v19.22 VS16.2
x86 msvc v19.23 VS16.3
x86 msvc v19.24 VS16.4
x86 msvc v19.25 VS16.5
x86 msvc v19.27 VS16.7
x86 msvc v19.28 VS16.8
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30 VS17.0
x86 msvc v19.31 VS17.1
x86 msvc v19.32 VS17.2
x86 msvc v19.33 VS17.3
x86 msvc v19.34 VS17.4
x86 msvc v19.35 VS17.5
x86 msvc v19.36 VS17.6
x86 msvc v19.37 VS17.7
x86 msvc v19.38 VS17.8
x86 msvc v19.39 VS17.9
x86 msvc v19.40 VS17.10
x86 msvc v19.41 VS17.11
x86 msvc v19.42 VS17.12
x86 msvc v19.43 VS17.13
x86 msvc v19.latest
x86 nvc++ 22.11
x86 nvc++ 22.7
x86 nvc++ 22.9
x86 nvc++ 23.1
x86 nvc++ 23.11
x86 nvc++ 23.3
x86 nvc++ 23.5
x86 nvc++ 23.7
x86 nvc++ 23.9
x86 nvc++ 24.1
x86 nvc++ 24.11
x86 nvc++ 24.3
x86 nvc++ 24.5
x86 nvc++ 24.7
x86 nvc++ 24.9
x86 nvc++ 25.1
x86 nvc++ 25.3
x86 nvc++ 25.5
x86 nvc++ 25.7
x86-64 Zapcc 190308
x86-64 clang (-fimplicit-constexpr)
x86-64 clang (Chris Bazley N3089)
x86-64 clang (EricWF contracts)
x86-64 clang (amd-staging)
x86-64 clang (assertions trunk)
x86-64 clang (clangir)
x86-64 clang (experimental -Wlifetime)
x86-64 clang (experimental P1061)
x86-64 clang (experimental P1144)
x86-64 clang (experimental P1221)
x86-64 clang (experimental P2998)
x86-64 clang (experimental P3068)
x86-64 clang (experimental P3309)
x86-64 clang (experimental P3367)
x86-64 clang (experimental P3372)
x86-64 clang (experimental P3385)
x86-64 clang (experimental P3776)
x86-64 clang (experimental metaprogramming - P2632)
x86-64 clang (old concepts branch)
x86-64 clang (p1974)
x86-64 clang (pattern matching - P2688)
x86-64 clang (reflection - C++26)
x86-64 clang (reflection - TS)
x86-64 clang (resugar)
x86-64 clang (string interpolation - P3412)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (variadic friends - P2893)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.0 (assertions)
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.0 (assertions)
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.0 (assertions)
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.0 (assertions)
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 14.0.0 (assertions)
x86-64 clang 15.0.0
x86-64 clang 15.0.0 (assertions)
x86-64 clang 16.0.0
x86-64 clang 16.0.0 (assertions)
x86-64 clang 17.0.1
x86-64 clang 17.0.1 (assertions)
x86-64 clang 18.1.0
x86-64 clang 18.1.0 (assertions)
x86-64 clang 19.1.0
x86-64 clang 19.1.0 (assertions)
x86-64 clang 2.6.0 (assertions)
x86-64 clang 2.7.0 (assertions)
x86-64 clang 2.8.0 (assertions)
x86-64 clang 2.9.0 (assertions)
x86-64 clang 20.1.0
x86-64 clang 20.1.0 (assertions)
x86-64 clang 3.0.0
x86-64 clang 3.0.0 (assertions)
x86-64 clang 3.1
x86-64 clang 3.1 (assertions)
x86-64 clang 3.2
x86-64 clang 3.2 (assertions)
x86-64 clang 3.3
x86-64 clang 3.3 (assertions)
x86-64 clang 3.4 (assertions)
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5 (assertions)
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.6 (assertions)
x86-64 clang 3.7
x86-64 clang 3.7 (assertions)
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8 (assertions)
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.0 (assertions)
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.0 (assertions)
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.0 (assertions)
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.0 (assertions)
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.0 (assertions)
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.0 (assertions)
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.0 (assertions)
x86-64 clang 9.0.1
x86-64 clang rocm-4.5.2
x86-64 clang rocm-5.0.2
x86-64 clang rocm-5.1.3
x86-64 clang rocm-5.2.3
x86-64 clang rocm-5.3.3
x86-64 clang rocm-5.7.0
x86-64 clang rocm-6.0.2
x86-64 clang rocm-6.1.2
x86-64 clang rocm-6.2.4
x86-64 clang rocm-6.3.3
x86-64 clang rocm-6.4.0
x86-64 gcc (P2034 lambdas)
x86-64 gcc (contract labels)
x86-64 gcc (contracts natural syntax)
x86-64 gcc (contracts)
x86-64 gcc (coroutines)
x86-64 gcc (modules)
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.3 (assertions)
x86-64 gcc 10.4
x86-64 gcc 10.4 (assertions)
x86-64 gcc 10.5
x86-64 gcc 10.5 (assertions)
x86-64 gcc 11.1
x86-64 gcc 11.1 (assertions)
x86-64 gcc 11.2
x86-64 gcc 11.2 (assertions)
x86-64 gcc 11.3
x86-64 gcc 11.3 (assertions)
x86-64 gcc 11.4
x86-64 gcc 11.4 (assertions)
x86-64 gcc 12.1
x86-64 gcc 12.1 (assertions)
x86-64 gcc 12.2
x86-64 gcc 12.2 (assertions)
x86-64 gcc 12.3
x86-64 gcc 12.3 (assertions)
x86-64 gcc 12.4
x86-64 gcc 12.4 (assertions)
x86-64 gcc 12.5
x86-64 gcc 12.5 (assertions)
x86-64 gcc 13.1
x86-64 gcc 13.1 (assertions)
x86-64 gcc 13.2
x86-64 gcc 13.2 (assertions)
x86-64 gcc 13.3
x86-64 gcc 13.3 (assertions)
x86-64 gcc 13.4
x86-64 gcc 13.4 (assertions)
x86-64 gcc 14.1
x86-64 gcc 14.1 (assertions)
x86-64 gcc 14.2
x86-64 gcc 14.2 (assertions)
x86-64 gcc 14.3
x86-64 gcc 14.3 (assertions)
x86-64 gcc 15.1
x86-64 gcc 15.1 (assertions)
x86-64 gcc 15.2
x86-64 gcc 15.2 (assertions)
x86-64 gcc 3.4.6
x86-64 gcc 4.0.4
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 5.5
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 6.4
x86-64 gcc 6.5
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 7.5
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.10.0
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icc 2021.8.0
x86-64 icc 2021.9.0
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86-64 icx 2023.0.0
x86-64 icx 2023.1.0
x86-64 icx 2023.2.1
x86-64 icx 2024.0.0
x86-64 icx 2024.1.0
x86-64 icx 2024.2.0
x86-64 icx 2024.2.1
x86-64 icx 2025.0.0
x86-64 icx 2025.0.1
x86-64 icx 2025.0.3
x86-64 icx 2025.0.4
x86-64 icx 2025.1.0
x86-64 icx 2025.1.1
x86-64 icx 2025.2.0
x86-64 icx 2025.2.1
x86-64 icx 2025.2.1
z180-clang 15.0.0
z180-clang 15.0.7
z80-clang 15.0.0
z80-clang 15.0.7
zig c++ 0.10.0
zig c++ 0.11.0
zig c++ 0.12.0
zig c++ 0.12.1
zig c++ 0.13.0
zig c++ 0.14.0
zig c++ 0.14.1
zig c++ 0.15.1
zig c++ 0.6.0
zig c++ 0.7.0
zig c++ 0.7.1
zig c++ 0.8.0
zig c++ 0.9.0
zig c++ trunk
Options
Source code
# 1 "/work/isl_coalesce_libint.cpp" # 1 "<built-in>" 1 # 1 "<built-in>" 3 # 429 "<built-in>" 3 # 1 "<command line>" 1 # 1 "<built-in>" 2 # 1 "/work/isl_coalesce_libint.cpp" 2 # 21 "/work/isl_coalesce_libint.cpp" # 1 "/work/isl_map_private.h" 1 # 18 "/work/isl_map_private.h" # 1 "/work/include/isl/list.h" 1 # 13 "/work/include/isl/list.h" # 1 "/work/include/isl/ctx.h" 1 # 13 "/work/include/isl/ctx.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 101 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__config" 1 3 # 21 "/opt/toolchain/target/bin/../include/c++/v1/__config" 3 # 215 "/opt/toolchain/target/bin/../include/c++/v1/__config" 3 # 1 "/usr/include/features.h" 1 3 4 # 402 "/usr/include/features.h" 3 4 # 1 "/usr/include/stdc-predef.h" 1 3 4 # 403 "/usr/include/features.h" 2 3 4 # 424 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 # 442 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 443 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 # 444 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 # 425 "/usr/include/features.h" 2 3 4 # 448 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 # 449 "/usr/include/features.h" 2 3 4 # 216 "/opt/toolchain/target/bin/../include/c++/v1/__config" 2 3 # 813 "/opt/toolchain/target/bin/../include/c++/v1/__config" 3 namespace std { inline namespace __1 { } } # 102 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 2 3 # 105 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 3 # 1 "/usr/include/stdio.h" 1 3 4 # 27 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 28 "/usr/include/stdio.h" 2 3 4 extern "C" { # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 46 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 3 typedef long unsigned int size_t; # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 34 "/usr/include/stdio.h" 2 3 4 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stdarg.h" 1 3 4 # 14 "/opt/toolchain/target/lib/clang/9.0.0/include/stdarg.h" 3 4 typedef __builtin_va_list va_list; # 32 "/opt/toolchain/target/lib/clang/9.0.0/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 37 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef __int8_t __int_least8_t; typedef __uint8_t __uint_least8_t; typedef __int16_t __int_least16_t; typedef __uint16_t __uint_least16_t; typedef __int32_t __int_least32_t; typedef __uint32_t __uint_least32_t; typedef __int64_t __int_least64_t; typedef __uint64_t __uint_least64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; typedef long int __intmax_t; typedef unsigned long int __uintmax_t; # 140 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 # 141 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __fsword_t; typedef long int __ssize_t; typedef long int __syscall_slong_t; typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; typedef int __sig_atomic_t; # 39 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4 # 13 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h" 3 4 typedef struct { int __count; union { unsigned int __wch; char __wchb[4]; } __value; } __mbstate_t; # 6 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h" 2 3 4 typedef struct _G_fpos_t { __off_t __pos; __mbstate_t __state; } __fpos_t; # 40 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 1 3 4 # 10 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h" 3 4 typedef struct _G_fpos64_t { __off64_t __pos; __mbstate_t __state; } __fpos64_t; # 41 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h" 1 3 4 struct _IO_FILE; typedef struct _IO_FILE __FILE; # 42 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h" 1 3 4 struct _IO_FILE; typedef struct _IO_FILE FILE; # 43 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" 1 3 4 # 35 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h" 3 4 struct _IO_FILE; struct _IO_marker; struct _IO_codecvt; struct _IO_wide_data; typedef void _IO_lock_t; struct _IO_FILE { int _flags; char *_IO_read_ptr; char *_IO_read_end; char *_IO_read_base; char *_IO_write_base; char *_IO_write_ptr; char *_IO_write_end; char *_IO_buf_base; char *_IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; __off64_t _offset; struct _IO_codecvt *_codecvt; struct _IO_wide_data *_wide_data; struct _IO_FILE *_freeres_list; void *_freeres_buf; size_t __pad5; int _mode; char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; }; # 44 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h" 3 4 typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, size_t __nbytes); typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); typedef int cookie_close_function_t (void *__cookie); typedef struct _IO_cookie_io_functions_t { cookie_read_function_t *read; cookie_write_function_t *write; cookie_seek_function_t *seek; cookie_close_function_t *close; } cookie_io_functions_t; # 47 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 63 "/usr/include/stdio.h" 3 4 typedef __off_t off_t; typedef __off64_t off64_t; typedef __ssize_t ssize_t; typedef __fpos_t fpos_t; typedef __fpos64_t fpos64_t; # 133 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4 # 134 "/usr/include/stdio.h" 2 3 4 extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; extern int remove (const char *__filename) throw (); extern int rename (const char *__old, const char *__new) throw (); extern int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) throw (); # 164 "/usr/include/stdio.h" 3 4 extern int renameat2 (int __oldfd, const char *__old, int __newfd, const char *__new, unsigned int __flags) throw (); extern FILE *tmpfile (void) ; # 183 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void) ; extern char *tmpnam (char *__s) throw () ; extern char *tmpnam_r (char *__s) throw () ; # 204 "/usr/include/stdio.h" 3 4 extern char *tempnam (const char *__dir, const char *__pfx) throw () __attribute__ ((__malloc__)) ; extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 227 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 237 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); # 246 "/usr/include/stdio.h" 3 4 extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) ; extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) ; # 270 "/usr/include/stdio.h" 3 4 extern FILE *fopen64 (const char *__restrict __filename, const char *__restrict __modes) ; extern FILE *freopen64 (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) ; extern FILE *fdopen (int __fd, const char *__modes) throw () ; extern FILE *fopencookie (void *__restrict __magic_cookie, const char *__restrict __modes, cookie_io_functions_t __io_funcs) throw () ; extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) throw () ; extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ; extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) throw (); extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) throw (); extern void setlinebuf (FILE *__stream) throw (); extern int fprintf (FILE *__restrict __stream, const char *__restrict __format, ...); extern int printf (const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, const char *__restrict __format, ...) throw (); extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) throw (); extern int snprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__printf__, 2, 0))) ; extern int __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; extern int asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))) ; extern int vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) ; extern int scanf (const char *__restrict __format, ...) ; extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) throw (); # 434 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) ; extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) ; extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) throw () __attribute__ ((__format__ (__scanf__, 2, 0))); # 491 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 516 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); # 527 "/usr/include/stdio.h" 3 4 extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 543 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) ; # 593 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) ; # 609 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) ; extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) ; extern int fputs (const char *__restrict __s, FILE *__restrict __stream); extern int puts (const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 668 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (const char *__restrict __s, FILE *__restrict __stream); # 679 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) ; extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream) ; extern void rewind (FILE *__stream); # 713 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream) ; # 737 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, const fpos_t *__pos); # 756 "/usr/include/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream) ; extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); extern void clearerr (FILE *__stream) throw (); extern int feof (FILE *__stream) throw () ; extern int ferror (FILE *__stream) throw () ; extern void clearerr_unlocked (FILE *__stream) throw (); extern int feof_unlocked (FILE *__stream) throw () ; extern int ferror_unlocked (FILE *__stream) throw () ; extern void perror (const char *__s); # 1 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern const char *const sys_errlist[]; extern int _sys_nerr; extern const char *const _sys_errlist[]; # 788 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) throw () ; extern int fileno_unlocked (FILE *__stream) throw () ; # 806 "/usr/include/stdio.h" 3 4 extern FILE *popen (const char *__command, const char *__modes) ; extern int pclose (FILE *__stream); extern char *ctermid (char *__s) throw (); extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __format, ...) throw () __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __format, __gnuc_va_list __args) throw () __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) throw (); extern int ftrylockfile (FILE *__stream) throw () ; extern void funlockfile (FILE *__stream) throw (); # 864 "/usr/include/stdio.h" 3 4 extern int __uflow (FILE *); extern int __overflow (FILE *, int); # 1 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 1 3 4 # 38 "/usr/include/x86_64-linux-gnu/bits/stdio.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } extern __inline __attribute__ ((__gnu_inline__)) int getchar (void) { return getc (stdin); } extern __inline __attribute__ ((__gnu_inline__)) int fgetc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int getc_unlocked (FILE *__fp) { return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int getchar_unlocked (void) { return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } extern __inline __attribute__ ((__gnu_inline__)) int putchar (int __c) { return putc (__c, stdout); } extern __inline __attribute__ ((__gnu_inline__)) int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) int putchar_unlocked (int __c) { return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } extern __inline __attribute__ ((__gnu_inline__)) __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } extern __inline __attribute__ ((__gnu_inline__)) int feof_unlocked (FILE *__stream) throw () { return (((__stream)->_flags & 0x0010) != 0); } extern __inline __attribute__ ((__gnu_inline__)) int ferror_unlocked (FILE *__stream) throw () { return (((__stream)->_flags & 0x0020) != 0); } # 871 "/usr/include/stdio.h" 2 3 4 } # 108 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 2 3 # 14 "/work/include/isl/ctx.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 95 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 3 # 1 "/usr/include/stdlib.h" 1 3 4 # 25 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 26 "/usr/include/stdlib.h" 2 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 32 "/usr/include/stdlib.h" 2 3 4 extern "C" { # 1 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 1 3 4 # 52 "/usr/include/x86_64-linux-gnu/bits/waitflags.h" 3 4 typedef enum { P_ALL, P_PID, P_PGID } idtype_t; # 40 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/waitstatus.h" 1 3 4 # 41 "/usr/include/stdlib.h" 2 3 4 # 55 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 1 3 4 # 120 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/long-double.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 2 3 4 # 214 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 typedef float _Float32; # 251 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 typedef double _Float64; # 268 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 typedef double _Float32x; # 285 "/usr/include/x86_64-linux-gnu/bits/floatn-common.h" 3 4 typedef long double _Float64x; # 121 "/usr/include/x86_64-linux-gnu/bits/floatn.h" 2 3 4 # 56 "/usr/include/stdlib.h" 2 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 97 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) throw () ; extern double atof (const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern int atoi (const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern long int atol (const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; __extension__ extern long long int atoll (const char *__nptr) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; extern double strtod (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern float strtof (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern long double strtold (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); # 140 "/usr/include/stdlib.h" 3 4 extern _Float32 strtof32 (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern _Float64 strtof64 (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); # 158 "/usr/include/stdlib.h" 3 4 extern _Float32x strtof32x (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); extern _Float64x strtof64x (const char *__restrict __nptr, char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))); # 176 "/usr/include/stdlib.h" 3 4 extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); __extension__ extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () __attribute__ ((__nonnull__ (1))); extern int strfromd (char *__dest, size_t __size, const char *__format, double __f) throw () __attribute__ ((__nonnull__ (3))); extern int strfromf (char *__dest, size_t __size, const char *__format, float __f) throw () __attribute__ ((__nonnull__ (3))); extern int strfroml (char *__dest, size_t __size, const char *__format, long double __f) throw () __attribute__ ((__nonnull__ (3))); # 232 "/usr/include/stdlib.h" 3 4 extern int strfromf32 (char *__dest, size_t __size, const char * __format, _Float32 __f) throw () __attribute__ ((__nonnull__ (3))); extern int strfromf64 (char *__dest, size_t __size, const char * __format, _Float64 __f) throw () __attribute__ ((__nonnull__ (3))); # 250 "/usr/include/stdlib.h" 3 4 extern int strfromf32x (char *__dest, size_t __size, const char * __format, _Float32x __f) throw () __attribute__ ((__nonnull__ (3))); extern int strfromf64x (char *__dest, size_t __size, const char * __format, _Float64x __f) throw () __attribute__ ((__nonnull__ (3))); # 272 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h" 3 4 struct __locale_struct { struct __locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; }; typedef struct __locale_struct *__locale_t; # 23 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h" 2 3 4 typedef __locale_t locale_t; # 273 "/usr/include/stdlib.h" 2 3 4 extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); __extension__ extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); __extension__ extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))); extern double strtod_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern float strtof_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern long double strtold_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); # 316 "/usr/include/stdlib.h" 3 4 extern _Float32 strtof32_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern _Float64 strtof64_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); # 337 "/usr/include/stdlib.h" 3 4 extern _Float32x strtof32x_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); extern _Float64x strtof64x_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3))); # 360 "/usr/include/stdlib.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int atoi (const char *__nptr) throw () { return (int) strtol (__nptr, (char **) __null, 10); } extern __inline __attribute__ ((__gnu_inline__)) long int atol (const char *__nptr) throw () { return strtol (__nptr, (char **) __null, 10); } __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int atoll (const char *__nptr) throw () { return strtoll (__nptr, (char **) __null, 10); } # 385 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) throw () ; extern long int a64l (const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 extern "C" { typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; # 97 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __pid_t pid_t; typedef __id_t id_t; # 114 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 1 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h" 1 3 4 typedef __clock_t clock_t; # 127 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h" 1 3 4 typedef __clockid_t clockid_t; # 129 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h" 1 3 4 typedef __time_t time_t; # 130 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h" 1 3 4 typedef __timer_t timer_t; # 131 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 145 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h" 3 4 typedef __int8_t int8_t; typedef __int16_t int16_t; typedef __int32_t int32_t; typedef __int64_t int64_t; # 156 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 177 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 193 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 36 "/usr/include/endian.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 2 3 4 # 60 "/usr/include/endian.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 # 33 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 static __inline __uint16_t __bswap_16 (__uint16_t __bsx) { return ((__uint16_t) ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8))); } static __inline __uint32_t __bswap_32 (__uint32_t __bsx) { return ((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) | (((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24)); } # 69 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 __extension__ static __inline __uint64_t __bswap_64 (__uint64_t __bsx) { return ((((__bsx) & 0xff00000000000000ull) >> 56) | (((__bsx) & 0x00ff000000000000ull) >> 40) | (((__bsx) & 0x0000ff0000000000ull) >> 24) | (((__bsx) & 0x000000ff00000000ull) >> 8) | (((__bsx) & 0x00000000ff000000ull) << 8) | (((__bsx) & 0x0000000000ff0000ull) << 24) | (((__bsx) & 0x000000000000ff00ull) << 40) | (((__bsx) & 0x00000000000000ffull) << 56)); } # 61 "/usr/include/endian.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 1 3 4 # 32 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h" 3 4 static __inline __uint16_t __uint16_identity (__uint16_t __x) { return __x; } static __inline __uint32_t __uint32_identity (__uint32_t __x) { return __x; } static __inline __uint64_t __uint64_identity (__uint64_t __x) { return __x; } # 62 "/usr/include/endian.h" 2 3 4 # 194 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 # 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 # 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h" 1 3 4 typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 5 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h" 2 3 4 typedef __sigset_t sigset_t; # 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h" 1 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 38 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h" 1 3 4 struct timespec { __time_t tv_sec; __syscall_slong_t tv_nsec; }; # 40 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 49 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 typedef long int __fd_mask; # 59 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 91 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern "C" { # 101 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 113 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 126 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 } # 197 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 236 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 1 3 4 # 77 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 2 3 4 # 65 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 struct __pthread_rwlock_arch_t { unsigned int __readers; unsigned int __writers; unsigned int __wrphase_futex; unsigned int __writers_futex; unsigned int __pad3; unsigned int __pad4; int __cur_writer; int __shared; signed char __rwelision; unsigned char __pad1[7]; unsigned long int __pad2; unsigned int __flags; # 99 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h" 3 4 }; # 78 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 2 3 4 typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 118 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 struct __pthread_mutex_s { int __lock ; unsigned int __count; int __owner; unsigned int __nusers; # 148 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 int __kind; short __spins; short __elision; __pthread_list_t __list; # 166 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h" 3 4 }; struct __pthread_cond_s { __extension__ union { __extension__ unsigned long long int __wseq; struct { unsigned int __low; unsigned int __high; } __wseq32; }; __extension__ union { __extension__ unsigned long long int __g1_start; struct { unsigned int __low; unsigned int __high; } __g1_start32; }; unsigned int __g_refs[2] ; unsigned int __g_size[2]; unsigned int __g1_orig_size; unsigned int __wrefs; unsigned int __g_signals[2]; }; # 24 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 typedef unsigned long int pthread_t; typedef union { char __size[4]; int __align; } pthread_mutexattr_t; typedef union { char __size[4]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; union pthread_attr_t { char __size[56]; long int __align; }; typedef union pthread_attr_t pthread_attr_t; typedef union { struct __pthread_mutex_s __data; char __size[40]; long int __align; } pthread_mutex_t; typedef union { struct __pthread_cond_s __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { struct __pthread_rwlock_arch_t __data; char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 245 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 } # 395 "/usr/include/stdlib.h" 2 3 4 extern long int random (void) throw (); extern void srandom (unsigned int __seed) throw (); extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw () __attribute__ ((__nonnull__ (2))); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (2, 4))); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); extern int rand (void) throw (); extern void srand (unsigned int __seed) throw (); extern int rand_r (unsigned int *__seed) throw (); extern double drand48 (void) throw (); extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int lrand48 (void) throw (); extern long int nrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern long int mrand48 (void) throw (); extern long int jrand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); extern void srand48 (long int __seedval) throw (); extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw () __attribute__ ((__nonnull__ (1))); extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; __extension__ unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (2))); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ; extern void *calloc (size_t __nmemb, size_t __size) throw () __attribute__ ((__malloc__)) ; extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__warn_unused_result__)); extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) throw () __attribute__ ((__warn_unused_result__)); extern void free (void *__ptr) throw (); # 1 "/usr/include/alloca.h" 1 3 4 # 24 "/usr/include/alloca.h" 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 25 "/usr/include/alloca.h" 2 3 4 extern "C" { extern void *alloca (size_t __size) throw (); } # 567 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ; extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) throw () __attribute__ ((__nonnull__ (1))) ; extern void *aligned_alloc (size_t __alignment, size_t __size) throw () __attribute__ ((__malloc__)) ; extern void abort (void) throw () __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); extern "C++" int at_quick_exit (void (*__func) (void)) throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1))); # 607 "/usr/include/stdlib.h" 3 4 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) throw () __attribute__ ((__nonnull__ (1))); extern void exit (int __status) throw () __attribute__ ((__noreturn__)); extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__)); extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; extern char *secure_getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern int setenv (const char *__name, const char *__value, int __replace) throw () __attribute__ ((__nonnull__ (2))); extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))); extern int clearenv (void) throw (); # 672 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))); # 685 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; # 695 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; # 707 "/usr/include/stdlib.h" 3 4 extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; # 717 "/usr/include/stdlib.h" 3 4 extern int mkstemps64 (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; # 728 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; # 739 "/usr/include/stdlib.h" 3 4 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; # 749 "/usr/include/stdlib.h" 3 4 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ; # 759 "/usr/include/stdlib.h" 3 4 extern int mkostemps (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) ; # 771 "/usr/include/stdlib.h" 3 4 extern int mkostemps64 (char *__template, int __suffixlen, int __flags) __attribute__ ((__nonnull__ (1))) ; # 781 "/usr/include/stdlib.h" 3 4 extern int system (const char *__command) ; extern char *canonicalize_file_name (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; # 797 "/usr/include/stdlib.h" 3 4 extern char *realpath (const char *__restrict __name, char *__restrict __resolved) throw () ; typedef int (*__compar_fn_t) (const void *, const void *); typedef __compar_fn_t comparison_fn_t; typedef int (*__compar_d_fn_t) (const void *, const void *, void *); extern void *bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 2, 5))) ; # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 1 3 4 # 19 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) { size_t __l, __u, __idx; const void *__p; int __comparison; __l = 0; __u = __nmemb; while (__l < __u) { __idx = (__l + __u) / 2; __p = (void *) (((const char *) __base) + (__idx * __size)); __comparison = (*__compar) (__key, __p); if (__comparison < 0) __u = __idx; else if (__comparison > 0) __l = __idx + 1; else return (void *) __p; } return __null; } # 823 "/usr/include/stdlib.h" 2 3 4 extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); extern void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) __attribute__ ((__nonnull__ (1, 4))); extern int abs (int __x) throw () __attribute__ ((__const__)) ; extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; __extension__ extern long long int llabs (long long int __x) throw () __attribute__ ((__const__)) ; extern div_t div (int __numer, int __denom) throw () __attribute__ ((__const__)) ; extern ldiv_t ldiv (long int __numer, long int __denom) throw () __attribute__ ((__const__)) ; __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) throw () __attribute__ ((__const__)) ; # 869 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *gcvt (double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw () __attribute__ ((__nonnull__ (3))) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); extern int mblen (const char *__s, size_t __n) throw (); extern int mbtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n) throw (); extern int wctomb (char *__s, wchar_t __wchar) throw (); extern size_t mbstowcs (wchar_t *__restrict __pwcs, const char *__restrict __s, size_t __n) throw (); extern size_t wcstombs (char *__restrict __s, const wchar_t *__restrict __pwcs, size_t __n) throw (); extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; # 954 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *const *__restrict __tokens, char **__restrict __valuep) throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; extern int posix_openpt (int __oflag) ; extern int grantpt (int __fd) throw (); extern int unlockpt (int __fd) throw (); extern char *ptsname (int __fd) throw () ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) throw () __attribute__ ((__nonnull__ (1))); # 1010 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) double atof (const char *__nptr) throw () { return strtod (__nptr, (char **) __null); } # 1011 "/usr/include/stdlib.h" 2 3 4 # 1020 "/usr/include/stdlib.h" 3 4 } # 98 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 1 3 # 298 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 14 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 3 # 302 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 2 3 # 1 "/usr/include/math.h" 1 3 4 # 27 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 28 "/usr/include/math.h" 2 3 4 extern "C" { # 1 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/math-vector.h" 2 3 4 # 41 "/usr/include/math.h" 2 3 4 # 138 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h" 1 3 4 # 139 "/usr/include/math.h" 2 3 4 # 149 "/usr/include/math.h" 3 4 typedef float float_t; typedef double double_t; # 190 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/fp-logb.h" 1 3 4 # 191 "/usr/include/math.h" 2 3 4 # 233 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/fp-fast.h" 1 3 4 # 234 "/usr/include/math.h" 2 3 4 enum { FP_INT_UPWARD = 0, FP_INT_DOWNWARD = 1, FP_INT_TOWARDZERO = 2, FP_INT_TONEARESTFROMZERO = 3, FP_INT_TONEAREST = 4, }; # 289 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 extern int __fpclassify (double __value) throw () __attribute__ ((__const__)); extern int __signbit (double __value) throw () __attribute__ ((__const__)); extern int __isinf (double __value) throw () __attribute__ ((__const__)); extern int __finite (double __value) throw () __attribute__ ((__const__)); extern int __isnan (double __value) throw () __attribute__ ((__const__)); extern int __iseqsig (double __x, double __y) throw (); extern int __issignaling (double __value) throw () __attribute__ ((__const__)); # 290 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern double acos (double __x) throw (); extern double __acos (double __x) throw (); extern double asin (double __x) throw (); extern double __asin (double __x) throw (); extern double atan (double __x) throw (); extern double __atan (double __x) throw (); extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); extern double cos (double __x) throw (); extern double __cos (double __x) throw (); extern double sin (double __x) throw (); extern double __sin (double __x) throw (); extern double tan (double __x) throw (); extern double __tan (double __x) throw (); extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); extern double exp (double __x) throw (); extern double __exp (double __x) throw (); extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); extern double log (double __x) throw (); extern double __log (double __x) throw (); extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); extern double logb (double __x) throw (); extern double __logb (double __x) throw (); extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); # 182 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern int finite (double __value) throw () __attribute__ ((__const__)); extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); extern double significand (double __x) throw (); extern double __significand (double __x) throw (); extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double nan (const char *__tagb) throw (); extern double __nan (const char *__tagb) throw (); # 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern double j0 (double) throw (); extern double __j0 (double) throw (); extern double j1 (double) throw (); extern double __j1 (double) throw (); extern double jn (int, double) throw (); extern double __jn (int, double) throw (); extern double y0 (double) throw (); extern double __y0 (double) throw (); extern double y1 (double) throw (); extern double __y1 (double) throw (); extern double yn (int, double) throw (); extern double __yn (int, double) throw (); extern double erf (double) throw (); extern double __erf (double) throw (); extern double erfc (double) throw (); extern double __erfc (double) throw (); extern double lgamma (double) throw (); extern double __lgamma (double) throw (); extern double tgamma (double) throw (); extern double __tgamma (double) throw (); extern double gamma (double) throw (); extern double __gamma (double) throw (); extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); extern double rint (double __x) throw (); extern double __rint (double __x) throw (); extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw (); extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw (); extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw (); extern double nextup (double __x) throw (); extern double __nextup (double __x) throw (); extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw (); extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); __extension__ extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); __extension__ extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw (); extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern int totalorder (double __x, double __y) throw () __attribute__ ((__const__)); extern int totalordermag (double __x, double __y) throw () __attribute__ ((__const__)); extern int canonicalize (double *__cx, const double *__x) throw (); extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw (); extern int setpayload (double *__x, double __payload) throw (); extern int setpayloadsig (double *__x, double __payload) throw (); extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); # 291 "/usr/include/math.h" 2 3 4 # 306 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 extern int __fpclassifyf (float __value) throw () __attribute__ ((__const__)); extern int __signbitf (float __value) throw () __attribute__ ((__const__)); extern int __isinff (float __value) throw () __attribute__ ((__const__)); extern int __finitef (float __value) throw () __attribute__ ((__const__)); extern int __isnanf (float __value) throw () __attribute__ ((__const__)); extern int __iseqsigf (float __x, float __y) throw (); extern int __issignalingf (float __value) throw () __attribute__ ((__const__)); # 307 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); extern float expf (float __x) throw (); extern float __expf (float __x) throw (); extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); extern float logf (float __x) throw (); extern float __logf (float __x) throw (); extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); # 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern int isinff (float __value) throw () __attribute__ ((__const__)); extern int finitef (float __value) throw () __attribute__ ((__const__)); extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float nanf (const char *__tagb) throw (); extern float __nanf (const char *__tagb) throw (); # 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern int isnanf (float __value) throw () __attribute__ ((__const__)); extern float j0f (float) throw (); extern float __j0f (float) throw (); extern float j1f (float) throw (); extern float __j1f (float) throw (); extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); extern float y0f (float) throw (); extern float __y0f (float) throw (); extern float y1f (float) throw (); extern float __y1f (float) throw (); extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); extern float erff (float) throw (); extern float __erff (float) throw (); extern float erfcf (float) throw (); extern float __erfcf (float) throw (); extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); extern float gammaf (float) throw (); extern float __gammaf (float) throw (); extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw (); extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw (); extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw (); extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw (); extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw (); extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); __extension__ extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); __extension__ extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern int totalorderf (float __x, float __y) throw () __attribute__ ((__const__)); extern int totalordermagf (float __x, float __y) throw () __attribute__ ((__const__)); extern int canonicalizef (float *__cx, const float *__x) throw (); extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw (); extern int setpayloadf (float *__x, float __payload) throw (); extern int setpayloadsigf (float *__x, float __payload) throw (); extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); # 308 "/usr/include/math.h" 2 3 4 # 349 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h" 3 4 extern int __fpclassifyl (long double __value) throw () __attribute__ ((__const__)); extern int __signbitl (long double __value) throw () __attribute__ ((__const__)); extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); extern int __finitel (long double __value) throw () __attribute__ ((__const__)); extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); extern int __iseqsigl (long double __x, long double __y) throw (); extern int __issignalingl (long double __value) throw () __attribute__ ((__const__)); # 350 "/usr/include/math.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); # 177 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern int isinfl (long double __value) throw () __attribute__ ((__const__)); extern int finitel (long double __value) throw () __attribute__ ((__const__)); extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double nanl (const char *__tagb) throw (); extern long double __nanl (const char *__tagb) throw (); # 211 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern int isnanl (long double __value) throw () __attribute__ ((__const__)); extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw (); extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw (); extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw (); extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw (); extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw (); extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); __extension__ extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); __extension__ extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern int totalorderl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern int totalordermagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern int canonicalizel (long double *__cx, const long double *__x) throw (); extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw (); extern int setpayloadl (long double *__x, long double __payload) throw (); extern int setpayloadsigl (long double *__x, long double __payload) throw (); extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); # 351 "/usr/include/math.h" 2 3 4 # 389 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw (); extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw (); extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw (); extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw (); extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw (); extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw (); extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw (); extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw (); extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw (); extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw (); extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw (); extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw (); extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw (); extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw (); extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw (); extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw (); extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw (); extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw (); extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw (); extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw (); extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw (); extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw (); extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw (); extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw (); # 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 nanf32 (const char *__tagb) throw (); extern _Float32 __nanf32 (const char *__tagb) throw (); # 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw (); extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw (); extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw (); extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw (); extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw (); extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw (); extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw (); extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw (); extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw (); extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw (); # 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw (); extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw (); extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw (); extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw (); extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw (); extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw (); extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw (); extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw (); __extension__ extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw (); extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw (); __extension__ extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw (); extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern int totalorderf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern int totalordermagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw (); extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw (); extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw (); extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw (); # 390 "/usr/include/math.h" 2 3 4 # 406 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw (); extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw (); extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw (); extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw (); extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw (); extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw (); extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw (); extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw (); extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw (); extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw (); extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw (); extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw (); extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw (); extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw (); extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw (); extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw (); extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw (); extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw (); extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw (); extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw (); extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw (); extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw (); extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw (); extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw (); # 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 nanf64 (const char *__tagb) throw (); extern _Float64 __nanf64 (const char *__tagb) throw (); # 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw (); extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw (); extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw (); extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw (); extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw (); extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw (); extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw (); extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw (); extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw (); extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw (); # 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw (); extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw (); extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw (); extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw (); extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw (); extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw (); extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw (); extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw (); __extension__ extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw (); extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw (); __extension__ extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw (); extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern int totalorderf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern int totalordermagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw (); extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw (); extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw (); extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw (); # 407 "/usr/include/math.h" 2 3 4 # 440 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw (); extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw (); extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw (); extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw (); extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw (); extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw (); extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw (); extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw (); extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw (); extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw (); extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw (); extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw (); extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw (); extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw (); extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw (); extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw (); extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw (); extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw (); extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw (); extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw (); extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw (); extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw (); extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw (); extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw (); # 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x nanf32x (const char *__tagb) throw (); extern _Float32x __nanf32x (const char *__tagb) throw (); # 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw (); extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw (); extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw (); extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw (); extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw (); extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw (); extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw (); extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw (); extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw (); extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw (); # 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw (); extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw (); extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw (); extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw (); extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw (); extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw (); extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw (); extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw (); __extension__ extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw (); extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw (); __extension__ extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw (); extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern int totalorderf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern int totalordermagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw (); extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw (); extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw (); extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw (); # 441 "/usr/include/math.h" 2 3 4 # 457 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 1 3 4 # 53 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64x acosf64x (_Float64x __x) throw (); extern _Float64x __acosf64x (_Float64x __x) throw (); extern _Float64x asinf64x (_Float64x __x) throw (); extern _Float64x __asinf64x (_Float64x __x) throw (); extern _Float64x atanf64x (_Float64x __x) throw (); extern _Float64x __atanf64x (_Float64x __x) throw (); extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x cosf64x (_Float64x __x) throw (); extern _Float64x __cosf64x (_Float64x __x) throw (); extern _Float64x sinf64x (_Float64x __x) throw (); extern _Float64x __sinf64x (_Float64x __x) throw (); extern _Float64x tanf64x (_Float64x __x) throw (); extern _Float64x __tanf64x (_Float64x __x) throw (); extern _Float64x coshf64x (_Float64x __x) throw (); extern _Float64x __coshf64x (_Float64x __x) throw (); extern _Float64x sinhf64x (_Float64x __x) throw (); extern _Float64x __sinhf64x (_Float64x __x) throw (); extern _Float64x tanhf64x (_Float64x __x) throw (); extern _Float64x __tanhf64x (_Float64x __x) throw (); extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern _Float64x acoshf64x (_Float64x __x) throw (); extern _Float64x __acoshf64x (_Float64x __x) throw (); extern _Float64x asinhf64x (_Float64x __x) throw (); extern _Float64x __asinhf64x (_Float64x __x) throw (); extern _Float64x atanhf64x (_Float64x __x) throw (); extern _Float64x __atanhf64x (_Float64x __x) throw (); extern _Float64x expf64x (_Float64x __x) throw (); extern _Float64x __expf64x (_Float64x __x) throw (); extern _Float64x frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x logf64x (_Float64x __x) throw (); extern _Float64x __logf64x (_Float64x __x) throw (); extern _Float64x log10f64x (_Float64x __x) throw (); extern _Float64x __log10f64x (_Float64x __x) throw (); extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) throw (); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) throw () __attribute__ ((__nonnull__ (2))); extern _Float64x exp10f64x (_Float64x __x) throw (); extern _Float64x __exp10f64x (_Float64x __x) throw (); extern _Float64x expm1f64x (_Float64x __x) throw (); extern _Float64x __expm1f64x (_Float64x __x) throw (); extern _Float64x log1pf64x (_Float64x __x) throw (); extern _Float64x __log1pf64x (_Float64x __x) throw (); extern _Float64x logbf64x (_Float64x __x) throw (); extern _Float64x __logbf64x (_Float64x __x) throw (); extern _Float64x exp2f64x (_Float64x __x) throw (); extern _Float64x __exp2f64x (_Float64x __x) throw (); extern _Float64x log2f64x (_Float64x __x) throw (); extern _Float64x __log2f64x (_Float64x __x) throw (); extern _Float64x powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x sqrtf64x (_Float64x __x) throw (); extern _Float64x __sqrtf64x (_Float64x __x) throw (); extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x cbrtf64x (_Float64x __x) throw (); extern _Float64x __cbrtf64x (_Float64x __x) throw (); extern _Float64x ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) throw (); # 196 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x nanf64x (const char *__tagb) throw (); extern _Float64x __nanf64x (const char *__tagb) throw (); # 217 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64x j0f64x (_Float64x) throw (); extern _Float64x __j0f64x (_Float64x) throw (); extern _Float64x j1f64x (_Float64x) throw (); extern _Float64x __j1f64x (_Float64x) throw (); extern _Float64x jnf64x (int, _Float64x) throw (); extern _Float64x __jnf64x (int, _Float64x) throw (); extern _Float64x y0f64x (_Float64x) throw (); extern _Float64x __y0f64x (_Float64x) throw (); extern _Float64x y1f64x (_Float64x) throw (); extern _Float64x __y1f64x (_Float64x) throw (); extern _Float64x ynf64x (int, _Float64x) throw (); extern _Float64x __ynf64x (int, _Float64x) throw (); extern _Float64x erff64x (_Float64x) throw (); extern _Float64x __erff64x (_Float64x) throw (); extern _Float64x erfcf64x (_Float64x) throw (); extern _Float64x __erfcf64x (_Float64x) throw (); extern _Float64x lgammaf64x (_Float64x) throw (); extern _Float64x __lgammaf64x (_Float64x) throw (); extern _Float64x tgammaf64x (_Float64x) throw (); extern _Float64x __tgammaf64x (_Float64x) throw (); # 249 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h" 3 4 extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x rintf64x (_Float64x __x) throw (); extern _Float64x __rintf64x (_Float64x __x) throw (); extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x nextdownf64x (_Float64x __x) throw (); extern _Float64x __nextdownf64x (_Float64x __x) throw (); extern _Float64x nextupf64x (_Float64x __x) throw (); extern _Float64x __nextupf64x (_Float64x __x) throw (); extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x scalbnf64x (_Float64x __x, int __n) throw (); extern _Float64x __scalbnf64x (_Float64x __x, int __n) throw (); extern int ilogbf64x (_Float64x __x) throw (); extern int __ilogbf64x (_Float64x __x) throw (); extern long int llogbf64x (_Float64x __x) throw (); extern long int __llogbf64x (_Float64x __x) throw (); extern _Float64x scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x nearbyintf64x (_Float64x __x) throw (); extern _Float64x __nearbyintf64x (_Float64x __x) throw (); extern _Float64x roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern long int lrintf64x (_Float64x __x) throw (); extern long int __lrintf64x (_Float64x __x) throw (); __extension__ extern long long int llrintf64x (_Float64x __x) throw (); extern long long int __llrintf64x (_Float64x __x) throw (); extern long int lroundf64x (_Float64x __x) throw (); extern long int __lroundf64x (_Float64x __x) throw (); __extension__ extern long long int llroundf64x (_Float64x __x) throw (); extern long long int __llroundf64x (_Float64x __x) throw (); extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern int totalorderf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern int totalordermagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) throw (); extern _Float64x getpayloadf64x (const _Float64x *__x) throw (); extern _Float64x __getpayloadf64x (const _Float64x *__x) throw (); extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) throw (); extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) throw (); # 458 "/usr/include/math.h" 2 3 4 # 503 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern float fadd (double __x, double __y) throw (); extern float fdiv (double __x, double __y) throw (); extern float fmul (double __x, double __y) throw (); extern float fsub (double __x, double __y) throw (); # 504 "/usr/include/math.h" 2 3 4 # 517 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern float faddl (long double __x, long double __y) throw (); extern float fdivl (long double __x, long double __y) throw (); extern float fmull (long double __x, long double __y) throw (); extern float fsubl (long double __x, long double __y) throw (); # 518 "/usr/include/math.h" 2 3 4 # 537 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern double daddl (long double __x, long double __y) throw (); extern double ddivl (long double __x, long double __y) throw (); extern double dmull (long double __x, long double __y) throw (); extern double dsubl (long double __x, long double __y) throw (); # 538 "/usr/include/math.h" 2 3 4 # 616 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) throw (); # 617 "/usr/include/math.h" 2 3 4 # 626 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) throw (); extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) throw (); extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) throw (); extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) throw (); # 627 "/usr/include/math.h" 2 3 4 # 636 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) throw (); extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) throw (); extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) throw (); extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) throw (); # 637 "/usr/include/math.h" 2 3 4 # 666 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) throw (); extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) throw (); extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) throw (); extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) throw (); # 667 "/usr/include/math.h" 2 3 4 # 676 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) throw (); extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) throw (); extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) throw (); extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) throw (); # 677 "/usr/include/math.h" 2 3 4 # 706 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h" 3 4 extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) throw (); # 707 "/usr/include/math.h" 2 3 4 # 773 "/usr/include/math.h" 3 4 extern int signgam; # 853 "/usr/include/math.h" 3 4 enum { FP_NAN = 0, FP_INFINITE = 1, FP_ZERO = 2, FP_SUBNORMAL = 3, FP_NORMAL = 4 }; # 968 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 extern int __iscanonicall (long double __x) throw () __attribute__ ((__const__)); # 46 "/usr/include/x86_64-linux-gnu/bits/iscanonical.h" 3 4 extern "C++" { inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); } inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); } inline int iscanonical (long double __val) { return __iscanonicall (__val); } } # 969 "/usr/include/math.h" 2 3 4 # 980 "/usr/include/math.h" 3 4 extern "C++" { inline int issignaling (float __val) { return __issignalingf (__val); } inline int issignaling (double __val) { return __issignaling (__val); } inline int issignaling (long double __val) { return __issignalingl (__val); } } # 1011 "/usr/include/math.h" 3 4 extern "C++" { # 1042 "/usr/include/math.h" 3 4 template <class __T> inline bool iszero (__T __val) { return __val == 0; } } # 1240 "/usr/include/math.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/mathinline.h" 1 3 4 # 1241 "/usr/include/math.h" 2 3 4 # 1493 "/usr/include/math.h" 3 4 extern "C++" { template<typename> struct __iseqsig_type; template<> struct __iseqsig_type<float> { static int __call (float __x, float __y) throw () { return __iseqsigf (__x, __y); } }; template<> struct __iseqsig_type<double> { static int __call (double __x, double __y) throw () { return __iseqsig (__x, __y); } }; template<> struct __iseqsig_type<long double> { static int __call (long double __x, long double __y) throw () { return __iseqsigl (__x, __y); } }; # 1536 "/usr/include/math.h" 3 4 template<typename _T1, typename _T2> inline int iseqsig (_T1 __x, _T2 __y) throw () { typedef decltype (((__x) + (__y) + 0.0f)) _T3; return __iseqsig_type<_T3>::__call (__x, __y); } } } # 304 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 2 3 extern "C++" { # 1 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 1 3 # 417 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 1 3 # 37 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/version" 1 3 # 121 "/opt/toolchain/target/bin/../include/c++/v1/version" 3 # 38 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 2 3 # 41 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 35 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 3 typedef long int ptrdiff_t; # 102 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/__stddef_max_align_t.h" 1 3 # 19 "/opt/toolchain/target/lib/clang/9.0.0/include/__stddef_max_align_t.h" 3 typedef struct { long long __clang_max_align_nonce1 __attribute__((__aligned__(__alignof__(long long)))); long double __clang_max_align_nonce2 __attribute__((__aligned__(__alignof__(long double)))); } max_align_t; # 103 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 2 3 # 45 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__nullptr" 1 3 # 17 "/opt/toolchain/target/bin/../include/c++/v1/__nullptr" 3 # 54 "/opt/toolchain/target/bin/../include/c++/v1/__nullptr" 3 namespace std { typedef decltype(nullptr) nullptr_t; } # 46 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 2 3 namespace std { inline namespace __1 { using ::ptrdiff_t; using ::size_t; using ::max_align_t; } } namespace std { enum class byte : unsigned char {}; constexpr byte operator| (byte __lhs, byte __rhs) noexcept { return static_cast<byte>( static_cast<unsigned char>( static_cast<unsigned int>(__lhs) | static_cast<unsigned int>(__rhs) )); } constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept { return __lhs = __lhs | __rhs; } constexpr byte operator& (byte __lhs, byte __rhs) noexcept { return static_cast<byte>( static_cast<unsigned char>( static_cast<unsigned int>(__lhs) & static_cast<unsigned int>(__rhs) )); } constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept { return __lhs = __lhs & __rhs; } constexpr byte operator^ (byte __lhs, byte __rhs) noexcept { return static_cast<byte>( static_cast<unsigned char>( static_cast<unsigned int>(__lhs) ^ static_cast<unsigned int>(__rhs) )); } constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept { return __lhs = __lhs ^ __rhs; } constexpr byte operator~ (byte __b) noexcept { return static_cast<byte>( static_cast<unsigned char>( ~static_cast<unsigned int>(__b) )); } } # 1 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 1 3 # 111 "/opt/toolchain/target/bin/../include/c++/v1/cstddef" 2 3 # 418 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 2 3 # 422 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 namespace std { inline namespace __1 { template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) pair; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) reference_wrapper; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) hash; template <class> struct __void_t { typedef void type; }; template <class _Tp> struct __identity { typedef _Tp type; }; template <class _Tp, bool> struct __attribute__ ((__type_visibility__("default"))) __dependent_type : public _Tp {}; template <bool _Bp, class _If, class _Then> struct __attribute__ ((__type_visibility__("default"))) conditional {typedef _If type;}; template <class _If, class _Then> struct __attribute__ ((__type_visibility__("default"))) conditional<false, _If, _Then> {typedef _Then type;}; template <bool _Bp, class _If, class _Then> using conditional_t = typename conditional<_Bp, _If, _Then>::type; template <bool, class _Tp> struct __attribute__ ((__type_visibility__("default"))) __lazy_enable_if {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) __lazy_enable_if<true, _Tp> {typedef typename _Tp::type type;}; template <bool, class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) enable_if {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) enable_if<true, _Tp> {typedef _Tp type;}; template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type; template <class _Tp> inline constexpr __attribute__((__no_sanitize__("cfi"))) __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* addressof(_Tp& __x) noexcept { return __builtin_addressof(__x); } # 524 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> _Tp* addressof(const _Tp&&) noexcept = delete; struct __two {char __lx[2];}; template <class _Tp, _Tp __v> struct __attribute__ ((__type_visibility__("default"))) integral_constant { static constexpr const _Tp value = __v; typedef _Tp value_type; typedef integral_constant type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr operator value_type() const noexcept {return value;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr value_type operator ()() const noexcept {return value;} }; template <class _Tp, _Tp __v> constexpr const _Tp integral_constant<_Tp, __v>::value; template <bool __b> using bool_constant = integral_constant<bool, __b>; typedef bool_constant<(true)> true_type; typedef bool_constant<(false)> false_type; template <bool _Last, class ..._Preds> struct __lazy_and_impl; template <class ..._Preds> struct __lazy_and_impl<false, _Preds...> : false_type {}; template <> struct __lazy_and_impl<true> : true_type {}; template <class _Pred> struct __lazy_and_impl<true, _Pred> : integral_constant<bool, _Pred::type::value> {}; template <class _Hp, class ..._Tp> struct __lazy_and_impl<true, _Hp, _Tp...> : __lazy_and_impl<_Hp::type::value, _Tp...> {}; template <class _P1, class ..._Pr> struct __lazy_and : __lazy_and_impl<_P1::type::value, _Pr...> {}; template <bool _List, class ..._Preds> struct __lazy_or_impl; template <class ..._Preds> struct __lazy_or_impl<true, _Preds...> : true_type {}; template <> struct __lazy_or_impl<false> : false_type {}; template <class _Hp, class ..._Tp> struct __lazy_or_impl<false, _Hp, _Tp...> : __lazy_or_impl<_Hp::type::value, _Tp...> {}; template <class _P1, class ..._Pr> struct __lazy_or : __lazy_or_impl<_P1::type::value, _Pr...> {}; template <class _Pred> struct __lazy_not : integral_constant<bool, !_Pred::type::value> {}; template<class...> struct __and_; template<> struct __and_<> : true_type {}; template<class _B0> struct __and_<_B0> : _B0 {}; template<class _B0, class _B1> struct __and_<_B0, _B1> : conditional<_B0::value, _B1, _B0>::type {}; template<class _B0, class _B1, class _B2, class... _Bn> struct __and_<_B0, _B1, _B2, _Bn...> : conditional<_B0::value, __and_<_B1, _B2, _Bn...>, _B0>::type {}; template<class...> struct __or_; template<> struct __or_<> : false_type {}; template<class _B0> struct __or_<_B0> : _B0 {}; template<class _B0, class _B1> struct __or_<_B0, _B1> : conditional<_B0::value, _B0, _B1>::type {}; template<class _B0, class _B1, class _B2, class... _Bn> struct __or_<_B0, _B1, _B2, _Bn...> : conditional<_B0::value, _B0, __or_<_B1, _B2, _Bn...> >::type {}; template<class _Tp> struct __not_ : conditional<_Tp::value, false_type, true_type>::type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_const : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_const<_Tp const> : public true_type {}; template <class _Tp> inline constexpr bool is_const_v = is_const<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_volatile : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_volatile<_Tp volatile> : public true_type {}; template <class _Tp> inline constexpr bool is_volatile_v = is_volatile<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_const {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_const<const _Tp> {typedef _Tp type;}; template <class _Tp> using remove_const_t = typename remove_const<_Tp>::type; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_volatile {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_volatile<volatile _Tp> {typedef _Tp type;}; template <class _Tp> using remove_volatile_t = typename remove_volatile<_Tp>::type; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_cv {typedef typename remove_volatile<typename remove_const<_Tp>::type>::type type;}; template <class _Tp> using remove_cv_t = typename remove_cv<_Tp>::type; template <class _Tp> struct __libcpp_is_void : public false_type {}; template <> struct __libcpp_is_void<void> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_void : public __libcpp_is_void<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_void_v = is_void<_Tp>::value; template <class _Tp> struct __is_nullptr_t_impl : public false_type {}; template <> struct __is_nullptr_t_impl<nullptr_t> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) __is_nullptr_t : public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_null_pointer : public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value; template <class _Tp> struct __libcpp_is_integral : public false_type {}; template <> struct __libcpp_is_integral<bool> : public true_type {}; template <> struct __libcpp_is_integral<char> : public true_type {}; template <> struct __libcpp_is_integral<signed char> : public true_type {}; template <> struct __libcpp_is_integral<unsigned char> : public true_type {}; template <> struct __libcpp_is_integral<wchar_t> : public true_type {}; template <> struct __libcpp_is_integral<char16_t> : public true_type {}; template <> struct __libcpp_is_integral<char32_t> : public true_type {}; template <> struct __libcpp_is_integral<short> : public true_type {}; template <> struct __libcpp_is_integral<unsigned short> : public true_type {}; template <> struct __libcpp_is_integral<int> : public true_type {}; template <> struct __libcpp_is_integral<unsigned int> : public true_type {}; template <> struct __libcpp_is_integral<long> : public true_type {}; template <> struct __libcpp_is_integral<unsigned long> : public true_type {}; template <> struct __libcpp_is_integral<long long> : public true_type {}; template <> struct __libcpp_is_integral<unsigned long long> : public true_type {}; template <> struct __libcpp_is_integral<__int128_t> : public true_type {}; template <> struct __libcpp_is_integral<__uint128_t> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_integral : public __libcpp_is_integral<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_integral_v = is_integral<_Tp>::value; template <class _Tp> struct __libcpp_is_floating_point : public false_type {}; template <> struct __libcpp_is_floating_point<float> : public true_type {}; template <> struct __libcpp_is_floating_point<double> : public true_type {}; template <> struct __libcpp_is_floating_point<long double> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_floating_point : public __libcpp_is_floating_point<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_array : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_array<_Tp[]> : public true_type {}; template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) is_array<_Tp[_Np]> : public true_type {}; template <class _Tp> inline constexpr bool is_array_v = is_array<_Tp>::value; template <class _Tp> struct __libcpp_is_pointer : public false_type {}; template <class _Tp> struct __libcpp_is_pointer<_Tp*> : public true_type {}; template <class _Tp> struct __libcpp_remove_objc_qualifiers { typedef _Tp type; }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_pointer : public __libcpp_is_pointer<typename __libcpp_remove_objc_qualifiers<typename remove_cv<_Tp>::type>::type> {}; template <class _Tp> inline constexpr bool is_pointer_v = is_pointer<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_lvalue_reference : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_lvalue_reference<_Tp&> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_rvalue_reference : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_rvalue_reference<_Tp&&> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_reference : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_reference<_Tp&> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_reference<_Tp&&> : public true_type {}; template <class _Tp> inline constexpr bool is_reference_v = is_reference<_Tp>::value; template <class _Tp> inline constexpr bool is_lvalue_reference_v = is_lvalue_reference<_Tp>::value; template <class _Tp> inline constexpr bool is_rvalue_reference_v = is_rvalue_reference<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_union : public integral_constant<bool, __is_union(_Tp)> {}; # 850 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_union_v = is_union<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_class : public integral_constant<bool, __is_class(_Tp)> {}; # 876 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_class_v = is_class<_Tp>::value; template <class _Tp, class _Up> struct __attribute__ ((__type_visibility__("default"))) is_same : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_same<_Tp, _Tp> : public true_type {}; template <class _Tp, class _Up> inline constexpr bool is_same_v = is_same<_Tp, _Up>::value; namespace __libcpp_is_function_imp { struct __dummy_type {}; template <class _Tp> char __test(_Tp*); template <class _Tp> char __test(__dummy_type); template <class _Tp> __two __test(...); template <class _Tp> _Tp& __source(int); template <class _Tp> __dummy_type __source(...); } template <class _Tp, bool = is_class<_Tp>::value || is_union<_Tp>::value || is_void<_Tp>::value || is_reference<_Tp>::value || __is_nullptr_t<_Tp>::value > struct __libcpp_is_function : public integral_constant<bool, sizeof(__libcpp_is_function_imp::__test<_Tp>(__libcpp_is_function_imp::__source<_Tp>(0))) == 1> {}; template <class _Tp> struct __libcpp_is_function<_Tp, true> : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_function : public __libcpp_is_function<_Tp> {}; template <class _Tp> inline constexpr bool is_function_v = is_function<_Tp>::value; # 929 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _MP, bool _IsMemberFunctionPtr, bool _IsMemberObjectPtr> struct __member_pointer_traits_imp { }; template <class _Tp> struct __libcpp_is_member_function_pointer : public false_type {}; template <class _Ret, class _Class> struct __libcpp_is_member_function_pointer<_Ret _Class::*> : public is_function<_Ret> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_member_function_pointer : public __libcpp_is_member_function_pointer<typename remove_cv<_Tp>::type>::type {}; template <class _Tp> inline constexpr bool is_member_function_pointer_v = is_member_function_pointer<_Tp>::value; template <class _Tp> struct __libcpp_is_member_pointer : public false_type {}; template <class _Tp, class _Up> struct __libcpp_is_member_pointer<_Tp _Up::*> : public true_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_member_pointer : public __libcpp_is_member_pointer<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_member_pointer_v = is_member_pointer<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_member_object_pointer : public integral_constant<bool, is_member_pointer<_Tp>::value && !is_member_function_pointer<_Tp>::value> {}; template <class _Tp> inline constexpr bool is_member_object_pointer_v = is_member_object_pointer<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_enum : public integral_constant<bool, __is_enum(_Tp)> {}; # 1001 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_enum_v = is_enum<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_arithmetic : public integral_constant<bool, is_integral<_Tp>::value || is_floating_point<_Tp>::value> {}; template <class _Tp> inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_fundamental : public integral_constant<bool, is_void<_Tp>::value || __is_nullptr_t<_Tp>::value || is_arithmetic<_Tp>::value> {}; template <class _Tp> inline constexpr bool is_fundamental_v = is_fundamental<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_scalar : public integral_constant<bool, is_arithmetic<_Tp>::value || is_member_pointer<_Tp>::value || is_pointer<_Tp>::value || __is_nullptr_t<_Tp>::value || is_enum<_Tp>::value > {}; template <> struct __attribute__ ((__type_visibility__("default"))) is_scalar<nullptr_t> : public true_type {}; template <class _Tp> inline constexpr bool is_scalar_v = is_scalar<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_object : public integral_constant<bool, is_scalar<_Tp>::value || is_array<_Tp>::value || is_union<_Tp>::value || is_class<_Tp>::value > {}; template <class _Tp> inline constexpr bool is_object_v = is_object<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_compound : public integral_constant<bool, !is_fundamental<_Tp>::value> {}; template <class _Tp> inline constexpr bool is_compound_v = is_compound<_Tp>::value; struct __is_referenceable_impl { template <class _Tp> static _Tp& __test(int); template <class _Tp> static __two __test(...); }; template <class _Tp> struct __is_referenceable : integral_constant<bool, !is_same<decltype(__is_referenceable_impl::__test<_Tp>(0)), __two>::value> {}; template <class _Tp, bool = is_reference<_Tp>::value || is_function<_Tp>::value || is_const<_Tp>::value > struct __add_const {typedef _Tp type;}; template <class _Tp> struct __add_const<_Tp, false> {typedef const _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_const {typedef typename __add_const<_Tp>::type type;}; template <class _Tp> using add_const_t = typename add_const<_Tp>::type; template <class _Tp, bool = is_reference<_Tp>::value || is_function<_Tp>::value || is_volatile<_Tp>::value > struct __add_volatile {typedef _Tp type;}; template <class _Tp> struct __add_volatile<_Tp, false> {typedef volatile _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_volatile {typedef typename __add_volatile<_Tp>::type type;}; template <class _Tp> using add_volatile_t = typename add_volatile<_Tp>::type; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_cv {typedef typename add_const<typename add_volatile<_Tp>::type>::type type;}; template <class _Tp> using add_cv_t = typename add_cv<_Tp>::type; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_reference {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_reference<_Tp&> {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_reference<_Tp&&> {typedef _Tp type;}; template <class _Tp> using remove_reference_t = typename remove_reference<_Tp>::type; template <class _Tp, bool = __is_referenceable<_Tp>::value> struct __add_lvalue_reference_impl { typedef _Tp type; }; template <class _Tp > struct __add_lvalue_reference_impl<_Tp, true> { typedef _Tp& type; }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_lvalue_reference {typedef typename __add_lvalue_reference_impl<_Tp>::type type;}; template <class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type; template <class _Tp, bool = __is_referenceable<_Tp>::value> struct __add_rvalue_reference_impl { typedef _Tp type; }; template <class _Tp > struct __add_rvalue_reference_impl<_Tp, true> { typedef _Tp&& type; }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_rvalue_reference {typedef typename __add_rvalue_reference_impl<_Tp>::type type;}; template <class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type; template <class _Tp> _Tp&& __declval(int); template <class _Tp> _Tp __declval(long); template <class _Tp> decltype(std::__1::__declval<_Tp>(0)) declval() noexcept; # 1186 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> struct __uncvref { typedef typename remove_cv<typename remove_reference<_Tp>::type>::type type; }; template <class _Tp> struct __unconstref { typedef typename remove_const<typename remove_reference<_Tp>::type>::type type; }; template <class _Tp> using __uncvref_t = typename __uncvref<_Tp>::type; template <class _Tp, class _Up> struct __is_same_uncvref : is_same<typename __uncvref<_Tp>::type, typename __uncvref<_Up>::type> {}; # 1216 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 struct __any { __any(...); }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp*> {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp* const> {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp* volatile> {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_pointer<_Tp* const volatile> {typedef _Tp type;}; template <class _Tp> using remove_pointer_t = typename remove_pointer<_Tp>::type; template <class _Tp, bool = __is_referenceable<_Tp>::value || is_same<typename remove_cv<_Tp>::type, void>::value> struct __add_pointer_impl {typedef typename remove_reference<_Tp>::type* type;}; template <class _Tp> struct __add_pointer_impl<_Tp, false> {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) add_pointer {typedef typename __add_pointer_impl<_Tp>::type type;}; template <class _Tp> using add_pointer_t = typename add_pointer<_Tp>::type; # 1258 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, bool = is_integral<_Tp>::value> struct __libcpp_is_signed_impl : public bool_constant<(_Tp(-1) < _Tp(0))> {}; template <class _Tp> struct __libcpp_is_signed_impl<_Tp, false> : public true_type {}; template <class _Tp, bool = is_arithmetic<_Tp>::value> struct __libcpp_is_signed : public __libcpp_is_signed_impl<_Tp> {}; template <class _Tp> struct __libcpp_is_signed<_Tp, false> : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_signed : public __libcpp_is_signed<_Tp> {}; template <class _Tp> inline constexpr bool is_signed_v = is_signed<_Tp>::value; template <class _Tp, bool = is_integral<_Tp>::value> struct __libcpp_is_unsigned_impl : public bool_constant<(_Tp(0) < _Tp(-1))> {}; template <class _Tp> struct __libcpp_is_unsigned_impl<_Tp, false> : public false_type {}; template <class _Tp, bool = is_arithmetic<_Tp>::value> struct __libcpp_is_unsigned : public __libcpp_is_unsigned_impl<_Tp> {}; template <class _Tp> struct __libcpp_is_unsigned<_Tp, false> : public false_type {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_unsigned : public __libcpp_is_unsigned<_Tp> {}; template <class _Tp> inline constexpr bool is_unsigned_v = is_unsigned<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) rank : public integral_constant<size_t, 0> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) rank<_Tp[]> : public integral_constant<size_t, rank<_Tp>::value + 1> {}; template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) rank<_Tp[_Np]> : public integral_constant<size_t, rank<_Tp>::value + 1> {}; template <class _Tp> inline constexpr size_t rank_v = rank<_Tp>::value; template <class _Tp, unsigned _Ip = 0> struct __attribute__ ((__type_visibility__("default"))) extent : public integral_constant<size_t, 0> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) extent<_Tp[], 0> : public integral_constant<size_t, 0> {}; template <class _Tp, unsigned _Ip> struct __attribute__ ((__type_visibility__("default"))) extent<_Tp[], _Ip> : public integral_constant<size_t, extent<_Tp, _Ip-1>::value> {}; template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) extent<_Tp[_Np], 0> : public integral_constant<size_t, _Np> {}; template <class _Tp, size_t _Np, unsigned _Ip> struct __attribute__ ((__type_visibility__("default"))) extent<_Tp[_Np], _Ip> : public integral_constant<size_t, extent<_Tp, _Ip-1>::value> {}; template <class _Tp, unsigned _Ip = 0> inline constexpr size_t extent_v = extent<_Tp, _Ip>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_extent {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_extent<_Tp[]> {typedef _Tp type;}; template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) remove_extent<_Tp[_Np]> {typedef _Tp type;}; template <class _Tp> using remove_extent_t = typename remove_extent<_Tp>::type; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_all_extents {typedef _Tp type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) remove_all_extents<_Tp[]> {typedef typename remove_all_extents<_Tp>::type type;}; template <class _Tp, size_t _Np> struct __attribute__ ((__type_visibility__("default"))) remove_all_extents<_Tp[_Np]> {typedef typename remove_all_extents<_Tp>::type type;}; template <class _Tp> using remove_all_extents_t = typename remove_all_extents<_Tp>::type; # 1380 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Up, bool> struct __decay { typedef typename remove_cv<_Up>::type type; }; template <class _Up> struct __decay<_Up, true> { public: typedef typename conditional < is_array<_Up>::value, typename remove_extent<_Up>::type*, typename conditional < is_function<_Up>::value, typename add_pointer<_Up>::type, typename remove_cv<_Up>::type >::type >::type type; }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) decay { private: typedef typename remove_reference<_Tp>::type _Up; public: typedef typename __decay<_Up, __is_referenceable<_Up>::value>::type type; }; template <class _Tp> using decay_t = typename decay<_Tp>::type; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_abstract : public integral_constant<bool, __is_abstract(_Tp)> {}; template <class _Tp> inline constexpr bool is_abstract_v = is_abstract<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) __libcpp_is_final : public integral_constant<bool, __is_final(_Tp)> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_final : public integral_constant<bool, __is_final(_Tp)> {}; template <class _Tp> inline constexpr bool is_final_v = is_final<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_aggregate : public integral_constant<bool, __is_aggregate(_Tp)> {}; template <class _Tp> inline constexpr bool is_aggregate_v = is_aggregate<_Tp>::value; # 1464 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Bp, class _Dp> struct __attribute__ ((__type_visibility__("default"))) is_base_of : public integral_constant<bool, __is_base_of(_Bp, _Dp)> {}; # 1496 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Bp, class _Dp> inline constexpr bool is_base_of_v = is_base_of<_Bp, _Dp>::value; template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) is_convertible : public integral_constant<bool, __is_convertible_to(_T1, _T2) && !is_abstract<_T2>::value> {}; # 1587 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _From, class _To> inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value; # 1622 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_empty : public integral_constant<bool, __is_empty(_Tp)> {}; # 1650 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_empty_v = is_empty<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_polymorphic : public integral_constant<bool, __is_polymorphic(_Tp)> {}; # 1676 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_polymorphic_v = is_polymorphic<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) has_virtual_destructor : public integral_constant<bool, __has_virtual_destructor(_Tp)> {}; # 1696 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool has_virtual_destructor_v = has_virtual_destructor<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) has_unique_object_representations : public integral_constant<bool, __has_unique_object_representations(remove_cv_t<remove_all_extents_t<_Tp>>)> {}; template <class _Tp> inline constexpr bool has_unique_object_representations_v = has_unique_object_representations<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) alignment_of : public integral_constant<size_t, alignof(_Tp)> {}; template <class _Tp> inline constexpr size_t alignment_of_v = alignment_of<_Tp>::value; template <class _Hp, class _Tp> struct __type_list { typedef _Hp _Head; typedef _Tp _Tail; }; struct __nat { __nat() = delete; __nat(const __nat&) = delete; __nat& operator=(const __nat&) = delete; ~__nat() = delete; }; template <class _Tp> struct __align_type { static const size_t value = __alignof(_Tp); typedef _Tp type; }; struct __struct_double {long double __lx;}; struct __struct_double4 {double __lx[4];}; typedef __type_list<__align_type<unsigned char>, __type_list<__align_type<unsigned short>, __type_list<__align_type<unsigned int>, __type_list<__align_type<unsigned long>, __type_list<__align_type<unsigned long long>, __type_list<__align_type<double>, __type_list<__align_type<long double>, __type_list<__align_type<__struct_double>, __type_list<__align_type<__struct_double4>, __type_list<__align_type<int*>, __nat > > > > > > > > > > __all_types; template <size_t _Align> struct alignas(_Align) __fallback_overaligned {}; template <class _TL, size_t _Align> struct __find_pod; template <class _Hp, size_t _Align> struct __find_pod<__type_list<_Hp, __nat>, _Align> { typedef typename conditional< _Align == _Hp::value, typename _Hp::type, __fallback_overaligned<_Align> >::type type; }; template <class _Hp, class _Tp, size_t _Align> struct __find_pod<__type_list<_Hp, _Tp>, _Align> { typedef typename conditional< _Align == _Hp::value, typename _Hp::type, typename __find_pod<_Tp, _Align>::type >::type type; }; template <class _TL, size_t _Len> struct __find_max_align; template <class _Hp, size_t _Len> struct __find_max_align<__type_list<_Hp, __nat>, _Len> : public integral_constant<size_t, _Hp::value> {}; template <size_t _Len, size_t _A1, size_t _A2> struct __select_align { private: static const size_t __min = _A2 < _A1 ? _A2 : _A1; static const size_t __max = _A1 < _A2 ? _A2 : _A1; public: static const size_t value = _Len < __max ? __min : __max; }; template <class _Hp, class _Tp, size_t _Len> struct __find_max_align<__type_list<_Hp, _Tp>, _Len> : public integral_constant<size_t, __select_align<_Len, _Hp::value, __find_max_align<_Tp, _Len>::value>::value> {}; template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value> struct __attribute__ ((__type_visibility__("default"))) aligned_storage { typedef typename __find_pod<__all_types, _Align>::type _Aligner; union type { _Aligner __align; unsigned char __data[(_Len + _Align - 1)/_Align * _Align]; }; }; template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value> using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; # 1841 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x1>{ struct alignas(0x1) type { unsigned char __lx[(_Len + 0x1 - 1)/0x1 * 0x1]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x2>{ struct alignas(0x2) type { unsigned char __lx[(_Len + 0x2 - 1)/0x2 * 0x2]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x4>{ struct alignas(0x4) type { unsigned char __lx[(_Len + 0x4 - 1)/0x4 * 0x4]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x8>{ struct alignas(0x8) type { unsigned char __lx[(_Len + 0x8 - 1)/0x8 * 0x8]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x10>{ struct alignas(0x10) type { unsigned char __lx[(_Len + 0x10 - 1)/0x10 * 0x10]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x20>{ struct alignas(0x20) type { unsigned char __lx[(_Len + 0x20 - 1)/0x20 * 0x20]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x40>{ struct alignas(0x40) type { unsigned char __lx[(_Len + 0x40 - 1)/0x40 * 0x40]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x80>{ struct alignas(0x80) type { unsigned char __lx[(_Len + 0x80 - 1)/0x80 * 0x80]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x100>{ struct alignas(0x100) type { unsigned char __lx[(_Len + 0x100 - 1)/0x100 * 0x100]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x200>{ struct alignas(0x200) type { unsigned char __lx[(_Len + 0x200 - 1)/0x200 * 0x200]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x400>{ struct alignas(0x400) type { unsigned char __lx[(_Len + 0x400 - 1)/0x400 * 0x400]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x800>{ struct alignas(0x800) type { unsigned char __lx[(_Len + 0x800 - 1)/0x800 * 0x800]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x1000>{ struct alignas(0x1000) type { unsigned char __lx[(_Len + 0x1000 - 1)/0x1000 * 0x1000]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x2000>{ struct alignas(0x2000) type { unsigned char __lx[(_Len + 0x2000 - 1)/0x2000 * 0x2000]; };}; template <size_t _Len>struct __attribute__ ((__type_visibility__("default"))) aligned_storage<_Len, 0x4000>{ struct alignas(0x4000) type { unsigned char __lx[(_Len + 0x4000 - 1)/0x4000 * 0x4000]; };}; # 1866 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <size_t _I0, size_t ..._In> struct __static_max; template <size_t _I0> struct __static_max<_I0> { static const size_t value = _I0; }; template <size_t _I0, size_t _I1, size_t ..._In> struct __static_max<_I0, _I1, _In...> { static const size_t value = _I0 >= _I1 ? __static_max<_I0, _In...>::value : __static_max<_I1, _In...>::value; }; template <size_t _Len, class _Type0, class ..._Types> struct aligned_union { static const size_t alignment_value = __static_max<__alignof(_Type0), __alignof(_Types)...>::value; static const size_t __len = __static_max<_Len, sizeof(_Type0), sizeof(_Types)...>::value; typedef typename aligned_storage<__len, alignment_value>::type type; }; template <size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union<_Len, _Types...>::type; template <class _Tp> struct __numeric_type { static void __test(...); static float __test(float); static double __test(char); static double __test(int); static double __test(unsigned); static double __test(long); static double __test(unsigned long); static double __test(long long); static double __test(unsigned long long); static double __test(double); static long double __test(long double); typedef decltype(__test(declval<_Tp>())) type; static const bool value = !is_same<type, void>::value; }; template <> struct __numeric_type<void> { static const bool value = true; }; template <class _A1, class _A2 = void, class _A3 = void, bool = __numeric_type<_A1>::value && __numeric_type<_A2>::value && __numeric_type<_A3>::value> class __promote_imp { public: static const bool value = false; }; template <class _A1, class _A2, class _A3> class __promote_imp<_A1, _A2, _A3, true> { private: typedef typename __promote_imp<_A1>::type __type1; typedef typename __promote_imp<_A2>::type __type2; typedef typename __promote_imp<_A3>::type __type3; public: typedef decltype(__type1() + __type2() + __type3()) type; static const bool value = true; }; template <class _A1, class _A2> class __promote_imp<_A1, _A2, void, true> { private: typedef typename __promote_imp<_A1>::type __type1; typedef typename __promote_imp<_A2>::type __type2; public: typedef decltype(__type1() + __type2()) type; static const bool value = true; }; template <class _A1> class __promote_imp<_A1, void, void, true> { public: typedef typename __numeric_type<_A1>::type type; static const bool value = true; }; template <class _A1, class _A2 = void, class _A3 = void> class __promote : public __promote_imp<_A1, _A2, _A3> {}; typedef __type_list<signed char, __type_list<signed short, __type_list<signed int, __type_list<signed long, __type_list<signed long long, __type_list<__int128_t, __nat > > > > > > __signed_types; typedef __type_list<unsigned char, __type_list<unsigned short, __type_list<unsigned int, __type_list<unsigned long, __type_list<unsigned long long, __type_list<__uint128_t, __nat > > > > > > __unsigned_types; template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first; template <class _Hp, class _Tp, size_t _Size> struct __find_first<__type_list<_Hp, _Tp>, _Size, true> { typedef _Hp type; }; template <class _Hp, class _Tp, size_t _Size> struct __find_first<__type_list<_Hp, _Tp>, _Size, false> { typedef typename __find_first<_Tp, _Size>::type type; }; template <class _Tp, class _Up, bool = is_const<typename remove_reference<_Tp>::type>::value, bool = is_volatile<typename remove_reference<_Tp>::type>::value> struct __apply_cv { typedef _Up type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp, _Up, true, false> { typedef const _Up type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp, _Up, false, true> { typedef volatile _Up type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp, _Up, true, true> { typedef const volatile _Up type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp&, _Up, false, false> { typedef _Up& type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp&, _Up, true, false> { typedef const _Up& type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp&, _Up, false, true> { typedef volatile _Up& type; }; template <class _Tp, class _Up> struct __apply_cv<_Tp&, _Up, true, true> { typedef const volatile _Up& type; }; template <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value> struct __make_signed {}; template <class _Tp> struct __make_signed<_Tp, true> { typedef typename __find_first<__signed_types, sizeof(_Tp)>::type type; }; template <> struct __make_signed<bool, true> {}; template <> struct __make_signed< signed short, true> {typedef short type;}; template <> struct __make_signed<unsigned short, true> {typedef short type;}; template <> struct __make_signed< signed int, true> {typedef int type;}; template <> struct __make_signed<unsigned int, true> {typedef int type;}; template <> struct __make_signed< signed long, true> {typedef long type;}; template <> struct __make_signed<unsigned long, true> {typedef long type;}; template <> struct __make_signed< signed long long, true> {typedef long long type;}; template <> struct __make_signed<unsigned long long, true> {typedef long long type;}; template <> struct __make_signed<__int128_t, true> {typedef __int128_t type;}; template <> struct __make_signed<__uint128_t, true> {typedef __int128_t type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) make_signed { typedef typename __apply_cv<_Tp, typename __make_signed<typename remove_cv<_Tp>::type>::type>::type type; }; template <class _Tp> using make_signed_t = typename make_signed<_Tp>::type; template <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value> struct __make_unsigned {}; template <class _Tp> struct __make_unsigned<_Tp, true> { typedef typename __find_first<__unsigned_types, sizeof(_Tp)>::type type; }; template <> struct __make_unsigned<bool, true> {}; template <> struct __make_unsigned< signed short, true> {typedef unsigned short type;}; template <> struct __make_unsigned<unsigned short, true> {typedef unsigned short type;}; template <> struct __make_unsigned< signed int, true> {typedef unsigned int type;}; template <> struct __make_unsigned<unsigned int, true> {typedef unsigned int type;}; template <> struct __make_unsigned< signed long, true> {typedef unsigned long type;}; template <> struct __make_unsigned<unsigned long, true> {typedef unsigned long type;}; template <> struct __make_unsigned< signed long long, true> {typedef unsigned long long type;}; template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;}; template <> struct __make_unsigned<__int128_t, true> {typedef __uint128_t type;}; template <> struct __make_unsigned<__uint128_t, true> {typedef __uint128_t type;}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) make_unsigned { typedef typename __apply_cv<_Tp, typename __make_unsigned<typename remove_cv<_Tp>::type>::type>::type type; }; template <class _Tp> using make_unsigned_t = typename make_unsigned<_Tp>::type; template <class _Tp, class _Up, class = void> struct __common_type2_imp {}; template <class _Tp, class _Up> struct __common_type2_imp<_Tp, _Up, typename __void_t<decltype( true ? std::__1::declval<_Tp>() : std::__1::declval<_Up>() )>::type> { typedef typename decay<decltype( true ? std::__1::declval<_Tp>() : std::__1::declval<_Up>() )>::type type; }; template <class, class = void> struct __common_type_impl {}; template <class... Tp> struct __common_types; template <class... _Tp> struct __attribute__ ((__type_visibility__("default"))) common_type; # 2167 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class _Up> struct __common_type_impl< __common_types<_Tp, _Up>, typename __void_t<typename common_type<_Tp, _Up>::type>::type> { typedef typename common_type<_Tp, _Up>::type type; }; template <class _Tp, class _Up, class _Vp , class... _Rest> struct __common_type_impl< __common_types<_Tp, _Up, _Vp , _Rest...>, typename __void_t<typename common_type<_Tp, _Up>::type>::type> : __common_type_impl<__common_types<typename common_type<_Tp, _Up>::type, _Vp , _Rest...> > { }; template <> struct __attribute__ ((__type_visibility__("default"))) common_type<> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) common_type<_Tp> : public common_type<_Tp, _Tp> {}; template <class _Tp, class _Up> struct __attribute__ ((__type_visibility__("default"))) common_type<_Tp, _Up> : conditional< is_same<_Tp, typename decay<_Tp>::type>::value && is_same<_Up, typename decay<_Up>::type>::value, __common_type2_imp<_Tp, _Up>, common_type<typename decay<_Tp>::type, typename decay<_Up>::type> >::type {}; template <class _Tp, class _Up, class _Vp , class... _Rest> struct __attribute__ ((__type_visibility__("default"))) common_type<_Tp, _Up, _Vp , _Rest...> : __common_type_impl< __common_types<_Tp, _Up, _Vp , _Rest...> > {}; template <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type; template<typename, typename _Tp> struct __select_2nd { typedef _Tp type; }; template <class _Tp, class _Arg> typename __select_2nd<decltype((std::__1::declval<_Tp>() = std::__1::declval<_Arg>())), true_type>::type __is_assignable_test(int); template <class, class> false_type __is_assignable_test(...); template <class _Tp, class _Arg, bool = is_void<_Tp>::value || is_void<_Arg>::value> struct __is_assignable_imp : public decltype((std::__1::__is_assignable_test<_Tp, _Arg>(0))) {}; template <class _Tp, class _Arg> struct __is_assignable_imp<_Tp, _Arg, true> : public false_type { }; template <class _Tp, class _Arg> struct is_assignable : public __is_assignable_imp<_Tp, _Arg> {}; template <class _Tp, class _Arg> inline constexpr bool is_assignable_v = is_assignable<_Tp, _Arg>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_copy_assignable : public is_assignable<typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; template <class _Tp> inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_move_assignable : public is_assignable<typename add_lvalue_reference<_Tp>::type, typename add_rvalue_reference<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value; # 2288 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class> struct __is_destructible_apply { typedef int type; }; template <typename _Tp> struct __is_destructor_wellformed { template <typename _Tp1> static char __test ( typename __is_destructible_apply<decltype(std::__1::declval<_Tp1&>().~_Tp1())>::type ); template <typename _Tp1> static __two __test (...); static const bool value = sizeof(__test<_Tp>(12)) == sizeof(char); }; template <class _Tp, bool> struct __destructible_imp; template <class _Tp> struct __destructible_imp<_Tp, false> : public std::__1::integral_constant<bool, __is_destructor_wellformed<typename std::__1::remove_all_extents<_Tp>::type>::value> {}; template <class _Tp> struct __destructible_imp<_Tp, true> : public std::__1::true_type {}; template <class _Tp, bool> struct __destructible_false; template <class _Tp> struct __destructible_false<_Tp, false> : public __destructible_imp<_Tp, std::__1::is_reference<_Tp>::value> {}; template <class _Tp> struct __destructible_false<_Tp, true> : public std::__1::false_type {}; template <class _Tp> struct is_destructible : public __destructible_false<_Tp, std::__1::is_function<_Tp>::value> {}; template <class _Tp> struct is_destructible<_Tp[]> : public std::__1::false_type {}; template <> struct is_destructible<void> : public std::__1::false_type {}; template <class _Tp> inline constexpr bool is_destructible_v = is_destructible<_Tp>::value; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename remove_reference<_Tp>::type&& move(_Tp&& __t) noexcept { typedef typename remove_reference<_Tp>::type _Up; return static_cast<_Up&&>(__t); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp&& forward(typename remove_reference<_Tp>::type& __t) noexcept { return static_cast<_Tp&&>(__t); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp&& forward(typename remove_reference<_Tp>::type&& __t) noexcept { static_assert(!is_lvalue_reference<_Tp>::value, "can not forward an rvalue as an lvalue"); return static_cast<_Tp&&>(__t); } # 2417 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename decay<_Tp>::type __decay_copy(_Tp&& __t) { return std::__1::forward<_Tp>(__t); } # 2439 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false> { typedef _Class _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...), true, false> { typedef _Class _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false> { typedef _Class const _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const, true, false> { typedef _Class const _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false> { typedef _Class volatile _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile, true, false> { typedef _Class volatile _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false> { typedef _Class const volatile _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile, true, false> { typedef _Class const volatile _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false> { typedef _Class& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &, true, false> { typedef _Class& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false> { typedef _Class const& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&, true, false> { typedef _Class const& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false> { typedef _Class volatile& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&, true, false> { typedef _Class volatile& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false> { typedef _Class const volatile& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&, true, false> { typedef _Class const volatile& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &&, true, false> { typedef _Class&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &&, true, false> { typedef _Class&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false> { typedef _Class const&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&&, true, false> { typedef _Class const&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false> { typedef _Class volatile&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&&, true, false> { typedef _Class volatile&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false> { typedef _Class const volatile&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param...); }; template <class _Rp, class _Class, class ..._Param> struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&&, true, false> { typedef _Class const volatile&& _ClassType; typedef _Rp _ReturnType; typedef _Rp (_FnType) (_Param..., ...); }; # 2895 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Rp, class _Class> struct __member_pointer_traits_imp<_Rp _Class::*, false, true> { typedef _Class _ClassType; typedef _Rp _ReturnType; }; template <class _MP> struct __member_pointer_traits : public __member_pointer_traits_imp<typename remove_cv<_MP>::type, is_member_function_pointer<_MP>::value, is_member_object_pointer<_MP>::value> { }; template <class _DecayedFp> struct __member_pointer_class_type {}; template <class _Ret, class _ClassType> struct __member_pointer_class_type<_Ret _ClassType::*> { typedef _ClassType type; }; template <class _Callable> class result_of; # 3076 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 namespace __is_construct { struct __nat {}; } # 3198 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class ..._Args> struct __attribute__ ((__type_visibility__("default"))) is_constructible : public integral_constant<bool, __is_constructible(_Tp, _Args...)> {}; # 3437 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class ..._Args> inline constexpr bool is_constructible_v = is_constructible<_Tp, _Args...>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_default_constructible : public is_constructible<_Tp> {}; template <class _Tp> inline constexpr bool is_default_constructible_v = is_default_constructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_copy_constructible : public is_constructible<_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; template <class _Tp> inline constexpr bool is_copy_constructible_v = is_copy_constructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_move_constructible : public is_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_move_constructible_v = is_move_constructible<_Tp>::value; # 3491 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class... _Args> struct __attribute__ ((__type_visibility__("default"))) is_trivially_constructible : integral_constant<bool, __is_trivially_constructible(_Tp, _Args...)> { }; # 3613 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class... _Args> inline constexpr bool is_trivially_constructible_v = is_trivially_constructible<_Tp, _Args...>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_default_constructible : public is_trivially_constructible<_Tp> {}; template <class _Tp> inline constexpr bool is_trivially_default_constructible_v = is_trivially_default_constructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_copy_constructible : public is_trivially_constructible<_Tp, typename add_lvalue_reference<const _Tp>::type> {}; template <class _Tp> inline constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_move_constructible : public is_trivially_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible<_Tp>::value; template <class _Tp, class _Arg> struct is_trivially_assignable : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)> { }; # 3697 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class _Arg> inline constexpr bool is_trivially_assignable_v = is_trivially_assignable<_Tp, _Arg>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_copy_assignable : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; template <class _Tp> inline constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_move_assignable : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type, typename add_rvalue_reference<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_destructible : public integral_constant<bool, __is_trivially_destructible(_Tp)> {}; # 3758 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_trivially_destructible_v = is_trivially_destructible<_Tp>::value; # 3769 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class... _Args> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_constructible : public integral_constant<bool, __is_nothrow_constructible(_Tp, _Args...)> {}; # 3938 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class ..._Args> inline constexpr bool is_nothrow_constructible_v = is_nothrow_constructible<_Tp, _Args...>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_default_constructible : public is_nothrow_constructible<_Tp> {}; template <class _Tp> inline constexpr bool is_nothrow_default_constructible_v = is_nothrow_default_constructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_copy_constructible : public is_nothrow_constructible<_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; template <class _Tp> inline constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_move_constructible : public is_nothrow_constructible<_Tp, typename add_rvalue_reference<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible<_Tp>::value; template <class _Tp, class _Arg> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_assignable : public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {}; # 4058 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, class _Arg> inline constexpr bool is_nothrow_assignable_v = is_nothrow_assignable<_Tp, _Arg>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_copy_assignable : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {}; template <class _Tp> inline constexpr bool is_nothrow_copy_assignable_v = is_nothrow_copy_assignable<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_move_assignable : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type, typename add_rvalue_reference<_Tp>::type> {}; template <class _Tp> inline constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable<_Tp>::value; template <bool, class _Tp> struct __libcpp_is_nothrow_destructible; template <class _Tp> struct __libcpp_is_nothrow_destructible<false, _Tp> : public false_type { }; template <class _Tp> struct __libcpp_is_nothrow_destructible<true, _Tp> : public integral_constant<bool, noexcept(std::__1::declval<_Tp>().~_Tp()) > { }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible : public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp> { }; template <class _Tp, size_t _Ns> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible<_Tp[_Ns]> : public is_nothrow_destructible<_Tp> { }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible<_Tp&> : public true_type { }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_destructible<_Tp&&> : public true_type { }; # 4154 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_nothrow_destructible_v = is_nothrow_destructible<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_pod : public integral_constant<bool, __is_pod(_Tp)> {}; # 4177 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp> inline constexpr bool is_pod_v = is_pod<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_literal_type : public integral_constant<bool, __is_literal(_Tp)> {}; template <class _Tp> inline constexpr bool is_literal_type_v = is_literal_type<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_standard_layout : public integral_constant<bool, __is_standard_layout(_Tp)> {}; template <class _Tp> inline constexpr bool is_standard_layout_v = is_standard_layout<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivially_copyable : public integral_constant<bool, __is_trivially_copyable(_Tp)> {}; template <class _Tp> inline constexpr bool is_trivially_copyable_v = is_trivially_copyable<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_trivial : public integral_constant<bool, __is_trivial(_Tp)> {}; template <class _Tp> inline constexpr bool is_trivial_v = is_trivial<_Tp>::value; template <class _Tp> struct __is_reference_wrapper_impl : public false_type {}; template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {}; template <class _Tp> struct __is_reference_wrapper : public __is_reference_wrapper_impl<typename remove_cv<_Tp>::type> {}; template <class _Fp, class _A0, class _DecayFp = typename decay<_Fp>::type, class _DecayA0 = typename decay<_A0>::type, class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet1 = typename enable_if < is_member_function_pointer<_DecayFp>::value && is_base_of<_ClassT, _DecayA0>::value >::type; template <class _Fp, class _A0, class _DecayFp = typename decay<_Fp>::type, class _DecayA0 = typename decay<_A0>::type> using __enable_if_bullet2 = typename enable_if < is_member_function_pointer<_DecayFp>::value && __is_reference_wrapper<_DecayA0>::value >::type; template <class _Fp, class _A0, class _DecayFp = typename decay<_Fp>::type, class _DecayA0 = typename decay<_A0>::type, class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet3 = typename enable_if < is_member_function_pointer<_DecayFp>::value && !is_base_of<_ClassT, _DecayA0>::value && !__is_reference_wrapper<_DecayA0>::value >::type; template <class _Fp, class _A0, class _DecayFp = typename decay<_Fp>::type, class _DecayA0 = typename decay<_A0>::type, class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet4 = typename enable_if < is_member_object_pointer<_DecayFp>::value && is_base_of<_ClassT, _DecayA0>::value >::type; template <class _Fp, class _A0, class _DecayFp = typename decay<_Fp>::type, class _DecayA0 = typename decay<_A0>::type> using __enable_if_bullet5 = typename enable_if < is_member_object_pointer<_DecayFp>::value && __is_reference_wrapper<_DecayA0>::value >::type; template <class _Fp, class _A0, class _DecayFp = typename decay<_Fp>::type, class _DecayA0 = typename decay<_A0>::type, class _ClassT = typename __member_pointer_class_type<_DecayFp>::type> using __enable_if_bullet6 = typename enable_if < is_member_object_pointer<_DecayFp>::value && !is_base_of<_ClassT, _DecayA0>::value && !__is_reference_wrapper<_DecayA0>::value >::type; # 4325 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class ..._Args> auto __invoke(__any, _Args&& ...__args) -> __nat; template <class ..._Args> auto __invoke_constexpr(__any, _Args&& ...__args) -> __nat; template <class _Fp, class _A0, class ..._Args, class = __enable_if_bullet1<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) noexcept(noexcept((std::__1::forward<_A0>(__a0).*__f)(std::__1::forward<_Args>(__args)...))) -> decltype((std::__1::forward<_A0>(__a0).*__f)(std::__1::forward<_Args>(__args)...)) { return (std::__1::forward<_A0>(__a0).*__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class _A0, class ..._Args, class = __enable_if_bullet1<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args) noexcept(noexcept((std::__1::forward<_A0>(__a0).*__f)(std::__1::forward<_Args>(__args)...))) -> decltype((std::__1::forward<_A0>(__a0).*__f)(std::__1::forward<_Args>(__args)...)) { return (std::__1::forward<_A0>(__a0).*__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class _A0, class ..._Args, class = __enable_if_bullet2<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) noexcept(noexcept((__a0.get().*__f)(std::__1::forward<_Args>(__args)...))) -> decltype((__a0.get().*__f)(std::__1::forward<_Args>(__args)...)) { return (__a0.get().*__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class _A0, class ..._Args, class = __enable_if_bullet2<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args) noexcept(noexcept((__a0.get().*__f)(std::__1::forward<_Args>(__args)...))) -> decltype((__a0.get().*__f)(std::__1::forward<_Args>(__args)...)) { return (__a0.get().*__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class _A0, class ..._Args, class = __enable_if_bullet3<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) noexcept(noexcept(((*std::__1::forward<_A0>(__a0)).*__f)(std::__1::forward<_Args>(__args)...))) -> decltype(((*std::__1::forward<_A0>(__a0)).*__f)(std::__1::forward<_Args>(__args)...)) { return ((*std::__1::forward<_A0>(__a0)).*__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class _A0, class ..._Args, class = __enable_if_bullet3<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args) noexcept(noexcept(((*std::__1::forward<_A0>(__a0)).*__f)(std::__1::forward<_Args>(__args)...))) -> decltype(((*std::__1::forward<_A0>(__a0)).*__f)(std::__1::forward<_Args>(__args)...)) { return ((*std::__1::forward<_A0>(__a0)).*__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class _A0, class = __enable_if_bullet4<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _A0&& __a0) noexcept(noexcept(std::__1::forward<_A0>(__a0).*__f)) -> decltype(std::__1::forward<_A0>(__a0).*__f) { return std::__1::forward<_A0>(__a0).*__f; } template <class _Fp, class _A0, class = __enable_if_bullet4<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _A0&& __a0) noexcept(noexcept(std::__1::forward<_A0>(__a0).*__f)) -> decltype(std::__1::forward<_A0>(__a0).*__f) { return std::__1::forward<_A0>(__a0).*__f; } template <class _Fp, class _A0, class = __enable_if_bullet5<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _A0&& __a0) noexcept(noexcept(__a0.get().*__f)) -> decltype(__a0.get().*__f) { return __a0.get().*__f; } template <class _Fp, class _A0, class = __enable_if_bullet5<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _A0&& __a0) noexcept(noexcept(__a0.get().*__f)) -> decltype(__a0.get().*__f) { return __a0.get().*__f; } template <class _Fp, class _A0, class = __enable_if_bullet6<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _A0&& __a0) noexcept(noexcept((*std::__1::forward<_A0>(__a0)).*__f)) -> decltype((*std::__1::forward<_A0>(__a0)).*__f) { return (*std::__1::forward<_A0>(__a0)).*__f; } template <class _Fp, class _A0, class = __enable_if_bullet6<_Fp, _A0>> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _A0&& __a0) noexcept(noexcept((*std::__1::forward<_A0>(__a0)).*__f)) -> decltype((*std::__1::forward<_A0>(__a0)).*__f) { return (*std::__1::forward<_A0>(__a0)).*__f; } template <class _Fp, class ..._Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto __invoke(_Fp&& __f, _Args&& ...__args) noexcept(noexcept(std::__1::forward<_Fp>(__f)(std::__1::forward<_Args>(__args)...))) -> decltype(std::__1::forward<_Fp>(__f)(std::__1::forward<_Args>(__args)...)) { return std::__1::forward<_Fp>(__f)(std::__1::forward<_Args>(__args)...); } template <class _Fp, class ..._Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto __invoke_constexpr(_Fp&& __f, _Args&& ...__args) noexcept(noexcept(std::__1::forward<_Fp>(__f)(std::__1::forward<_Args>(__args)...))) -> decltype(std::__1::forward<_Fp>(__f)(std::__1::forward<_Args>(__args)...)) { return std::__1::forward<_Fp>(__f)(std::__1::forward<_Args>(__args)...); } template <class _Ret, class _Fp, class ..._Args> struct __invokable_r { template <class _XFp, class ..._XArgs> static auto __try_call(int) -> decltype( std::__1::__invoke(std::__1::declval<_XFp>(), std::__1::declval<_XArgs>()...)); template <class _XFp, class ..._XArgs> static __nat __try_call(...); using _Result = decltype(__try_call<_Fp, _Args...>(0)); using type = typename conditional< !is_same<_Result, __nat>::value, typename conditional< is_void<_Ret>::value, true_type, is_convertible<_Result, _Ret> >::type, false_type >::type; static const bool value = type::value; }; template <class _Fp, class ..._Args> using __invokable = __invokable_r<void, _Fp, _Args...>; template <bool _IsInvokable, bool _IsCVVoid, class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp { static const bool value = false; }; template <class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...> { typedef __nothrow_invokable_r_imp _ThisT; template <class _Tp> static void __test_noexcept(_Tp) noexcept; static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>( std::__1::__invoke(std::__1::declval<_Fp>(), std::__1::declval<_Args>()...))); }; template <class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...> { static const bool value = noexcept( std::__1::__invoke(std::__1::declval<_Fp>(), std::__1::declval<_Args>()...)); }; template <class _Ret, class _Fp, class ..._Args> using __nothrow_invokable_r = __nothrow_invokable_r_imp< __invokable_r<_Ret, _Fp, _Args...>::value, is_void<_Ret>::value, _Ret, _Fp, _Args... >; template <class _Fp, class ..._Args> using __nothrow_invokable = __nothrow_invokable_r_imp< __invokable<_Fp, _Args...>::value, true, void, _Fp, _Args... >; template <class _Fp, class ..._Args> struct __invoke_of : public enable_if< __invokable<_Fp, _Args...>::value, typename __invokable_r<void, _Fp, _Args...>::_Result> { }; template <class _Fp, class ..._Args> class __attribute__ ((__type_visibility__("default"))) result_of<_Fp(_Args...)> : public __invoke_of<_Fp, _Args...> { }; template <class _Tp> using result_of_t = typename result_of<_Tp>::type; template <class _Fn, class... _Args> struct __attribute__ ((__type_visibility__("default"))) invoke_result : __invoke_of<_Fn, _Args...> { }; template <class _Fn, class... _Args> using invoke_result_t = typename invoke_result<_Fn, _Args...>::type; template <class _Fn, class ..._Args> struct __attribute__ ((__type_visibility__("default"))) is_invocable : integral_constant<bool, __invokable<_Fn, _Args...>::value> {}; template <class _Ret, class _Fn, class ..._Args> struct __attribute__ ((__type_visibility__("default"))) is_invocable_r : integral_constant<bool, __invokable_r<_Ret, _Fn, _Args...>::value> {}; template <class _Fn, class ..._Args> inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value; template <class _Ret, class _Fn, class ..._Args> inline constexpr bool is_invocable_r_v = is_invocable_r<_Ret, _Fn, _Args...>::value; template <class _Fn, class ..._Args> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_invocable : integral_constant<bool, __nothrow_invokable<_Fn, _Args...>::value> {}; template <class _Ret, class _Fn, class ..._Args> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_invocable_r : integral_constant<bool, __nothrow_invokable_r<_Ret, _Fn, _Args...>::value> {}; template <class _Fn, class ..._Args> inline constexpr bool is_nothrow_invocable_v = is_nothrow_invocable<_Fn, _Args...>::value; template <class _Ret, class _Fn, class ..._Args> inline constexpr bool is_nothrow_invocable_r_v = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value; template <class _Tp> struct __is_swappable; template <class _Tp> struct __is_nothrow_swappable; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value >::type swap(_Tp& __x, _Tp& __y) noexcept(is_nothrow_move_constructible<_Tp>::value && is_nothrow_move_assignable<_Tp>::value) { _Tp __t(std::__1::move(__x)); __x = std::__1::move(__y); __y = std::__1::move(__t); } template<class _Tp, size_t _Np> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if< __is_swappable<_Tp>::value >::type swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value); template <class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) noexcept(noexcept(swap(*std::__1::declval<_ForwardIterator1>(), *std::__1::declval<_ForwardIterator2>()))) { swap(*__a, *__b); } namespace __detail { template <class _Tp, class _Up = _Tp, bool _NotVoid = !is_void<_Tp>::value && !is_void<_Up>::value> struct __swappable_with { template <class _LHS, class _RHS> static decltype(swap(std::__1::declval<_LHS>(), std::__1::declval<_RHS>())) __test_swap(int); template <class, class> static __nat __test_swap(long); typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1; typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2; static const bool value = !is_same<__swap1, __nat>::value && !is_same<__swap2, __nat>::value; }; template <class _Tp, class _Up> struct __swappable_with<_Tp, _Up, false> : false_type {}; template <class _Tp, class _Up = _Tp, bool _Swappable = __swappable_with<_Tp, _Up>::value> struct __nothrow_swappable_with { static const bool value = noexcept(swap(std::__1::declval<_Tp>(), std::__1::declval<_Up>())) && noexcept(swap(std::__1::declval<_Up>(), std::__1::declval<_Tp>())); }; template <class _Tp, class _Up> struct __nothrow_swappable_with<_Tp, _Up, false> : false_type {}; } template <class _Tp> struct __is_swappable : public integral_constant<bool, __detail::__swappable_with<_Tp&>::value> { }; template <class _Tp> struct __is_nothrow_swappable : public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp&>::value> { }; template <class _Tp, class _Up> struct __attribute__ ((__type_visibility__("default"))) is_swappable_with : public integral_constant<bool, __detail::__swappable_with<_Tp, _Up>::value> { }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_swappable : public conditional< __is_referenceable<_Tp>::value, is_swappable_with< typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<_Tp>::type>, false_type >::type { }; template <class _Tp, class _Up> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_swappable_with : public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp, _Up>::value> { }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_nothrow_swappable : public conditional< __is_referenceable<_Tp>::value, is_nothrow_swappable_with< typename add_lvalue_reference<_Tp>::type, typename add_lvalue_reference<_Tp>::type>, false_type >::type { }; template <class _Tp, class _Up> inline constexpr bool is_swappable_with_v = is_swappable_with<_Tp, _Up>::value; template <class _Tp> inline constexpr bool is_swappable_v = is_swappable<_Tp>::value; template <class _Tp, class _Up> inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<_Tp, _Up>::value; template <class _Tp> inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable<_Tp>::value; template <class _Tp> struct underlying_type { typedef __underlying_type(_Tp) type; }; template <class _Tp> using underlying_type_t = typename underlying_type<_Tp>::type; # 4752 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 template <class _Tp, bool = is_enum<_Tp>::value> struct __sfinae_underlying_type { typedef typename underlying_type<_Tp>::type type; typedef decltype(((type)1) + 0) __promoted_type; }; template <class _Tp> struct __sfinae_underlying_type<_Tp, false> {}; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr int __convert_to_integral(int __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unsigned __convert_to_integral(unsigned __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr long __convert_to_integral(long __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unsigned long __convert_to_integral(unsigned long __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr long long __convert_to_integral(long long __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unsigned long long __convert_to_integral(unsigned long long __val) {return __val; } template<typename _Fp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<is_floating_point<_Fp>::value, long long>::type __convert_to_integral(_Fp __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __int128_t __convert_to_integral(__int128_t __val) { return __val; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __uint128_t __convert_to_integral(__uint128_t __val) { return __val; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename __sfinae_underlying_type<_Tp>::__promoted_type __convert_to_integral(_Tp __val) { return __val; } template <class _Tp> struct __has_operator_addressof_member_imp { template <class _Up> static auto __test(int) -> typename __select_2nd<decltype(std::__1::declval<_Up>().operator&()), true_type>::type; template <class> static auto __test(long) -> false_type; static const bool value = decltype(__test<_Tp>(0))::value; }; template <class _Tp> struct __has_operator_addressof_free_imp { template <class _Up> static auto __test(int) -> typename __select_2nd<decltype(operator&(std::__1::declval<_Up>())), true_type>::type; template <class> static auto __test(long) -> false_type; static const bool value = decltype(__test<_Tp>(0))::value; }; template <class _Tp> struct __has_operator_addressof : public integral_constant<bool, __has_operator_addressof_member_imp<_Tp>::value || __has_operator_addressof_free_imp<_Tp>::value> {}; template <class...> using void_t = void; template <class... _Args> struct conjunction : __and_<_Args...> {}; template<class... _Args> inline constexpr bool conjunction_v = conjunction<_Args...>::value; template <class... _Args> struct disjunction : __or_<_Args...> {}; template<class... _Args> inline constexpr bool disjunction_v = disjunction<_Args...>::value; template <class _Tp> struct negation : __not_<_Tp> {}; template<class _Tp> inline constexpr bool negation_v = negation<_Tp>::value; struct __extract_key_fail_tag {}; struct __extract_key_self_tag {}; struct __extract_key_first_tag {}; template <class _ValTy, class _Key, class _RawValTy = typename __unconstref<_ValTy>::type> struct __can_extract_key : conditional<is_same<_RawValTy, _Key>::value, __extract_key_self_tag, __extract_key_fail_tag>::type {}; template <class _Pair, class _Key, class _First, class _Second> struct __can_extract_key<_Pair, _Key, pair<_First, _Second>> : conditional<is_same<typename remove_const<_First>::type, _Key>::value, __extract_key_first_tag, __extract_key_fail_tag>::type {}; template <class _ValTy, class _Key, class _ContainerValueTy, class _RawValTy = typename __unconstref<_ValTy>::type> struct __can_extract_map_key : integral_constant<bool, is_same<_RawValTy, _Key>::value> {}; template <class _ValTy, class _Key, class _RawValTy> struct __can_extract_map_key<_ValTy, _Key, _Key, _RawValTy> : false_type {}; # 4912 "/opt/toolchain/target/bin/../include/c++/v1/type_traits" 3 } } namespace std { template <class _Integer> constexpr typename enable_if<is_integral_v<_Integer>, byte>::type & operator<<=(byte& __lhs, _Integer __shift) noexcept { return __lhs = __lhs << __shift; } template <class _Integer> constexpr typename enable_if<is_integral_v<_Integer>, byte>::type operator<< (byte __lhs, _Integer __shift) noexcept { return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) << __shift)); } template <class _Integer> constexpr typename enable_if<is_integral_v<_Integer>, byte>::type & operator>>=(byte& __lhs, _Integer __shift) noexcept { return __lhs = __lhs >> __shift; } template <class _Integer> constexpr typename enable_if<is_integral_v<_Integer>, byte>::type operator>> (byte __lhs, _Integer __shift) noexcept { return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) >> __shift)); } template <class _Integer> constexpr typename enable_if<is_integral_v<_Integer>, _Integer>::type to_integer(byte __b) noexcept { return static_cast<_Integer>(__b); } } # 312 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/limits" 1 3 # 117 "/opt/toolchain/target/bin/../include/c++/v1/limits" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 121 "/opt/toolchain/target/bin/../include/c++/v1/limits" 2 3 namespace std { inline namespace __1 { enum float_round_style { round_indeterminate = -1, round_toward_zero = 0, round_to_nearest = 1, round_toward_infinity = 2, round_toward_neg_infinity = 3 }; enum float_denorm_style { denorm_indeterminate = -1, denorm_absent = 0, denorm_present = 1 }; template <class _Tp, bool = is_arithmetic<_Tp>::value> class __libcpp_numeric_limits { protected: typedef _Tp type; static constexpr const bool is_specialized = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return type();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return type();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return type();} static constexpr const int digits = 0; static constexpr const int digits10 = 0; static constexpr const int max_digits10 = 0; static constexpr const bool is_signed = false; static constexpr const bool is_integer = false; static constexpr const bool is_exact = false; static constexpr const int radix = 0; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return type();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return type();} static constexpr const int min_exponent = 0; static constexpr const int min_exponent10 = 0; static constexpr const int max_exponent = 0; static constexpr const int max_exponent10 = 0; static constexpr const bool has_infinity = false; static constexpr const bool has_quiet_NaN = false; static constexpr const bool has_signaling_NaN = false; static constexpr const float_denorm_style has_denorm = denorm_absent; static constexpr const bool has_denorm_loss = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return type();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return type();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return type();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return type();} static constexpr const bool is_iec559 = false; static constexpr const bool is_bounded = false; static constexpr const bool is_modulo = false; static constexpr const bool traps = false; static constexpr const bool tinyness_before = false; static constexpr const float_round_style round_style = round_toward_zero; }; template <class _Tp, int __digits, bool _IsSigned> struct __libcpp_compute_min { static constexpr const _Tp value = _Tp(_Tp(1) << __digits); }; template <class _Tp, int __digits> struct __libcpp_compute_min<_Tp, __digits, false> { static constexpr const _Tp value = _Tp(0); }; template <class _Tp> class __libcpp_numeric_limits<_Tp, true> { protected: typedef _Tp type; static constexpr const bool is_specialized = true; static constexpr const bool is_signed = type(-1) < type(0); static constexpr const int digits = static_cast<int>(sizeof(type) * 8 - is_signed); static constexpr const int digits10 = digits * 3 / 10; static constexpr const int max_digits10 = 0; static constexpr const type __min = __libcpp_compute_min<type, digits, is_signed>::value; static constexpr const type __max = is_signed ? type(type(~0) ^ __min) : type(~0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __min;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __max;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return min();} static constexpr const bool is_integer = true; static constexpr const bool is_exact = true; static constexpr const int radix = 2; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return type(0);} static constexpr const int min_exponent = 0; static constexpr const int min_exponent10 = 0; static constexpr const int max_exponent = 0; static constexpr const int max_exponent10 = 0; static constexpr const bool has_infinity = false; static constexpr const bool has_quiet_NaN = false; static constexpr const bool has_signaling_NaN = false; static constexpr const float_denorm_style has_denorm = denorm_absent; static constexpr const bool has_denorm_loss = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return type(0);} static constexpr const bool is_iec559 = false; static constexpr const bool is_bounded = true; static constexpr const bool is_modulo = !std::__1::is_signed<_Tp>::value; static constexpr const bool traps = true; static constexpr const bool tinyness_before = false; static constexpr const float_round_style round_style = round_toward_zero; }; template <> class __libcpp_numeric_limits<bool, true> { protected: typedef bool type; static constexpr const bool is_specialized = true; static constexpr const bool is_signed = false; static constexpr const int digits = 1; static constexpr const int digits10 = 0; static constexpr const int max_digits10 = 0; static constexpr const type __min = false; static constexpr const type __max = true; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __min;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __max;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return min();} static constexpr const bool is_integer = true; static constexpr const bool is_exact = true; static constexpr const int radix = 2; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return type(0);} static constexpr const int min_exponent = 0; static constexpr const int min_exponent10 = 0; static constexpr const int max_exponent = 0; static constexpr const int max_exponent10 = 0; static constexpr const bool has_infinity = false; static constexpr const bool has_quiet_NaN = false; static constexpr const bool has_signaling_NaN = false; static constexpr const float_denorm_style has_denorm = denorm_absent; static constexpr const bool has_denorm_loss = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return type(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return type(0);} static constexpr const bool is_iec559 = false; static constexpr const bool is_bounded = true; static constexpr const bool is_modulo = false; static constexpr const bool traps = false; static constexpr const bool tinyness_before = false; static constexpr const float_round_style round_style = round_toward_zero; }; template <> class __libcpp_numeric_limits<float, true> { protected: typedef float type; static constexpr const bool is_specialized = true; static constexpr const bool is_signed = true; static constexpr const int digits = 24; static constexpr const int digits10 = 6; static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return 1.17549435e-38F;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return 3.40282347e+38F;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return -max();} static constexpr const bool is_integer = false; static constexpr const bool is_exact = false; static constexpr const int radix = 2; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return 1.19209290e-7F;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return 0.5F;} static constexpr const int min_exponent = (-125); static constexpr const int min_exponent10 = (-37); static constexpr const int max_exponent = 128; static constexpr const int max_exponent10 = 38; static constexpr const bool has_infinity = true; static constexpr const bool has_quiet_NaN = true; static constexpr const bool has_signaling_NaN = true; static constexpr const float_denorm_style has_denorm = denorm_present; static constexpr const bool has_denorm_loss = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __builtin_huge_valf();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __builtin_nanf("");} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __builtin_nansf("");} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return 1.40129846e-45F;} static constexpr const bool is_iec559 = true; static constexpr const bool is_bounded = true; static constexpr const bool is_modulo = false; static constexpr const bool traps = false; static constexpr const bool tinyness_before = false; static constexpr const float_round_style round_style = round_to_nearest; }; template <> class __libcpp_numeric_limits<double, true> { protected: typedef double type; static constexpr const bool is_specialized = true; static constexpr const bool is_signed = true; static constexpr const int digits = 53; static constexpr const int digits10 = 15; static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return 2.2250738585072014e-308;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return 1.7976931348623157e+308;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return -max();} static constexpr const bool is_integer = false; static constexpr const bool is_exact = false; static constexpr const int radix = 2; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return 2.2204460492503131e-16;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return 0.5;} static constexpr const int min_exponent = (-1021); static constexpr const int min_exponent10 = (-307); static constexpr const int max_exponent = 1024; static constexpr const int max_exponent10 = 308; static constexpr const bool has_infinity = true; static constexpr const bool has_quiet_NaN = true; static constexpr const bool has_signaling_NaN = true; static constexpr const float_denorm_style has_denorm = denorm_present; static constexpr const bool has_denorm_loss = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __builtin_huge_val();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __builtin_nan("");} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __builtin_nans("");} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return 4.9406564584124654e-324;} static constexpr const bool is_iec559 = true; static constexpr const bool is_bounded = true; static constexpr const bool is_modulo = false; static constexpr const bool traps = false; static constexpr const bool tinyness_before = false; static constexpr const float_round_style round_style = round_to_nearest; }; template <> class __libcpp_numeric_limits<long double, true> { protected: typedef long double type; static constexpr const bool is_specialized = true; static constexpr const bool is_signed = true; static constexpr const int digits = 64; static constexpr const int digits10 = 18; static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return 3.36210314311209350626e-4932L;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return 1.18973149535723176502e+4932L;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return -max();} static constexpr const bool is_integer = false; static constexpr const bool is_exact = false; static constexpr const int radix = 2; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return 1.08420217248550443401e-19L;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return 0.5;} static constexpr const int min_exponent = (-16381); static constexpr const int min_exponent10 = (-4931); static constexpr const int max_exponent = 16384; static constexpr const int max_exponent10 = 4932; static constexpr const bool has_infinity = true; static constexpr const bool has_quiet_NaN = true; static constexpr const bool has_signaling_NaN = true; static constexpr const float_denorm_style has_denorm = denorm_present; static constexpr const bool has_denorm_loss = false; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __builtin_huge_vall();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __builtin_nanl("");} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __builtin_nansl("");} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return 3.64519953188247460253e-4951L;} static constexpr const bool is_iec559 = true; static constexpr const bool is_bounded = true; static constexpr const bool is_modulo = false; static constexpr const bool traps = false; static constexpr const bool tinyness_before = false; static constexpr const float_round_style round_style = round_to_nearest; }; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) numeric_limits : private __libcpp_numeric_limits<typename remove_cv<_Tp>::type> { typedef __libcpp_numeric_limits<typename remove_cv<_Tp>::type> __base; typedef typename __base::type type; public: static constexpr const bool is_specialized = __base::is_specialized; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} static constexpr const int digits = __base::digits; static constexpr const int digits10 = __base::digits10; static constexpr const int max_digits10 = __base::max_digits10; static constexpr const bool is_signed = __base::is_signed; static constexpr const bool is_integer = __base::is_integer; static constexpr const bool is_exact = __base::is_exact; static constexpr const int radix = __base::radix; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} static constexpr const int min_exponent = __base::min_exponent; static constexpr const int min_exponent10 = __base::min_exponent10; static constexpr const int max_exponent = __base::max_exponent; static constexpr const int max_exponent10 = __base::max_exponent10; static constexpr const bool has_infinity = __base::has_infinity; static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; static constexpr const float_denorm_style has_denorm = __base::has_denorm; static constexpr const bool has_denorm_loss = __base::has_denorm_loss; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} static constexpr const bool is_iec559 = __base::is_iec559; static constexpr const bool is_bounded = __base::is_bounded; static constexpr const bool is_modulo = __base::is_modulo; static constexpr const bool traps = __base::traps; static constexpr const bool tinyness_before = __base::tinyness_before; static constexpr const float_round_style round_style = __base::round_style; }; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_specialized; template <class _Tp> constexpr const int numeric_limits<_Tp>::digits; template <class _Tp> constexpr const int numeric_limits<_Tp>::digits10; template <class _Tp> constexpr const int numeric_limits<_Tp>::max_digits10; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_signed; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_integer; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_exact; template <class _Tp> constexpr const int numeric_limits<_Tp>::radix; template <class _Tp> constexpr const int numeric_limits<_Tp>::min_exponent; template <class _Tp> constexpr const int numeric_limits<_Tp>::min_exponent10; template <class _Tp> constexpr const int numeric_limits<_Tp>::max_exponent; template <class _Tp> constexpr const int numeric_limits<_Tp>::max_exponent10; template <class _Tp> constexpr const bool numeric_limits<_Tp>::has_infinity; template <class _Tp> constexpr const bool numeric_limits<_Tp>::has_quiet_NaN; template <class _Tp> constexpr const bool numeric_limits<_Tp>::has_signaling_NaN; template <class _Tp> constexpr const float_denorm_style numeric_limits<_Tp>::has_denorm; template <class _Tp> constexpr const bool numeric_limits<_Tp>::has_denorm_loss; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_iec559; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_bounded; template <class _Tp> constexpr const bool numeric_limits<_Tp>::is_modulo; template <class _Tp> constexpr const bool numeric_limits<_Tp>::traps; template <class _Tp> constexpr const bool numeric_limits<_Tp>::tinyness_before; template <class _Tp> constexpr const float_round_style numeric_limits<_Tp>::round_style; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) numeric_limits<const _Tp> : private numeric_limits<_Tp> { typedef numeric_limits<_Tp> __base; typedef _Tp type; public: static constexpr const bool is_specialized = __base::is_specialized; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} static constexpr const int digits = __base::digits; static constexpr const int digits10 = __base::digits10; static constexpr const int max_digits10 = __base::max_digits10; static constexpr const bool is_signed = __base::is_signed; static constexpr const bool is_integer = __base::is_integer; static constexpr const bool is_exact = __base::is_exact; static constexpr const int radix = __base::radix; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} static constexpr const int min_exponent = __base::min_exponent; static constexpr const int min_exponent10 = __base::min_exponent10; static constexpr const int max_exponent = __base::max_exponent; static constexpr const int max_exponent10 = __base::max_exponent10; static constexpr const bool has_infinity = __base::has_infinity; static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; static constexpr const float_denorm_style has_denorm = __base::has_denorm; static constexpr const bool has_denorm_loss = __base::has_denorm_loss; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} static constexpr const bool is_iec559 = __base::is_iec559; static constexpr const bool is_bounded = __base::is_bounded; static constexpr const bool is_modulo = __base::is_modulo; static constexpr const bool traps = __base::traps; static constexpr const bool tinyness_before = __base::tinyness_before; static constexpr const float_round_style round_style = __base::round_style; }; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_specialized; template <class _Tp> constexpr const int numeric_limits<const _Tp>::digits; template <class _Tp> constexpr const int numeric_limits<const _Tp>::digits10; template <class _Tp> constexpr const int numeric_limits<const _Tp>::max_digits10; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_signed; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_integer; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_exact; template <class _Tp> constexpr const int numeric_limits<const _Tp>::radix; template <class _Tp> constexpr const int numeric_limits<const _Tp>::min_exponent; template <class _Tp> constexpr const int numeric_limits<const _Tp>::min_exponent10; template <class _Tp> constexpr const int numeric_limits<const _Tp>::max_exponent; template <class _Tp> constexpr const int numeric_limits<const _Tp>::max_exponent10; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::has_infinity; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::has_quiet_NaN; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::has_signaling_NaN; template <class _Tp> constexpr const float_denorm_style numeric_limits<const _Tp>::has_denorm; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::has_denorm_loss; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_iec559; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_bounded; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::is_modulo; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::traps; template <class _Tp> constexpr const bool numeric_limits<const _Tp>::tinyness_before; template <class _Tp> constexpr const float_round_style numeric_limits<const _Tp>::round_style; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) numeric_limits<volatile _Tp> : private numeric_limits<_Tp> { typedef numeric_limits<_Tp> __base; typedef _Tp type; public: static constexpr const bool is_specialized = __base::is_specialized; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} static constexpr const int digits = __base::digits; static constexpr const int digits10 = __base::digits10; static constexpr const int max_digits10 = __base::max_digits10; static constexpr const bool is_signed = __base::is_signed; static constexpr const bool is_integer = __base::is_integer; static constexpr const bool is_exact = __base::is_exact; static constexpr const int radix = __base::radix; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} static constexpr const int min_exponent = __base::min_exponent; static constexpr const int min_exponent10 = __base::min_exponent10; static constexpr const int max_exponent = __base::max_exponent; static constexpr const int max_exponent10 = __base::max_exponent10; static constexpr const bool has_infinity = __base::has_infinity; static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; static constexpr const float_denorm_style has_denorm = __base::has_denorm; static constexpr const bool has_denorm_loss = __base::has_denorm_loss; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} static constexpr const bool is_iec559 = __base::is_iec559; static constexpr const bool is_bounded = __base::is_bounded; static constexpr const bool is_modulo = __base::is_modulo; static constexpr const bool traps = __base::traps; static constexpr const bool tinyness_before = __base::tinyness_before; static constexpr const float_round_style round_style = __base::round_style; }; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_specialized; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::digits; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::digits10; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::max_digits10; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_signed; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_integer; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_exact; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::radix; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::min_exponent; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::min_exponent10; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::max_exponent; template <class _Tp> constexpr const int numeric_limits<volatile _Tp>::max_exponent10; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::has_infinity; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::has_quiet_NaN; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::has_signaling_NaN; template <class _Tp> constexpr const float_denorm_style numeric_limits<volatile _Tp>::has_denorm; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::has_denorm_loss; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_iec559; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_bounded; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::is_modulo; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::traps; template <class _Tp> constexpr const bool numeric_limits<volatile _Tp>::tinyness_before; template <class _Tp> constexpr const float_round_style numeric_limits<volatile _Tp>::round_style; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) numeric_limits<const volatile _Tp> : private numeric_limits<_Tp> { typedef numeric_limits<_Tp> __base; typedef _Tp type; public: static constexpr const bool is_specialized = __base::is_specialized; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept {return __base::min();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept {return __base::max();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept {return __base::lowest();} static constexpr const int digits = __base::digits; static constexpr const int digits10 = __base::digits10; static constexpr const int max_digits10 = __base::max_digits10; static constexpr const bool is_signed = __base::is_signed; static constexpr const bool is_integer = __base::is_integer; static constexpr const bool is_exact = __base::is_exact; static constexpr const int radix = __base::radix; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept {return __base::epsilon();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept {return __base::round_error();} static constexpr const int min_exponent = __base::min_exponent; static constexpr const int min_exponent10 = __base::min_exponent10; static constexpr const int max_exponent = __base::max_exponent; static constexpr const int max_exponent10 = __base::max_exponent10; static constexpr const bool has_infinity = __base::has_infinity; static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN; static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN; static constexpr const float_denorm_style has_denorm = __base::has_denorm; static constexpr const bool has_denorm_loss = __base::has_denorm_loss; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept {return __base::infinity();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept {return __base::denorm_min();} static constexpr const bool is_iec559 = __base::is_iec559; static constexpr const bool is_bounded = __base::is_bounded; static constexpr const bool is_modulo = __base::is_modulo; static constexpr const bool traps = __base::traps; static constexpr const bool tinyness_before = __base::tinyness_before; static constexpr const float_round_style round_style = __base::round_style; }; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_specialized; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::digits; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::digits10; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::max_digits10; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_signed; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_integer; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_exact; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::radix; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::min_exponent; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::min_exponent10; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::max_exponent; template <class _Tp> constexpr const int numeric_limits<const volatile _Tp>::max_exponent10; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::has_infinity; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::has_quiet_NaN; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::has_signaling_NaN; template <class _Tp> constexpr const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::has_denorm_loss; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_iec559; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_bounded; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::is_modulo; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::traps; template <class _Tp> constexpr const bool numeric_limits<const volatile _Tp>::tinyness_before; template <class _Tp> constexpr const float_round_style numeric_limits<const volatile _Tp>::round_style; } } # 313 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 2 3 template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_signbit(_A1 __lcpp_x) noexcept { return __builtin_signbitl (__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type signbit(_A1 __lcpp_x) noexcept { return __libcpp_signbit((typename std::__promote<_A1>::type)__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if< std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type signbit(_A1 __lcpp_x) noexcept { return __lcpp_x < 0; } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if< std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type signbit(_A1) noexcept { return false; } # 380 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_fpclassify(_A1 __lcpp_x) noexcept { return (sizeof ((__lcpp_x)) == sizeof (float) ? __fpclassifyf (__lcpp_x) : sizeof ((__lcpp_x)) == sizeof (double) ? __fpclassify (__lcpp_x) : __fpclassifyl (__lcpp_x)); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_floating_point<_A1>::value, int>::type fpclassify(_A1 __lcpp_x) noexcept { return __libcpp_fpclassify((typename std::__promote<_A1>::type)__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, int>::type fpclassify(_A1 __lcpp_x) noexcept { return __lcpp_x == 0 ? 2 : 4; } # 426 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isfinite(_A1 __lcpp_x) noexcept { return (sizeof ((__lcpp_x)) == sizeof (float) ? __finitef (__lcpp_x) : sizeof ((__lcpp_x)) == sizeof (double) ? __finite (__lcpp_x) : __finitel (__lcpp_x)); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if< std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity, bool>::type isfinite(_A1 __lcpp_x) noexcept { return __libcpp_isfinite((typename std::__promote<_A1>::type)__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if< std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity, bool>::type isfinite(_A1) noexcept { return true; } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isinf(_A1 __lcpp_x) noexcept { return (sizeof ((__lcpp_x)) == sizeof (float) ? __isinff (__lcpp_x) : sizeof ((__lcpp_x)) == sizeof (double) ? __isinf (__lcpp_x) : __isinfl (__lcpp_x)); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if< std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity, bool>::type isinf(_A1 __lcpp_x) noexcept { return __libcpp_isinf((typename std::__promote<_A1>::type)__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if< std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity, bool>::type isinf(_A1) noexcept { return false; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isinf(float __lcpp_x) noexcept { return __libcpp_isinf(__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) bool isinf(double __lcpp_x) noexcept { return __libcpp_isinf(__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isinf(long double __lcpp_x) noexcept { return __libcpp_isinf(__lcpp_x); } # 508 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isnan(_A1 __lcpp_x) noexcept { return (sizeof ((__lcpp_x)) == sizeof (float) ? __isnanf (__lcpp_x) : sizeof ((__lcpp_x)) == sizeof (double) ? __isnan (__lcpp_x) : __isnanl (__lcpp_x)); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type isnan(_A1 __lcpp_x) noexcept { return __libcpp_isnan((typename std::__promote<_A1>::type)__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, bool>::type isnan(_A1) noexcept { return false; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isnan(float __lcpp_x) noexcept { return __libcpp_isnan(__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) bool isnan(double __lcpp_x) noexcept { return __libcpp_isnan(__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isnan(long double __lcpp_x) noexcept { return __libcpp_isnan(__lcpp_x); } # 552 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isnormal(_A1 __lcpp_x) noexcept { return (fpclassify (__lcpp_x) == 4); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type isnormal(_A1 __lcpp_x) noexcept { return __libcpp_isnormal((typename std::__promote<_A1>::type)__lcpp_x); } template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, bool>::type isnormal(_A1 __lcpp_x) noexcept { return __lcpp_x != 0; } template <class _A1, class _A2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { return __builtin_isgreater(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, bool >::type isgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type type; return __libcpp_isgreater((type)__lcpp_x, (type)__lcpp_y); } template <class _A1, class _A2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { return __builtin_isgreaterequal(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, bool >::type isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type type; return __libcpp_isgreaterequal((type)__lcpp_x, (type)__lcpp_y); } template <class _A1, class _A2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isless(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { return __builtin_isless(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, bool >::type isless(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type type; return __libcpp_isless((type)__lcpp_x, (type)__lcpp_y); } template <class _A1, class _A2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_islessequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { return __builtin_islessequal(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, bool >::type islessequal(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type type; return __libcpp_islessequal((type)__lcpp_x, (type)__lcpp_y); } template <class _A1, class _A2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { return __builtin_islessgreater(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, bool >::type islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type type; return __libcpp_islessgreater((type)__lcpp_x, (type)__lcpp_y); } template <class _A1, class _A2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_isunordered(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { return __builtin_isunordered(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, bool >::type isunordered(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type type; return __libcpp_isunordered((type)__lcpp_x, (type)__lcpp_y); } # 768 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long abs(long __x) noexcept { return ::labs(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long long abs(long long __x) noexcept { return ::llabs(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float abs(float __lcpp_x) noexcept { return ::fabsf(__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) double abs(double __lcpp_x) noexcept { return ::fabs(__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double abs(long double __lcpp_x) noexcept { return ::fabsl(__lcpp_x); } # 804 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 3 inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ldiv_t div(long __x, long __y) noexcept { return ::ldiv(__x, __y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) lldiv_t div(long long __x, long long __y) noexcept { return ::lldiv(__x, __y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float acos(float __lcpp_x) noexcept {return ::acosf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double acos(long double __lcpp_x) noexcept {return ::acosl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type acos(_A1 __lcpp_x) noexcept {return ::acos((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float asin(float __lcpp_x) noexcept {return ::asinf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double asin(long double __lcpp_x) noexcept {return ::asinl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type asin(_A1 __lcpp_x) noexcept {return ::asin((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float atan(float __lcpp_x) noexcept {return ::atanf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double atan(long double __lcpp_x) noexcept {return ::atanl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type atan(_A1 __lcpp_x) noexcept {return ::atan((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float atan2(float __lcpp_y, float __lcpp_x) noexcept {return ::atan2f(__lcpp_y, __lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double atan2(long double __lcpp_y, long double __lcpp_x) noexcept {return ::atan2l(__lcpp_y, __lcpp_x);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type atan2(_A1 __lcpp_y, _A2 __lcpp_x) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::atan2((__result_type)__lcpp_y, (__result_type)__lcpp_x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float ceil(float __lcpp_x) noexcept {return ::ceilf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double ceil(long double __lcpp_x) noexcept {return ::ceill(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type ceil(_A1 __lcpp_x) noexcept {return ::ceil((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float cos(float __lcpp_x) noexcept {return ::cosf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double cos(long double __lcpp_x) noexcept {return ::cosl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type cos(_A1 __lcpp_x) noexcept {return ::cos((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float cosh(float __lcpp_x) noexcept {return ::coshf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double cosh(long double __lcpp_x) noexcept {return ::coshl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type cosh(_A1 __lcpp_x) noexcept {return ::cosh((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float exp(float __lcpp_x) noexcept {return ::expf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double exp(long double __lcpp_x) noexcept {return ::expl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type exp(_A1 __lcpp_x) noexcept {return ::exp((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float fabs(float __lcpp_x) noexcept {return ::fabsf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double fabs(long double __lcpp_x) noexcept {return ::fabsl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type fabs(_A1 __lcpp_x) noexcept {return ::fabs((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float floor(float __lcpp_x) noexcept {return ::floorf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double floor(long double __lcpp_x) noexcept {return ::floorl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type floor(_A1 __lcpp_x) noexcept {return ::floor((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float fmod(float __lcpp_x, float __lcpp_y) noexcept {return ::fmodf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double fmod(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fmodl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type fmod(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::fmod((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float frexp(float __lcpp_x, int* __lcpp_e) noexcept {return ::frexpf(__lcpp_x, __lcpp_e);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double frexp(long double __lcpp_x, int* __lcpp_e) noexcept {return ::frexpl(__lcpp_x, __lcpp_e);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type frexp(_A1 __lcpp_x, int* __lcpp_e) noexcept {return ::frexp((double)__lcpp_x, __lcpp_e);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float ldexp(float __lcpp_x, int __lcpp_e) noexcept {return ::ldexpf(__lcpp_x, __lcpp_e);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double ldexp(long double __lcpp_x, int __lcpp_e) noexcept {return ::ldexpl(__lcpp_x, __lcpp_e);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type ldexp(_A1 __lcpp_x, int __lcpp_e) noexcept {return ::ldexp((double)__lcpp_x, __lcpp_e);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float log(float __lcpp_x) noexcept {return ::logf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double log(long double __lcpp_x) noexcept {return ::logl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type log(_A1 __lcpp_x) noexcept {return ::log((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float log10(float __lcpp_x) noexcept {return ::log10f(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double log10(long double __lcpp_x) noexcept {return ::log10l(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type log10(_A1 __lcpp_x) noexcept {return ::log10((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float modf(float __lcpp_x, float* __lcpp_y) noexcept {return ::modff(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double modf(long double __lcpp_x, long double* __lcpp_y) noexcept {return ::modfl(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float pow(float __lcpp_x, float __lcpp_y) noexcept {return ::powf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double pow(long double __lcpp_x, long double __lcpp_y) noexcept {return ::powl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type pow(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::pow((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float sin(float __lcpp_x) noexcept {return ::sinf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double sin(long double __lcpp_x) noexcept {return ::sinl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type sin(_A1 __lcpp_x) noexcept {return ::sin((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float sinh(float __lcpp_x) noexcept {return ::sinhf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double sinh(long double __lcpp_x) noexcept {return ::sinhl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type sinh(_A1 __lcpp_x) noexcept {return ::sinh((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float sqrt(float __lcpp_x) noexcept {return ::sqrtf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double sqrt(long double __lcpp_x) noexcept {return ::sqrtl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type sqrt(_A1 __lcpp_x) noexcept {return ::sqrt((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float tan(float __lcpp_x) noexcept {return ::tanf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double tan(long double __lcpp_x) noexcept {return ::tanl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type tan(_A1 __lcpp_x) noexcept {return ::tan((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float tanh(float __lcpp_x) noexcept {return ::tanhf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double tanh(long double __lcpp_x) noexcept {return ::tanhl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type tanh(_A1 __lcpp_x) noexcept {return ::tanh((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float acosh(float __lcpp_x) noexcept {return ::acoshf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double acosh(long double __lcpp_x) noexcept {return ::acoshl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type acosh(_A1 __lcpp_x) noexcept {return ::acosh((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float asinh(float __lcpp_x) noexcept {return ::asinhf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double asinh(long double __lcpp_x) noexcept {return ::asinhl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type asinh(_A1 __lcpp_x) noexcept {return ::asinh((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float atanh(float __lcpp_x) noexcept {return ::atanhf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double atanh(long double __lcpp_x) noexcept {return ::atanhl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type atanh(_A1 __lcpp_x) noexcept {return ::atanh((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float cbrt(float __lcpp_x) noexcept {return ::cbrtf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double cbrt(long double __lcpp_x) noexcept {return ::cbrtl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type cbrt(_A1 __lcpp_x) noexcept {return ::cbrt((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float copysign(float __lcpp_x, float __lcpp_y) noexcept { return ::copysignf(__lcpp_x, __lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double copysign(long double __lcpp_x, long double __lcpp_y) noexcept { return ::copysignl(__lcpp_x, __lcpp_y); } template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type copysign(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::copysign((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float erf(float __lcpp_x) noexcept {return ::erff(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double erf(long double __lcpp_x) noexcept {return ::erfl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type erf(_A1 __lcpp_x) noexcept {return ::erf((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float erfc(float __lcpp_x) noexcept {return ::erfcf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double erfc(long double __lcpp_x) noexcept {return ::erfcl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type erfc(_A1 __lcpp_x) noexcept {return ::erfc((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float exp2(float __lcpp_x) noexcept {return ::exp2f(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double exp2(long double __lcpp_x) noexcept {return ::exp2l(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type exp2(_A1 __lcpp_x) noexcept {return ::exp2((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float expm1(float __lcpp_x) noexcept {return ::expm1f(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double expm1(long double __lcpp_x) noexcept {return ::expm1l(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type expm1(_A1 __lcpp_x) noexcept {return ::expm1((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float fdim(float __lcpp_x, float __lcpp_y) noexcept {return ::fdimf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double fdim(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fdiml(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type fdim(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::fdim((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) noexcept {return ::fmaf(__lcpp_x, __lcpp_y, __lcpp_z);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double fma(long double __lcpp_x, long double __lcpp_y, long double __lcpp_z) noexcept {return ::fmal(__lcpp_x, __lcpp_y, __lcpp_z);} template <class _A1, class _A2, class _A3> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value && std::is_arithmetic<_A3>::value, std::__promote<_A1, _A2, _A3> >::type fma(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) noexcept { typedef typename std::__promote<_A1, _A2, _A3>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value && std::is_same<_A3, __result_type>::value)), ""); return ::fma((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float fmax(float __lcpp_x, float __lcpp_y) noexcept {return ::fmaxf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double fmax(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fmaxl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type fmax(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::fmax((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float fmin(float __lcpp_x, float __lcpp_y) noexcept {return ::fminf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double fmin(long double __lcpp_x, long double __lcpp_y) noexcept {return ::fminl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type fmin(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::fmin((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float hypot(float __lcpp_x, float __lcpp_y) noexcept {return ::hypotf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double hypot(long double __lcpp_x, long double __lcpp_y) noexcept {return ::hypotl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type hypot(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int ilogb(float __lcpp_x) noexcept {return ::ilogbf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int ilogb(long double __lcpp_x) noexcept {return ::ilogbl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, int>::type ilogb(_A1 __lcpp_x) noexcept {return ::ilogb((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float lgamma(float __lcpp_x) noexcept {return ::lgammaf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double lgamma(long double __lcpp_x) noexcept {return ::lgammal(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type lgamma(_A1 __lcpp_x) noexcept {return ::lgamma((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long long llrint(float __lcpp_x) noexcept {return ::llrintf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long long llrint(long double __lcpp_x) noexcept {return ::llrintl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, long long>::type llrint(_A1 __lcpp_x) noexcept {return ::llrint((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long long llround(float __lcpp_x) noexcept {return ::llroundf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long long llround(long double __lcpp_x) noexcept {return ::llroundl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, long long>::type llround(_A1 __lcpp_x) noexcept {return ::llround((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float log1p(float __lcpp_x) noexcept {return ::log1pf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double log1p(long double __lcpp_x) noexcept {return ::log1pl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type log1p(_A1 __lcpp_x) noexcept {return ::log1p((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float log2(float __lcpp_x) noexcept {return ::log2f(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double log2(long double __lcpp_x) noexcept {return ::log2l(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type log2(_A1 __lcpp_x) noexcept {return ::log2((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float logb(float __lcpp_x) noexcept {return ::logbf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double logb(long double __lcpp_x) noexcept {return ::logbl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type logb(_A1 __lcpp_x) noexcept {return ::logb((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long lrint(float __lcpp_x) noexcept {return ::lrintf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long lrint(long double __lcpp_x) noexcept {return ::lrintl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, long>::type lrint(_A1 __lcpp_x) noexcept {return ::lrint((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long lround(float __lcpp_x) noexcept {return ::lroundf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long lround(long double __lcpp_x) noexcept {return ::lroundl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, long>::type lround(_A1 __lcpp_x) noexcept {return ::lround((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float nearbyint(float __lcpp_x) noexcept {return ::nearbyintf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double nearbyint(long double __lcpp_x) noexcept {return ::nearbyintl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type nearbyint(_A1 __lcpp_x) noexcept {return ::nearbyint((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float nextafter(float __lcpp_x, float __lcpp_y) noexcept {return ::nextafterf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double nextafter(long double __lcpp_x, long double __lcpp_y) noexcept {return ::nextafterl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type nextafter(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::nextafter((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float nexttoward(float __lcpp_x, long double __lcpp_y) noexcept {return ::nexttowardf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double nexttoward(long double __lcpp_x, long double __lcpp_y) noexcept {return ::nexttowardl(__lcpp_x, __lcpp_y);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type nexttoward(_A1 __lcpp_x, long double __lcpp_y) noexcept {return ::nexttoward((double)__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float remainder(float __lcpp_x, float __lcpp_y) noexcept {return ::remainderf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double remainder(long double __lcpp_x, long double __lcpp_y) noexcept {return ::remainderl(__lcpp_x, __lcpp_y);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type remainder(_A1 __lcpp_x, _A2 __lcpp_y) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::remainder((__result_type)__lcpp_x, (__result_type)__lcpp_y); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) noexcept {return ::remquof(__lcpp_x, __lcpp_y, __lcpp_z);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double remquo(long double __lcpp_x, long double __lcpp_y, int* __lcpp_z) noexcept {return ::remquol(__lcpp_x, __lcpp_y, __lcpp_z);} template <class _A1, class _A2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::__lazy_enable_if < std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, std::__promote<_A1, _A2> >::type remquo(_A1 __lcpp_x, _A2 __lcpp_y, int* __lcpp_z) noexcept { typedef typename std::__promote<_A1, _A2>::type __result_type; static_assert((!(std::is_same<_A1, __result_type>::value && std::is_same<_A2, __result_type>::value)), ""); return ::remquo((__result_type)__lcpp_x, (__result_type)__lcpp_y, __lcpp_z); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float rint(float __lcpp_x) noexcept {return ::rintf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double rint(long double __lcpp_x) noexcept {return ::rintl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type rint(_A1 __lcpp_x) noexcept {return ::rint((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float round(float __lcpp_x) noexcept {return ::roundf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double round(long double __lcpp_x) noexcept {return ::roundl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type round(_A1 __lcpp_x) noexcept {return ::round((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float scalbln(float __lcpp_x, long __lcpp_y) noexcept {return ::scalblnf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double scalbln(long double __lcpp_x, long __lcpp_y) noexcept {return ::scalblnl(__lcpp_x, __lcpp_y);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type scalbln(_A1 __lcpp_x, long __lcpp_y) noexcept {return ::scalbln((double)__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float scalbn(float __lcpp_x, int __lcpp_y) noexcept {return ::scalbnf(__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double scalbn(long double __lcpp_x, int __lcpp_y) noexcept {return ::scalbnl(__lcpp_x, __lcpp_y);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type scalbn(_A1 __lcpp_x, int __lcpp_y) noexcept {return ::scalbn((double)__lcpp_x, __lcpp_y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float tgamma(float __lcpp_x) noexcept {return ::tgammaf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double tgamma(long double __lcpp_x) noexcept {return ::tgammal(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type tgamma(_A1 __lcpp_x) noexcept {return ::tgamma((double)__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float trunc(float __lcpp_x) noexcept {return ::truncf(__lcpp_x);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double trunc(long double __lcpp_x) noexcept {return ::truncl(__lcpp_x);} template <class _A1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename std::enable_if<std::is_integral<_A1>::value, double>::type trunc(_A1 __lcpp_x) noexcept {return ::trunc((double)__lcpp_x);} } # 101 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 2 3 # 15 "/work/include/isl/ctx.h" 2 # 1 "/work/include/isl/arg.h" 1 # 13 "/work/include/isl/arg.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 # 43 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 46 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 extern "C++" { using std::nullptr_t; } # 14 "/work/include/isl/arg.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 15 "/work/include/isl/arg.h" 2 extern "C" { struct isl_arg_choice { const char *name; unsigned value; }; struct isl_arg_flags { const char *name; unsigned mask; unsigned value; }; enum isl_arg_type { isl_arg_end, isl_arg_alias, isl_arg_arg, isl_arg_bool, isl_arg_child, isl_arg_choice, isl_arg_flags, isl_arg_footer, isl_arg_int, isl_arg_user, isl_arg_long, isl_arg_ulong, isl_arg_str, isl_arg_str_list, isl_arg_version }; struct isl_args; struct isl_arg { enum isl_arg_type type; char short_name; const char *long_name; const char *argument_name; size_t offset; const char *help_msg; unsigned flags; union { struct { struct isl_arg_choice *choice; unsigned default_value; unsigned default_selected; int (*set)(void *opt, unsigned val); } choice; struct { struct isl_arg_flags *flags; unsigned default_value; } flags; struct { unsigned default_value; int (*set)(void *opt, unsigned val); } b; struct { int default_value; } i; struct { long default_value; long default_selected; int (*set)(void *opt, long val); } l; struct { unsigned long default_value; } ul; struct { const char *default_value; } str; struct { size_t offset_n; } str_list; struct { struct isl_args *child; } child; struct { void (*print_version)(void); } version; struct { int (*init)(void*); void (*clear)(void*); } user; } u; }; struct isl_args { size_t options_size; struct isl_arg *args; }; # 290 "/work/include/isl/arg.h" void isl_args_set_defaults(struct isl_args *args, void *opt); void isl_args_free(struct isl_args *args, void *opt); int isl_args_parse(struct isl_args *args, int argc, char **argv, void *opt, unsigned flags); # 321 "/work/include/isl/arg.h" } # 17 "/work/include/isl/ctx.h" 2 # 44 "/work/include/isl/ctx.h" extern "C" { # 71 "/work/include/isl/ctx.h" struct isl_stats { long gbr_solved_lps; }; enum isl_error { isl_error_none = 0, isl_error_abort, isl_error_alloc, isl_error_unknown, isl_error_internal, isl_error_invalid, isl_error_quota, isl_error_unsupported }; typedef enum { isl_stat_error = -1, isl_stat_ok = 0 } isl_stat; typedef enum { isl_bool_error = -1, isl_bool_false = 0, isl_bool_true = 1 } isl_bool; isl_bool isl_bool_not(isl_bool b); isl_bool isl_bool_ok(int b); typedef int isl_size; struct isl_ctx; typedef struct isl_ctx isl_ctx; # 118 "/work/include/isl/ctx.h" void *isl_malloc_or_die(isl_ctx *ctx, size_t size); void *isl_calloc_or_die(isl_ctx *ctx, size_t nmemb, size_t size); void *isl_realloc_or_die(isl_ctx *ctx, void *ptr, size_t size); # 142 "/work/include/isl/ctx.h" void isl_handle_error(isl_ctx *ctx, enum isl_error error, const char *msg, const char *file, int line); # 158 "/work/include/isl/ctx.h" struct isl_options *isl_ctx_options(isl_ctx *ctx); isl_ctx *isl_ctx_alloc_with_options(struct isl_args *args, void *opt); isl_ctx *isl_ctx_alloc(void); void *isl_ctx_peek_options(isl_ctx *ctx, struct isl_args *args); int isl_ctx_parse_options(isl_ctx *ctx, int argc, char **argv, unsigned flags); void isl_ctx_ref(struct isl_ctx *ctx); void isl_ctx_deref(struct isl_ctx *ctx); void isl_ctx_free(isl_ctx *ctx); void isl_ctx_abort(isl_ctx *ctx); void isl_ctx_resume(isl_ctx *ctx); int isl_ctx_aborted(isl_ctx *ctx); void isl_ctx_set_max_operations(isl_ctx *ctx, unsigned long max_operations); unsigned long isl_ctx_get_max_operations(isl_ctx *ctx); void isl_ctx_reset_operations(isl_ctx *ctx); # 253 "/work/include/isl/ctx.h" enum isl_error isl_ctx_last_error(isl_ctx *ctx); const char *isl_ctx_last_error_msg(isl_ctx *ctx); const char *isl_ctx_last_error_file(isl_ctx *ctx); int isl_ctx_last_error_line(isl_ctx *ctx); void isl_ctx_reset_error(isl_ctx *ctx); void isl_ctx_set_error(isl_ctx *ctx, enum isl_error error); } # 14 "/work/include/isl/list.h" 2 # 1 "/work/include/isl/printer_type.h" 1 extern "C" { struct isl_printer; typedef struct isl_printer isl_printer; } # 15 "/work/include/isl/list.h" 2 extern "C" { # 104 "/work/include/isl/list.h" } # 19 "/work/isl_map_private.h" 2 # 1 "/work/include/isl/set.h" 1 # 13 "/work/include/isl/set.h" # 1 "/work/include/isl/id_type.h" 1 extern "C" { struct isl_id; typedef struct isl_id isl_id; struct isl_id; struct isl_id_list; typedef struct isl_id_list isl_id_list; } # 14 "/work/include/isl/set.h" 2 # 1 "/work/include/isl/map_type.h" 1 extern "C" { struct isl_basic_map; typedef struct isl_basic_map isl_basic_map; struct isl_basic_map; struct isl_basic_map_list; typedef struct isl_basic_map_list isl_basic_map_list; struct isl_map; typedef struct isl_map isl_map; struct isl_map; struct isl_map_list; typedef struct isl_map_list isl_map_list; # 30 "/work/include/isl/map_type.h" isl_ctx *isl_basic_set_list_get_ctx( isl_basic_map_list *list); isl_basic_map_list *isl_basic_set_list_from_basic_set( isl_basic_map *el); isl_basic_map_list *isl_basic_set_list_alloc(isl_ctx *ctx, int n); isl_basic_map_list *isl_basic_set_list_copy( isl_basic_map_list *list); isl_basic_map_list *isl_basic_set_list_free( isl_basic_map_list *list); isl_basic_map_list *isl_basic_set_list_add( isl_basic_map_list *list, isl_basic_map *el); isl_basic_map_list *isl_basic_set_list_insert( isl_basic_map_list *list, unsigned pos, struct isl_basic_map *el); isl_basic_map_list *isl_basic_set_list_drop( isl_basic_map_list *list, unsigned first, unsigned n); isl_basic_map_list *isl_basic_set_list_swap( isl_basic_map_list *list, unsigned pos1, unsigned pos2); isl_basic_map_list *isl_basic_set_list_reverse( isl_basic_map_list *list); isl_basic_map_list *isl_basic_set_list_concat( isl_basic_map_list *list1, isl_basic_map_list *list2); isl_size isl_basic_set_list_size( isl_basic_map_list *list); isl_size isl_basic_set_list_n_basic_set( isl_basic_map_list *list); isl_basic_map *isl_basic_set_list_get_at( isl_basic_map_list *list, int index); struct isl_basic_map *isl_basic_set_list_get_basic_set( isl_basic_map_list *list, int index); struct isl_basic_map_list *isl_basic_set_list_set_basic_set( struct isl_basic_map_list *list, int index, struct isl_basic_map *el); isl_stat isl_basic_set_list_foreach( isl_basic_map_list *list, isl_stat (*fn)( isl_basic_map *el, void *user), void *user); isl_basic_map_list *isl_basic_set_list_map( isl_basic_map_list *list, isl_basic_map * (*fn)( isl_basic_map *el, void *user), void *user); isl_basic_map_list *isl_basic_set_list_sort( isl_basic_map_list *list, int (*cmp)( struct isl_basic_map *a, struct isl_basic_map *b, void *user), void *user); isl_stat isl_basic_set_list_foreach_scc( isl_basic_map_list *list, isl_bool (*follows)( struct isl_basic_map *a, struct isl_basic_map *b, void *user), void *follows_user, isl_stat (*fn)( isl_basic_map_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_basic_set_list( isl_printer *p, isl_basic_map_list *list); void isl_basic_set_list_dump( isl_basic_map_list *list); isl_ctx *isl_set_list_get_ctx( isl_map_list *list); isl_map_list *isl_set_list_from_set( isl_map *el); isl_map_list *isl_set_list_alloc(isl_ctx *ctx, int n); isl_map_list *isl_set_list_copy( isl_map_list *list); isl_map_list *isl_set_list_free( isl_map_list *list); isl_map_list *isl_set_list_add( isl_map_list *list, isl_map *el); isl_map_list *isl_set_list_insert( isl_map_list *list, unsigned pos, struct isl_map *el); isl_map_list *isl_set_list_drop( isl_map_list *list, unsigned first, unsigned n); isl_map_list *isl_set_list_swap( isl_map_list *list, unsigned pos1, unsigned pos2); isl_map_list *isl_set_list_reverse( isl_map_list *list); isl_map_list *isl_set_list_concat( isl_map_list *list1, isl_map_list *list2); isl_size isl_set_list_size( isl_map_list *list); isl_size isl_set_list_n_set( isl_map_list *list); isl_map *isl_set_list_get_at( isl_map_list *list, int index); struct isl_map *isl_set_list_get_set( isl_map_list *list, int index); struct isl_map_list *isl_set_list_set_set( struct isl_map_list *list, int index, struct isl_map *el); isl_stat isl_set_list_foreach( isl_map_list *list, isl_stat (*fn)( isl_map *el, void *user), void *user); isl_map_list *isl_set_list_map( isl_map_list *list, isl_map * (*fn)( isl_map *el, void *user), void *user); isl_map_list *isl_set_list_sort( isl_map_list *list, int (*cmp)( struct isl_map *a, struct isl_map *b, void *user), void *user); isl_stat isl_set_list_foreach_scc( isl_map_list *list, isl_bool (*follows)( struct isl_map *a, struct isl_map *b, void *user), void *follows_user, isl_stat (*fn)( isl_map_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_set_list( isl_printer *p, isl_map_list *list); void isl_set_list_dump( isl_map_list *list); } # 15 "/work/include/isl/set.h" 2 # 1 "/work/include/isl/aff_type.h" 1 extern "C" { struct isl_aff; typedef struct isl_aff isl_aff; struct isl_aff; struct isl_aff_list; typedef struct isl_aff_list isl_aff_list; isl_ctx *isl_aff_list_get_ctx( isl_aff_list *list); isl_aff_list *isl_aff_list_from_aff( isl_aff *el); isl_aff_list *isl_aff_list_alloc(isl_ctx *ctx, int n); isl_aff_list *isl_aff_list_copy( isl_aff_list *list); isl_aff_list *isl_aff_list_free( isl_aff_list *list); isl_aff_list *isl_aff_list_add( isl_aff_list *list, isl_aff *el); isl_aff_list *isl_aff_list_insert( isl_aff_list *list, unsigned pos, struct isl_aff *el); isl_aff_list *isl_aff_list_drop( isl_aff_list *list, unsigned first, unsigned n); isl_aff_list *isl_aff_list_swap( isl_aff_list *list, unsigned pos1, unsigned pos2); isl_aff_list *isl_aff_list_reverse( isl_aff_list *list); isl_aff_list *isl_aff_list_concat( isl_aff_list *list1, isl_aff_list *list2); isl_size isl_aff_list_size( isl_aff_list *list); isl_size isl_aff_list_n_aff( isl_aff_list *list); isl_aff *isl_aff_list_get_at( isl_aff_list *list, int index); struct isl_aff *isl_aff_list_get_aff( isl_aff_list *list, int index); struct isl_aff_list *isl_aff_list_set_aff( struct isl_aff_list *list, int index, struct isl_aff *el); isl_stat isl_aff_list_foreach( isl_aff_list *list, isl_stat (*fn)( isl_aff *el, void *user), void *user); isl_aff_list *isl_aff_list_map( isl_aff_list *list, isl_aff * (*fn)( isl_aff *el, void *user), void *user); isl_aff_list *isl_aff_list_sort( isl_aff_list *list, int (*cmp)( struct isl_aff *a, struct isl_aff *b, void *user), void *user); isl_stat isl_aff_list_foreach_scc( isl_aff_list *list, isl_bool (*follows)( struct isl_aff *a, struct isl_aff *b, void *user), void *follows_user, isl_stat (*fn)( isl_aff_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_aff_list( isl_printer *p, isl_aff_list *list); void isl_aff_list_dump( isl_aff_list *list); struct isl_pw_aff; typedef struct isl_pw_aff isl_pw_aff; struct isl_pw_aff; struct isl_pw_aff_list; typedef struct isl_pw_aff_list isl_pw_aff_list; isl_ctx *isl_pw_aff_list_get_ctx( isl_pw_aff_list *list); isl_pw_aff_list *isl_pw_aff_list_from_pw_aff( isl_pw_aff *el); isl_pw_aff_list *isl_pw_aff_list_alloc(isl_ctx *ctx, int n); isl_pw_aff_list *isl_pw_aff_list_copy( isl_pw_aff_list *list); isl_pw_aff_list *isl_pw_aff_list_free( isl_pw_aff_list *list); isl_pw_aff_list *isl_pw_aff_list_add( isl_pw_aff_list *list, isl_pw_aff *el); isl_pw_aff_list *isl_pw_aff_list_insert( isl_pw_aff_list *list, unsigned pos, struct isl_pw_aff *el); isl_pw_aff_list *isl_pw_aff_list_drop( isl_pw_aff_list *list, unsigned first, unsigned n); isl_pw_aff_list *isl_pw_aff_list_swap( isl_pw_aff_list *list, unsigned pos1, unsigned pos2); isl_pw_aff_list *isl_pw_aff_list_reverse( isl_pw_aff_list *list); isl_pw_aff_list *isl_pw_aff_list_concat( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_size isl_pw_aff_list_size( isl_pw_aff_list *list); isl_size isl_pw_aff_list_n_pw_aff( isl_pw_aff_list *list); isl_pw_aff *isl_pw_aff_list_get_at( isl_pw_aff_list *list, int index); struct isl_pw_aff *isl_pw_aff_list_get_pw_aff( isl_pw_aff_list *list, int index); struct isl_pw_aff_list *isl_pw_aff_list_set_pw_aff( struct isl_pw_aff_list *list, int index, struct isl_pw_aff *el); isl_stat isl_pw_aff_list_foreach( isl_pw_aff_list *list, isl_stat (*fn)( isl_pw_aff *el, void *user), void *user); isl_pw_aff_list *isl_pw_aff_list_map( isl_pw_aff_list *list, isl_pw_aff * (*fn)( isl_pw_aff *el, void *user), void *user); isl_pw_aff_list *isl_pw_aff_list_sort( isl_pw_aff_list *list, int (*cmp)( struct isl_pw_aff *a, struct isl_pw_aff *b, void *user), void *user); isl_stat isl_pw_aff_list_foreach_scc( isl_pw_aff_list *list, isl_bool (*follows)( struct isl_pw_aff *a, struct isl_pw_aff *b, void *user), void *follows_user, isl_stat (*fn)( isl_pw_aff_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_pw_aff_list( isl_printer *p, isl_pw_aff_list *list); void isl_pw_aff_list_dump( isl_pw_aff_list *list); struct isl_union_pw_aff; typedef struct isl_union_pw_aff isl_union_pw_aff; struct isl_union_pw_aff; struct isl_union_pw_aff_list; typedef struct isl_union_pw_aff_list isl_union_pw_aff_list; struct isl_multi_aff; typedef struct isl_multi_aff isl_multi_aff; struct isl_pw_multi_aff; typedef struct isl_pw_multi_aff isl_pw_multi_aff; struct isl_pw_multi_aff; struct isl_pw_multi_aff_list; typedef struct isl_pw_multi_aff_list isl_pw_multi_aff_list; struct isl_union_pw_multi_aff; typedef struct isl_union_pw_multi_aff isl_union_pw_multi_aff; struct isl_union_pw_multi_aff; struct isl_union_pw_multi_aff_list; typedef struct isl_union_pw_multi_aff_list isl_union_pw_multi_aff_list; struct isl_multi_pw_aff; typedef struct isl_multi_pw_aff isl_multi_pw_aff; struct isl_multi_union_pw_aff; typedef struct isl_multi_union_pw_aff isl_multi_union_pw_aff; } # 16 "/work/include/isl/set.h" 2 # 1 "/work/include/isl/mat.h" 1 # 13 "/work/include/isl/mat.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 14 "/work/include/isl/mat.h" 2 # 1 "/work/include/isl/vec.h" 1 # 13 "/work/include/isl/vec.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 14 "/work/include/isl/vec.h" 2 # 1 "/work/include/isl/val_type.h" 1 extern "C" { struct isl_val; typedef struct isl_val isl_val; struct isl_val; struct isl_val_list; typedef struct isl_val_list isl_val_list; struct isl_multi_val; typedef struct isl_multi_val isl_multi_val; } # 17 "/work/include/isl/vec.h" 2 # 1 "/work/include/isl/printer.h" 1 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 5 "/work/include/isl/printer.h" 2 extern "C" { isl_printer *isl_printer_to_file(isl_ctx *ctx, FILE *file); isl_printer *isl_printer_to_str(isl_ctx *ctx); isl_printer *isl_printer_free( isl_printer *printer); isl_ctx *isl_printer_get_ctx( isl_printer *printer); FILE *isl_printer_get_file( isl_printer *printer); char *isl_printer_get_str( isl_printer *printer); isl_printer *isl_printer_set_indent( isl_printer *p, int indent); isl_printer *isl_printer_indent( isl_printer *p, int indent); # 34 "/work/include/isl/printer.h" isl_printer *isl_printer_set_output_format( isl_printer *p, int output_format); int isl_printer_get_output_format( isl_printer *p); isl_printer *isl_printer_set_yaml_style( isl_printer *p, int yaml_style); int isl_printer_get_yaml_style( isl_printer *p); isl_printer *isl_printer_set_indent_prefix( isl_printer *p, const char *prefix); isl_printer *isl_printer_set_prefix( isl_printer *p, const char *prefix); isl_printer *isl_printer_set_suffix( isl_printer *p, const char *suffix); isl_printer *isl_printer_set_isl_int_width( isl_printer *p, int width); isl_bool isl_printer_has_note( isl_printer *p, isl_id *id); isl_id *isl_printer_get_note( isl_printer *p, isl_id *id); isl_printer *isl_printer_set_note( isl_printer *p, isl_id *id, isl_id *note); isl_printer *isl_printer_start_line( isl_printer *p); isl_printer *isl_printer_end_line( isl_printer *p); isl_printer *isl_printer_print_double( isl_printer *p, double d); isl_printer *isl_printer_print_int( isl_printer *p, int i); isl_printer *isl_printer_print_str( isl_printer *p, const char *s); isl_printer *isl_printer_yaml_start_mapping( isl_printer *p); isl_printer *isl_printer_yaml_end_mapping( isl_printer *p); isl_printer *isl_printer_yaml_start_sequence( isl_printer *p); isl_printer *isl_printer_yaml_end_sequence( isl_printer *p); isl_printer *isl_printer_yaml_next( isl_printer *p); isl_printer *isl_printer_flush( isl_printer *p); } # 18 "/work/include/isl/vec.h" 2 extern "C" { struct isl_vec; typedef struct isl_vec isl_vec; isl_vec *isl_vec_alloc(isl_ctx *ctx, unsigned size); isl_vec *isl_vec_zero(isl_ctx *ctx, unsigned size); isl_vec *isl_vec_copy( isl_vec *vec); isl_vec *isl_vec_free( isl_vec *vec); isl_ctx *isl_vec_get_ctx( isl_vec *vec); isl_size isl_vec_size( isl_vec *vec); isl_val *isl_vec_get_element_val( isl_vec *vec, int pos); isl_vec *isl_vec_set_element_si( isl_vec *vec, int pos, int v); isl_vec *isl_vec_set_element_val( isl_vec *vec, int pos, isl_val *v); isl_bool isl_vec_is_equal( isl_vec *vec1, isl_vec *vec2); int isl_vec_cmp_element( isl_vec *vec1, isl_vec *vec2, int pos); void isl_vec_dump( isl_vec *vec); isl_printer *isl_printer_print_vec( isl_printer *printer, isl_vec *vec); isl_vec *isl_vec_ceil( isl_vec *vec); struct isl_vec *isl_vec_normalize(struct isl_vec *vec); isl_vec *isl_vec_set_si( isl_vec *vec, int v); isl_vec *isl_vec_set_val( isl_vec *vec, isl_val *v); isl_vec *isl_vec_clr( isl_vec *vec); isl_vec *isl_vec_neg( isl_vec *vec); isl_vec *isl_vec_add( isl_vec *vec1, isl_vec *vec2); isl_vec *isl_vec_extend( isl_vec *vec, unsigned size); isl_vec *isl_vec_zero_extend( isl_vec *vec, unsigned size); isl_vec *isl_vec_concat( isl_vec *vec1, isl_vec *vec2); isl_vec *isl_vec_sort( isl_vec *vec); isl_vec *isl_vec_read_from_file(isl_ctx *ctx, FILE *input); isl_vec *isl_vec_drop_els( isl_vec *vec, unsigned pos, unsigned n); isl_vec *isl_vec_add_els( isl_vec *vec, unsigned n); isl_vec *isl_vec_insert_els( isl_vec *vec, unsigned pos, unsigned n); isl_vec *isl_vec_insert_zero_els( isl_vec *vec, unsigned pos, unsigned n); isl_vec *isl_vec_move_els( isl_vec *vec, unsigned dst_col, unsigned src_col, unsigned n); } # 17 "/work/include/isl/mat.h" 2 extern "C" { struct isl_mat; typedef struct isl_mat isl_mat; isl_ctx *isl_mat_get_ctx( isl_mat *mat); isl_mat *isl_mat_alloc(isl_ctx *ctx, unsigned n_row, unsigned n_col); struct isl_mat *isl_mat_extend(struct isl_mat *mat, unsigned n_row, unsigned n_col); struct isl_mat *isl_mat_identity(struct isl_ctx *ctx, unsigned n_row); isl_mat *isl_mat_copy( isl_mat *mat); isl_mat *isl_mat_free( isl_mat *mat); isl_size isl_mat_rows( isl_mat *mat); isl_size isl_mat_cols( isl_mat *mat); isl_val *isl_mat_get_element_val( isl_mat *mat, int row, int col); isl_mat *isl_mat_set_element_si( isl_mat *mat, int row, int col, int v); isl_mat *isl_mat_set_element_val( isl_mat *mat, int row, int col, isl_val *v); isl_mat *isl_mat_swap_cols( isl_mat *mat, unsigned i, unsigned j); isl_mat *isl_mat_swap_rows( isl_mat *mat, unsigned i, unsigned j); isl_vec *isl_mat_vec_product( isl_mat *mat, isl_vec *vec); isl_vec *isl_vec_mat_product( isl_vec *vec, isl_mat *mat); isl_vec *isl_mat_vec_inverse_product( isl_mat *mat, isl_vec *vec); isl_mat *isl_mat_aff_direct_sum( isl_mat *left, isl_mat *right); isl_mat *isl_mat_diagonal( isl_mat *mat1, isl_mat *mat2); isl_mat *isl_mat_left_hermite( isl_mat *M, int neg, isl_mat **U, isl_mat **Q); isl_mat *isl_mat_lin_to_aff( isl_mat *mat); isl_mat *isl_mat_inverse_product( isl_mat *left, isl_mat *right); isl_mat *isl_mat_product( isl_mat *left, isl_mat *right); isl_mat *isl_mat_transpose( isl_mat *mat); isl_mat *isl_mat_right_inverse( isl_mat *mat); isl_mat *isl_mat_right_kernel( isl_mat *mat); isl_mat *isl_mat_normalize( isl_mat *mat); isl_mat *isl_mat_normalize_row( isl_mat *mat, int row); isl_mat *isl_mat_drop_cols( isl_mat *mat, unsigned col, unsigned n); isl_mat *isl_mat_drop_rows( isl_mat *mat, unsigned row, unsigned n); isl_mat *isl_mat_insert_cols( isl_mat *mat, unsigned col, unsigned n); isl_mat *isl_mat_insert_rows( isl_mat *mat, unsigned row, unsigned n); isl_mat *isl_mat_move_cols( isl_mat *mat, unsigned dst_col, unsigned src_col, unsigned n); isl_mat *isl_mat_add_rows( isl_mat *mat, unsigned n); isl_mat *isl_mat_insert_zero_cols( isl_mat *mat, unsigned first, unsigned n); isl_mat *isl_mat_add_zero_cols( isl_mat *mat, unsigned n); isl_mat *isl_mat_insert_zero_rows( isl_mat *mat, unsigned row, unsigned n); isl_mat *isl_mat_add_zero_rows( isl_mat *mat, unsigned n); void isl_mat_col_add( isl_mat *mat, int dst_col, int src_col); isl_mat *isl_mat_unimodular_complete( isl_mat *M, int row); isl_mat *isl_mat_row_basis( isl_mat *mat); isl_mat *isl_mat_row_basis_extension( isl_mat *mat1, isl_mat *mat2); isl_mat *isl_mat_from_row_vec( isl_vec *vec); isl_mat *isl_mat_concat( isl_mat *top, isl_mat *bot); isl_mat *isl_mat_vec_concat( isl_mat *top, isl_vec *bot); isl_bool isl_mat_is_equal( isl_mat *mat1, isl_mat *mat2); isl_bool isl_mat_has_linearly_independent_rows( isl_mat *mat1, isl_mat *mat2); isl_size isl_mat_rank( isl_mat *mat); int isl_mat_initial_non_zero_cols( isl_mat *mat); void isl_mat_print_internal( isl_mat *mat, FILE *out, int indent); void isl_mat_dump( isl_mat *mat); } # 18 "/work/include/isl/set.h" 2 # 1 "/work/include/isl/point.h" 1 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 5 "/work/include/isl/point.h" 2 # 1 "/work/include/isl/space_type.h" 1 extern "C" { struct isl_space; typedef struct isl_space isl_space; enum isl_dim_type { isl_dim_cst, isl_dim_param, isl_dim_in, isl_dim_out, isl_dim_set = isl_dim_out, isl_dim_div, isl_dim_all }; } # 6 "/work/include/isl/point.h" 2 extern "C" { struct isl_point; typedef struct isl_point isl_point; isl_ctx *isl_point_get_ctx( isl_point *pnt); isl_space *isl_point_get_space( isl_point *pnt); isl_point *isl_point_zero( isl_space *space); isl_point *isl_point_copy( isl_point *pnt); isl_point *isl_point_free( isl_point *pnt); isl_val *isl_point_get_coordinate_val( isl_point *pnt, enum isl_dim_type type, int pos); isl_point *isl_point_set_coordinate_val( isl_point *pnt, enum isl_dim_type type, int pos, isl_val *v); isl_point *isl_point_add_ui( isl_point *pnt, enum isl_dim_type type, int pos, unsigned val); isl_point *isl_point_sub_ui( isl_point *pnt, enum isl_dim_type type, int pos, unsigned val); isl_point *isl_point_void( isl_space *space); isl_bool isl_point_is_void( isl_point *pnt); isl_printer *isl_printer_print_point( isl_printer *printer, isl_point *pnt); char *isl_point_to_str( isl_point *pnt); void isl_point_dump( isl_point *pnt); } # 19 "/work/include/isl/set.h" 2 # 1 "/work/include/isl/local_space.h" 1 # 10 "/work/include/isl/local_space.h" extern "C" { struct isl_local_space; typedef struct isl_local_space isl_local_space; isl_ctx *isl_local_space_get_ctx( isl_local_space *ls); isl_local_space *isl_local_space_from_space( isl_space *dim); isl_local_space *isl_local_space_copy( isl_local_space *ls); isl_local_space *isl_local_space_free( isl_local_space *ls); isl_bool isl_local_space_is_params( isl_local_space *ls); isl_bool isl_local_space_is_set( isl_local_space *ls); isl_local_space *isl_local_space_set_tuple_id( isl_local_space *ls, enum isl_dim_type type, isl_id *id); isl_size isl_local_space_dim( isl_local_space *ls, enum isl_dim_type type); isl_bool isl_local_space_has_dim_name( isl_local_space *ls, enum isl_dim_type type, unsigned pos); const char *isl_local_space_get_dim_name( isl_local_space *ls, enum isl_dim_type type, unsigned pos); isl_local_space *isl_local_space_set_dim_name( isl_local_space *ls, enum isl_dim_type type, unsigned pos, const char *s); isl_bool isl_local_space_has_dim_id( isl_local_space *ls, enum isl_dim_type type, unsigned pos); isl_id *isl_local_space_get_dim_id( isl_local_space *ls, enum isl_dim_type type, unsigned pos); isl_local_space *isl_local_space_set_dim_id( isl_local_space *ls, enum isl_dim_type type, unsigned pos, isl_id *id); isl_space *isl_local_space_get_space( isl_local_space *ls); isl_aff *isl_local_space_get_div( isl_local_space *ls, int pos); int isl_local_space_find_dim_by_name( isl_local_space *ls, enum isl_dim_type type, const char *name); isl_local_space *isl_local_space_domain( isl_local_space *ls); isl_local_space *isl_local_space_range( isl_local_space *ls); isl_local_space *isl_local_space_from_domain( isl_local_space *ls); isl_local_space *isl_local_space_add_dims( isl_local_space *ls, enum isl_dim_type type, unsigned n); isl_local_space *isl_local_space_drop_dims( isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n); isl_local_space *isl_local_space_insert_dims( isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n); isl_local_space *isl_local_space_set_from_params( isl_local_space *ls); isl_local_space *isl_local_space_intersect( isl_local_space *ls1, isl_local_space *ls2); isl_local_space *isl_local_space_wrap( isl_local_space *ls); isl_bool isl_local_space_is_equal( isl_local_space *ls1, isl_local_space *ls2); isl_basic_map *isl_local_space_lifting( isl_local_space *ls); isl_local_space *isl_local_space_flatten_domain( isl_local_space *ls); isl_local_space *isl_local_space_flatten_range( isl_local_space *ls); isl_printer *isl_printer_print_local_space( isl_printer *p, isl_local_space *ls); void isl_local_space_dump( isl_local_space *ls); } # 20 "/work/include/isl/set.h" 2 # 1 "/work/build3/include/isl/stdint.h" 1 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdint.h" 1 3 # 105 "/opt/toolchain/target/bin/../include/c++/v1/stdint.h" 3 # 118 "/opt/toolchain/target/bin/../include/c++/v1/stdint.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stdint.h" 1 3 # 47 "/opt/toolchain/target/lib/clang/9.0.0/include/stdint.h" 3 # 1 "/usr/include/stdint.h" 1 3 4 # 26 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 27 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wchar.h" 1 3 4 # 29 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 30 "/usr/include/stdint.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h" 3 4 typedef __uint8_t uint8_t; typedef __uint16_t uint16_t; typedef __uint32_t uint32_t; typedef __uint64_t uint64_t; # 38 "/usr/include/stdint.h" 2 3 4 typedef __int_least8_t int_least8_t; typedef __int_least16_t int_least16_t; typedef __int_least32_t int_least32_t; typedef __int_least64_t int_least64_t; typedef __uint_least8_t uint_least8_t; typedef __uint_least16_t uint_least16_t; typedef __uint_least32_t uint_least32_t; typedef __uint_least64_t uint_least64_t; typedef signed char int_fast8_t; typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; # 71 "/usr/include/stdint.h" 3 4 typedef unsigned char uint_fast8_t; typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; # 87 "/usr/include/stdint.h" 3 4 typedef long int intptr_t; typedef unsigned long int uintptr_t; # 101 "/usr/include/stdint.h" 3 4 typedef __intmax_t intmax_t; typedef __uintmax_t uintmax_t; # 48 "/opt/toolchain/target/lib/clang/9.0.0/include/stdint.h" 2 3 # 119 "/opt/toolchain/target/bin/../include/c++/v1/stdint.h" 2 3 # 2 "/work/build3/include/isl/stdint.h" 2 # 22 "/work/include/isl/set.h" 2 # 1 "/work/include/isl/stride_info.h" 1 # 1 "/work/include/isl/val.h" 1 # 1 "/work/build3/include/isl/stdint.h" 1 # 5 "/work/include/isl/val.h" 2 # 1 "/work/include/isl/multi.h" 1 # 1 "/work/include/isl/set_type.h" 1 # 8 "/work/include/isl/multi.h" 2 extern "C" { # 153 "/work/include/isl/multi.h" } # 8 "/work/include/isl/val.h" 2 extern "C" { isl_size isl_multi_val_dim( isl_multi_val *multi, enum isl_dim_type type); isl_ctx *isl_multi_val_get_ctx( isl_multi_val *multi); isl_space *isl_multi_val_get_space( isl_multi_val *multi); isl_space *isl_multi_val_get_domain_space( isl_multi_val *multi); int isl_multi_val_find_dim_by_name( isl_multi_val *multi, enum isl_dim_type type, const char *name); isl_multi_val *isl_multi_val_from_val_list( isl_space *space, isl_val_list *list); isl_multi_val *isl_multi_val_zero( isl_space *space); isl_multi_val *isl_multi_val_copy( isl_multi_val *multi); isl_multi_val *isl_multi_val_free( isl_multi_val *multi); isl_bool isl_multi_val_plain_is_equal( isl_multi_val *multi1, isl_multi_val *multi2); isl_bool isl_multi_val_involves_nan( isl_multi_val *multi); int isl_multi_val_find_dim_by_id( isl_multi_val *multi, enum isl_dim_type type, isl_id *id); isl_id *isl_multi_val_get_dim_id( isl_multi_val *multi, enum isl_dim_type type, unsigned pos); isl_multi_val *isl_multi_val_set_dim_name( isl_multi_val *multi, enum isl_dim_type type, unsigned pos, const char *s); isl_multi_val *isl_multi_val_set_dim_id( isl_multi_val *multi, enum isl_dim_type type, unsigned pos, isl_id *id); const char *isl_multi_val_get_tuple_name( isl_multi_val *multi, enum isl_dim_type type); isl_bool isl_multi_val_has_tuple_id( isl_multi_val *multi, enum isl_dim_type type); isl_id *isl_multi_val_get_tuple_id( isl_multi_val *multi, enum isl_dim_type type); isl_multi_val *isl_multi_val_set_tuple_name( isl_multi_val *multi, enum isl_dim_type type, const char *s); isl_multi_val *isl_multi_val_set_tuple_id( isl_multi_val *multi, enum isl_dim_type type, isl_id *id); isl_multi_val *isl_multi_val_reset_tuple_id( isl_multi_val *multi, enum isl_dim_type type); isl_multi_val *isl_multi_val_reset_user( isl_multi_val *multi); isl_multi_val *isl_multi_val_drop_dims( isl_multi_val *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_val *isl_multi_val_get_val( isl_multi_val *multi, int pos); isl_multi_val *isl_multi_val_set_val( isl_multi_val *multi, int pos, isl_val *el); isl_multi_val *isl_multi_val_range_splice( isl_multi_val *multi1, unsigned pos, isl_multi_val *multi2); isl_multi_val *isl_multi_val_flatten_range( isl_multi_val *multi); isl_multi_val *isl_multi_val_flat_range_product( isl_multi_val *multi1, isl_multi_val *multi2); isl_multi_val *isl_multi_val_range_product( isl_multi_val *multi1, isl_multi_val *multi2); isl_multi_val *isl_multi_val_factor_range( isl_multi_val *multi); isl_bool isl_multi_val_range_is_wrapping( isl_multi_val *multi); isl_multi_val *isl_multi_val_range_factor_domain( isl_multi_val *multi); isl_multi_val *isl_multi_val_range_factor_range( isl_multi_val *multi); isl_multi_val *isl_multi_val_scale_val( isl_multi_val *multi, isl_val *v); isl_multi_val *isl_multi_val_scale_down_val( isl_multi_val *multi, isl_val *v); isl_multi_val *isl_multi_val_scale_multi_val( isl_multi_val *multi, isl_multi_val *mv); isl_multi_val *isl_multi_val_scale_down_multi_val( isl_multi_val *multi, isl_multi_val *mv); isl_multi_val *isl_multi_val_mod_multi_val( isl_multi_val *multi, isl_multi_val *mv); isl_multi_val *isl_multi_val_add( isl_multi_val *multi1, isl_multi_val *multi2); isl_multi_val *isl_multi_val_sub( isl_multi_val *multi1, isl_multi_val *multi2); isl_multi_val *isl_multi_val_align_params( isl_multi_val *multi, isl_space *model); isl_multi_val *isl_multi_val_from_range( isl_multi_val *multi); isl_multi_val *isl_multi_val_neg( isl_multi_val *multi); isl_bool isl_multi_val_involves_dims( isl_multi_val *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_val *isl_multi_val_insert_dims( isl_multi_val *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_val *isl_multi_val_add_dims( isl_multi_val *multi, enum isl_dim_type type, unsigned n); isl_multi_val * isl_multi_val_project_domain_on_params( isl_multi_val *multi); isl_multi_val *isl_multi_val_product( isl_multi_val *multi1, isl_multi_val *multi2); isl_multi_val *isl_multi_val_splice( isl_multi_val *multi1, unsigned in_pos, unsigned out_pos, isl_multi_val *multi2); isl_val *isl_val_zero(isl_ctx *ctx); isl_val *isl_val_one(isl_ctx *ctx); isl_val *isl_val_negone(isl_ctx *ctx); isl_val *isl_val_nan(isl_ctx *ctx); isl_val *isl_val_infty(isl_ctx *ctx); isl_val *isl_val_neginfty(isl_ctx *ctx); isl_val *isl_val_int_from_si(isl_ctx *ctx, long i); isl_val *isl_val_int_from_ui(isl_ctx *ctx, unsigned long u); isl_val *isl_val_int_from_chunks(isl_ctx *ctx, size_t n, size_t size, const void *chunks); isl_val *isl_val_copy( isl_val *v); isl_val *isl_val_free( isl_val *v); isl_ctx *isl_val_get_ctx( isl_val *val); uint32_t isl_val_get_hash( isl_val *val); long isl_val_get_num_si( isl_val *v); long isl_val_get_den_si( isl_val *v); isl_val *isl_val_get_den_val( isl_val *v); double isl_val_get_d( isl_val *v); isl_size isl_val_n_abs_num_chunks( isl_val *v, size_t size); isl_stat isl_val_get_abs_num_chunks( isl_val *v, size_t size, void *chunks); isl_val *isl_val_set_si( isl_val *v, long i); isl_val *isl_val_abs( isl_val *v); isl_val *isl_val_neg( isl_val *v); isl_val *isl_val_inv( isl_val *v); isl_val *isl_val_floor( isl_val *v); isl_val *isl_val_ceil( isl_val *v); isl_val *isl_val_trunc( isl_val *v); isl_val *isl_val_2exp( isl_val *v); isl_val *isl_val_pow2( isl_val *v); isl_val *isl_val_min( isl_val *v1, isl_val *v2); isl_val *isl_val_max( isl_val *v1, isl_val *v2); isl_val *isl_val_add( isl_val *v1, isl_val *v2); isl_val *isl_val_add_ui( isl_val *v1, unsigned long v2); isl_val *isl_val_sub( isl_val *v1, isl_val *v2); isl_val *isl_val_sub_ui( isl_val *v1, unsigned long v2); isl_val *isl_val_mul( isl_val *v1, isl_val *v2); isl_val *isl_val_mul_ui( isl_val *v1, unsigned long v2); isl_val *isl_val_div( isl_val *v1, isl_val *v2); isl_val *isl_val_div_ui( isl_val *v1, unsigned long v2); isl_val *isl_val_mod( isl_val *v1, isl_val *v2); isl_val *isl_val_gcd( isl_val *v1, isl_val *v2); isl_val *isl_val_gcdext( isl_val *v1, isl_val *v2, isl_val **x, isl_val **y); int isl_val_sgn( isl_val *v); isl_bool isl_val_is_zero( isl_val *v); isl_bool isl_val_is_one( isl_val *v); isl_bool isl_val_is_negone( isl_val *v); isl_bool isl_val_is_nonneg( isl_val *v); isl_bool isl_val_is_nonpos( isl_val *v); isl_bool isl_val_is_pos( isl_val *v); isl_bool isl_val_is_neg( isl_val *v); isl_bool isl_val_is_int( isl_val *v); isl_bool isl_val_is_rat( isl_val *v); isl_bool isl_val_is_nan( isl_val *v); isl_bool isl_val_is_infty( isl_val *v); isl_bool isl_val_is_neginfty( isl_val *v); int isl_val_cmp_si( isl_val *v, long i); isl_bool isl_val_lt( isl_val *v1, isl_val *v2); isl_bool isl_val_le( isl_val *v1, isl_val *v2); isl_bool isl_val_gt( isl_val *v1, isl_val *v2); isl_bool isl_val_gt_si( isl_val *v, long i); isl_bool isl_val_ge( isl_val *v1, isl_val *v2); isl_bool isl_val_eq( isl_val *v1, isl_val *v2); isl_bool isl_val_ne( isl_val *v1, isl_val *v2); isl_bool isl_val_abs_eq( isl_val *v1, isl_val *v2); isl_bool isl_val_is_divisible_by( isl_val *v1, isl_val *v2); isl_val *isl_val_read_from_str(isl_ctx *ctx, const char *str); isl_printer *isl_printer_print_val( isl_printer *p, isl_val *v); void isl_val_dump( isl_val *v); char *isl_val_to_str( isl_val *v); isl_multi_val *isl_multi_val_add_val( isl_multi_val *mv, isl_val *v); isl_multi_val *isl_multi_val_mod_val( isl_multi_val *mv, isl_val *v); isl_multi_val *isl_multi_val_read_from_str(isl_ctx *ctx, const char *str); isl_printer *isl_printer_print_multi_val( isl_printer *p, isl_multi_val *mv); void isl_multi_val_dump( isl_multi_val *mv); char *isl_multi_val_to_str( isl_multi_val *mv); isl_ctx *isl_val_list_get_ctx( isl_val_list *list); isl_val_list *isl_val_list_from_val( isl_val *el); isl_val_list *isl_val_list_alloc(isl_ctx *ctx, int n); isl_val_list *isl_val_list_copy( isl_val_list *list); isl_val_list *isl_val_list_free( isl_val_list *list); isl_val_list *isl_val_list_add( isl_val_list *list, isl_val *el); isl_val_list *isl_val_list_insert( isl_val_list *list, unsigned pos, struct isl_val *el); isl_val_list *isl_val_list_drop( isl_val_list *list, unsigned first, unsigned n); isl_val_list *isl_val_list_swap( isl_val_list *list, unsigned pos1, unsigned pos2); isl_val_list *isl_val_list_reverse( isl_val_list *list); isl_val_list *isl_val_list_concat( isl_val_list *list1, isl_val_list *list2); isl_size isl_val_list_size( isl_val_list *list); isl_size isl_val_list_n_val( isl_val_list *list); isl_val *isl_val_list_get_at( isl_val_list *list, int index); struct isl_val *isl_val_list_get_val( isl_val_list *list, int index); struct isl_val_list *isl_val_list_set_val( struct isl_val_list *list, int index, struct isl_val *el); isl_stat isl_val_list_foreach( isl_val_list *list, isl_stat (*fn)( isl_val *el, void *user), void *user); isl_val_list *isl_val_list_map( isl_val_list *list, isl_val * (*fn)( isl_val *el, void *user), void *user); isl_val_list *isl_val_list_sort( isl_val_list *list, int (*cmp)( struct isl_val *a, struct isl_val *b, void *user), void *user); isl_stat isl_val_list_foreach_scc( isl_val_list *list, isl_bool (*follows)( struct isl_val *a, struct isl_val *b, void *user), void *follows_user, isl_stat (*fn)( isl_val_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_val_list( isl_printer *p, isl_val_list *list); void isl_val_list_dump( isl_val_list *list); } # 9 "/work/include/isl/stride_info.h" 2 extern "C" { struct isl_stride_info; typedef struct isl_stride_info isl_stride_info; isl_ctx *isl_stride_info_get_ctx( isl_stride_info *si); isl_val *isl_stride_info_get_stride( isl_stride_info *si); isl_aff *isl_stride_info_get_offset( isl_stride_info *si); isl_stride_info *isl_stride_info_free( isl_stride_info *si); isl_stride_info *isl_stride_info_copy( isl_stride_info *si); } # 23 "/work/include/isl/set.h" 2 extern "C" { isl_size isl_basic_set_n_dim( isl_basic_map *bset); isl_size isl_basic_set_n_param( isl_basic_map *bset); isl_size isl_basic_set_total_dim( const isl_basic_map *bset); isl_size isl_basic_set_dim( isl_basic_map *bset, enum isl_dim_type type); isl_size isl_set_n_dim( isl_map *set); isl_size isl_set_n_param( isl_map *set); isl_size isl_set_dim( isl_map *set, enum isl_dim_type type); isl_ctx *isl_basic_set_get_ctx( isl_basic_map *bset); isl_ctx *isl_set_get_ctx( isl_map *set); isl_space *isl_basic_set_get_space( isl_basic_map *bset); isl_space *isl_set_get_space( isl_map *set); isl_map *isl_set_reset_space( isl_map *set, isl_space *dim); isl_aff *isl_basic_set_get_div( isl_basic_map *bset, int pos); isl_local_space *isl_basic_set_get_local_space( isl_basic_map *bset); const char *isl_basic_set_get_tuple_name( isl_basic_map *bset); isl_bool isl_set_has_tuple_name( isl_map *set); const char *isl_set_get_tuple_name( isl_map *set); isl_basic_map *isl_basic_set_set_tuple_name( isl_basic_map *set, const char *s); isl_map *isl_set_set_tuple_name( isl_map *set, const char *s); const char *isl_basic_set_get_dim_name( isl_basic_map *bset, enum isl_dim_type type, unsigned pos); isl_basic_map *isl_basic_set_set_dim_name( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, const char *s); isl_bool isl_set_has_dim_name( isl_map *set, enum isl_dim_type type, unsigned pos); const char *isl_set_get_dim_name( isl_map *set, enum isl_dim_type type, unsigned pos); isl_map *isl_set_set_dim_name( isl_map *set, enum isl_dim_type type, unsigned pos, const char *s); isl_id *isl_basic_set_get_dim_id( isl_basic_map *bset, enum isl_dim_type type, unsigned pos); isl_basic_map *isl_basic_set_set_tuple_id( isl_basic_map *bset, isl_id *id); isl_map *isl_set_set_dim_id( isl_map *set, enum isl_dim_type type, unsigned pos, isl_id *id); isl_bool isl_set_has_dim_id( isl_map *set, enum isl_dim_type type, unsigned pos); isl_id *isl_set_get_dim_id( isl_map *set, enum isl_dim_type type, unsigned pos); isl_map *isl_set_set_tuple_id( isl_map *set, isl_id *id); isl_map *isl_set_reset_tuple_id( isl_map *set); isl_bool isl_set_has_tuple_id( isl_map *set); isl_id *isl_set_get_tuple_id( isl_map *set); isl_map *isl_set_reset_user( isl_map *set); int isl_set_find_dim_by_id( isl_map *set, enum isl_dim_type type, isl_id *id); int isl_set_find_dim_by_name( isl_map *set, enum isl_dim_type type, const char *name); int isl_basic_set_is_rational( isl_basic_map *bset); isl_basic_map *isl_basic_set_free( isl_basic_map *bset); isl_basic_map *isl_basic_set_copy( isl_basic_map *bset); isl_basic_map *isl_basic_set_empty( isl_space *space); isl_basic_map *isl_basic_set_universe( isl_space *space); isl_basic_map *isl_basic_set_nat_universe( isl_space *space); isl_basic_map *isl_basic_set_positive_orthant( isl_space *space); void isl_basic_set_print_internal( isl_basic_map *bset, FILE *out, int indent); isl_basic_map *isl_basic_set_intersect( isl_basic_map *bset1, isl_basic_map *bset2); isl_basic_map *isl_basic_set_intersect_params( isl_basic_map *bset1, isl_basic_map *bset2); isl_basic_map *isl_basic_set_apply( isl_basic_map *bset, isl_basic_map *bmap); isl_basic_map *isl_basic_set_preimage_multi_aff( isl_basic_map *bset, isl_multi_aff *ma); isl_basic_map *isl_basic_set_affine_hull( isl_basic_map *bset); isl_basic_map *isl_basic_set_remove_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_sample( isl_basic_map *bset); isl_basic_map *isl_basic_set_detect_equalities( isl_basic_map *bset); isl_basic_map *isl_basic_set_remove_redundancies( isl_basic_map *bset); isl_map *isl_set_remove_redundancies( isl_map *set); isl_basic_map *isl_basic_set_list_intersect( struct isl_basic_map_list *list); isl_map *isl_set_list_union( isl_map_list *list); isl_basic_map *isl_basic_set_read_from_file(isl_ctx *ctx, FILE *input); isl_basic_map *isl_basic_set_read_from_str(isl_ctx *ctx, const char *str); isl_map *isl_set_read_from_file(isl_ctx *ctx, FILE *input); isl_map *isl_set_read_from_str(isl_ctx *ctx, const char *str); void isl_basic_set_dump( isl_basic_map *bset); void isl_set_dump( isl_map *set); isl_printer *isl_printer_print_basic_set( isl_printer *printer, isl_basic_map *bset); isl_printer *isl_printer_print_set( isl_printer *printer, isl_map *map); isl_basic_map *isl_basic_set_fix_si( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_set_fix_val( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, isl_val *v); isl_map *isl_set_fix_si( isl_map *set, enum isl_dim_type type, unsigned pos, int value); isl_map *isl_set_lower_bound_si( isl_map *set, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_set_lower_bound_val( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, isl_val *value); isl_map *isl_set_lower_bound_val( isl_map *set, enum isl_dim_type type, unsigned pos, isl_val *value); isl_map *isl_set_upper_bound_si( isl_map *set, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_set_upper_bound_val( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, isl_val *value); isl_map *isl_set_upper_bound_val( isl_map *set, enum isl_dim_type type, unsigned pos, isl_val *value); isl_map *isl_set_equate( isl_map *set, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_bool isl_basic_set_is_equal( isl_basic_map *bset1, isl_basic_map *bset2); isl_bool isl_basic_set_is_disjoint( isl_basic_map *bset1, isl_basic_map *bset2); isl_map *isl_basic_set_partial_lexmin( isl_basic_map *bset, isl_basic_map *dom, isl_map **empty); isl_map *isl_basic_set_partial_lexmax( isl_basic_map *bset, isl_basic_map *dom, isl_map **empty); isl_map *isl_set_partial_lexmin( isl_map *set, isl_map *dom, isl_map **empty); isl_map *isl_set_partial_lexmax( isl_map *set, isl_map *dom, isl_map **empty); isl_map *isl_basic_set_lexmin( isl_basic_map *bset); isl_map *isl_basic_set_lexmax( isl_basic_map *bset); isl_map *isl_set_lexmin( isl_map *set); isl_map *isl_set_lexmax( isl_map *set); isl_pw_multi_aff *isl_basic_set_partial_lexmin_pw_multi_aff( isl_basic_map *bset, isl_basic_map *dom, isl_map **empty); isl_pw_multi_aff *isl_basic_set_partial_lexmax_pw_multi_aff( isl_basic_map *bset, isl_basic_map *dom, isl_map **empty); isl_pw_multi_aff *isl_set_lexmin_pw_multi_aff( isl_map *set); isl_pw_multi_aff *isl_set_lexmax_pw_multi_aff( isl_map *set); isl_map *isl_basic_set_union( isl_basic_map *bset1, isl_basic_map *bset2); int isl_basic_set_compare_at( isl_basic_map *bset1, isl_basic_map *bset2, int pos); int isl_set_follows_at( isl_map *set1, isl_map *set2, int pos); isl_basic_map *isl_basic_set_params( isl_basic_map *bset); isl_basic_map *isl_basic_set_from_params( isl_basic_map *bset); isl_map *isl_set_params( isl_map *set); isl_map *isl_set_from_params( isl_map *set); isl_stat isl_basic_set_dims_get_sign( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, unsigned n, int *signs); isl_bool isl_basic_set_plain_is_universe( isl_basic_map *bset); isl_bool isl_basic_set_is_universe( isl_basic_map *bset); isl_bool isl_basic_set_plain_is_empty( isl_basic_map *bset); isl_bool isl_basic_set_is_empty( isl_basic_map *bset); isl_bool isl_basic_set_is_bounded( isl_basic_map *bset); isl_bool isl_basic_set_is_subset( isl_basic_map *bset1, isl_basic_map *bset2); isl_bool isl_basic_set_plain_is_equal( isl_basic_map *bset1, isl_basic_map *bset2); isl_map *isl_set_empty( isl_space *space); isl_map *isl_set_universe( isl_space *space); isl_map *isl_set_nat_universe( isl_space *dim); isl_map *isl_set_copy( isl_map *set); isl_map *isl_set_free( isl_map *set); isl_map *isl_set_from_basic_set( isl_basic_map *bset); isl_basic_map *isl_set_sample( isl_map *set); isl_point *isl_basic_set_sample_point( isl_basic_map *bset); isl_point *isl_set_sample_point( isl_map *set); isl_map *isl_set_detect_equalities( isl_map *set); isl_basic_map *isl_set_affine_hull( isl_map *set); isl_basic_map *isl_set_convex_hull( isl_map *set); isl_basic_map *isl_set_polyhedral_hull( isl_map *set); isl_basic_map *isl_set_simple_hull( isl_map *set); isl_basic_map *isl_set_unshifted_simple_hull( isl_map *set); isl_basic_map *isl_set_plain_unshifted_simple_hull( isl_map *set); isl_basic_map *isl_set_unshifted_simple_hull_from_set_list( isl_map *set, isl_map_list *list); isl_basic_map *isl_set_bounded_simple_hull( isl_map *set); isl_map *isl_set_union_disjoint( isl_map *set1, isl_map *set2); isl_map *isl_set_union( isl_map *set1, isl_map *set2); isl_map *isl_set_product( isl_map *set1, isl_map *set2); isl_basic_map *isl_basic_set_flat_product( isl_basic_map *bset1, isl_basic_map *bset2); isl_map *isl_set_flat_product( isl_map *set1, isl_map *set2); isl_map *isl_set_intersect( isl_map *set1, isl_map *set2); isl_map *isl_set_intersect_params( isl_map *set, isl_map *params); isl_map *isl_set_subtract( isl_map *set1, isl_map *set2); isl_map *isl_set_complement( isl_map *set); isl_map *isl_set_apply( isl_map *set, isl_map *map); isl_map *isl_set_preimage_multi_aff( isl_map *set, isl_multi_aff *ma); isl_map *isl_set_preimage_pw_multi_aff( isl_map *set, isl_pw_multi_aff *pma); isl_map *isl_set_preimage_multi_pw_aff( isl_map *set, isl_multi_pw_aff *mpa); isl_map *isl_set_fix_val( isl_map *set, enum isl_dim_type type, unsigned pos, isl_val *v); struct isl_map *isl_set_fix_dim_si(struct isl_map *set, unsigned dim, int value); isl_basic_map *isl_basic_set_insert_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, unsigned n); isl_map *isl_set_insert_dims( isl_map *set, enum isl_dim_type type, unsigned pos, unsigned n); isl_basic_map *isl_basic_set_add_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned n); isl_map *isl_set_add_dims( isl_map *set, enum isl_dim_type type, unsigned n); isl_basic_map *isl_basic_set_move_dims( isl_basic_map *bset, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_map *isl_set_move_dims( isl_map *set, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_basic_map *isl_basic_set_project_out( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_project_out( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_project_onto_map( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_remove_divs( isl_basic_map *bset); isl_basic_map *isl_basic_set_eliminate( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_eliminate( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_eliminate_dims( isl_map *set, unsigned first, unsigned n); isl_map *isl_set_remove_dims( isl_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_remove_divs_involving_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_remove_divs_involving_dims( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_remove_unknown_divs( isl_basic_map *bset); isl_map *isl_set_remove_unknown_divs( isl_map *set); isl_map *isl_set_remove_divs( isl_map *set); isl_map *isl_set_split_dims( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_drop_constraints_involving_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_drop_constraints_not_involving_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_drop_constraints_involving_dims( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_drop_constraints_not_involving_dims( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_bool isl_basic_set_involves_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_bool isl_set_involves_dims( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); void isl_set_print_internal( isl_map *set, FILE *out, int indent); isl_bool isl_set_plain_is_empty( isl_map *set); isl_bool isl_set_plain_is_universe( isl_map *set); isl_bool isl_set_is_params( isl_map *set); isl_bool isl_set_is_empty( isl_map *set); isl_bool isl_set_is_bounded( isl_map *set); isl_bool isl_set_is_subset( isl_map *set1, isl_map *set2); isl_bool isl_set_is_strict_subset( isl_map *set1, isl_map *set2); isl_bool isl_set_is_equal( isl_map *set1, isl_map *set2); isl_bool isl_set_is_disjoint( isl_map *set1, isl_map *set2); isl_bool isl_set_is_singleton( isl_map *set); isl_bool isl_set_is_box( isl_map *set); isl_bool isl_set_has_equal_space( isl_map *set1, isl_map *set2); isl_map *isl_set_sum( isl_map *set1, isl_map *set2); isl_basic_map *isl_basic_set_neg( isl_basic_map *bset); isl_map *isl_set_neg( isl_map *set); isl_map *isl_set_make_disjoint( isl_map *set); isl_map *isl_basic_set_compute_divs( isl_basic_map *bset); isl_map *isl_set_compute_divs( isl_map *set); __attribute__((__deprecated__)) isl_map *isl_set_align_divs( isl_map *set); isl_val *isl_set_plain_get_val_if_fixed( isl_map *set, enum isl_dim_type type, unsigned pos); isl_bool isl_set_dim_is_bounded( isl_map *set, enum isl_dim_type type, unsigned pos); isl_bool isl_set_dim_has_lower_bound( isl_map *set, enum isl_dim_type type, unsigned pos); isl_bool isl_set_dim_has_upper_bound( isl_map *set, enum isl_dim_type type, unsigned pos); isl_bool isl_set_dim_has_any_lower_bound( isl_map *set, enum isl_dim_type type, unsigned pos); isl_bool isl_set_dim_has_any_upper_bound( isl_map *set, enum isl_dim_type type, unsigned pos); isl_basic_map *isl_basic_set_gist( isl_basic_map *bset, isl_basic_map *context); isl_map *isl_set_gist_basic_set( isl_map *set, isl_basic_map *context); isl_map *isl_set_gist( isl_map *set, isl_map *context); isl_map *isl_set_gist_params( isl_map *set, isl_map *context); isl_stat isl_set_dim_residue_class_val( isl_map *set, int pos, isl_val **modulo, isl_val **residue); isl_stride_info *isl_set_get_stride_info( isl_map *set, int pos); isl_val *isl_set_get_stride( isl_map *set, int pos); isl_map *isl_set_coalesce( isl_map *set); isl_map *isl_set_coalesce_libint( isl_map *set); int isl_set_plain_cmp( isl_map *set1, isl_map *set2); isl_bool isl_set_plain_is_equal( isl_map *set1, isl_map *set2); isl_bool isl_set_plain_is_disjoint( isl_map *set1, isl_map *set2); uint32_t isl_set_get_hash(struct isl_map *set); isl_size isl_set_n_basic_set( isl_map *set); isl_stat isl_set_foreach_basic_set( isl_map *set, isl_stat (*fn)( isl_basic_map *bset, void *user), void *user); isl_basic_map_list *isl_set_get_basic_set_list( isl_map *set); isl_stat isl_set_foreach_point( isl_map *set, isl_stat (*fn)( isl_point *pnt, void *user), void *user); isl_val *isl_set_count_val( isl_map *set); isl_basic_map *isl_basic_set_from_point( isl_point *pnt); isl_map *isl_set_from_point( isl_point *pnt); isl_basic_map *isl_basic_set_box_from_points( isl_point *pnt1, isl_point *pnt2); isl_map *isl_set_box_from_points( isl_point *pnt1, isl_point *pnt2); isl_basic_map *isl_basic_set_lift( isl_basic_map *bset); isl_map *isl_set_lift( isl_map *set); isl_map *isl_set_lex_le_set( isl_map *set1, isl_map *set2); isl_map *isl_set_lex_lt_set( isl_map *set1, isl_map *set2); isl_map *isl_set_lex_ge_set( isl_map *set1, isl_map *set2); isl_map *isl_set_lex_gt_set( isl_map *set1, isl_map *set2); int isl_set_size( isl_map *set); isl_basic_map *isl_basic_set_align_params( isl_basic_map *bset, isl_space *model); isl_map *isl_set_align_params( isl_map *set, isl_space *model); isl_basic_map *isl_basic_set_drop_unused_params( isl_basic_map *bset); isl_map *isl_set_drop_unused_params( isl_map *set); isl_mat *isl_basic_set_equalities_matrix( isl_basic_map *bset, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4); isl_mat *isl_basic_set_inequalities_matrix( isl_basic_map *bset, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4); isl_basic_map *isl_basic_set_from_constraint_matrices( isl_space *dim, isl_mat *eq, isl_mat *ineq, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4); isl_basic_map *isl_basic_set_from_multi_aff( isl_multi_aff *ma); isl_map *isl_set_from_multi_aff( isl_multi_aff *ma); isl_mat *isl_basic_set_reduced_basis( isl_basic_map *bset); isl_basic_map *isl_basic_set_coefficients( isl_basic_map *bset); isl_basic_map_list *isl_basic_set_list_coefficients( isl_basic_map_list *list); isl_basic_map *isl_set_coefficients( isl_map *set); isl_basic_map *isl_basic_set_solutions( isl_basic_map *bset); isl_basic_map *isl_set_solutions( isl_map *set); isl_pw_aff *isl_set_dim_max( isl_map *set, int pos); isl_pw_aff *isl_set_dim_min( isl_map *set, int pos); char *isl_basic_set_to_str( isl_basic_map *bset); char *isl_set_to_str( isl_map *set); } # 20 "/work/isl_map_private.h" 2 # 1 "/work/include/isl/map.h" 1 # 13 "/work/include/isl/map.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 14 "/work/include/isl/map.h" 2 # 25 "/work/include/isl/map.h" # 1 "/work/build3/include/isl/stdint.h" 1 # 26 "/work/include/isl/map.h" 2 # 1 "/work/include/isl/fixed_box.h" 1 # 14 "/work/include/isl/fixed_box.h" extern "C" { struct isl_fixed_box; typedef struct isl_fixed_box isl_fixed_box; isl_ctx *isl_fixed_box_get_ctx( isl_fixed_box *box); isl_space *isl_fixed_box_get_space( isl_fixed_box *box); isl_bool isl_fixed_box_is_valid( isl_fixed_box *box); isl_multi_aff *isl_fixed_box_get_offset( isl_fixed_box *box); isl_multi_val *isl_fixed_box_get_size( isl_fixed_box *box); isl_fixed_box *isl_fixed_box_copy( isl_fixed_box *box); isl_fixed_box *isl_fixed_box_free( isl_fixed_box *box); } # 28 "/work/include/isl/map.h" 2 extern "C" { isl_size isl_basic_map_total_dim( const isl_basic_map *bmap); isl_size isl_basic_map_dim( isl_basic_map *bmap, enum isl_dim_type type); isl_size isl_map_dim( isl_map *map, enum isl_dim_type type); isl_ctx *isl_basic_map_get_ctx( isl_basic_map *bmap); isl_ctx *isl_map_get_ctx( isl_map *map); isl_space *isl_basic_map_get_space( isl_basic_map *bmap); isl_space *isl_map_get_space( isl_map *map); isl_aff *isl_basic_map_get_div( isl_basic_map *bmap, int pos); isl_local_space *isl_basic_map_get_local_space( isl_basic_map *bmap); isl_basic_map *isl_basic_map_set_tuple_name( isl_basic_map *bmap, enum isl_dim_type type, const char *s); const char *isl_basic_map_get_tuple_name( isl_basic_map *bmap, enum isl_dim_type type); isl_bool isl_map_has_tuple_name( isl_map *map, enum isl_dim_type type); const char *isl_map_get_tuple_name( isl_map *map, enum isl_dim_type type); isl_map *isl_map_set_tuple_name( isl_map *map, enum isl_dim_type type, const char *s); const char *isl_basic_map_get_dim_name( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos); isl_bool isl_map_has_dim_name( isl_map *map, enum isl_dim_type type, unsigned pos); const char *isl_map_get_dim_name( isl_map *map, enum isl_dim_type type, unsigned pos); isl_basic_map *isl_basic_map_set_dim_name( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, const char *s); isl_map *isl_map_set_dim_name( isl_map *map, enum isl_dim_type type, unsigned pos, const char *s); isl_basic_map *isl_basic_map_set_tuple_id( isl_basic_map *bmap, enum isl_dim_type type, isl_id *id); isl_map *isl_map_set_dim_id( isl_map *map, enum isl_dim_type type, unsigned pos, isl_id *id); isl_bool isl_basic_map_has_dim_id( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos); isl_bool isl_map_has_dim_id( isl_map *map, enum isl_dim_type type, unsigned pos); isl_id *isl_map_get_dim_id( isl_map *map, enum isl_dim_type type, unsigned pos); isl_map *isl_map_set_tuple_id( isl_map *map, enum isl_dim_type type, isl_id *id); isl_map *isl_map_reset_tuple_id( isl_map *map, enum isl_dim_type type); isl_bool isl_map_has_tuple_id( isl_map *map, enum isl_dim_type type); isl_id *isl_map_get_tuple_id( isl_map *map, enum isl_dim_type type); isl_map *isl_map_reset_user( isl_map *map); int isl_basic_map_find_dim_by_name( isl_basic_map *bmap, enum isl_dim_type type, const char *name); int isl_map_find_dim_by_id( isl_map *map, enum isl_dim_type type, isl_id *id); int isl_map_find_dim_by_name( isl_map *map, enum isl_dim_type type, const char *name); isl_bool isl_basic_map_is_rational( isl_basic_map *bmap); isl_basic_map *isl_basic_map_identity( isl_space *space); isl_basic_map *isl_basic_map_free( isl_basic_map *bmap); isl_basic_map *isl_basic_map_copy( isl_basic_map *bmap); isl_basic_map *isl_basic_map_equal( isl_space *space, unsigned n_equal); isl_basic_map *isl_basic_map_less_at( isl_space *space, unsigned pos); isl_basic_map *isl_basic_map_more_at( isl_space *space, unsigned pos); isl_basic_map *isl_basic_map_empty( isl_space *space); isl_basic_map *isl_basic_map_universe( isl_space *space); isl_basic_map *isl_basic_map_nat_universe( isl_space *space); isl_basic_map *isl_basic_map_remove_redundancies( isl_basic_map *bmap); isl_map *isl_map_remove_redundancies( isl_map *map); isl_basic_map *isl_map_simple_hull( isl_map *map); isl_basic_map *isl_map_unshifted_simple_hull( isl_map *map); isl_basic_map *isl_map_plain_unshifted_simple_hull( isl_map *map); isl_basic_map *isl_map_unshifted_simple_hull_from_map_list( isl_map *map, isl_map_list *list); isl_basic_map *isl_basic_map_intersect_domain( isl_basic_map *bmap, isl_basic_map *bset); isl_basic_map *isl_basic_map_intersect_range( isl_basic_map *bmap, isl_basic_map *bset); isl_basic_map *isl_basic_map_intersect( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_list_intersect( isl_basic_map_list *list); isl_map *isl_basic_map_union( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_apply_domain( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_apply_range( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_affine_hull( isl_basic_map *bmap); isl_basic_map *isl_basic_map_preimage_domain_multi_aff( isl_basic_map *bmap, isl_multi_aff *ma); isl_basic_map *isl_basic_map_preimage_range_multi_aff( isl_basic_map *bmap, isl_multi_aff *ma); isl_basic_map *isl_basic_map_reverse( isl_basic_map *bmap); isl_basic_map *isl_basic_map_domain( isl_basic_map *bmap); isl_basic_map *isl_basic_map_range( isl_basic_map *bmap); isl_basic_map *isl_basic_map_domain_map( isl_basic_map *bmap); isl_basic_map *isl_basic_map_range_map( isl_basic_map *bmap); isl_basic_map *isl_basic_map_remove_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_eliminate( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_sample( isl_basic_map *bmap); isl_basic_map *isl_basic_map_detect_equalities( isl_basic_map *bmap); isl_basic_map *isl_basic_map_read_from_file(isl_ctx *ctx, FILE *input); isl_basic_map *isl_basic_map_read_from_str(isl_ctx *ctx, const char *str); isl_map *isl_map_read_from_file(isl_ctx *ctx, FILE *input); isl_map *isl_map_read_from_str(isl_ctx *ctx, const char *str); void isl_basic_map_dump( isl_basic_map *bmap); void isl_map_dump( isl_map *map); char *isl_basic_map_to_str( isl_basic_map *bmap); isl_printer *isl_printer_print_basic_map( isl_printer *printer, isl_basic_map *bmap); char *isl_map_to_str( isl_map *map); isl_printer *isl_printer_print_map( isl_printer *printer, isl_map *map); isl_basic_map *isl_basic_map_fix_si( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_map_fix_val( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_val *v); isl_basic_map *isl_basic_map_lower_bound_si( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_map_upper_bound_si( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_map_sum( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_neg( isl_basic_map *bmap); isl_map *isl_map_sum( isl_map *map1, isl_map *map2); isl_map *isl_map_neg( isl_map *map); isl_map *isl_map_floordiv_val( isl_map *map, isl_val *d); isl_bool isl_basic_map_is_equal( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_bool isl_basic_map_is_disjoint( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_map *isl_basic_map_partial_lexmax( isl_basic_map *bmap, isl_basic_map *dom, isl_map **empty); isl_map *isl_basic_map_partial_lexmin( isl_basic_map *bmap, isl_basic_map *dom, isl_map **empty); isl_map *isl_map_partial_lexmax( isl_map *map, isl_map *dom, isl_map **empty); isl_map *isl_map_partial_lexmin( isl_map *map, isl_map *dom, isl_map **empty); isl_map *isl_basic_map_lexmin( isl_basic_map *bmap); isl_map *isl_basic_map_lexmax( isl_basic_map *bmap); isl_map *isl_map_lexmin( isl_map *map); isl_map *isl_map_lexmax( isl_map *map); isl_pw_multi_aff *isl_basic_map_partial_lexmin_pw_multi_aff( isl_basic_map *bmap, isl_basic_map *dom, isl_map **empty); isl_pw_multi_aff *isl_basic_map_partial_lexmax_pw_multi_aff( isl_basic_map *bmap, isl_basic_map *dom, isl_map **empty); isl_pw_multi_aff *isl_basic_map_lexmin_pw_multi_aff( isl_basic_map *bmap); isl_pw_multi_aff *isl_map_lexmin_pw_multi_aff( isl_map *map); isl_pw_multi_aff *isl_map_lexmax_pw_multi_aff( isl_map *map); void isl_basic_map_print_internal( isl_basic_map *bmap, FILE *out, int indent); isl_val *isl_basic_map_plain_get_val_if_fixed( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos); isl_bool isl_basic_map_image_is_bounded( isl_basic_map *bmap); isl_bool isl_basic_map_plain_is_universe( isl_basic_map *bmap); isl_bool isl_basic_map_is_universe( isl_basic_map *bmap); isl_bool isl_basic_map_plain_is_empty( isl_basic_map *bmap); isl_bool isl_basic_map_is_empty( isl_basic_map *bmap); isl_bool isl_basic_map_is_subset( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_bool isl_basic_map_is_strict_subset( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_map *isl_map_universe( isl_space *space); isl_map *isl_map_nat_universe( isl_space *dim); isl_map *isl_map_empty( isl_space *space); isl_map *isl_map_identity( isl_space *dim); isl_map *isl_map_lex_lt_first( isl_space *dim, unsigned n); isl_map *isl_map_lex_le_first( isl_space *dim, unsigned n); isl_map *isl_map_lex_lt( isl_space *set_dim); isl_map *isl_map_lex_le( isl_space *set_dim); isl_map *isl_map_lex_gt_first( isl_space *dim, unsigned n); isl_map *isl_map_lex_ge_first( isl_space *dim, unsigned n); isl_map *isl_map_lex_gt( isl_space *set_dim); isl_map *isl_map_lex_ge( isl_space *set_dim); isl_map *isl_map_free( isl_map *map); isl_map *isl_map_copy( isl_map *map); isl_map *isl_map_reverse( isl_map *map); isl_map *isl_map_union( isl_map *map1, isl_map *map2); isl_map *isl_map_union_disjoint( isl_map *map1, isl_map *map2); isl_map *isl_map_intersect_domain( isl_map *map, isl_map *set); isl_map *isl_map_intersect_range( isl_map *map, isl_map *set); isl_map *isl_map_intersect_domain_factor_range( isl_map *map, isl_map *factor); isl_map *isl_map_intersect_range_factor_range( isl_map *map, isl_map *factor); isl_map *isl_map_apply_domain( isl_map *map1, isl_map *map2); isl_map *isl_map_apply_range( isl_map *map1, isl_map *map2); isl_map *isl_map_preimage_domain_multi_aff( isl_map *map, isl_multi_aff *ma); isl_map *isl_map_preimage_range_multi_aff( isl_map *map, isl_multi_aff *ma); isl_map *isl_map_preimage_domain_pw_multi_aff( isl_map *map, isl_pw_multi_aff *pma); isl_map *isl_map_preimage_range_pw_multi_aff( isl_map *map, isl_pw_multi_aff *pma); isl_map *isl_map_preimage_domain_multi_pw_aff( isl_map *map, isl_multi_pw_aff *mpa); isl_basic_map *isl_basic_map_product( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_map *isl_map_product( isl_map *map1, isl_map *map2); isl_basic_map *isl_basic_map_domain_product( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_range_product( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_map *isl_map_domain_product( isl_map *map1, isl_map *map2); isl_map *isl_map_range_product( isl_map *map1, isl_map *map2); isl_basic_map *isl_basic_map_flat_product( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_map *isl_map_flat_product( isl_map *map1, isl_map *map2); isl_basic_map *isl_basic_map_flat_range_product( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_map *isl_map_flat_domain_product( isl_map *map1, isl_map *map2); isl_map *isl_map_flat_range_product( isl_map *map1, isl_map *map2); isl_bool isl_map_domain_is_wrapping( isl_map *map); isl_bool isl_map_range_is_wrapping( isl_map *map); isl_bool isl_map_is_product( isl_map *map); isl_map *isl_map_factor_domain( isl_map *map); isl_map *isl_map_factor_range( isl_map *map); isl_map *isl_map_domain_factor_domain( isl_map *map); isl_map *isl_map_domain_factor_range( isl_map *map); isl_map *isl_map_range_factor_domain( isl_map *map); isl_map *isl_map_range_factor_range( isl_map *map); isl_map *isl_map_intersect( isl_map *map1, isl_map *map2); isl_map *isl_map_intersect_params( isl_map *map, isl_map *params); isl_map *isl_map_subtract( isl_map *map1, isl_map *map2); isl_map *isl_map_subtract_domain( isl_map *map, isl_map *dom); isl_map *isl_map_subtract_range( isl_map *map, isl_map *dom); isl_map *isl_map_complement( isl_map *map); struct isl_map *isl_map_fix_input_si(struct isl_map *map, unsigned input, int value); isl_map *isl_map_fix_si( isl_map *map, enum isl_dim_type type, unsigned pos, int value); isl_map *isl_map_fix_val( isl_map *map, enum isl_dim_type type, unsigned pos, isl_val *v); isl_map *isl_map_lower_bound_si( isl_map *map, enum isl_dim_type type, unsigned pos, int value); isl_map *isl_map_upper_bound_si( isl_map *map, enum isl_dim_type type, unsigned pos, int value); isl_basic_map *isl_basic_map_deltas( isl_basic_map *bmap); isl_map *isl_map_deltas( isl_map *map); isl_basic_map *isl_basic_map_deltas_map( isl_basic_map *bmap); isl_map *isl_map_deltas_map( isl_map *map); isl_map *isl_map_detect_equalities( isl_map *map); isl_basic_map *isl_map_affine_hull( isl_map *map); isl_basic_map *isl_map_convex_hull( isl_map *map); isl_basic_map *isl_map_polyhedral_hull( isl_map *map); isl_basic_map *isl_basic_map_add_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned n); isl_map *isl_map_add_dims( isl_map *map, enum isl_dim_type type, unsigned n); isl_basic_map *isl_basic_map_insert_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, unsigned n); isl_map *isl_map_insert_dims( isl_map *map, enum isl_dim_type type, unsigned pos, unsigned n); isl_basic_map *isl_basic_map_move_dims( isl_basic_map *bmap, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_map *isl_map_move_dims( isl_map *map, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_basic_map *isl_basic_map_project_out( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_map_project_out( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_remove_divs( isl_basic_map *bmap); isl_map *isl_map_remove_unknown_divs( isl_map *map); isl_map *isl_map_remove_divs( isl_map *map); isl_map *isl_map_eliminate( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_map_remove_dims( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_remove_divs_involving_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_map_remove_divs_involving_dims( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); struct isl_map *isl_map_remove_inputs(struct isl_map *map, unsigned first, unsigned n); isl_basic_map *isl_basic_map_equate( isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_basic_map *isl_basic_map_order_ge( isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_map_order_ge( isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_map_order_le( isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_map_equate( isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_map_oppose( isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_map_order_lt( isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_basic_map *isl_basic_map_order_gt( isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_map_order_gt( isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); isl_map *isl_set_identity( isl_map *set); isl_bool isl_basic_set_is_wrapping( isl_basic_map *bset); isl_bool isl_set_is_wrapping( isl_map *set); isl_basic_map *isl_basic_map_wrap( isl_basic_map *bmap); isl_map *isl_map_wrap( isl_map *map); isl_basic_map *isl_basic_set_unwrap( isl_basic_map *bset); isl_map *isl_set_unwrap( isl_map *set); isl_basic_map *isl_basic_map_flatten( isl_basic_map *bmap); isl_map *isl_map_flatten( isl_map *map); isl_basic_map *isl_basic_map_flatten_domain( isl_basic_map *bmap); isl_basic_map *isl_basic_map_flatten_range( isl_basic_map *bmap); isl_map *isl_map_flatten_domain( isl_map *map); isl_map *isl_map_flatten_range( isl_map *map); isl_basic_map *isl_basic_set_flatten( isl_basic_map *bset); isl_map *isl_set_flatten( isl_map *set); isl_map *isl_set_flatten_map( isl_map *set); isl_map *isl_map_params( isl_map *map); isl_map *isl_map_domain( isl_map *bmap); isl_map *isl_map_range( isl_map *map); isl_map *isl_map_domain_map( isl_map *map); isl_map *isl_map_range_map( isl_map *map); isl_map *isl_set_wrapped_domain_map( isl_map *set); isl_map *isl_map_from_basic_map( isl_basic_map *bmap); isl_map *isl_map_from_domain( isl_map *set); isl_basic_map *isl_basic_map_from_domain( isl_basic_map *bset); isl_basic_map *isl_basic_map_from_range( isl_basic_map *bset); isl_map *isl_map_from_range( isl_map *set); isl_basic_map *isl_basic_map_from_domain_and_range( isl_basic_map *domain, isl_basic_map *range); isl_map *isl_map_from_domain_and_range( isl_map *domain, isl_map *range); isl_basic_map *isl_map_sample( isl_map *map); isl_bool isl_map_plain_is_empty( isl_map *map); isl_bool isl_map_plain_is_universe( isl_map *map); isl_bool isl_map_is_empty( isl_map *map); isl_bool isl_map_is_subset( isl_map *map1, isl_map *map2); isl_bool isl_map_is_strict_subset( isl_map *map1, isl_map *map2); isl_bool isl_map_is_equal( isl_map *map1, isl_map *map2); isl_bool isl_map_is_disjoint( isl_map *map1, isl_map *map2); isl_bool isl_basic_map_is_single_valued( isl_basic_map *bmap); isl_bool isl_map_plain_is_single_valued( isl_map *map); isl_bool isl_map_is_single_valued( isl_map *map); isl_bool isl_map_plain_is_injective( isl_map *map); isl_bool isl_map_is_injective( isl_map *map); isl_bool isl_map_is_bijective( isl_map *map); isl_bool isl_map_is_identity( isl_map *map); int isl_map_is_translation( isl_map *map); isl_bool isl_map_has_equal_space( isl_map *map1, isl_map *map2); isl_bool isl_basic_map_can_zip( isl_basic_map *bmap); isl_bool isl_map_can_zip( isl_map *map); isl_basic_map *isl_basic_map_zip( isl_basic_map *bmap); isl_map *isl_map_zip( isl_map *map); isl_bool isl_basic_map_can_curry( isl_basic_map *bmap); isl_bool isl_map_can_curry( isl_map *map); isl_basic_map *isl_basic_map_curry( isl_basic_map *bmap); isl_map *isl_map_curry( isl_map *map); isl_bool isl_map_can_range_curry( isl_map *map); isl_map *isl_map_range_curry( isl_map *map); isl_bool isl_basic_map_can_uncurry( isl_basic_map *bmap); isl_bool isl_map_can_uncurry( isl_map *map); isl_basic_map *isl_basic_map_uncurry( isl_basic_map *bmap); isl_map *isl_map_uncurry( isl_map *map); isl_map *isl_map_make_disjoint( isl_map *map); isl_map *isl_basic_map_compute_divs( isl_basic_map *bmap); isl_map *isl_map_compute_divs( isl_map *map); __attribute__((__deprecated__)) isl_map *isl_map_align_divs( isl_map *map); isl_basic_map *isl_basic_map_drop_constraints_involving_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_drop_constraints_not_involving_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_map_drop_constraints_involving_dims( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_map_drop_constraints_not_involving_dims( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_bool isl_basic_map_involves_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_bool isl_map_involves_dims( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); void isl_map_print_internal( isl_map *map, FILE *out, int indent); isl_val *isl_map_plain_get_val_if_fixed( isl_map *map, enum isl_dim_type type, unsigned pos); isl_basic_map *isl_basic_map_gist_domain( isl_basic_map *bmap, isl_basic_map *context); isl_basic_map *isl_basic_map_gist( isl_basic_map *bmap, isl_basic_map *context); isl_map *isl_map_gist( isl_map *map, isl_map *context); isl_map *isl_map_gist_domain( isl_map *map, isl_map *context); isl_map *isl_map_gist_range( isl_map *map, isl_map *context); isl_map *isl_map_gist_params( isl_map *map, isl_map *context); isl_map *isl_map_gist_basic_map( isl_map *map, isl_basic_map *context); isl_stride_info *isl_map_get_range_stride_info( isl_map *map, int pos); isl_fixed_box *isl_map_get_range_simple_fixed_box_hull( isl_map *map); isl_map *isl_map_coalesce( isl_map *map); isl_map *isl_map_coalesce_libint( isl_map *map); isl_bool isl_map_plain_is_equal( isl_map *map1, isl_map *map2); uint32_t isl_map_get_hash( isl_map *map); isl_size isl_map_n_basic_map( isl_map *map); isl_stat isl_map_foreach_basic_map( isl_map *map, isl_stat (*fn)( isl_basic_map *bmap, void *user), void *user); isl_basic_map_list *isl_map_get_basic_map_list( isl_map *map); isl_map *isl_map_fixed_power_val( isl_map *map, isl_val *exp); isl_map *isl_map_power( isl_map *map, int *exact); isl_map *isl_map_reaching_path_lengths( isl_map *map, int *exact); isl_map *isl_map_transitive_closure( isl_map *map, int *exact); isl_map *isl_map_lex_le_map( isl_map *map1, isl_map *map2); isl_map *isl_map_lex_lt_map( isl_map *map1, isl_map *map2); isl_map *isl_map_lex_ge_map( isl_map *map1, isl_map *map2); isl_map *isl_map_lex_gt_map( isl_map *map1, isl_map *map2); isl_basic_map *isl_basic_map_align_params( isl_basic_map *bmap, isl_space *model); isl_map *isl_map_align_params( isl_map *map, isl_space *model); isl_basic_map *isl_basic_map_drop_unused_params( isl_basic_map *bmap); isl_map *isl_map_drop_unused_params( isl_map *map); isl_mat *isl_basic_map_equalities_matrix( isl_basic_map *bmap, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4, enum isl_dim_type c5); isl_mat *isl_basic_map_inequalities_matrix( isl_basic_map *bmap, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4, enum isl_dim_type c5); isl_basic_map *isl_basic_map_from_constraint_matrices( isl_space *dim, isl_mat *eq, isl_mat *ineq, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4, enum isl_dim_type c5); isl_basic_map *isl_basic_map_from_aff( isl_aff *aff); isl_basic_map *isl_basic_map_from_multi_aff( isl_multi_aff *maff); isl_basic_map *isl_basic_map_from_aff_list( isl_space *domain_space, isl_aff_list *list); isl_map *isl_map_from_aff( isl_aff *aff); isl_map *isl_map_from_multi_aff( isl_multi_aff *maff); isl_pw_aff *isl_map_dim_min( isl_map *map, int pos); isl_pw_aff *isl_map_dim_max( isl_map *map, int pos); isl_ctx *isl_basic_map_list_get_ctx( isl_basic_map_list *list); isl_basic_map_list *isl_basic_map_list_from_basic_map( isl_basic_map *el); isl_basic_map_list *isl_basic_map_list_alloc(isl_ctx *ctx, int n); isl_basic_map_list *isl_basic_map_list_copy( isl_basic_map_list *list); isl_basic_map_list *isl_basic_map_list_free( isl_basic_map_list *list); isl_basic_map_list *isl_basic_map_list_add( isl_basic_map_list *list, isl_basic_map *el); isl_basic_map_list *isl_basic_map_list_insert( isl_basic_map_list *list, unsigned pos, struct isl_basic_map *el); isl_basic_map_list *isl_basic_map_list_drop( isl_basic_map_list *list, unsigned first, unsigned n); isl_basic_map_list *isl_basic_map_list_swap( isl_basic_map_list *list, unsigned pos1, unsigned pos2); isl_basic_map_list *isl_basic_map_list_reverse( isl_basic_map_list *list); isl_basic_map_list *isl_basic_map_list_concat( isl_basic_map_list *list1, isl_basic_map_list *list2); isl_size isl_basic_map_list_size( isl_basic_map_list *list); isl_size isl_basic_map_list_n_basic_map( isl_basic_map_list *list); isl_basic_map *isl_basic_map_list_get_at( isl_basic_map_list *list, int index); struct isl_basic_map *isl_basic_map_list_get_basic_map( isl_basic_map_list *list, int index); struct isl_basic_map_list *isl_basic_map_list_set_basic_map( struct isl_basic_map_list *list, int index, struct isl_basic_map *el); isl_stat isl_basic_map_list_foreach( isl_basic_map_list *list, isl_stat (*fn)( isl_basic_map *el, void *user), void *user); isl_basic_map_list *isl_basic_map_list_map( isl_basic_map_list *list, isl_basic_map * (*fn)( isl_basic_map *el, void *user), void *user); isl_basic_map_list *isl_basic_map_list_sort( isl_basic_map_list *list, int (*cmp)( struct isl_basic_map *a, struct isl_basic_map *b, void *user), void *user); isl_stat isl_basic_map_list_foreach_scc( isl_basic_map_list *list, isl_bool (*follows)( struct isl_basic_map *a, struct isl_basic_map *b, void *user), void *follows_user, isl_stat (*fn)( isl_basic_map_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_basic_map_list( isl_printer *p, isl_basic_map_list *list); void isl_basic_map_list_dump( isl_basic_map_list *list); isl_ctx *isl_map_list_get_ctx( isl_map_list *list); isl_map_list *isl_map_list_from_map( isl_map *el); isl_map_list *isl_map_list_alloc(isl_ctx *ctx, int n); isl_map_list *isl_map_list_copy( isl_map_list *list); isl_map_list *isl_map_list_free( isl_map_list *list); isl_map_list *isl_map_list_add( isl_map_list *list, isl_map *el); isl_map_list *isl_map_list_insert( isl_map_list *list, unsigned pos, struct isl_map *el); isl_map_list *isl_map_list_drop( isl_map_list *list, unsigned first, unsigned n); isl_map_list *isl_map_list_swap( isl_map_list *list, unsigned pos1, unsigned pos2); isl_map_list *isl_map_list_reverse( isl_map_list *list); isl_map_list *isl_map_list_concat( isl_map_list *list1, isl_map_list *list2); isl_size isl_map_list_size( isl_map_list *list); isl_size isl_map_list_n_map( isl_map_list *list); isl_map *isl_map_list_get_at( isl_map_list *list, int index); struct isl_map *isl_map_list_get_map( isl_map_list *list, int index); struct isl_map_list *isl_map_list_set_map( struct isl_map_list *list, int index, struct isl_map *el); isl_stat isl_map_list_foreach( isl_map_list *list, isl_stat (*fn)( isl_map *el, void *user), void *user); isl_map_list *isl_map_list_map( isl_map_list *list, isl_map * (*fn)( isl_map *el, void *user), void *user); isl_map_list *isl_map_list_sort( isl_map_list *list, int (*cmp)( struct isl_map *a, struct isl_map *b, void *user), void *user); isl_stat isl_map_list_foreach_scc( isl_map_list *list, isl_bool (*follows)( struct isl_map *a, struct isl_map *b, void *user), void *follows_user, isl_stat (*fn)( isl_map_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_map_list( isl_printer *p, isl_map_list *list); void isl_map_list_dump( isl_map_list *list); } # 21 "/work/isl_map_private.h" 2 # 1 "/work/isl_reordering.h" 1 # 1 "/work/include/isl/space.h" 1 # 19 "/work/include/isl/space.h" extern "C" { isl_ctx *isl_space_get_ctx( isl_space *space); isl_space *isl_space_alloc(isl_ctx *ctx, unsigned nparam, unsigned n_in, unsigned n_out); isl_space *isl_space_set_alloc(isl_ctx *ctx, unsigned nparam, unsigned dim); isl_space *isl_space_params_alloc(isl_ctx *ctx, unsigned nparam); isl_space *isl_space_copy( isl_space *dim); isl_space *isl_space_free( isl_space *space); isl_bool isl_space_is_params( isl_space *space); isl_bool isl_space_is_set( isl_space *space); isl_bool isl_space_is_map( isl_space *space); isl_space *isl_space_add_param_id( isl_space *space, isl_id *id); isl_space *isl_space_set_tuple_name( isl_space *space, enum isl_dim_type type, const char *s); isl_bool isl_space_has_tuple_name( isl_space *space, enum isl_dim_type type); const char *isl_space_get_tuple_name( isl_space *space, enum isl_dim_type type); isl_space *isl_space_set_tuple_id( isl_space *space, enum isl_dim_type type, isl_id *id); isl_space *isl_space_reset_tuple_id( isl_space *space, enum isl_dim_type type); isl_bool isl_space_has_tuple_id( isl_space *space, enum isl_dim_type type); isl_id *isl_space_get_tuple_id( isl_space *space, enum isl_dim_type type); isl_space *isl_space_reset_user( isl_space *space); isl_space *isl_space_set_dim_id( isl_space *dim, enum isl_dim_type type, unsigned pos, isl_id *id); isl_bool isl_space_has_dim_id( isl_space *space, enum isl_dim_type type, unsigned pos); isl_id *isl_space_get_dim_id( isl_space *space, enum isl_dim_type type, unsigned pos); int isl_space_find_dim_by_id( isl_space *space, enum isl_dim_type type, isl_id *id); int isl_space_find_dim_by_name( isl_space *space, enum isl_dim_type type, const char *name); isl_bool isl_space_has_dim_name( isl_space *space, enum isl_dim_type type, unsigned pos); isl_space *isl_space_set_dim_name( isl_space *space, enum isl_dim_type type, unsigned pos, const char *name); const char *isl_space_get_dim_name( isl_space *space, enum isl_dim_type type, unsigned pos); __attribute__((__deprecated__)) isl_space *isl_space_extend( isl_space *dim, unsigned nparam, unsigned n_in, unsigned n_out); isl_space *isl_space_add_dims( isl_space *space, enum isl_dim_type type, unsigned n); isl_space *isl_space_move_dims( isl_space *space, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_space *isl_space_insert_dims( isl_space *space, enum isl_dim_type type, unsigned pos, unsigned n); isl_space *isl_space_join( isl_space *left, isl_space *right); isl_space *isl_space_product( isl_space *left, isl_space *right); isl_space *isl_space_domain_product( isl_space *left, isl_space *right); isl_space *isl_space_range_product( isl_space *left, isl_space *right); isl_space *isl_space_factor_domain( isl_space *space); isl_space *isl_space_factor_range( isl_space *space); isl_space *isl_space_domain_factor_domain( isl_space *space); isl_space *isl_space_domain_factor_range( isl_space *space); isl_space *isl_space_range_factor_domain( isl_space *space); isl_space *isl_space_range_factor_range( isl_space *space); isl_space *isl_space_map_from_set( isl_space *space); isl_space *isl_space_map_from_domain_and_range( isl_space *domain, isl_space *range); isl_space *isl_space_reverse( isl_space *space); isl_space *isl_space_drop_dims( isl_space *space, enum isl_dim_type type, unsigned first, unsigned num); __attribute__((__deprecated__)) isl_space *isl_space_drop_inputs( isl_space *dim, unsigned first, unsigned n); __attribute__((__deprecated__)) isl_space *isl_space_drop_outputs( isl_space *dim, unsigned first, unsigned n); isl_space *isl_space_drop_all_params( isl_space *space); isl_space *isl_space_domain( isl_space *space); isl_space *isl_space_from_domain( isl_space *space); isl_space *isl_space_range( isl_space *space); isl_space *isl_space_from_range( isl_space *space); isl_space *isl_space_domain_map( isl_space *space); isl_space *isl_space_range_map( isl_space *space); isl_space *isl_space_params( isl_space *space); isl_space *isl_space_set_from_params( isl_space *space); isl_space *isl_space_align_params( isl_space *dim1, isl_space *dim2); isl_bool isl_space_is_wrapping( isl_space *space); isl_bool isl_space_domain_is_wrapping( isl_space *space); isl_bool isl_space_range_is_wrapping( isl_space *space); isl_bool isl_space_is_product( isl_space *space); isl_space *isl_space_wrap( isl_space *space); isl_space *isl_space_unwrap( isl_space *space); isl_bool isl_space_can_zip( isl_space *space); isl_space *isl_space_zip( isl_space *space); isl_bool isl_space_can_curry( isl_space *space); isl_space *isl_space_curry( isl_space *space); isl_bool isl_space_can_range_curry( isl_space *space); isl_space *isl_space_range_curry( isl_space *space); isl_bool isl_space_can_uncurry( isl_space *space); isl_space *isl_space_uncurry( isl_space *space); isl_bool isl_space_is_domain( isl_space *space1, isl_space *space2); isl_bool isl_space_is_range( isl_space *space1, isl_space *space2); isl_bool isl_space_is_equal( isl_space *space1, isl_space *space2); isl_bool isl_space_has_equal_params( isl_space *space1, isl_space *space2); isl_bool isl_space_has_equal_tuples( isl_space *space1, isl_space *space2); isl_bool isl_space_tuple_is_equal( isl_space *space1, enum isl_dim_type type1, isl_space *space2, enum isl_dim_type type2); __attribute__((__deprecated__)) isl_bool isl_space_match( isl_space *space1, enum isl_dim_type type1, isl_space *space2, enum isl_dim_type type2); isl_size isl_space_dim( isl_space *space, enum isl_dim_type type); isl_space *isl_space_flatten_domain( isl_space *space); isl_space *isl_space_flatten_range( isl_space *space); char *isl_space_to_str( isl_space *space); isl_printer *isl_printer_print_space( isl_printer *p, isl_space *space); void isl_space_dump( isl_space *space); } # 5 "/work/isl_reordering.h" 2 # 14 "/work/isl_reordering.h" struct isl_reordering { int ref; isl_space *space; unsigned len; int pos[1]; }; typedef struct isl_reordering isl_reordering; isl_ctx *isl_reordering_get_ctx( isl_reordering *r); isl_space *isl_reordering_peek_space( isl_reordering *r); isl_space *isl_reordering_get_space( isl_reordering *r); isl_reordering *isl_parameter_alignment_reordering( isl_space *alignee, isl_space *aligner); isl_reordering *isl_reordering_copy( isl_reordering *exp); isl_reordering *isl_reordering_free( isl_reordering *exp); isl_reordering *isl_reordering_extend_space( isl_reordering *exp, isl_space *space); isl_reordering *isl_reordering_extend( isl_reordering *exp, unsigned extra); # 22 "/work/isl_map_private.h" 2 # 1 "/work/include/isl/hash.h" 1 # 13 "/work/include/isl/hash.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 14 "/work/include/isl/hash.h" 2 # 1 "/work/build3/include/isl/stdint.h" 1 # 15 "/work/include/isl/hash.h" 2 extern "C" { # 39 "/work/include/isl/hash.h" uint32_t isl_hash_string(uint32_t hash, const char *s); uint32_t isl_hash_mem(uint32_t hash, const void *p, size_t len); struct isl_hash_table_entry { uint32_t hash; void *data; }; struct isl_hash_table { int bits; int n; struct isl_hash_table_entry *entries; }; struct isl_hash_table *isl_hash_table_alloc(struct isl_ctx *ctx, int min_size); void isl_hash_table_free(struct isl_ctx *ctx, struct isl_hash_table *table); int isl_hash_table_init(struct isl_ctx *ctx, struct isl_hash_table *table, int min_size); void isl_hash_table_clear(struct isl_hash_table *table); struct isl_hash_table_entry *isl_hash_table_find(struct isl_ctx *ctx, struct isl_hash_table *table, uint32_t key_hash, int (*eq)(const void *entry, const void *val), const void *val, int reserve); isl_stat isl_hash_table_foreach(isl_ctx *ctx, struct isl_hash_table *table, isl_stat (*fn)(void **entry, void *user), void *user); void isl_hash_table_remove(struct isl_ctx *ctx, struct isl_hash_table *table, struct isl_hash_table_entry *entry); } # 24 "/work/isl_map_private.h" 2 # 1 "/work/isl_blk.h" 1 # 13 "/work/isl_blk.h" # 1 "/work/isl_int.h" 1 # 16 "/work/isl_int.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/string.h" 1 3 # 58 "/opt/toolchain/target/bin/../include/c++/v1/string.h" 3 # 1 "/usr/include/string.h" 1 3 4 # 26 "/usr/include/string.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 27 "/usr/include/string.h" 2 3 4 extern "C" { # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 34 "/usr/include/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memmove (void *__dest, const void *__src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memccpy (void *__restrict __dest, const void *__restrict __src, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern int memcmp (const void *__s1, const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 90 "/usr/include/string.h" 3 4 extern void *memchr (const void *__s, int __c, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 103 "/usr/include/string.h" 3 4 extern void *rawmemchr (const void *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 114 "/usr/include/string.h" 3 4 extern void *memrchr (const void *__s, int __c, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strcpy (char *__restrict __dest, const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strcat (char *__restrict __dest, const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strncat (char *__restrict __dest, const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strcmp (const char *__s1, const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncmp (const char *__s1, const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcoll (const char *__s1, const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strxfrm (char *__restrict __dest, const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (2))); extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); extern char *strdup (const char *__s) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); extern char *strndup (const char *__string, size_t __n) throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); # 225 "/usr/include/string.h" 3 4 extern char *strchr (const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 252 "/usr/include/string.h" 3 4 extern char *strrchr (const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 265 "/usr/include/string.h" 3 4 extern char *strchrnul (const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strcspn (const char *__s, const char *__reject) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern size_t strspn (const char *__s, const char *__accept) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 302 "/usr/include/string.h" 3 4 extern char *strpbrk (const char *__s, const char *__accept) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); # 329 "/usr/include/string.h" 3 4 extern char *strstr (const char *__haystack, const char *__needle) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strtok (char *__restrict __s, const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (2))); extern char *__strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) throw () __attribute__ ((__nonnull__ (2, 3))); # 359 "/usr/include/string.h" 3 4 extern char *strcasestr (const char *__haystack, const char *__needle) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void *memmem (const void *__haystack, size_t __haystacklen, const void *__needle, size_t __needlelen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); extern void *__mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void *mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern size_t strlen (const char *__s) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern size_t strnlen (const char *__string, size_t __maxlen) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern char *strerror (int __errnum) throw (); # 420 "/usr/include/string.h" 3 4 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))) ; extern char *strerror_l (int __errnum, locale_t __l) throw (); # 1 "/usr/include/strings.h" 1 3 4 # 23 "/usr/include/strings.h" 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 24 "/usr/include/strings.h" 2 3 4 extern "C" { extern int bcmp (const void *__s1, const void *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern void bcopy (const void *__src, void *__dest, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); # 68 "/usr/include/strings.h" 3 4 extern char *index (const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); # 96 "/usr/include/strings.h" 3 4 extern char *rindex (const char *__s, int __c) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); extern int ffs (int __i) throw () __attribute__ ((__const__)); extern int ffsl (long int __l) throw () __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) throw () __attribute__ ((__const__)); extern int strcasecmp (const char *__s1, const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); extern int strncasecmp_l (const char *__s1, const char *__s2, size_t __n, locale_t __loc) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); } # 432 "/usr/include/string.h" 2 3 4 extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); extern char *strsep (char **__restrict __stringp, const char *__restrict __delim) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *strsignal (int __sig) throw (); extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *__stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern char *stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int strverscmp (const char *__s1, const char *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); # 486 "/usr/include/string.h" 3 4 extern char *basename (const char *__filename) throw () __attribute__ ((__nonnull__ (1))); # 498 "/usr/include/string.h" 3 4 } # 61 "/opt/toolchain/target/bin/../include/c++/v1/string.h" 2 3 # 71 "/opt/toolchain/target/bin/../include/c++/v1/string.h" 3 extern "C++" { inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char* __libcpp_strchr(const char* __s, int __c) {return (char*)strchr(__s, __c);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) const char* strchr(const char* __s, int __c) {return __libcpp_strchr(__s, __c);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) char* strchr( char* __s, int __c) {return __libcpp_strchr(__s, __c);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char* __libcpp_strpbrk(const char* __s1, const char* __s2) {return (char*)strpbrk(__s1, __s2);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) const char* strpbrk(const char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) char* strpbrk( char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char* __libcpp_strrchr(const char* __s, int __c) {return (char*)strrchr(__s, __c);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) const char* strrchr(const char* __s, int __c) {return __libcpp_strrchr(__s, __c);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) char* strrchr( char* __s, int __c) {return __libcpp_strrchr(__s, __c);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void* __libcpp_memchr(const void* __s, int __c, size_t __n) {return (void*)memchr(__s, __c, __n);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) const void* memchr(const void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) void* memchr( void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char* __libcpp_strstr(const char* __s1, const char* __s2) {return (char*)strstr(__s1, __s2);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) const char* strstr(const char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__enable_if__(true, ""))) char* strstr( char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);} } # 17 "/work/isl_int.h" 2 # 1 "/work/build3/isl_config.h" 1 # 56 "/work/build3/isl_config.h" # 1 "/work/isl_config_post.h" 1 # 57 "/work/build3/isl_config.h" 2 # 18 "/work/isl_int.h" 2 # 1 "/work/isl_int_sioimath.h" 1 # 13 "/work/isl_int_sioimath.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/inttypes.h" 1 3 # 237 "/opt/toolchain/target/bin/../include/c++/v1/inttypes.h" 3 # 246 "/opt/toolchain/target/bin/../include/c++/v1/inttypes.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/inttypes.h" 1 3 # 16 "/opt/toolchain/target/lib/clang/9.0.0/include/inttypes.h" 3 # 1 "/usr/include/inttypes.h" 1 3 4 # 266 "/usr/include/inttypes.h" 3 4 extern "C" { typedef struct { long int quot; long int rem; } imaxdiv_t; # 290 "/usr/include/inttypes.h" 3 4 extern intmax_t imaxabs (intmax_t __n) throw () __attribute__ ((__const__)); extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) throw () __attribute__ ((__const__)); extern intmax_t strtoimax (const char *__restrict __nptr, char **__restrict __endptr, int __base) throw (); extern uintmax_t strtoumax (const char *__restrict __nptr, char ** __restrict __endptr, int __base) throw (); extern intmax_t wcstoimax (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern uintmax_t wcstoumax (const wchar_t *__restrict __nptr, wchar_t ** __restrict __endptr, int __base) throw (); extern long int __strtol_internal (const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))) ; extern __inline __attribute__ ((__gnu_inline__)) intmax_t strtoimax (const char *__restrict nptr, char **__restrict endptr, int base) throw () { return __strtol_internal (nptr, endptr, base, 0); } extern unsigned long int __strtoul_internal (const char *__restrict __nptr, char ** __restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))) ; extern __inline __attribute__ ((__gnu_inline__)) uintmax_t strtoumax (const char *__restrict nptr, char **__restrict endptr, int base) throw () { return __strtoul_internal (nptr, endptr, base, 0); } extern long int __wcstol_internal (const wchar_t * __restrict __nptr, wchar_t **__restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))) ; extern __inline __attribute__ ((__gnu_inline__)) intmax_t wcstoimax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () { return __wcstol_internal (nptr, endptr, base, 0); } extern unsigned long int __wcstoul_internal (const wchar_t * __restrict __nptr, wchar_t ** __restrict __endptr, int __base, int __group) throw () __attribute__ ((__nonnull__ (1))) ; extern __inline __attribute__ ((__gnu_inline__)) uintmax_t wcstoumax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () { return __wcstoul_internal (nptr, endptr, base, 0); } # 432 "/usr/include/inttypes.h" 3 4 } # 17 "/opt/toolchain/target/lib/clang/9.0.0/include/inttypes.h" 2 3 # 247 "/opt/toolchain/target/bin/../include/c++/v1/inttypes.h" 2 3 # 14 "/work/isl_int_sioimath.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/limits.h" 1 3 # 44 "/opt/toolchain/target/bin/../include/c++/v1/limits.h" 3 # 57 "/opt/toolchain/target/bin/../include/c++/v1/limits.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/limits.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/limits.h" 3 # 1 "/usr/include/limits.h" 1 3 4 # 26 "/usr/include/limits.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 27 "/usr/include/limits.h" 2 3 4 # 183 "/usr/include/limits.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 # 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4 # 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 # 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4 # 162 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4 # 184 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4 # 188 "/usr/include/limits.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4 # 64 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/uio_lim.h" 1 3 4 # 65 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4 # 192 "/usr/include/limits.h" 2 3 4 # 22 "/opt/toolchain/target/lib/clang/9.0.0/include/limits.h" 2 3 # 58 "/opt/toolchain/target/bin/../include/c++/v1/limits.h" 2 3 # 15 "/work/isl_int_sioimath.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 17 "/work/isl_int_sioimath.h" 2 # 1 "/work/isl_imath.h" 1 # 1 "/work/imath/imath.h" 1 # 34 "/work/imath/imath.h" extern "C" { typedef unsigned char mp_sign; typedef unsigned int mp_size; typedef int mp_result; typedef long mp_small; typedef unsigned long mp_usmall; typedef uint32_t mp_digit; typedef uint64_t mp_word; typedef struct mpz { mp_digit single; mp_digit *digits; mp_size alloc; mp_size used; mp_sign sign; } mpz_t, *mp_int; extern const mp_result MP_OK; extern const mp_result MP_FALSE; extern const mp_result MP_TRUE; extern const mp_result MP_MEMORY; extern const mp_result MP_RANGE; extern const mp_result MP_UNDEF; extern const mp_result MP_TRUNC; extern const mp_result MP_BADARG; extern const mp_result MP_MINERR; # 104 "/work/imath/imath.h" extern const mp_sign MP_NEG; extern const mp_sign MP_ZPOS; mp_result mp_int_init(mp_int z); mp_int mp_int_alloc(void); mp_result mp_int_init_size(mp_int z, mp_size prec); mp_result mp_int_init_copy(mp_int z, mp_int old); mp_result mp_int_init_value(mp_int z, mp_small value); mp_result mp_int_init_uvalue(mp_int z, mp_usmall uvalue); mp_result mp_int_set_value(mp_int z, mp_small value); mp_result mp_int_set_uvalue(mp_int z, mp_usmall uvalue); void mp_int_clear(mp_int z); void mp_int_free(mp_int z); mp_result mp_int_copy(mp_int a, mp_int c); void mp_int_swap(mp_int a, mp_int c); void mp_int_zero(mp_int z); mp_result mp_int_abs(mp_int a, mp_int c); mp_result mp_int_neg(mp_int a, mp_int c); mp_result mp_int_add(mp_int a, mp_int b, mp_int c); mp_result mp_int_add_value(mp_int a, mp_small value, mp_int c); mp_result mp_int_sub(mp_int a, mp_int b, mp_int c); mp_result mp_int_sub_value(mp_int a, mp_small value, mp_int c); mp_result mp_int_mul(mp_int a, mp_int b, mp_int c); mp_result mp_int_mul_value(mp_int a, mp_small value, mp_int c); mp_result mp_int_mul_pow2(mp_int a, mp_small p2, mp_int c); mp_result mp_int_sqr(mp_int a, mp_int c); mp_result mp_int_div(mp_int a, mp_int b, mp_int q, mp_int r); mp_result mp_int_div_value(mp_int a, mp_small value, mp_int q, mp_small *r); mp_result mp_int_div_pow2(mp_int a, mp_small p2, mp_int q, mp_int r); mp_result mp_int_mod(mp_int a, mp_int m, mp_int c); mp_result mp_int_expt(mp_int a, mp_small b, mp_int c); mp_result mp_int_expt_value(mp_small a, mp_small b, mp_int c); mp_result mp_int_expt_full(mp_int a, mp_int b, mp_int c); int mp_int_compare(mp_int a, mp_int b); int mp_int_compare_unsigned(mp_int a, mp_int b); int mp_int_compare_zero(mp_int z); int mp_int_compare_value(mp_int z, mp_small v); int mp_int_compare_uvalue(mp_int z, mp_usmall uv); int mp_int_divisible_value(mp_int a, mp_small v); int mp_int_is_pow2(mp_int z); mp_result mp_int_exptmod(mp_int a, mp_int b, mp_int m, mp_int c); mp_result mp_int_exptmod_evalue(mp_int a, mp_small value, mp_int m, mp_int c); mp_result mp_int_exptmod_bvalue(mp_small value, mp_int b, mp_int m, mp_int c); mp_result mp_int_exptmod_known(mp_int a, mp_int b, mp_int m, mp_int mu, mp_int c); mp_result mp_int_redux_const(mp_int m, mp_int c); mp_result mp_int_invmod(mp_int a, mp_int m, mp_int c); mp_result mp_int_gcd(mp_int a, mp_int b, mp_int c); mp_result mp_int_egcd(mp_int a, mp_int b, mp_int c, mp_int x, mp_int y); mp_result mp_int_lcm(mp_int a, mp_int b, mp_int c); mp_result mp_int_root(mp_int a, mp_small b, mp_int c); mp_result mp_int_to_int(mp_int z, mp_small *out); mp_result mp_int_to_uint(mp_int z, mp_usmall *out); mp_result mp_int_to_string(mp_int z, mp_size radix, char *str, int limit); mp_result mp_int_string_len(mp_int z, mp_size radix); mp_result mp_int_read_string(mp_int z, mp_size radix, const char *str); mp_result mp_int_read_cstring(mp_int z, mp_size radix, const char *str, char **end); mp_result mp_int_count_bits(mp_int z); mp_result mp_int_to_binary(mp_int z, unsigned char *buf, int limit); mp_result mp_int_read_binary(mp_int z, unsigned char *buf, int len); mp_result mp_int_binary_len(mp_int z); mp_result mp_int_to_unsigned(mp_int z, unsigned char *buf, int limit); mp_result mp_int_read_unsigned(mp_int z, unsigned char *buf, int len); mp_result mp_int_unsigned_len(mp_int z); const char *mp_error_string(mp_result res); } # 2 "/work/isl_imath.h" 2 # 1 "/work/imath/gmp_compat.h" 1 # 30 "/work/imath/gmp_compat.h" # 1 "/work/imath/imrat.h" 1 # 33 "/work/imath/imrat.h" extern "C" { typedef struct mpq { mpz_t num; mpz_t den; } mpq_t, *mp_rat; typedef enum { MP_ROUND_DOWN, MP_ROUND_HALF_UP, MP_ROUND_UP, MP_ROUND_HALF_DOWN } mp_round_mode; mp_result mp_rat_init(mp_rat r); mp_rat mp_rat_alloc(void); mp_result mp_rat_reduce(mp_rat r); mp_result mp_rat_init_size(mp_rat r, mp_size n_prec, mp_size d_prec); mp_result mp_rat_init_copy(mp_rat r, mp_rat old); mp_result mp_rat_set_value(mp_rat r, mp_small numer, mp_small denom); mp_result mp_rat_set_uvalue(mp_rat r, mp_usmall numer, mp_usmall denom); void mp_rat_clear(mp_rat r); void mp_rat_free(mp_rat r); mp_result mp_rat_numer(mp_rat r, mp_int z); mp_int mp_rat_numer_ref(mp_rat r); mp_result mp_rat_denom(mp_rat r, mp_int z); mp_int mp_rat_denom_ref(mp_rat r); mp_sign mp_rat_sign(mp_rat r); mp_result mp_rat_copy(mp_rat a, mp_rat c); void mp_rat_zero(mp_rat r); mp_result mp_rat_abs(mp_rat a, mp_rat c); mp_result mp_rat_neg(mp_rat a, mp_rat c); mp_result mp_rat_recip(mp_rat a, mp_rat c); mp_result mp_rat_add(mp_rat a, mp_rat b, mp_rat c); mp_result mp_rat_sub(mp_rat a, mp_rat b, mp_rat c); mp_result mp_rat_mul(mp_rat a, mp_rat b, mp_rat c); mp_result mp_rat_div(mp_rat a, mp_rat b, mp_rat c); mp_result mp_rat_add_int(mp_rat a, mp_int b, mp_rat c); mp_result mp_rat_sub_int(mp_rat a, mp_int b, mp_rat c); mp_result mp_rat_mul_int(mp_rat a, mp_int b, mp_rat c); mp_result mp_rat_div_int(mp_rat a, mp_int b, mp_rat c); mp_result mp_rat_expt(mp_rat a, mp_small b, mp_rat c); int mp_rat_compare(mp_rat a, mp_rat b); int mp_rat_compare_unsigned(mp_rat a, mp_rat b); int mp_rat_compare_zero(mp_rat r); int mp_rat_compare_value(mp_rat r, mp_small n, mp_small d); int mp_rat_is_integer(mp_rat r); mp_result mp_rat_to_ints(mp_rat r, mp_small *num, mp_small *den); mp_result mp_rat_to_string(mp_rat r, mp_size radix, char *str, int limit); mp_result mp_rat_to_decimal(mp_rat r, mp_size radix, mp_size prec, mp_round_mode round, char *str, int limit); mp_result mp_rat_string_len(mp_rat r, mp_size radix); mp_result mp_rat_decimal_len(mp_rat r, mp_size radix, mp_size prec); mp_result mp_rat_read_string(mp_rat r, mp_size radix, const char *str); mp_result mp_rat_read_cstring(mp_rat r, mp_size radix, const char *str, char **end); mp_result mp_rat_read_ustring(mp_rat r, mp_size radix, const char *str, char **end); mp_result mp_rat_read_decimal(mp_rat r, mp_size radix, const char *str); mp_result mp_rat_read_cdecimal(mp_rat r, mp_size radix, const char *str, char **end); } # 31 "/work/imath/gmp_compat.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 # 32 "/work/imath/gmp_compat.h" 2 extern "C" { void impq_clear(mp_rat x); int impq_cmp(mp_rat op1, mp_rat op2); void impq_init(mp_rat x); void impq_mul(mp_rat product, mp_rat multiplier, mp_rat multiplicand); void impq_set(mp_rat rop, mp_rat op); void impz_abs(mp_int rop, mp_int op); void impz_add(mp_int rop, mp_int op1, mp_int op2); void impz_clear(mp_int x); int impz_cmp_si(mp_int op1, long op2); int impz_cmpabs(mp_int op1, mp_int op2); int impz_cmp(mp_int op1, mp_int op2); void impz_init(mp_int x); void impz_mul(mp_int rop, mp_int op1, mp_int op2); void impz_neg(mp_int rop, mp_int op); void impz_set_si(mp_int rop, long op); void impz_set(mp_int rop, mp_int op); void impz_sub(mp_int rop, mp_int op1, mp_int op2); void impz_swap(mp_int rop1, mp_int rop2); int impq_sgn(mp_rat op); int impz_sgn(mp_int op); void impq_set_ui(mp_rat rop, unsigned long op1, unsigned long op2); void impz_set_ui(mp_int rop, unsigned long op); mp_int impq_denref(mp_rat op); mp_int impq_numref(mp_rat op); void impq_canonicalize(mp_rat op); void impz_addmul(mp_int rop, mp_int op1, mp_int op2); void impz_divexact(mp_int q, mp_int n, mp_int d); int impz_divisible_p(mp_int n, mp_int d); void impz_submul(mp_int rop, mp_int op1, mp_int op2); void impz_add_ui(mp_int rop, mp_int op1, unsigned long op2); void impz_divexact_ui(mp_int q, mp_int n, unsigned long d); void impz_mul_ui(mp_int rop, mp_int op1, unsigned long op2); void impz_pow_ui(mp_int rop, mp_int base, unsigned long exp); void impz_sub_ui(mp_int rop, mp_int op1, unsigned long op2); unsigned long impz_fdiv_q_ui(mp_int q, mp_int n, unsigned long d); size_t impz_sizeinbase(mp_int op, int base); # 164 "/work/imath/gmp_compat.h" void impz_gcd(mp_int rop, mp_int op1, mp_int op2); char* impz_get_str(char *str, int radix, mp_int op); char* impq_get_str(char *str, int radix, mp_rat op); int impz_set_str(mp_int rop, char *str, int base); int impq_set_str(mp_rat rop, char *str, int base); unsigned long impz_get_ui(mp_int op); long impz_get_si(mp_int op); void impz_lcm(mp_int rop, mp_int op1, mp_int op2); void impz_mul_2exp(mp_int rop, mp_int op1, unsigned long op2); void impz_cdiv_q(mp_int q, mp_int n, mp_int d); void impz_fdiv_q(mp_int q, mp_int n, mp_int d); void impz_fdiv_r(mp_int r, mp_int n, mp_int d); void impz_tdiv_q(mp_int q, mp_int n, mp_int d); void* impz_export(void *rop, size_t *countp, int order, size_t size, int endian, size_t nails, mp_int op); void impz_import(mp_int rop, size_t count, int order, size_t size, int endian, size_t nails, const void* op); } # 3 "/work/isl_imath.h" 2 uint32_t isl_imath_hash(mp_int v, uint32_t hash); int isl_imath_fits_ulong_p(mp_int op); int isl_imath_fits_slong_p(mp_int op); void isl_imath_addmul_ui(mp_int rop, mp_int op1, unsigned long op2); void isl_imath_submul_ui(mp_int rop, mp_int op1, unsigned long op2); void isl_imath_cdiv_q_ui(mp_int rop, mp_int op1, unsigned long op2); void isl_imath_fdiv_q_ui(mp_int rop, mp_int op1, unsigned long op2); # 19 "/work/isl_int_sioimath.h" 2 # 75 "/work/isl_int_sioimath.h" typedef uintptr_t isl_sioimath; # 95 "/work/isl_int_sioimath.h" typedef isl_sioimath *isl_sioimath_ptr; typedef isl_sioimath isl_sioimath_src; inline int isl_sioimath_is_small(isl_sioimath val) { return val & 0x00000001; } inline int isl_sioimath_is_big(isl_sioimath val) { return !isl_sioimath_is_small(val); } inline int32_t isl_sioimath_get_small(isl_sioimath val) { return val >> 32; } inline mp_int isl_sioimath_get_big(isl_sioimath val) { return (mp_int)(uintptr_t) val; } inline int isl_sioimath_decode_small(isl_sioimath val, int32_t *small) { *small = isl_sioimath_get_small(val); return isl_sioimath_is_small(val); } inline int isl_sioimath_decode_big(isl_sioimath val, mp_int *big) { *big = isl_sioimath_get_big(val); return isl_sioimath_is_big(val); } inline isl_sioimath isl_sioimath_encode_small(int32_t val) { return ((isl_sioimath) val) << 32 | 0x00000001; } inline isl_sioimath isl_sioimath_encode_big(mp_int val) { return (isl_sioimath)(uintptr_t) val; } # 186 "/work/isl_int_sioimath.h" typedef struct { mpz_t big; mp_digit digits[(sizeof(uintmax_t) + sizeof(mp_digit) - 1) / sizeof(mp_digit)]; } isl_sioimath_scratchspace_t; # 220 "/work/isl_int_sioimath.h" inline void isl_siomath_uint32_to_digits(uint32_t num, mp_digit *digits, mp_size *used) { do { int i = 0; do { (digits)[i] = ((num) >> (sizeof(mp_digit) * 8 * i)); i += 1; if (i >= (sizeof(num) + sizeof(mp_digit) - 1) / sizeof(mp_digit)) break; if (((num) >> (sizeof(mp_digit) * 8 * i)) == 0) break; } while (1); (*used) = i; } while (0); } inline void isl_siomath_ulong_to_digits(unsigned long num, mp_digit *digits, mp_size *used) { do { int i = 0; do { (digits)[i] = ((num) >> (sizeof(mp_digit) * 8 * i)); i += 1; if (i >= (sizeof(num) + sizeof(mp_digit) - 1) / sizeof(mp_digit)) break; if (((num) >> (sizeof(mp_digit) * 8 * i)) == 0) break; } while (1); (*used) = i; } while (0); } inline void isl_siomath_uint64_to_digits(uint64_t num, mp_digit *digits, mp_size *used) { do { int i = 0; do { (digits)[i] = ((num) >> (sizeof(mp_digit) * 8 * i)); i += 1; if (i >= (sizeof(num) + sizeof(mp_digit) - 1) / sizeof(mp_digit)) break; if (((num) >> (sizeof(mp_digit) * 8 * i)) == 0) break; } while (1); (*used) = i; } while (0); } # 247 "/work/isl_int_sioimath.h" inline mp_int isl_sioimath_bigarg_src(isl_sioimath arg, isl_sioimath_scratchspace_t *scratch) { mp_int big; int32_t small; uint32_t num; if (isl_sioimath_decode_big(arg, &big)) return big; small = isl_sioimath_get_small(arg); scratch->big.digits = scratch->digits; scratch->big.alloc = (sizeof(scratch->digits)/sizeof(*scratch->digits)); if (small >= 0) { scratch->big.sign = MP_ZPOS; num = small; } else { scratch->big.sign = MP_NEG; num = -small; } isl_siomath_uint32_to_digits(num, scratch->digits, &scratch->big.used); return &scratch->big; } inline mp_int isl_sioimath_siarg_src(signed long arg, isl_sioimath_scratchspace_t *scratch) { unsigned long num; scratch->big.digits = scratch->digits; scratch->big.alloc = (sizeof(scratch->digits)/sizeof(*scratch->digits)); if (arg >= 0) { scratch->big.sign = MP_ZPOS; num = arg; } else { scratch->big.sign = MP_NEG; num = (arg == (-9223372036854775807L -1L)) ? ((unsigned long) 9223372036854775807L) + 1 : -arg; } isl_siomath_ulong_to_digits(num, scratch->digits, &scratch->big.used); return &scratch->big; } inline mp_int isl_sioimath_si64arg_src(int64_t arg, isl_sioimath_scratchspace_t *scratch) { uint64_t num; scratch->big.digits = scratch->digits; scratch->big.alloc = (sizeof(scratch->digits)/sizeof(*scratch->digits)); if (arg >= 0) { scratch->big.sign = MP_ZPOS; num = arg; } else { scratch->big.sign = MP_NEG; num = (arg == (-9223372036854775807L -1)) ? ((uint64_t) (9223372036854775807L)) + 1 : -arg; } isl_siomath_uint64_to_digits(num, scratch->digits, &scratch->big.used); return &scratch->big; } inline mp_int isl_sioimath_uiarg_src(unsigned long arg, isl_sioimath_scratchspace_t *scratch) { scratch->big.digits = scratch->digits; scratch->big.alloc = (sizeof(scratch->digits)/sizeof(*scratch->digits)); scratch->big.sign = MP_ZPOS; isl_siomath_ulong_to_digits(arg, scratch->digits, &scratch->big.used); return &scratch->big; } inline mp_int isl_sioimath_reinit_big(isl_sioimath_ptr ptr) { if (isl_sioimath_is_small(*ptr)) *ptr = isl_sioimath_encode_big(mp_int_alloc()); return isl_sioimath_get_big(*ptr); } inline void isl_sioimath_set_small(isl_sioimath_ptr ptr, int32_t val) { if (isl_sioimath_is_big(*ptr)) mp_int_free(isl_sioimath_get_big(*ptr)); *ptr = isl_sioimath_encode_small(val); } inline void isl_sioimath_set_int32(isl_sioimath_ptr ptr, int32_t val) { if ((-(2147483647)) <= val && val <= (2147483647)) { isl_sioimath_set_small(ptr, val); return; } mp_int_init_value(isl_sioimath_reinit_big(ptr), val); } inline void isl_sioimath_set_int64(isl_sioimath_ptr ptr, int64_t val) { if ((-(2147483647)) <= val && val <= (2147483647)) { isl_sioimath_set_small(ptr, val); return; } isl_sioimath_scratchspace_t scratch; mp_int_copy(isl_sioimath_si64arg_src(val, &scratch), isl_sioimath_reinit_big(ptr)); } inline void isl_sioimath_promote(isl_sioimath_ptr dst) { int32_t small; if (isl_sioimath_is_big(*dst)) return; small = isl_sioimath_get_small(*dst); mp_int_set_value(isl_sioimath_reinit_big(dst), small); } inline void isl_sioimath_try_demote(isl_sioimath_ptr dst) { mp_small small; if (isl_sioimath_is_small(*dst)) return; if (mp_int_to_int(isl_sioimath_get_big(*dst), &small) != MP_OK) return; if ((-(2147483647)) <= small && small <= (2147483647)) isl_sioimath_set_small(dst, small); } inline void isl_sioimath_init(isl_sioimath_ptr dst) { *dst = isl_sioimath_encode_small(0); } inline void isl_sioimath_clear(isl_sioimath_ptr dst) { if (isl_sioimath_is_small(*dst)) return; mp_int_free(isl_sioimath_get_big(*dst)); } inline void isl_sioimath_set(isl_sioimath_ptr dst, isl_sioimath_src val) { if (isl_sioimath_is_small(val)) { isl_sioimath_set_small(dst, isl_sioimath_get_small(val)); return; } mp_int_copy(isl_sioimath_get_big(val), isl_sioimath_reinit_big(dst)); } inline void isl_sioimath_set_si(isl_sioimath_ptr dst, long val) { if ((-(2147483647)) <= val && val <= (2147483647)) { isl_sioimath_set_small(dst, val); return; } mp_int_set_value(isl_sioimath_reinit_big(dst), val); } inline void isl_sioimath_set_ui(isl_sioimath_ptr dst, unsigned long val) { if (val <= (2147483647)) { isl_sioimath_set_small(dst, val); return; } mp_int_set_uvalue(isl_sioimath_reinit_big(dst), val); } inline int isl_sioimath_fits_slong(isl_sioimath_src val) { mp_small dummy; if (isl_sioimath_is_small(val)) return 1; return mp_int_to_int(isl_sioimath_get_big(val), &dummy) == MP_OK; } inline long isl_sioimath_get_si(isl_sioimath_src val) { mp_small result; if (isl_sioimath_is_small(val)) return isl_sioimath_get_small(val); mp_int_to_int(isl_sioimath_get_big(val), &result); return result; } inline int isl_sioimath_fits_ulong(isl_sioimath_src val) { mp_usmall dummy; if (isl_sioimath_is_small(val)) return isl_sioimath_get_small(val) >= 0; return mp_int_to_uint(isl_sioimath_get_big(val), &dummy) == MP_OK; } inline unsigned long isl_sioimath_get_ui(isl_sioimath_src val) { mp_usmall result; if (isl_sioimath_is_small(val)) return isl_sioimath_get_small(val); mp_int_to_uint(isl_sioimath_get_big(val), &result); return result; } inline double isl_sioimath_get_d(isl_sioimath_src val) { mp_int big; double result = 0; int i; if (isl_sioimath_is_small(val)) return isl_sioimath_get_small(val); big = isl_sioimath_get_big(val); for (i = 0; i < big->used; ++i) result = result * (double) ((uintmax_t) ((4294967295U) * 1UL) + 1) + (double) big->digits[i]; if (big->sign == MP_NEG) result = -result; return result; } inline char *isl_sioimath_get_str(isl_sioimath_src val) { char *result; if (isl_sioimath_is_small(val)) { result = (char *)malloc(12); snprintf(result, 12, "%" "i", isl_sioimath_get_small(val)); return result; } return impz_get_str(__null, 10, isl_sioimath_get_big(val)); } inline void isl_sioimath_abs(isl_sioimath_ptr dst, isl_sioimath_src arg) { if (isl_sioimath_is_small(arg)) { isl_sioimath_set_small(dst, labs(isl_sioimath_get_small(arg))); return; } mp_int_abs(isl_sioimath_get_big(arg), isl_sioimath_reinit_big(dst)); } inline void isl_sioimath_neg(isl_sioimath_ptr dst, isl_sioimath_src arg) { if (isl_sioimath_is_small(arg)) { isl_sioimath_set_small(dst, -isl_sioimath_get_small(arg)); return; } mp_int_neg(isl_sioimath_get_big(arg), isl_sioimath_reinit_big(dst)); } inline void isl_sioimath_swap(isl_sioimath_ptr lhs, isl_sioimath_ptr rhs) { isl_sioimath tmp = *lhs; *lhs = *rhs; *rhs = tmp; } inline void isl_sioimath_add_ui(isl_sioimath_ptr dst, isl_sioimath lhs, unsigned long rhs) { int32_t smalllhs; isl_sioimath_scratchspace_t lhsscratch; if (isl_sioimath_decode_small(lhs, &smalllhs) && (rhs <= (uint64_t) (9223372036854775807L) - (uint64_t) (2147483647))) { isl_sioimath_set_int64(dst, (int64_t) smalllhs + rhs); return; } impz_add_ui(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), rhs); isl_sioimath_try_demote(dst); } inline void isl_sioimath_sub_ui(isl_sioimath_ptr dst, isl_sioimath lhs, unsigned long rhs) { int32_t smalllhs; isl_sioimath_scratchspace_t lhsscratch; if (isl_sioimath_decode_small(lhs, &smalllhs) && (rhs < (uint64_t) (-9223372036854775807L -1) - (uint64_t) (-(2147483647)))) { isl_sioimath_set_int64(dst, (int64_t) smalllhs - rhs); return; } impz_sub_ui(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), rhs); isl_sioimath_try_demote(dst); } inline void isl_sioimath_add(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t scratchlhs, scratchrhs; int32_t smalllhs, smallrhs; if (isl_sioimath_decode_small(lhs, &smalllhs) && isl_sioimath_decode_small(rhs, &smallrhs)) { isl_sioimath_set_int64( dst, (int64_t) smalllhs + (int64_t) smallrhs); return; } mp_int_add(isl_sioimath_bigarg_src(lhs, &scratchlhs), isl_sioimath_bigarg_src(rhs, &scratchrhs), isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_sub(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t scratchlhs, scratchrhs; int32_t smalllhs, smallrhs; if (isl_sioimath_decode_small(lhs, &smalllhs) && isl_sioimath_decode_small(rhs, &smallrhs)) { isl_sioimath_set_int64( dst, (int64_t) smalllhs - (int64_t) smallrhs); return; } mp_int_sub(isl_sioimath_bigarg_src(lhs, &scratchlhs), isl_sioimath_bigarg_src(rhs, &scratchrhs), isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_mul(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t scratchlhs, scratchrhs; int32_t smalllhs, smallrhs; if (isl_sioimath_decode_small(lhs, &smalllhs) && isl_sioimath_decode_small(rhs, &smallrhs)) { isl_sioimath_set_int64( dst, (int64_t) smalllhs * (int64_t) smallrhs); return; } mp_int_mul(isl_sioimath_bigarg_src(lhs, &scratchlhs), isl_sioimath_bigarg_src(rhs, &scratchrhs), isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_mul_2exp(isl_sioimath_ptr dst, isl_sioimath lhs, unsigned long rhs) { isl_sioimath_scratchspace_t scratchlhs; int32_t smalllhs; if (isl_sioimath_decode_small(lhs, &smalllhs) && (rhs <= 32ul)) { isl_sioimath_set_int64(dst, ((int64_t) smalllhs) << rhs); return; } mp_int_mul_pow2(isl_sioimath_bigarg_src(lhs, &scratchlhs), rhs, isl_sioimath_reinit_big(dst)); } inline void isl_sioimath_mul_si(isl_sioimath_ptr dst, isl_sioimath lhs, signed long rhs) { isl_sioimath_scratchspace_t scratchlhs, scratchrhs; int32_t smalllhs; if (isl_sioimath_decode_small(lhs, &smalllhs) && (rhs > (-9223372036854775807L -1L)) && (labs(rhs) <= (4294967295U))) { isl_sioimath_set_int64(dst, (int64_t) smalllhs * (int64_t) rhs); return; } mp_int_mul(isl_sioimath_bigarg_src(lhs, &scratchlhs), isl_sioimath_siarg_src(rhs, &scratchrhs), isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_mul_ui(isl_sioimath_ptr dst, isl_sioimath lhs, unsigned long rhs) { isl_sioimath_scratchspace_t scratchlhs, scratchrhs; int32_t smalllhs; if (isl_sioimath_decode_small(lhs, &smalllhs) && (rhs <= (4294967295U))) { isl_sioimath_set_int64(dst, (int64_t) smalllhs * (int64_t) rhs); return; } mp_int_mul(isl_sioimath_bigarg_src(lhs, &scratchlhs), isl_sioimath_uiarg_src(rhs, &scratchrhs), isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_pow_ui(isl_sioimath_ptr dst, isl_sioimath_src lhs, unsigned long rhs) { isl_sioimath_scratchspace_t scratchlhs, scratchrhs; int32_t smalllhs; switch (rhs) { case 0: isl_sioimath_set_small(dst, 1); return; case 1: isl_sioimath_set(dst, lhs); return; case 2: isl_sioimath_mul(dst, lhs, lhs); return; } if (isl_sioimath_decode_small(lhs, &smalllhs)) { switch (smalllhs) { case 0: isl_sioimath_set_small(dst, 0); return; case 1: isl_sioimath_set_small(dst, 1); return; case 2: isl_sioimath_set_small(dst, 1); isl_sioimath_mul_2exp(dst, *dst, rhs); return; default: if (((-9223372036854775807L -1L) <= rhs) && (rhs <= 9223372036854775807L)) { mp_int_expt_value(smalllhs, rhs, isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); return; } } } mp_int_expt_full(isl_sioimath_bigarg_src(lhs, &scratchlhs), isl_sioimath_uiarg_src(rhs, &scratchrhs), isl_sioimath_reinit_big(dst)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_addmul(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath tmp; isl_sioimath_init(&tmp); isl_sioimath_mul(&tmp, lhs, rhs); isl_sioimath_add(dst, *dst, tmp); isl_sioimath_clear(&tmp); } inline void isl_sioimath_addmul_ui(isl_sioimath_ptr dst, isl_sioimath_src lhs, unsigned long rhs) { isl_sioimath tmp; isl_sioimath_init(&tmp); isl_sioimath_mul_ui(&tmp, lhs, rhs); isl_sioimath_add(dst, *dst, tmp); isl_sioimath_clear(&tmp); } inline void isl_sioimath_submul(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath tmp; isl_sioimath_init(&tmp); isl_sioimath_mul(&tmp, lhs, rhs); isl_sioimath_sub(dst, *dst, tmp); isl_sioimath_clear(&tmp); } inline void isl_sioimath_submul_ui(isl_sioimath_ptr dst, isl_sioimath_src lhs, unsigned long rhs) { isl_sioimath tmp; isl_sioimath_init(&tmp); isl_sioimath_mul_ui(&tmp, lhs, rhs); isl_sioimath_sub(dst, *dst, tmp); isl_sioimath_clear(&tmp); } void isl_sioimath_gcd(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs); void isl_sioimath_lcm(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs); inline void isl_sioimath_tdiv_q(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, rhssmall; if (isl_sioimath_decode_small(lhs, &lhssmall) && isl_sioimath_decode_small(rhs, &rhssmall)) { isl_sioimath_set_small(dst, lhssmall / rhssmall); return; } mp_int_div(isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_bigarg_src(rhs, &rhsscratch), isl_sioimath_reinit_big(dst), __null); isl_sioimath_try_demote(dst); return; } inline void isl_sioimath_tdiv_q_ui(isl_sioimath_ptr dst, isl_sioimath_src lhs, unsigned long rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall; if (isl_sioimath_is_small(lhs) && (rhs <= (unsigned long) (2147483647))) { lhssmall = isl_sioimath_get_small(lhs); isl_sioimath_set_small(dst, lhssmall / (int32_t) rhs); return; } if (rhs <= 9223372036854775807L) { mp_int_div_value(isl_sioimath_bigarg_src(lhs, &lhsscratch), rhs, isl_sioimath_reinit_big(dst), __null); isl_sioimath_try_demote(dst); return; } mp_int_div(isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_uiarg_src(rhs, &rhsscratch), isl_sioimath_reinit_big(dst), __null); isl_sioimath_try_demote(dst); } inline void isl_sioimath_cdiv_q(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { int32_t lhssmall, rhssmall; isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t q; if (isl_sioimath_decode_small(lhs, &lhssmall) && isl_sioimath_decode_small(rhs, &rhssmall)) { if ((lhssmall >= 0) && (rhssmall >= 0)) q = ((int64_t) lhssmall + (int64_t) rhssmall - 1) / rhssmall; else if ((lhssmall < 0) && (rhssmall < 0)) q = ((int64_t) lhssmall + (int64_t) rhssmall + 1) / rhssmall; else q = lhssmall / rhssmall; isl_sioimath_set_small(dst, q); return; } impz_cdiv_q(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_bigarg_src(rhs, &rhsscratch)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_cdiv_q_ui(isl_sioimath_ptr dst, isl_sioimath_src lhs, unsigned long rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, q; if (isl_sioimath_decode_small(lhs, &lhssmall) && (rhs <= (2147483647))) { if (lhssmall >= 0) q = ((int64_t) lhssmall + ((int64_t) rhs - 1)) / (int64_t) rhs; else q = lhssmall / (int32_t) rhs; isl_sioimath_set_small(dst, q); return; } impz_cdiv_q(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_uiarg_src(rhs, &rhsscratch)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_fdiv_q(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, rhssmall; int32_t q; if (isl_sioimath_decode_small(lhs, &lhssmall) && isl_sioimath_decode_small(rhs, &rhssmall)) { if ((lhssmall < 0) && (rhssmall >= 0)) q = ((int64_t) lhssmall - ((int64_t) rhssmall - 1)) / rhssmall; else if ((lhssmall >= 0) && (rhssmall < 0)) q = ((int64_t) lhssmall - ((int64_t) rhssmall + 1)) / rhssmall; else q = lhssmall / rhssmall; isl_sioimath_set_small(dst, q); return; } impz_fdiv_q(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_bigarg_src(rhs, &rhsscratch)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_fdiv_q_ui(isl_sioimath_ptr dst, isl_sioimath_src lhs, unsigned long rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, q; if (isl_sioimath_decode_small(lhs, &lhssmall) && (rhs <= (2147483647))) { if (lhssmall >= 0) q = (uint32_t) lhssmall / rhs; else q = ((int64_t) lhssmall - ((int64_t) rhs - 1)) / (int64_t) rhs; isl_sioimath_set_small(dst, q); return; } impz_fdiv_q(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_uiarg_src(rhs, &rhsscratch)); isl_sioimath_try_demote(dst); } inline void isl_sioimath_fdiv_r(isl_sioimath_ptr dst, isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int64_t lhssmall, rhssmall; int32_t r; if (isl_sioimath_is_small(lhs) && isl_sioimath_is_small(rhs)) { lhssmall = isl_sioimath_get_small(lhs); rhssmall = isl_sioimath_get_small(rhs); r = (rhssmall + lhssmall % rhssmall) % rhssmall; isl_sioimath_set_small(dst, r); return; } impz_fdiv_r(isl_sioimath_reinit_big(dst), isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_bigarg_src(rhs, &rhsscratch)); isl_sioimath_try_demote(dst); } void isl_sioimath_read(isl_sioimath_ptr dst, const char *str); inline int isl_sioimath_sgn(isl_sioimath_src arg) { int32_t small; if (isl_sioimath_decode_small(arg, &small)) return (small > 0) - (small < 0); return mp_int_compare_zero(isl_sioimath_get_big(arg)); } inline int isl_sioimath_cmp(isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, rhssmall; if (isl_sioimath_decode_small(lhs, &lhssmall) && isl_sioimath_decode_small(rhs, &rhssmall)) return (lhssmall > rhssmall) - (lhssmall < rhssmall); if (isl_sioimath_decode_small(rhs, &rhssmall)) return mp_int_compare_value( isl_sioimath_bigarg_src(lhs, &lhsscratch), rhssmall); if (isl_sioimath_decode_small(lhs, &lhssmall)) return -mp_int_compare_value( isl_sioimath_bigarg_src(rhs, &rhsscratch), lhssmall); return mp_int_compare( isl_sioimath_get_big(lhs), isl_sioimath_get_big(rhs)); } inline int isl_sioimath_cmp_si(isl_sioimath_src lhs, signed long rhs) { int32_t lhssmall; if (isl_sioimath_decode_small(lhs, &lhssmall)) return (lhssmall > rhs) - (lhssmall < rhs); return mp_int_compare_value(isl_sioimath_get_big(lhs), rhs); } inline int isl_sioimath_abs_cmp(isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, rhssmall; if (isl_sioimath_decode_small(lhs, &lhssmall) && isl_sioimath_decode_small(rhs, &rhssmall)) { lhssmall = labs(lhssmall); rhssmall = labs(rhssmall); return (lhssmall > rhssmall) - (lhssmall < rhssmall); } return mp_int_compare_unsigned( isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_bigarg_src(rhs, &rhsscratch)); } inline int isl_sioimath_is_divisible_by(isl_sioimath_src lhs, isl_sioimath_src rhs) { isl_sioimath_scratchspace_t lhsscratch, rhsscratch; int32_t lhssmall, rhssmall; mpz_t rem; int cmp; if (isl_sioimath_sgn(rhs) == 0) return isl_sioimath_sgn(lhs) == 0; if (isl_sioimath_decode_small(lhs, &lhssmall) && isl_sioimath_decode_small(rhs, &rhssmall)) return lhssmall % rhssmall == 0; if (isl_sioimath_decode_small(rhs, &rhssmall)) return mp_int_divisible_value( isl_sioimath_bigarg_src(lhs, &lhsscratch), rhssmall); mp_int_init(&rem); mp_int_div(isl_sioimath_bigarg_src(lhs, &lhsscratch), isl_sioimath_bigarg_src(rhs, &rhsscratch), __null, &rem); cmp = mp_int_compare_zero(&rem); mp_int_clear(&rem); return cmp == 0; } inline uint32_t isl_sioimath_hash(isl_sioimath_src arg, uint32_t hash) { int32_t small; int i; uint32_t num; mp_digit digits[(sizeof(uint32_t) + sizeof(mp_digit) - 1) / sizeof(mp_digit)]; mp_size used; const unsigned char *digitdata = (const unsigned char *) &digits; if (isl_sioimath_decode_small(arg, &small)) { if (small < 0) do { hash *= 16777619; hash ^= 0xFF; } while(0); num = labs(small); isl_siomath_uint32_to_digits(num, digits, &used); for (i = 0; i < used * sizeof(mp_digit); i += 1) do { hash *= 16777619; hash ^= digitdata[i]; } while(0); return hash; } return isl_imath_hash(isl_sioimath_get_big(arg), hash); } # 1176 "/work/isl_int_sioimath.h" inline size_t isl_sioimath_sizeinbase(isl_sioimath_src arg, int base) { int32_t small; if (isl_sioimath_decode_small(arg, &small)) return sizeof(int32_t) * 8 - 1; return impz_sizeinbase(isl_sioimath_get_big(arg), base); } void isl_sioimath_print(FILE *out, isl_sioimath_src i, int width); void isl_sioimath_dump(isl_sioimath_src arg); typedef isl_sioimath isl_int[1]; # 26 "/work/isl_int.h" 2 # 49 "/work/isl_int.h" isl_printer *isl_printer_print_isl_int( isl_printer *p, isl_int i); # 14 "/work/isl_blk.h" 2 extern "C" { struct isl_blk { size_t size; isl_int *data; }; struct isl_ctx; struct isl_blk isl_blk_alloc(struct isl_ctx *ctx, size_t n); struct isl_blk isl_blk_empty(void); int isl_blk_is_error(struct isl_blk block); struct isl_blk isl_blk_extend(struct isl_ctx *ctx, struct isl_blk block, size_t new_n); void isl_blk_free(struct isl_ctx *ctx, struct isl_blk block); void isl_blk_clear_cache(struct isl_ctx *ctx); } # 25 "/work/isl_map_private.h" 2 extern "C" { # 39 "/work/isl_map_private.h" struct isl_basic_map { int ref; # 59 "/work/isl_map_private.h" unsigned flags; struct isl_ctx *ctx; isl_space *dim; unsigned extra; unsigned n_eq; unsigned n_ineq; size_t c_size; isl_int **eq; isl_int **ineq; unsigned n_div; isl_int **div; struct isl_vec *sample; struct isl_blk block; struct isl_blk block2; }; # 1 "/work/isl_list_templ.h" 1 struct isl_basic_map_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_basic_map *p[1]; }; isl_basic_map_list *isl_basic_map_list_dup( isl_basic_map_list *list); # 87 "/work/isl_map_private.h" 2 # 99 "/work/isl_map_private.h" struct isl_map { int ref; unsigned flags; isl_basic_map *cached_simple_hull[2]; struct isl_ctx *ctx; isl_space *dim; int n; size_t size; struct isl_basic_map *p[1]; }; # 1 "/work/isl_list_templ.h" 1 struct isl_map_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_map *p[1]; }; isl_map_list *isl_map_list_dup( isl_map_list *list); # 122 "/work/isl_map_private.h" 2 isl_basic_map *isl_basic_set_alloc(isl_ctx *ctx, unsigned nparam, unsigned dim, unsigned extra, unsigned n_eq, unsigned n_ineq); isl_basic_map *isl_basic_set_extend_constraints( isl_basic_map *base, unsigned n_eq, unsigned n_ineq); isl_basic_map *isl_basic_set_finalize( isl_basic_map *bset); isl_basic_map *isl_basic_set_dup( isl_basic_map *bset); isl_basic_map *isl_basic_set_simplify( isl_basic_map *bset); isl_basic_map *isl_basic_map_alloc(isl_ctx *ctx, unsigned nparam, unsigned in, unsigned out, unsigned extra, unsigned n_eq, unsigned n_ineq); isl_basic_map *isl_basic_map_mark_final( isl_basic_map *bmap); isl_basic_map *isl_basic_map_finalize( isl_basic_map *bmap); isl_basic_map *isl_basic_map_extend( isl_basic_map *base, unsigned nparam, unsigned n_in, unsigned n_out, unsigned extra, unsigned n_eq, unsigned n_ineq); isl_basic_map *isl_basic_map_extend_constraints( isl_basic_map *base, unsigned n_eq, unsigned n_ineq); isl_basic_map *isl_basic_map_simplify( isl_basic_map *bmap); isl_map *isl_set_add_basic_set( isl_map *set, isl_basic_map *bset); isl_map *isl_map_add_basic_map( isl_map *map, isl_basic_map *bmap); isl_map *isl_map_dup( isl_map *map); isl_basic_map *isl_basic_set_from_underlying_set( isl_basic_map *bset, isl_basic_map *like); isl_map *isl_map_realign( isl_map *map, isl_reordering *r); isl_map *isl_set_realign( isl_map *set, isl_reordering *r); isl_basic_map *isl_basic_map_reset( isl_basic_map *bmap, enum isl_dim_type type); isl_map *isl_map_reset( isl_map *map, enum isl_dim_type type); isl_space *isl_basic_map_peek_space( const isl_basic_map *bmap); isl_space *isl_basic_set_peek_space( isl_basic_map *bset); isl_space *isl_map_peek_space( const isl_map *map); isl_space *isl_set_peek_space( isl_map *set); isl_basic_map *isl_basic_set_reset_space( isl_basic_map *bset, isl_space *dim); isl_basic_map *isl_basic_map_reset_space( isl_basic_map *bmap, isl_space *dim); isl_map *isl_map_reset_space( isl_map *map, isl_space *space); isl_map *isl_map_reset_equal_dim_space( isl_map *map, isl_space *space); isl_size isl_basic_map_var_offset( isl_basic_map *bmap, enum isl_dim_type type); isl_size isl_basic_set_var_offset( isl_basic_map *bset, enum isl_dim_type type); unsigned isl_basic_map_offset( isl_basic_map *bmap, enum isl_dim_type type); unsigned isl_basic_set_offset( isl_basic_map *bset, enum isl_dim_type type); isl_bool isl_basic_map_may_be_set( isl_basic_map *bmap); int isl_map_may_be_set( isl_map *map); isl_bool isl_map_compatible_domain( isl_map *map, isl_map *set); isl_bool isl_basic_map_compatible_domain( isl_basic_map *bmap, isl_basic_map *bset); isl_bool isl_basic_map_compatible_range( isl_basic_map *bmap, isl_basic_map *bset); isl_basic_map *isl_basic_map_extend_space( isl_basic_map *base, isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq); isl_basic_map *isl_basic_set_extend_space( isl_basic_map *base, isl_space *dim, unsigned extra, unsigned n_eq, unsigned n_ineq); struct isl_basic_map *isl_basic_set_add_constraints(struct isl_basic_map *bset1, struct isl_basic_map *bset2, unsigned pos); isl_map *isl_map_grow( isl_map *map, int n); struct isl_map *isl_set_grow(struct isl_map *set, int n); isl_bool isl_basic_set_contains( isl_basic_map *bset, isl_vec *vec); isl_bool isl_basic_map_contains( isl_basic_map *bmap, isl_vec *vec); isl_basic_map *isl_basic_set_alloc_space( isl_space *dim, unsigned extra, unsigned n_eq, unsigned n_ineq); isl_map *isl_set_alloc_space( isl_space *dim, int n, unsigned flags); isl_basic_map *isl_basic_map_alloc_space( isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq); isl_map *isl_map_alloc_space( isl_space *dim, int n, unsigned flags); int isl_basic_map_alloc_equality(struct isl_basic_map *bmap); int isl_basic_set_alloc_equality(struct isl_basic_map *bset); isl_basic_map *isl_basic_set_free_inequality( isl_basic_map *bset, unsigned n); isl_basic_map *isl_basic_map_free_equality( isl_basic_map *bmap, unsigned n); isl_basic_map *isl_basic_set_free_equality( isl_basic_map *bset, unsigned n); int isl_basic_set_alloc_inequality( isl_basic_map *bset); int isl_basic_map_alloc_inequality( isl_basic_map *bmap); isl_basic_map *isl_basic_map_free_inequality( isl_basic_map *bmap, unsigned n); int isl_basic_map_alloc_div(struct isl_basic_map *bmap); isl_basic_map *isl_basic_map_insert_div( isl_basic_map *bmap, int pos, isl_vec *div); int isl_basic_set_alloc_div(struct isl_basic_map *bset); isl_stat isl_basic_map_free_div(struct isl_basic_map *bmap, unsigned n); isl_basic_map *isl_basic_map_drop_div( isl_basic_map *bmap, unsigned div); void isl_basic_map_inequality_to_equality( struct isl_basic_map *bmap, unsigned pos); int isl_basic_map_drop_equality(struct isl_basic_map *bmap, unsigned pos); int isl_basic_set_drop_inequality(struct isl_basic_map *bset, unsigned pos); int isl_basic_map_drop_inequality(struct isl_basic_map *bmap, unsigned pos); isl_basic_map *isl_basic_set_add_eq( isl_basic_map *bset, isl_int *eq); isl_basic_map *isl_basic_map_add_eq( isl_basic_map *bmap, isl_int *eq); isl_basic_map *isl_basic_set_add_ineq( isl_basic_map *bset, isl_int *ineq); isl_basic_map *isl_basic_map_add_ineq( isl_basic_map *bmap, isl_int *ineq); isl_basic_map *isl_basic_set_tighten_outward( isl_basic_map *bset, isl_vec *vec); isl_basic_map *isl_inequality_negate( isl_basic_map *bmap, unsigned pos); isl_bool isl_basic_map_has_single_reference( isl_basic_map *bmap); isl_basic_map *isl_basic_set_cow( isl_basic_map *bset); isl_basic_map *isl_basic_map_cow( isl_basic_map *bmap); isl_map *isl_set_cow( isl_map *set); isl_map *isl_map_cow( isl_map *map); uint32_t isl_basic_map_get_hash( isl_basic_map *bmap); isl_map *isl_basic_set_list_union( isl_basic_map_list *list); isl_basic_map *isl_basic_map_set_to_empty( isl_basic_map *bmap); isl_basic_map *isl_basic_set_set_to_empty( isl_basic_map *bset); struct isl_basic_map *isl_basic_set_order_divs(struct isl_basic_map *bset); isl_basic_map *isl_basic_map_swap_div( isl_basic_map *bmap, int a, int b); isl_basic_map *isl_basic_map_order_divs( isl_basic_map *bmap); isl_map *isl_map_order_divs( isl_map *map); isl_basic_map *isl_basic_map_align_divs( isl_basic_map *dst, isl_basic_map *src); isl_map *isl_map_align_divs_to_basic_map_list( isl_map *map, isl_basic_map_list *list); isl_basic_map_list *isl_basic_map_list_align_divs_to_basic_map( isl_basic_map_list *list, isl_basic_map *bmap); isl_map *isl_map_align_divs_internal( isl_map *map); isl_basic_map *isl_basic_set_sort_divs( isl_basic_map *bset); isl_basic_map *isl_basic_map_sort_divs( isl_basic_map *bmap); isl_map *isl_map_sort_divs( isl_map *map); isl_basic_map *isl_basic_map_gauss5( isl_basic_map *bmap, int *progress, isl_stat (*swap)(unsigned a, unsigned b, void *user), isl_stat (*drop)(unsigned n, void *user), void *user); isl_basic_map *isl_basic_map_gauss( isl_basic_map *bmap, int *progress); isl_basic_map *isl_basic_set_gauss( isl_basic_map *bset, int *progress); int isl_basic_map_constraint_cmp( isl_basic_map *bmap, isl_int *c1, isl_int *c2); isl_basic_map *isl_basic_map_sort_constraints( isl_basic_map *bmap); isl_basic_map *isl_basic_set_sort_constraints( isl_basic_map *bset); int isl_basic_map_plain_cmp( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_bool isl_basic_map_plain_is_equal( isl_basic_map *bmap1, isl_basic_map *bmap2); isl_basic_map *isl_basic_map_normalize_constraints( isl_basic_map *bmap); isl_basic_map *isl_basic_set_normalize_constraints( isl_basic_map *bset); isl_basic_map *isl_basic_map_implicit_equalities( isl_basic_map *bmap); isl_basic_map *isl_basic_map_underlying_set( isl_basic_map *bmap); isl_basic_map *isl_basic_set_underlying_set( isl_basic_map *bset); isl_basic_map_list *isl_basic_map_list_underlying_set( isl_basic_map_list *list); isl_map *isl_map_underlying_set( isl_map *map); isl_basic_map *isl_basic_map_overlying_set( isl_basic_map *bset, isl_basic_map *like); isl_basic_map *isl_basic_map_drop_constraint_involving_unknown_divs( isl_basic_map *bmap); isl_map *isl_map_drop_constraint_involving_unknown_divs( isl_map *map); isl_basic_map *isl_basic_map_drop_constraints_involving( isl_basic_map *bmap, unsigned first, unsigned n); isl_basic_map *isl_basic_set_drop_constraints_involving( isl_basic_map *bset, unsigned first, unsigned n); isl_basic_map *isl_basic_set_drop( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_drop( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_drop( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_set_drop_dims( isl_basic_map *bset, unsigned first, unsigned n); isl_map *isl_map_drop( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_drop_unrelated_constraints( isl_basic_map *bmap, int *group); isl_basic_map *isl_basic_map_dup( isl_basic_map *bmap); isl_basic_map *isl_basic_map_remove_duplicate_constraints( isl_basic_map *bmap, int *progress, int detect_divs); isl_basic_map *isl_basic_map_detect_inequality_pairs( isl_basic_map *bmap, int *progress); isl_map *isl_map_remove_empty_parts( isl_map *map); struct isl_map *isl_set_remove_empty_parts(struct isl_map *set); isl_map *isl_map_remove_obvious_duplicates( isl_map *map); struct isl_map *isl_set_normalize(struct isl_map *set); struct isl_map *isl_set_drop_vars( struct isl_map *set, unsigned first, unsigned n); isl_basic_map *isl_basic_map_eliminate_vars( isl_basic_map *bmap, unsigned pos, unsigned n); struct isl_basic_map *isl_basic_set_eliminate_vars( struct isl_basic_map *bset, unsigned pos, unsigned n); isl_map *isl_map_eliminate( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_set_eliminate( isl_map *set, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_map_project_onto( isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); isl_basic_map *isl_basic_map_add_div_constraint( isl_basic_map *bmap, unsigned div, int sign); isl_basic_map *isl_basic_map_add_div_constraints( isl_basic_map *bmap, unsigned div); isl_basic_map *isl_basic_map_add_known_div_constraints( isl_basic_map *bmap); isl_basic_map *isl_basic_map_drop_redundant_divs( isl_basic_map *bmap); isl_basic_map *isl_basic_set_recession_cone( isl_basic_map *bset); isl_basic_map *isl_basic_set_lineality_space( isl_basic_map *bset); isl_basic_map *isl_set_combined_lineality_space( isl_map *set); isl_basic_map *isl_basic_set_set_integral( isl_basic_map *bset); isl_basic_map *isl_basic_set_set_rational( isl_basic_map *bset); isl_map *isl_set_set_rational( isl_map *set); isl_basic_map *isl_basic_map_set_rational( isl_basic_map *bmap); isl_map *isl_map_set_rational( isl_map *map); isl_bool isl_map_is_rational( isl_map *map); isl_bool isl_set_is_rational( isl_map *set); isl_bool isl_map_has_rational( isl_map *map); isl_bool isl_set_has_rational( isl_map *set); isl_basic_map *isl_basic_map_from_multi_aff2( isl_multi_aff *maff, int rational); isl_map *isl_map_from_multi_aff_internal( isl_multi_aff *ma); isl_map *isl_map_from_pw_aff_internal( isl_pw_aff *pa); struct isl_mat; isl_basic_map *isl_basic_set_preimage( isl_basic_map *bset, isl_mat *mat); isl_map *isl_set_preimage( isl_map *set, isl_mat *mat); isl_basic_map *isl_basic_map_transform_dims( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, isl_mat *trans); isl_basic_map *isl_basic_set_transform_dims( isl_basic_map *bset, enum isl_dim_type type, unsigned first, isl_mat *trans); isl_int *isl_set_wrap_facet( isl_map *set, isl_int *facet, isl_int *ridge); isl_bool isl_basic_map_contains_point( isl_basic_map *bmap, isl_point *point); isl_bool isl_set_contains_point( isl_map *set, isl_point *point); isl_stat isl_basic_set_vars_get_sign( isl_basic_map *bset, unsigned first, unsigned n, int *signs); isl_stat isl_set_foreach_orthant( isl_map *set, isl_stat (*fn)( isl_map *orthant, int *signs, void *user), void *user); isl_bool isl_basic_set_eq_is_stride( isl_basic_map *bset, int i); isl_bool isl_basic_map_is_div_constraint( isl_basic_map *bmap, isl_int *constraint, unsigned div); isl_bool isl_basic_set_is_div_constraint( isl_basic_map *bset, isl_int *constraint, unsigned div); isl_basic_map *isl_basic_set_from_local_space( isl_local_space *ls); isl_basic_map *isl_basic_map_from_local_space( isl_local_space *ls); isl_basic_map *isl_basic_set_expand_divs( isl_basic_map *bset, isl_mat *div, int *exp); isl_basic_map *isl_basic_map_expand_divs( isl_basic_map *bmap, isl_mat *div, int *exp); int isl_basic_set_n_equality( isl_basic_map *bset); int isl_basic_map_n_equality( isl_basic_map *bmap); int isl_basic_set_n_inequality( isl_basic_map *bset); int isl_basic_map_n_inequality( isl_basic_map *bmap); isl_basic_map *isl_basic_map_mark_div_unknown( isl_basic_map *bmap, int div); isl_bool isl_basic_map_div_is_marked_unknown( isl_basic_map *bmap, int div); isl_bool isl_basic_map_div_is_known( isl_basic_map *bmap, int div); int isl_basic_set_first_unknown_div( isl_basic_map *bset); int isl_basic_map_first_unknown_div( isl_basic_map *bmap); isl_bool isl_basic_map_divs_known( isl_basic_map *bmap); isl_bool isl_map_divs_known( isl_map *map); isl_mat *isl_basic_set_get_divs( isl_basic_map *bset); isl_mat *isl_basic_map_get_divs( isl_basic_map *bmap); isl_map *isl_map_inline_foreach_basic_map( isl_map *map, isl_basic_map *(*fn)( isl_basic_map *bmap)); isl_stat isl_basic_set_check_no_params( isl_basic_map *bset); isl_stat isl_basic_set_check_no_locals( isl_basic_map *bset); isl_stat isl_basic_set_check_range( isl_basic_map *bset, enum isl_dim_type type, unsigned first, unsigned n); isl_stat isl_basic_map_check_range( isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n); isl_stat isl_map_check_named_params( isl_map *map); isl_bool isl_map_has_equal_params( isl_map *map1, isl_map *map2); isl_bool isl_basic_set_space_has_equal_params( isl_basic_map *bset, isl_space *space); isl_bool isl_set_space_has_equal_params( isl_map *set, isl_space *space); isl_bool isl_map_space_has_equal_params( isl_map *map, isl_space *space); isl_map *isl_map_align_params_map_map_and( isl_map *map1, isl_map *map2, isl_map *(*fn)( isl_map *map1, isl_map *map2)); isl_bool isl_map_align_params_map_map_and_test( isl_map *map1, isl_map *map2, isl_bool (*fn)( isl_map *map1, isl_map *map2)); isl_map *isl_set_substitute( isl_map *set, enum isl_dim_type type, unsigned pos, isl_aff *subs); isl_map *isl_set_gist_params_basic_set( isl_map *set, isl_basic_map *context); isl_bool isl_map_compatible_range( isl_map *map, isl_map *set); isl_bool isl_basic_map_plain_is_non_empty( isl_basic_map *bmap); isl_bool isl_basic_map_plain_is_single_valued( isl_basic_map *bmap); isl_bool isl_map_is_set( isl_map *map); isl_bool isl_map_is_params( isl_map *map); isl_bool isl_basic_set_plain_dim_is_fixed( isl_basic_map *bset, unsigned dim, isl_int *val); isl_map *isl_set_plain_gist_basic_set( isl_map *set, isl_basic_map *context); isl_map *isl_map_plain_gist_basic_map( isl_map *map, isl_basic_map *context); isl_map *isl_map_plain_gist( isl_map *map, isl_map *context); isl_basic_map *isl_basic_set_plain_affine_hull( isl_basic_map *bset); isl_basic_map *isl_basic_map_plain_affine_hull( isl_basic_map *bmap); isl_stat isl_basic_set_dim_residue_class( isl_basic_map *bset, int pos, isl_int *modulo, isl_int *residue); isl_stat isl_set_dim_residue_class( isl_map *set, int pos, isl_int *modulo, isl_int *residue); isl_basic_map *isl_basic_set_fix( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, isl_int value); isl_basic_map *isl_basic_map_fix( isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int value); isl_map *isl_set_fix( isl_map *set, enum isl_dim_type type, unsigned pos, isl_int value); isl_bool isl_map_plain_is_fixed( isl_map *map, enum isl_dim_type type, unsigned pos, isl_int *val); int isl_basic_map_output_defining_equality( isl_basic_map *bmap, int pos, int *div, int *ineq); isl_basic_map *isl_basic_map_reduce_coefficients( isl_basic_map *bmap); isl_basic_map *isl_basic_map_shift_div( isl_basic_map *bmap, int div, int pos, isl_int shift); int isl_basic_set_count_upto( isl_basic_map *bset, isl_int max, isl_int *count); int isl_set_count_upto( isl_map *set, isl_int max, isl_int *count); isl_stat isl_map_check_equal_tuples( isl_map *map); isl_mat *isl_basic_set_extract_equalities( isl_basic_map *bset); isl_bool isl_basic_map_equal_div_expr_part( isl_basic_map *bmap1, int pos1, isl_basic_map *bmap2, int pos2, unsigned first, unsigned n); isl_bool isl_basic_map_equal_div_expr_except_constant( isl_basic_map *bmap1, int pos1, isl_basic_map *bmap2, int pos2); isl_basic_map *isl_basic_map_set_div_expr_constant_num_si_inplace( isl_basic_map *bmap, int div, int value); } # 22 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_tab.h" 1 # 13 "/work/isl_tab.h" # 1 "/work/include/isl/lp.h" 1 # 13 "/work/include/isl/lp.h" # 1 "/work/include/isl/aff.h" 1 # 1 "/work/build3/include/isl/stdint.h" 1 # 5 "/work/include/isl/aff.h" 2 # 1 "/work/include/isl/union_set_type.h" 1 # 1 "/work/include/isl/union_map_type.h" 1 extern "C" { struct isl_union_map; typedef struct isl_union_map isl_union_map; struct isl_union_map; struct isl_union_map_list; typedef struct isl_union_map_list isl_union_map_list; struct isl_union_set; typedef struct isl_union_set isl_union_set; struct isl_union_set; struct isl_union_set_list; typedef struct isl_union_set_list isl_union_set_list; } # 5 "/work/include/isl/union_set_type.h" 2 # 12 "/work/include/isl/aff.h" 2 extern "C" { isl_aff *isl_aff_zero_on_domain( isl_local_space *ls); isl_aff *isl_aff_val_on_domain( isl_local_space *ls, isl_val *val); isl_aff *isl_aff_var_on_domain( isl_local_space *ls, enum isl_dim_type type, unsigned pos); isl_aff *isl_aff_nan_on_domain( isl_local_space *ls); isl_aff *isl_aff_param_on_domain_space_id( isl_space *space, isl_id *id); isl_aff *isl_aff_copy( isl_aff *aff); isl_aff *isl_aff_free( isl_aff *aff); isl_ctx *isl_aff_get_ctx( isl_aff *aff); uint32_t isl_aff_get_hash( isl_aff *aff); isl_size isl_aff_dim( isl_aff *aff, enum isl_dim_type type); isl_bool isl_aff_involves_dims( isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n); isl_space *isl_aff_get_domain_space( isl_aff *aff); isl_space *isl_aff_get_space( isl_aff *aff); isl_local_space *isl_aff_get_domain_local_space( isl_aff *aff); isl_local_space *isl_aff_get_local_space( isl_aff *aff); const char *isl_aff_get_dim_name( isl_aff *aff, enum isl_dim_type type, unsigned pos); isl_val *isl_aff_get_constant_val( isl_aff *aff); isl_val *isl_aff_get_coefficient_val( isl_aff *aff, enum isl_dim_type type, int pos); int isl_aff_coefficient_sgn( isl_aff *aff, enum isl_dim_type type, int pos); isl_val *isl_aff_get_denominator_val( isl_aff *aff); isl_aff *isl_aff_set_constant_si( isl_aff *aff, int v); isl_aff *isl_aff_set_constant_val( isl_aff *aff, isl_val *v); isl_aff *isl_aff_set_coefficient_si( isl_aff *aff, enum isl_dim_type type, int pos, int v); isl_aff *isl_aff_set_coefficient_val( isl_aff *aff, enum isl_dim_type type, int pos, isl_val *v); isl_aff *isl_aff_add_constant_si( isl_aff *aff, int v); isl_aff *isl_aff_add_constant_val( isl_aff *aff, isl_val *v); isl_aff *isl_aff_add_constant_num_si( isl_aff *aff, int v); isl_aff *isl_aff_add_coefficient_si( isl_aff *aff, enum isl_dim_type type, int pos, int v); isl_aff *isl_aff_add_coefficient_val( isl_aff *aff, enum isl_dim_type type, int pos, isl_val *v); isl_bool isl_aff_is_cst( isl_aff *aff); isl_aff *isl_aff_set_tuple_id( isl_aff *aff, enum isl_dim_type type, isl_id *id); isl_aff *isl_aff_set_dim_name( isl_aff *aff, enum isl_dim_type type, unsigned pos, const char *s); isl_aff *isl_aff_set_dim_id( isl_aff *aff, enum isl_dim_type type, unsigned pos, isl_id *id); int isl_aff_find_dim_by_name( isl_aff *aff, enum isl_dim_type type, const char *name); isl_bool isl_aff_plain_is_equal( isl_aff *aff1, isl_aff *aff2); isl_bool isl_aff_plain_is_zero( isl_aff *aff); isl_bool isl_aff_is_nan( isl_aff *aff); isl_aff *isl_aff_get_div( isl_aff *aff, int pos); isl_aff *isl_aff_from_range( isl_aff *aff); isl_aff *isl_aff_neg( isl_aff *aff); isl_aff *isl_aff_ceil( isl_aff *aff); isl_aff *isl_aff_floor( isl_aff *aff); isl_aff *isl_aff_mod_val( isl_aff *aff, isl_val *mod); isl_aff *isl_aff_mul( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_div( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_add( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_sub( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_scale_val( isl_aff *aff, isl_val *v); isl_aff *isl_aff_scale_down_ui( isl_aff *aff, unsigned f); isl_aff *isl_aff_scale_down_val( isl_aff *aff, isl_val *v); isl_aff *isl_aff_insert_dims( isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n); isl_aff *isl_aff_add_dims( isl_aff *aff, enum isl_dim_type type, unsigned n); isl_aff *isl_aff_move_dims( isl_aff *aff, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_aff *isl_aff_drop_dims( isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n); isl_aff *isl_aff_project_domain_on_params( isl_aff *aff); isl_aff *isl_aff_align_params( isl_aff *aff, isl_space *model); isl_aff *isl_aff_gist( isl_aff *aff, isl_map *context); isl_aff *isl_aff_gist_params( isl_aff *aff, isl_map *context); isl_val *isl_aff_eval( isl_aff *aff, isl_point *pnt); isl_aff *isl_aff_pullback_aff( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_pullback_multi_aff( isl_aff *aff, isl_multi_aff *ma); isl_basic_map *isl_aff_zero_basic_set( isl_aff *aff); isl_basic_map *isl_aff_neg_basic_set( isl_aff *aff); isl_basic_map *isl_aff_eq_basic_set( isl_aff *aff1, isl_aff *aff2); isl_map *isl_aff_eq_set( isl_aff *aff1, isl_aff *aff2); isl_map *isl_aff_ne_set( isl_aff *aff1, isl_aff *aff2); isl_basic_map *isl_aff_le_basic_set( isl_aff *aff1, isl_aff *aff2); isl_map *isl_aff_le_set( isl_aff *aff1, isl_aff *aff2); isl_basic_map *isl_aff_lt_basic_set( isl_aff *aff1, isl_aff *aff2); isl_map *isl_aff_lt_set( isl_aff *aff1, isl_aff *aff2); isl_basic_map *isl_aff_ge_basic_set( isl_aff *aff1, isl_aff *aff2); isl_map *isl_aff_ge_set( isl_aff *aff1, isl_aff *aff2); isl_basic_map *isl_aff_gt_basic_set( isl_aff *aff1, isl_aff *aff2); isl_map *isl_aff_gt_set( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str); char *isl_aff_to_str( isl_aff *aff); isl_printer *isl_printer_print_aff( isl_printer *p, isl_aff *aff); void isl_aff_dump( isl_aff *aff); isl_ctx *isl_pw_aff_get_ctx( isl_pw_aff *pwaff); uint32_t isl_pw_aff_get_hash( isl_pw_aff *pa); isl_space *isl_pw_aff_get_domain_space( isl_pw_aff *pwaff); isl_space *isl_pw_aff_get_space( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_from_aff( isl_aff *aff); isl_pw_aff *isl_pw_aff_empty( isl_space *dim); isl_pw_aff *isl_pw_aff_alloc( isl_map *set, isl_aff *aff); isl_pw_aff *isl_pw_aff_zero_on_domain( isl_local_space *ls); isl_pw_aff *isl_pw_aff_var_on_domain( isl_local_space *ls, enum isl_dim_type type, unsigned pos); isl_pw_aff *isl_pw_aff_nan_on_domain( isl_local_space *ls); isl_pw_aff *isl_pw_aff_val_on_domain( isl_map *domain, isl_val *v); isl_pw_aff *isl_set_indicator_function( isl_map *set); const char *isl_pw_aff_get_dim_name( isl_pw_aff *pa, enum isl_dim_type type, unsigned pos); isl_bool isl_pw_aff_has_dim_id( isl_pw_aff *pa, enum isl_dim_type type, unsigned pos); isl_id *isl_pw_aff_get_dim_id( isl_pw_aff *pa, enum isl_dim_type type, unsigned pos); isl_pw_aff *isl_pw_aff_set_dim_id( isl_pw_aff *pma, enum isl_dim_type type, unsigned pos, isl_id *id); int isl_pw_aff_find_dim_by_name( isl_pw_aff *pa, enum isl_dim_type type, const char *name); isl_bool isl_pw_aff_is_empty( isl_pw_aff *pwaff); isl_bool isl_pw_aff_involves_nan( isl_pw_aff *pa); int isl_pw_aff_plain_cmp( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_bool isl_pw_aff_plain_is_equal( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_bool isl_pw_aff_is_equal( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_pw_aff *isl_pw_aff_union_min( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_union_max( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_union_add( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_copy( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_free( isl_pw_aff *pwaff); isl_size isl_pw_aff_dim( isl_pw_aff *pwaff, enum isl_dim_type type); isl_bool isl_pw_aff_involves_dims( isl_pw_aff *pwaff, enum isl_dim_type type, unsigned first, unsigned n); isl_bool isl_pw_aff_is_cst( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_project_domain_on_params( isl_pw_aff *pa); isl_pw_aff *isl_pw_aff_align_params( isl_pw_aff *pwaff, isl_space *model); isl_pw_aff *isl_pw_aff_drop_unused_params( isl_pw_aff *pa); isl_bool isl_pw_aff_has_tuple_id( isl_pw_aff *pa, enum isl_dim_type type); isl_id *isl_pw_aff_get_tuple_id( isl_pw_aff *pa, enum isl_dim_type type); isl_pw_aff *isl_pw_aff_set_tuple_id( isl_pw_aff *pwaff, enum isl_dim_type type, isl_id *id); isl_pw_aff *isl_pw_aff_reset_tuple_id( isl_pw_aff *pa, enum isl_dim_type type); isl_pw_aff *isl_pw_aff_reset_user( isl_pw_aff *pa); isl_map *isl_pw_aff_params( isl_pw_aff *pwa); isl_map *isl_pw_aff_domain( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_from_range( isl_pw_aff *pwa); isl_pw_aff *isl_pw_aff_min( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_max( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_mul( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_div( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_pw_aff *isl_pw_aff_add( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_sub( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_neg( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_ceil( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_floor( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_mod_val( isl_pw_aff *pa, isl_val *mod); isl_pw_aff *isl_pw_aff_tdiv_q( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_pw_aff *isl_pw_aff_tdiv_r( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_pw_aff *isl_pw_aff_intersect_params( isl_pw_aff *pa, isl_map *set); isl_pw_aff *isl_pw_aff_intersect_domain( isl_pw_aff *pa, isl_map *set); isl_pw_aff *isl_pw_aff_subtract_domain( isl_pw_aff *pa, isl_map *set); isl_pw_aff *isl_pw_aff_cond( isl_pw_aff *cond, isl_pw_aff *pwaff_true, isl_pw_aff *pwaff_false); isl_pw_aff *isl_pw_aff_scale_val( isl_pw_aff *pa, isl_val *v); isl_pw_aff *isl_pw_aff_scale_down_val( isl_pw_aff *pa, isl_val *f); isl_pw_aff *isl_pw_aff_insert_dims( isl_pw_aff *pwaff, enum isl_dim_type type, unsigned first, unsigned n); isl_pw_aff *isl_pw_aff_add_dims( isl_pw_aff *pwaff, enum isl_dim_type type, unsigned n); isl_pw_aff *isl_pw_aff_move_dims( isl_pw_aff *pa, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_pw_aff *isl_pw_aff_drop_dims( isl_pw_aff *pwaff, enum isl_dim_type type, unsigned first, unsigned n); isl_pw_aff *isl_pw_aff_coalesce( isl_pw_aff *pwqp); isl_pw_aff *isl_pw_aff_gist( isl_pw_aff *pwaff, isl_map *context); isl_pw_aff *isl_pw_aff_gist_params( isl_pw_aff *pwaff, isl_map *context); isl_val *isl_pw_aff_eval( isl_pw_aff *pa, isl_point *pnt); isl_pw_aff *isl_pw_aff_pullback_multi_aff( isl_pw_aff *pa, isl_multi_aff *ma); isl_pw_aff *isl_pw_aff_pullback_pw_multi_aff( isl_pw_aff *pa, isl_pw_multi_aff *pma); isl_pw_aff *isl_pw_aff_pullback_multi_pw_aff( isl_pw_aff *pa, isl_multi_pw_aff *mpa); isl_size isl_pw_aff_n_piece( isl_pw_aff *pwaff); isl_stat isl_pw_aff_foreach_piece( isl_pw_aff *pwaff, isl_stat (*fn)( isl_map *set, isl_aff *aff, void *user), void *user); isl_map *isl_set_from_pw_aff( isl_pw_aff *pwaff); isl_map *isl_map_from_pw_aff( isl_pw_aff *pwaff); isl_map *isl_pw_aff_pos_set( isl_pw_aff *pa); isl_map *isl_pw_aff_nonneg_set( isl_pw_aff *pwaff); isl_map *isl_pw_aff_zero_set( isl_pw_aff *pwaff); isl_map *isl_pw_aff_non_zero_set( isl_pw_aff *pwaff); isl_map *isl_pw_aff_eq_set( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_map *isl_pw_aff_ne_set( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_map *isl_pw_aff_le_set( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_map *isl_pw_aff_lt_set( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_map *isl_pw_aff_ge_set( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_map *isl_pw_aff_gt_set( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_map *isl_pw_aff_eq_map( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_map *isl_pw_aff_lt_map( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_map *isl_pw_aff_gt_map( isl_pw_aff *pa1, isl_pw_aff *pa2); isl_pw_aff *isl_pw_aff_read_from_str(isl_ctx *ctx, const char *str); char *isl_pw_aff_to_str( isl_pw_aff *pa); isl_printer *isl_printer_print_pw_aff( isl_printer *p, isl_pw_aff *pwaff); void isl_pw_aff_dump( isl_pw_aff *pwaff); isl_pw_aff *isl_pw_aff_list_min( isl_pw_aff_list *list); isl_pw_aff *isl_pw_aff_list_max( isl_pw_aff_list *list); isl_map *isl_pw_aff_list_eq_set( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_map *isl_pw_aff_list_ne_set( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_map *isl_pw_aff_list_le_set( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_map *isl_pw_aff_list_lt_set( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_map *isl_pw_aff_list_ge_set( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_map *isl_pw_aff_list_gt_set( isl_pw_aff_list *list1, isl_pw_aff_list *list2); isl_size isl_multi_aff_dim( isl_multi_aff *multi, enum isl_dim_type type); isl_ctx *isl_multi_aff_get_ctx( isl_multi_aff *multi); isl_space *isl_multi_aff_get_space( isl_multi_aff *multi); isl_space *isl_multi_aff_get_domain_space( isl_multi_aff *multi); int isl_multi_aff_find_dim_by_name( isl_multi_aff *multi, enum isl_dim_type type, const char *name); isl_multi_aff *isl_multi_aff_from_aff_list( isl_space *space, isl_aff_list *list); isl_multi_aff *isl_multi_aff_zero( isl_space *space); isl_multi_aff *isl_multi_aff_copy( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_free( isl_multi_aff *multi); isl_bool isl_multi_aff_plain_is_equal( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_bool isl_multi_aff_involves_nan( isl_multi_aff *multi); int isl_multi_aff_find_dim_by_id( isl_multi_aff *multi, enum isl_dim_type type, isl_id *id); isl_id *isl_multi_aff_get_dim_id( isl_multi_aff *multi, enum isl_dim_type type, unsigned pos); isl_multi_aff *isl_multi_aff_set_dim_name( isl_multi_aff *multi, enum isl_dim_type type, unsigned pos, const char *s); isl_multi_aff *isl_multi_aff_set_dim_id( isl_multi_aff *multi, enum isl_dim_type type, unsigned pos, isl_id *id); const char *isl_multi_aff_get_tuple_name( isl_multi_aff *multi, enum isl_dim_type type); isl_bool isl_multi_aff_has_tuple_id( isl_multi_aff *multi, enum isl_dim_type type); isl_id *isl_multi_aff_get_tuple_id( isl_multi_aff *multi, enum isl_dim_type type); isl_multi_aff *isl_multi_aff_set_tuple_name( isl_multi_aff *multi, enum isl_dim_type type, const char *s); isl_multi_aff *isl_multi_aff_set_tuple_id( isl_multi_aff *multi, enum isl_dim_type type, isl_id *id); isl_multi_aff *isl_multi_aff_reset_tuple_id( isl_multi_aff *multi, enum isl_dim_type type); isl_multi_aff *isl_multi_aff_reset_user( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_drop_dims( isl_multi_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_aff *isl_multi_aff_get_aff( isl_multi_aff *multi, int pos); isl_multi_aff *isl_multi_aff_set_aff( isl_multi_aff *multi, int pos, isl_aff *el); isl_multi_aff *isl_multi_aff_range_splice( isl_multi_aff *multi1, unsigned pos, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_flatten_range( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_flat_range_product( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_range_product( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_factor_range( isl_multi_aff *multi); isl_bool isl_multi_aff_range_is_wrapping( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_range_factor_domain( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_range_factor_range( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_scale_val( isl_multi_aff *multi, isl_val *v); isl_multi_aff *isl_multi_aff_scale_down_val( isl_multi_aff *multi, isl_val *v); isl_multi_aff *isl_multi_aff_scale_multi_val( isl_multi_aff *multi, isl_multi_val *mv); isl_multi_aff *isl_multi_aff_scale_down_multi_val( isl_multi_aff *multi, isl_multi_val *mv); isl_multi_aff *isl_multi_aff_mod_multi_val( isl_multi_aff *multi, isl_multi_val *mv); isl_multi_aff *isl_multi_aff_add( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_sub( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_align_params( isl_multi_aff *multi, isl_space *model); isl_multi_aff *isl_multi_aff_from_range( isl_multi_aff *multi); int isl_multi_aff_plain_cmp( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_neg( isl_multi_aff *multi); isl_bool isl_multi_aff_involves_dims( isl_multi_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_aff *isl_multi_aff_insert_dims( isl_multi_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_aff *isl_multi_aff_add_dims( isl_multi_aff *multi, enum isl_dim_type type, unsigned n); isl_multi_aff * isl_multi_aff_project_domain_on_params( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_product( isl_multi_aff *multi1, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_splice( isl_multi_aff *multi1, unsigned in_pos, unsigned out_pos, isl_multi_aff *multi2); isl_multi_aff *isl_multi_aff_from_aff( isl_aff *aff); isl_multi_aff *isl_multi_aff_identity( isl_space *space); isl_multi_aff *isl_multi_aff_domain_map( isl_space *space); isl_multi_aff *isl_multi_aff_range_map( isl_space *space); isl_multi_aff *isl_multi_aff_project_out_map( isl_space *space, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_aff *isl_multi_aff_multi_val_on_space( isl_space *space, isl_multi_val *mv); isl_multi_aff *isl_multi_aff_floor( isl_multi_aff *ma); isl_multi_aff *isl_multi_aff_gist_params( isl_multi_aff *maff, isl_map *context); isl_multi_aff *isl_multi_aff_gist( isl_multi_aff *maff, isl_map *context); isl_multi_aff *isl_multi_aff_lift( isl_multi_aff *maff, isl_local_space **ls); isl_multi_aff *isl_multi_aff_pullback_multi_aff( isl_multi_aff *ma1, isl_multi_aff *ma2); isl_multi_aff *isl_multi_aff_move_dims( isl_multi_aff *ma, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_map *isl_multi_aff_lex_lt_set( isl_multi_aff *ma1, isl_multi_aff *ma2); isl_map *isl_multi_aff_lex_le_set( isl_multi_aff *ma1, isl_multi_aff *ma2); isl_map *isl_multi_aff_lex_gt_set( isl_multi_aff *ma1, isl_multi_aff *ma2); isl_map *isl_multi_aff_lex_ge_set( isl_multi_aff *ma1, isl_multi_aff *ma2); char *isl_multi_aff_to_str( isl_multi_aff *ma); isl_printer *isl_printer_print_multi_aff( isl_printer *p, isl_multi_aff *maff); isl_multi_aff *isl_multi_aff_read_from_str(isl_ctx *ctx, const char *str); void isl_multi_aff_dump( isl_multi_aff *maff); isl_size isl_multi_pw_aff_dim( isl_multi_pw_aff *multi, enum isl_dim_type type); isl_ctx *isl_multi_pw_aff_get_ctx( isl_multi_pw_aff *multi); isl_space *isl_multi_pw_aff_get_space( isl_multi_pw_aff *multi); isl_space *isl_multi_pw_aff_get_domain_space( isl_multi_pw_aff *multi); int isl_multi_pw_aff_find_dim_by_name( isl_multi_pw_aff *multi, enum isl_dim_type type, const char *name); isl_multi_pw_aff *isl_multi_pw_aff_from_pw_aff_list( isl_space *space, isl_pw_aff_list *list); isl_multi_pw_aff *isl_multi_pw_aff_zero( isl_space *space); isl_multi_pw_aff *isl_multi_pw_aff_copy( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_free( isl_multi_pw_aff *multi); isl_bool isl_multi_pw_aff_plain_is_equal( isl_multi_pw_aff *multi1, isl_multi_pw_aff *multi2); isl_bool isl_multi_pw_aff_involves_nan( isl_multi_pw_aff *multi); int isl_multi_pw_aff_find_dim_by_id( isl_multi_pw_aff *multi, enum isl_dim_type type, isl_id *id); isl_id *isl_multi_pw_aff_get_dim_id( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned pos); isl_multi_pw_aff *isl_multi_pw_aff_set_dim_name( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned pos, const char *s); isl_multi_pw_aff *isl_multi_pw_aff_set_dim_id( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned pos, isl_id *id); const char *isl_multi_pw_aff_get_tuple_name( isl_multi_pw_aff *multi, enum isl_dim_type type); isl_bool isl_multi_pw_aff_has_tuple_id( isl_multi_pw_aff *multi, enum isl_dim_type type); isl_id *isl_multi_pw_aff_get_tuple_id( isl_multi_pw_aff *multi, enum isl_dim_type type); isl_multi_pw_aff *isl_multi_pw_aff_set_tuple_name( isl_multi_pw_aff *multi, enum isl_dim_type type, const char *s); isl_multi_pw_aff *isl_multi_pw_aff_set_tuple_id( isl_multi_pw_aff *multi, enum isl_dim_type type, isl_id *id); isl_multi_pw_aff *isl_multi_pw_aff_reset_tuple_id( isl_multi_pw_aff *multi, enum isl_dim_type type); isl_multi_pw_aff *isl_multi_pw_aff_reset_user( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_drop_dims( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_pw_aff *isl_multi_pw_aff_get_pw_aff( isl_multi_pw_aff *multi, int pos); isl_multi_pw_aff *isl_multi_pw_aff_set_pw_aff( isl_multi_pw_aff *multi, int pos, isl_pw_aff *el); isl_multi_pw_aff *isl_multi_pw_aff_range_splice( isl_multi_pw_aff *multi1, unsigned pos, isl_multi_pw_aff *multi2); isl_multi_pw_aff *isl_multi_pw_aff_flatten_range( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_flat_range_product( isl_multi_pw_aff *multi1, isl_multi_pw_aff *multi2); isl_multi_pw_aff *isl_multi_pw_aff_range_product( isl_multi_pw_aff *multi1, isl_multi_pw_aff *multi2); isl_multi_pw_aff *isl_multi_pw_aff_factor_range( isl_multi_pw_aff *multi); isl_bool isl_multi_pw_aff_range_is_wrapping( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_range_factor_domain( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_range_factor_range( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_scale_val( isl_multi_pw_aff *multi, isl_val *v); isl_multi_pw_aff *isl_multi_pw_aff_scale_down_val( isl_multi_pw_aff *multi, isl_val *v); isl_multi_pw_aff *isl_multi_pw_aff_scale_multi_val( isl_multi_pw_aff *multi, isl_multi_val *mv); isl_multi_pw_aff *isl_multi_pw_aff_scale_down_multi_val( isl_multi_pw_aff *multi, isl_multi_val *mv); isl_multi_pw_aff *isl_multi_pw_aff_mod_multi_val( isl_multi_pw_aff *multi, isl_multi_val *mv); isl_multi_pw_aff *isl_multi_pw_aff_add( isl_multi_pw_aff *multi1, isl_multi_pw_aff *multi2); isl_multi_pw_aff *isl_multi_pw_aff_sub( isl_multi_pw_aff *multi1, isl_multi_pw_aff *multi2); isl_multi_pw_aff *isl_multi_pw_aff_align_params( isl_multi_pw_aff *multi, isl_space *model); isl_multi_pw_aff *isl_multi_pw_aff_from_range( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_neg( isl_multi_pw_aff *multi); isl_bool isl_multi_pw_aff_involves_dims( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_pw_aff *isl_multi_pw_aff_insert_dims( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_multi_pw_aff *isl_multi_pw_aff_add_dims( isl_multi_pw_aff *multi, enum isl_dim_type type, unsigned n); isl_multi_pw_aff * isl_multi_pw_aff_project_domain_on_params( isl_multi_pw_aff *multi); isl_multi_pw_aff *isl_multi_pw_aff_product( isl_multi_pw_aff *multi1, isl_multi_pw_aff *multi2); isl_multi_pw_aff *isl_multi_pw_aff_splice( isl_multi_pw_aff *multi1, unsigned in_pos, unsigned out_pos, isl_multi_pw_aff *multi2); isl_pw_multi_aff *isl_pw_multi_aff_zero( isl_space *space); isl_pw_multi_aff *isl_pw_multi_aff_identity( isl_space *space); isl_pw_multi_aff *isl_pw_multi_aff_range_map( isl_space *space); isl_pw_multi_aff *isl_pw_multi_aff_project_out_map( isl_space *space, enum isl_dim_type type, unsigned first, unsigned n); isl_pw_multi_aff *isl_pw_multi_aff_from_multi_aff( isl_multi_aff *ma); isl_pw_multi_aff *isl_pw_multi_aff_from_pw_aff( isl_pw_aff *pa); isl_pw_multi_aff *isl_pw_multi_aff_alloc( isl_map *set, isl_multi_aff *maff); isl_pw_multi_aff *isl_pw_multi_aff_copy( isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_free( isl_pw_multi_aff *pma); isl_size isl_pw_multi_aff_dim( isl_pw_multi_aff *pma, enum isl_dim_type type); isl_bool isl_pw_multi_aff_involves_dims( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned first, unsigned n); isl_pw_aff *isl_pw_multi_aff_get_pw_aff( isl_pw_multi_aff *pma, int pos); isl_pw_multi_aff *isl_pw_multi_aff_set_pw_aff( isl_pw_multi_aff *pma, unsigned pos, isl_pw_aff *pa); isl_ctx *isl_pw_multi_aff_get_ctx( isl_pw_multi_aff *pma); isl_space *isl_pw_multi_aff_get_domain_space( isl_pw_multi_aff *pma); isl_space *isl_pw_multi_aff_get_space( isl_pw_multi_aff *pma); isl_bool isl_pw_multi_aff_has_tuple_name( isl_pw_multi_aff *pma, enum isl_dim_type type); const char *isl_pw_multi_aff_get_tuple_name( isl_pw_multi_aff *pma, enum isl_dim_type type); isl_id *isl_pw_multi_aff_get_tuple_id( isl_pw_multi_aff *pma, enum isl_dim_type type); isl_bool isl_pw_multi_aff_has_tuple_id( isl_pw_multi_aff *pma, enum isl_dim_type type); isl_pw_multi_aff *isl_pw_multi_aff_set_tuple_id( isl_pw_multi_aff *pma, enum isl_dim_type type, isl_id *id); isl_pw_multi_aff *isl_pw_multi_aff_reset_tuple_id( isl_pw_multi_aff *pma, enum isl_dim_type type); isl_pw_multi_aff *isl_pw_multi_aff_reset_user( isl_pw_multi_aff *pma); int isl_pw_multi_aff_find_dim_by_name( isl_pw_multi_aff *pma, enum isl_dim_type type, const char *name); isl_pw_multi_aff *isl_pw_multi_aff_drop_dims( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned first, unsigned n); isl_map *isl_pw_multi_aff_domain( isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_empty( isl_space *space); isl_pw_multi_aff *isl_pw_multi_aff_from_domain( isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_multi_val_on_domain( isl_map *domain, isl_multi_val *mv); const char *isl_pw_multi_aff_get_dim_name( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned pos); isl_id *isl_pw_multi_aff_get_dim_id( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned pos); isl_pw_multi_aff *isl_pw_multi_aff_set_dim_id( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned pos, isl_id *id); isl_bool isl_pw_multi_aff_involves_nan( isl_pw_multi_aff *pma); isl_bool isl_pw_multi_aff_plain_is_equal( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_bool isl_pw_multi_aff_is_equal( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_fix_si( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned pos, int value); isl_pw_multi_aff *isl_pw_multi_aff_union_add( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_neg( isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_add( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_sub( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_scale_val( isl_pw_multi_aff *pma, isl_val *v); isl_pw_multi_aff *isl_pw_multi_aff_scale_down_val( isl_pw_multi_aff *pma, isl_val *v); isl_pw_multi_aff *isl_pw_multi_aff_scale_multi_val( isl_pw_multi_aff *pma, isl_multi_val *mv); isl_pw_multi_aff *isl_pw_multi_aff_union_lexmin( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_union_lexmax( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_multi_aff *isl_multi_aff_flatten_domain( isl_multi_aff *ma); isl_pw_multi_aff *isl_pw_multi_aff_range_product( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_flat_range_product( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_product( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_intersect_params( isl_pw_multi_aff *pma, isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain( isl_pw_multi_aff *pma, isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_subtract_domain( isl_pw_multi_aff *pma, isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_project_domain_on_params( isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_align_params( isl_pw_multi_aff *pma, isl_space *model); isl_pw_multi_aff *isl_pw_multi_aff_drop_unused_params( isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_coalesce( isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_gist_params( isl_pw_multi_aff *pma, isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_gist( isl_pw_multi_aff *pma, isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_pullback_multi_aff( isl_pw_multi_aff *pma, isl_multi_aff *ma); isl_pw_multi_aff *isl_pw_multi_aff_pullback_pw_multi_aff( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_size isl_pw_multi_aff_n_piece( isl_pw_multi_aff *pma); isl_stat isl_pw_multi_aff_foreach_piece( isl_pw_multi_aff *pma, isl_stat (*fn)( isl_map *set, isl_multi_aff *maff, void *user), void *user); isl_map *isl_map_from_pw_multi_aff( isl_pw_multi_aff *pma); isl_map *isl_set_from_pw_multi_aff( isl_pw_multi_aff *pma); char *isl_pw_multi_aff_to_str( isl_pw_multi_aff *pma); isl_printer *isl_printer_print_pw_multi_aff( isl_printer *p, isl_pw_multi_aff *pma); isl_pw_multi_aff *isl_pw_multi_aff_from_set( isl_map *set); isl_pw_multi_aff *isl_pw_multi_aff_from_map( isl_map *map); isl_pw_multi_aff *isl_pw_multi_aff_read_from_str(isl_ctx *ctx, const char *str); void isl_pw_multi_aff_dump( isl_pw_multi_aff *pma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty( isl_space *space); isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_aff( isl_aff *aff); isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_pw_multi_aff( isl_pw_multi_aff *pma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_domain( isl_union_set *uset); isl_union_pw_multi_aff *isl_union_pw_multi_aff_multi_val_on_domain( isl_union_set *domain, isl_multi_val *mv); isl_union_pw_aff *isl_union_pw_aff_param_on_domain_id( isl_union_set *domain, isl_id *id); isl_union_pw_multi_aff *isl_union_pw_multi_aff_copy( isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_free( isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_set_identity_union_pw_multi_aff( isl_union_set *uset); isl_union_pw_aff *isl_union_pw_multi_aff_get_union_pw_aff( isl_union_pw_multi_aff *upma, int pos); isl_union_pw_multi_aff *isl_union_pw_multi_aff_add_pw_multi_aff( isl_union_pw_multi_aff *upma, isl_pw_multi_aff *pma); isl_ctx *isl_union_pw_multi_aff_get_ctx( isl_union_pw_multi_aff *upma); isl_space *isl_union_pw_multi_aff_get_space( isl_union_pw_multi_aff *upma); isl_pw_multi_aff_list *isl_union_pw_multi_aff_get_pw_multi_aff_list( isl_union_pw_multi_aff *upma); isl_size isl_union_pw_multi_aff_dim( isl_union_pw_multi_aff *upma, enum isl_dim_type type); isl_union_pw_multi_aff *isl_union_pw_multi_aff_set_dim_name( isl_union_pw_multi_aff *upma, enum isl_dim_type type, unsigned pos, const char *s); int isl_union_pw_multi_aff_find_dim_by_name( isl_union_pw_multi_aff *upma, enum isl_dim_type type, const char *name); isl_union_pw_multi_aff *isl_union_pw_multi_aff_drop_dims( isl_union_pw_multi_aff *upma, enum isl_dim_type type, unsigned first, unsigned n); isl_union_pw_multi_aff *isl_union_pw_multi_aff_reset_user( isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_coalesce( isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist_params( isl_union_pw_multi_aff *upma, isl_map *context); isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist( isl_union_pw_multi_aff *upma, isl_union_set *context); isl_union_pw_multi_aff * isl_union_pw_multi_aff_pullback_union_pw_multi_aff( isl_union_pw_multi_aff *upma1, isl_union_pw_multi_aff *upma2); isl_union_pw_multi_aff *isl_union_pw_multi_aff_align_params( isl_union_pw_multi_aff *upma, isl_space *model); isl_size isl_union_pw_multi_aff_n_pw_multi_aff( isl_union_pw_multi_aff *upma); isl_stat isl_union_pw_multi_aff_foreach_pw_multi_aff( isl_union_pw_multi_aff *upma, isl_stat (*fn)( isl_pw_multi_aff *pma, void *user), void *user); isl_pw_multi_aff *isl_union_pw_multi_aff_extract_pw_multi_aff( isl_union_pw_multi_aff *upma, isl_space *space); isl_bool isl_union_pw_multi_aff_involves_nan( isl_union_pw_multi_aff *upma); isl_bool isl_union_pw_multi_aff_plain_is_equal( isl_union_pw_multi_aff *upma1, isl_union_pw_multi_aff *upma2); isl_union_set *isl_union_pw_multi_aff_domain( isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_neg( isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_add( isl_union_pw_multi_aff *upma1, isl_union_pw_multi_aff *upma2); isl_union_pw_multi_aff *isl_union_pw_multi_aff_union_add( isl_union_pw_multi_aff *upma1, isl_union_pw_multi_aff *upma2); isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub( isl_union_pw_multi_aff *upma1, isl_union_pw_multi_aff *upma2); isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_val( isl_union_pw_multi_aff *upma, isl_val *val); isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_down_val( isl_union_pw_multi_aff *upma, isl_val *val); isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_multi_val( isl_union_pw_multi_aff *upma, isl_multi_val *mv); isl_union_pw_multi_aff *isl_union_pw_multi_aff_flat_range_product( isl_union_pw_multi_aff *upma1, isl_union_pw_multi_aff *upma2); isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_params( isl_union_pw_multi_aff *upma, isl_map *set); isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_domain( isl_union_pw_multi_aff *upma, isl_union_set *uset); isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain( isl_union_pw_multi_aff *upma, isl_union_set *uset); isl_union_map *isl_union_map_from_union_pw_multi_aff( isl_union_pw_multi_aff *upma); isl_printer *isl_printer_print_union_pw_multi_aff( isl_printer *p, isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_set( isl_union_set *uset); isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_map( isl_union_map *umap); isl_union_pw_multi_aff *isl_union_pw_multi_aff_read_from_str( isl_ctx *ctx, const char *str); void isl_union_pw_multi_aff_dump( isl_union_pw_multi_aff *upma); char *isl_union_pw_multi_aff_to_str( isl_union_pw_multi_aff *upma); uint32_t isl_multi_pw_aff_get_hash( isl_multi_pw_aff *mpa); isl_multi_pw_aff *isl_multi_pw_aff_identity( isl_space *space); isl_multi_pw_aff *isl_multi_pw_aff_from_multi_aff( isl_multi_aff *ma); isl_multi_pw_aff *isl_multi_pw_aff_from_pw_aff( isl_pw_aff *pa); isl_map *isl_multi_pw_aff_domain( isl_multi_pw_aff *mpa); isl_multi_pw_aff *isl_multi_pw_aff_intersect_params( isl_multi_pw_aff *mpa, isl_map *set); isl_multi_pw_aff *isl_multi_pw_aff_intersect_domain( isl_multi_pw_aff *mpa, isl_map *domain); isl_multi_pw_aff *isl_multi_pw_aff_coalesce( isl_multi_pw_aff *mpa); isl_multi_pw_aff *isl_multi_pw_aff_gist( isl_multi_pw_aff *mpa, isl_map *set); isl_multi_pw_aff *isl_multi_pw_aff_gist_params( isl_multi_pw_aff *mpa, isl_map *set); isl_bool isl_multi_pw_aff_is_cst( isl_multi_pw_aff *mpa); isl_bool isl_multi_pw_aff_is_equal( isl_multi_pw_aff *mpa1, isl_multi_pw_aff *mpa2); isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_aff( isl_multi_pw_aff *mpa, isl_multi_aff *ma); isl_multi_pw_aff *isl_multi_pw_aff_pullback_pw_multi_aff( isl_multi_pw_aff *mpa, isl_pw_multi_aff *pma); isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_pw_aff( isl_multi_pw_aff *mpa1, isl_multi_pw_aff *mpa2); isl_multi_pw_aff *isl_multi_pw_aff_move_dims( isl_multi_pw_aff *pma, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); isl_map *isl_set_from_multi_pw_aff( isl_multi_pw_aff *mpa); isl_map *isl_map_from_multi_pw_aff( isl_multi_pw_aff *mpa); isl_pw_multi_aff *isl_pw_multi_aff_from_multi_pw_aff( isl_multi_pw_aff *mpa); isl_multi_pw_aff *isl_multi_pw_aff_from_pw_multi_aff( isl_pw_multi_aff *pma); isl_map *isl_multi_pw_aff_eq_map( isl_multi_pw_aff *mpa1, isl_multi_pw_aff *mpa2); isl_map *isl_multi_pw_aff_lex_lt_map( isl_multi_pw_aff *mpa1, isl_multi_pw_aff *mpa2); isl_map *isl_multi_pw_aff_lex_gt_map( isl_multi_pw_aff *mpa1, isl_multi_pw_aff *mpa2); isl_multi_pw_aff *isl_multi_pw_aff_read_from_str(isl_ctx *ctx, const char *str); char *isl_multi_pw_aff_to_str( isl_multi_pw_aff *mpa); isl_printer *isl_printer_print_multi_pw_aff( isl_printer *p, isl_multi_pw_aff *mpa); void isl_multi_pw_aff_dump( isl_multi_pw_aff *mpa); isl_union_pw_aff *isl_union_pw_aff_copy( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_free( isl_union_pw_aff *upa); isl_ctx *isl_union_pw_aff_get_ctx( isl_union_pw_aff *upa); isl_space *isl_union_pw_aff_get_space( isl_union_pw_aff *upa); isl_pw_aff_list *isl_union_pw_aff_get_pw_aff_list( isl_union_pw_aff *upa); isl_size isl_union_pw_aff_dim( isl_union_pw_aff *upa, enum isl_dim_type type); isl_union_pw_aff *isl_union_pw_aff_set_dim_name( isl_union_pw_aff *upa, enum isl_dim_type type, unsigned pos, const char *s); int isl_union_pw_aff_find_dim_by_name( isl_union_pw_aff *upa, enum isl_dim_type type, const char *name); isl_union_pw_aff *isl_union_pw_aff_drop_dims( isl_union_pw_aff *upa, enum isl_dim_type type, unsigned first, unsigned n); isl_union_pw_aff *isl_union_pw_aff_reset_user( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_empty( isl_space *space); isl_union_pw_aff *isl_union_pw_aff_from_pw_aff( isl_pw_aff *pa); isl_union_pw_aff *isl_union_pw_aff_val_on_domain( isl_union_set *domain, isl_val *v); isl_union_pw_aff *isl_union_pw_aff_aff_on_domain( isl_union_set *domain, isl_aff *aff); isl_union_pw_aff *isl_union_pw_aff_pw_aff_on_domain( isl_union_set *domain, isl_pw_aff *pa); isl_union_pw_aff *isl_union_pw_aff_add_pw_aff( isl_union_pw_aff *upa, isl_pw_aff *pa); isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_pw_aff( isl_union_pw_aff *upa); isl_size isl_union_pw_aff_n_pw_aff( isl_union_pw_aff *upa); isl_stat isl_union_pw_aff_foreach_pw_aff( isl_union_pw_aff *upa, isl_stat (*fn)( isl_pw_aff *pa, void *user), void *user); isl_pw_aff *isl_union_pw_aff_extract_pw_aff( isl_union_pw_aff *upa, isl_space *space); isl_bool isl_union_pw_aff_involves_nan( isl_union_pw_aff *upa); isl_bool isl_union_pw_aff_plain_is_equal( isl_union_pw_aff *upa1, isl_union_pw_aff *upa2); isl_union_set *isl_union_pw_aff_domain( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_neg( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_add( isl_union_pw_aff *upa1, isl_union_pw_aff *upa2); isl_union_pw_aff *isl_union_pw_aff_union_add( isl_union_pw_aff *upa1, isl_union_pw_aff *upa2); isl_union_pw_aff *isl_union_pw_aff_sub( isl_union_pw_aff *upa1, isl_union_pw_aff *upa2); isl_union_pw_aff *isl_union_pw_aff_coalesce( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_gist( isl_union_pw_aff *upa, isl_union_set *context); isl_union_pw_aff *isl_union_pw_aff_gist_params( isl_union_pw_aff *upa, isl_map *context); isl_union_pw_aff *isl_union_pw_aff_pullback_union_pw_multi_aff( isl_union_pw_aff *upa, isl_union_pw_multi_aff *upma); isl_union_pw_aff *isl_union_pw_aff_floor( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_scale_val( isl_union_pw_aff *upa, isl_val *v); isl_union_pw_aff *isl_union_pw_aff_scale_down_val( isl_union_pw_aff *upa, isl_val *v); isl_union_pw_aff *isl_union_pw_aff_mod_val( isl_union_pw_aff *upa, isl_val *f); isl_union_pw_aff *isl_union_pw_aff_align_params( isl_union_pw_aff *upa, isl_space *model); isl_union_pw_aff *isl_union_pw_aff_intersect_params( isl_union_pw_aff *upa, isl_map *set); isl_union_pw_aff *isl_union_pw_aff_intersect_domain( isl_union_pw_aff *upa, isl_union_set *uset); isl_union_pw_aff *isl_union_pw_aff_subtract_domain( isl_union_pw_aff *upa, isl_union_set *uset); isl_union_pw_aff *isl_union_pw_aff_set_dim_name( isl_union_pw_aff *upa, enum isl_dim_type type, unsigned pos, const char *s); isl_union_set *isl_union_pw_aff_zero_union_set( isl_union_pw_aff *upa); isl_union_map *isl_union_map_from_union_pw_aff( isl_union_pw_aff *upa); isl_union_pw_aff *isl_union_pw_aff_read_from_str(isl_ctx *ctx, const char *str); char *isl_union_pw_aff_to_str( isl_union_pw_aff *upa); isl_printer *isl_printer_print_union_pw_aff( isl_printer *p, isl_union_pw_aff *upa); void isl_union_pw_aff_dump( isl_union_pw_aff *upa); isl_size isl_multi_union_pw_aff_dim( isl_multi_union_pw_aff *multi, enum isl_dim_type type); isl_ctx *isl_multi_union_pw_aff_get_ctx( isl_multi_union_pw_aff *multi); isl_space *isl_multi_union_pw_aff_get_space( isl_multi_union_pw_aff *multi); isl_space *isl_multi_union_pw_aff_get_domain_space( isl_multi_union_pw_aff *multi); int isl_multi_union_pw_aff_find_dim_by_name( isl_multi_union_pw_aff *multi, enum isl_dim_type type, const char *name); isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_pw_aff_list( isl_space *space, isl_union_pw_aff_list *list); isl_multi_union_pw_aff *isl_multi_union_pw_aff_zero( isl_space *space); isl_multi_union_pw_aff *isl_multi_union_pw_aff_copy( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_free( isl_multi_union_pw_aff *multi); isl_bool isl_multi_union_pw_aff_plain_is_equal( isl_multi_union_pw_aff *multi1, isl_multi_union_pw_aff *multi2); isl_bool isl_multi_union_pw_aff_involves_nan( isl_multi_union_pw_aff *multi); int isl_multi_union_pw_aff_find_dim_by_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type, isl_id *id); isl_id *isl_multi_union_pw_aff_get_dim_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type, unsigned pos); isl_multi_union_pw_aff *isl_multi_union_pw_aff_set_dim_name( isl_multi_union_pw_aff *multi, enum isl_dim_type type, unsigned pos, const char *s); isl_multi_union_pw_aff *isl_multi_union_pw_aff_set_dim_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type, unsigned pos, isl_id *id); const char *isl_multi_union_pw_aff_get_tuple_name( isl_multi_union_pw_aff *multi, enum isl_dim_type type); isl_bool isl_multi_union_pw_aff_has_tuple_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type); isl_id *isl_multi_union_pw_aff_get_tuple_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type); isl_multi_union_pw_aff *isl_multi_union_pw_aff_set_tuple_name( isl_multi_union_pw_aff *multi, enum isl_dim_type type, const char *s); isl_multi_union_pw_aff *isl_multi_union_pw_aff_set_tuple_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type, isl_id *id); isl_multi_union_pw_aff *isl_multi_union_pw_aff_reset_tuple_id( isl_multi_union_pw_aff *multi, enum isl_dim_type type); isl_multi_union_pw_aff *isl_multi_union_pw_aff_reset_user( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_drop_dims( isl_multi_union_pw_aff *multi, enum isl_dim_type type, unsigned first, unsigned n); isl_union_pw_aff *isl_multi_union_pw_aff_get_union_pw_aff( isl_multi_union_pw_aff *multi, int pos); isl_multi_union_pw_aff *isl_multi_union_pw_aff_set_union_pw_aff( isl_multi_union_pw_aff *multi, int pos, isl_union_pw_aff *el); isl_multi_union_pw_aff *isl_multi_union_pw_aff_range_splice( isl_multi_union_pw_aff *multi1, unsigned pos, isl_multi_union_pw_aff *multi2); isl_multi_union_pw_aff *isl_multi_union_pw_aff_flatten_range( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_flat_range_product( isl_multi_union_pw_aff *multi1, isl_multi_union_pw_aff *multi2); isl_multi_union_pw_aff *isl_multi_union_pw_aff_range_product( isl_multi_union_pw_aff *multi1, isl_multi_union_pw_aff *multi2); isl_multi_union_pw_aff *isl_multi_union_pw_aff_factor_range( isl_multi_union_pw_aff *multi); isl_bool isl_multi_union_pw_aff_range_is_wrapping( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_range_factor_domain( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_range_factor_range( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_scale_val( isl_multi_union_pw_aff *multi, isl_val *v); isl_multi_union_pw_aff *isl_multi_union_pw_aff_scale_down_val( isl_multi_union_pw_aff *multi, isl_val *v); isl_multi_union_pw_aff *isl_multi_union_pw_aff_scale_multi_val( isl_multi_union_pw_aff *multi, isl_multi_val *mv); isl_multi_union_pw_aff *isl_multi_union_pw_aff_scale_down_multi_val( isl_multi_union_pw_aff *multi, isl_multi_val *mv); isl_multi_union_pw_aff *isl_multi_union_pw_aff_mod_multi_val( isl_multi_union_pw_aff *multi, isl_multi_val *mv); isl_multi_union_pw_aff *isl_multi_union_pw_aff_add( isl_multi_union_pw_aff *multi1, isl_multi_union_pw_aff *multi2); isl_multi_union_pw_aff *isl_multi_union_pw_aff_sub( isl_multi_union_pw_aff *multi1, isl_multi_union_pw_aff *multi2); isl_multi_union_pw_aff *isl_multi_union_pw_aff_align_params( isl_multi_union_pw_aff *multi, isl_space *model); isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_range( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_neg( isl_multi_union_pw_aff *multi); isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_aff( isl_multi_aff *ma); isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_pw_aff( isl_union_pw_aff *upa); isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_pw_aff( isl_multi_pw_aff *mpa); isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_val_on_domain( isl_union_set *domain, isl_multi_val *mv); isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_aff_on_domain( isl_union_set *domain, isl_multi_aff *ma); isl_multi_union_pw_aff * isl_multi_union_pw_aff_pw_multi_aff_on_domain( isl_union_set *domain, isl_pw_multi_aff *pma); isl_multi_union_pw_aff *isl_multi_union_pw_aff_floor( isl_multi_union_pw_aff *mupa); isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_domain( isl_multi_union_pw_aff *mupa, isl_union_set *uset); isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_params( isl_multi_union_pw_aff *mupa, isl_map *params); isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_range( isl_multi_union_pw_aff *mupa, isl_map *set); isl_union_set *isl_multi_union_pw_aff_domain( isl_multi_union_pw_aff *mupa); isl_multi_union_pw_aff *isl_multi_union_pw_aff_coalesce( isl_multi_union_pw_aff *aff); isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist( isl_multi_union_pw_aff *aff, isl_union_set *context); isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist_params( isl_multi_union_pw_aff *aff, isl_map *context); isl_union_pw_aff *isl_multi_union_pw_aff_apply_aff( isl_multi_union_pw_aff *mupa, isl_aff *aff); isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_multi_aff( isl_multi_union_pw_aff *mupa, isl_multi_aff *ma); isl_union_pw_aff *isl_multi_union_pw_aff_apply_pw_aff( isl_multi_union_pw_aff *mupa, isl_pw_aff *pa); isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_pw_multi_aff( isl_multi_union_pw_aff *mupa, isl_pw_multi_aff *pma); isl_multi_union_pw_aff * isl_multi_union_pw_aff_pullback_union_pw_multi_aff( isl_multi_union_pw_aff *mupa, isl_union_pw_multi_aff *upma); isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_multi_union_pw_aff( isl_multi_union_pw_aff *mupa); isl_multi_union_pw_aff *isl_multi_union_pw_aff_union_add( isl_multi_union_pw_aff *mupa1, isl_multi_union_pw_aff *mupa2); isl_multi_union_pw_aff * isl_multi_union_pw_aff_from_union_pw_multi_aff( isl_union_pw_multi_aff *upma); isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_map( isl_union_map *umap); isl_union_map *isl_union_map_from_multi_union_pw_aff( isl_multi_union_pw_aff *mupa); isl_union_set *isl_multi_union_pw_aff_zero_union_set( isl_multi_union_pw_aff *mupa); isl_multi_pw_aff *isl_multi_union_pw_aff_extract_multi_pw_aff( isl_multi_union_pw_aff *mupa, isl_space *space); isl_multi_union_pw_aff *isl_multi_union_pw_aff_read_from_str( isl_ctx *ctx, const char *str); char *isl_multi_union_pw_aff_to_str( isl_multi_union_pw_aff *mupa); isl_printer *isl_printer_print_multi_union_pw_aff( isl_printer *p, isl_multi_union_pw_aff *mupa); void isl_multi_union_pw_aff_dump( isl_multi_union_pw_aff *mupa); isl_ctx *isl_pw_multi_aff_list_get_ctx( isl_pw_multi_aff_list *list); isl_pw_multi_aff_list *isl_pw_multi_aff_list_from_pw_multi_aff( isl_pw_multi_aff *el); isl_pw_multi_aff_list *isl_pw_multi_aff_list_alloc(isl_ctx *ctx, int n); isl_pw_multi_aff_list *isl_pw_multi_aff_list_copy( isl_pw_multi_aff_list *list); isl_pw_multi_aff_list *isl_pw_multi_aff_list_free( isl_pw_multi_aff_list *list); isl_pw_multi_aff_list *isl_pw_multi_aff_list_add( isl_pw_multi_aff_list *list, isl_pw_multi_aff *el); isl_pw_multi_aff_list *isl_pw_multi_aff_list_insert( isl_pw_multi_aff_list *list, unsigned pos, struct isl_pw_multi_aff *el); isl_pw_multi_aff_list *isl_pw_multi_aff_list_drop( isl_pw_multi_aff_list *list, unsigned first, unsigned n); isl_pw_multi_aff_list *isl_pw_multi_aff_list_swap( isl_pw_multi_aff_list *list, unsigned pos1, unsigned pos2); isl_pw_multi_aff_list *isl_pw_multi_aff_list_reverse( isl_pw_multi_aff_list *list); isl_pw_multi_aff_list *isl_pw_multi_aff_list_concat( isl_pw_multi_aff_list *list1, isl_pw_multi_aff_list *list2); isl_size isl_pw_multi_aff_list_size( isl_pw_multi_aff_list *list); isl_size isl_pw_multi_aff_list_n_pw_multi_aff( isl_pw_multi_aff_list *list); isl_pw_multi_aff *isl_pw_multi_aff_list_get_at( isl_pw_multi_aff_list *list, int index); struct isl_pw_multi_aff *isl_pw_multi_aff_list_get_pw_multi_aff( isl_pw_multi_aff_list *list, int index); struct isl_pw_multi_aff_list *isl_pw_multi_aff_list_set_pw_multi_aff( struct isl_pw_multi_aff_list *list, int index, struct isl_pw_multi_aff *el); isl_stat isl_pw_multi_aff_list_foreach( isl_pw_multi_aff_list *list, isl_stat (*fn)( isl_pw_multi_aff *el, void *user), void *user); isl_pw_multi_aff_list *isl_pw_multi_aff_list_map( isl_pw_multi_aff_list *list, isl_pw_multi_aff * (*fn)( isl_pw_multi_aff *el, void *user), void *user); isl_pw_multi_aff_list *isl_pw_multi_aff_list_sort( isl_pw_multi_aff_list *list, int (*cmp)( struct isl_pw_multi_aff *a, struct isl_pw_multi_aff *b, void *user), void *user); isl_stat isl_pw_multi_aff_list_foreach_scc( isl_pw_multi_aff_list *list, isl_bool (*follows)( struct isl_pw_multi_aff *a, struct isl_pw_multi_aff *b, void *user), void *follows_user, isl_stat (*fn)( isl_pw_multi_aff_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_pw_multi_aff_list( isl_printer *p, isl_pw_multi_aff_list *list); void isl_pw_multi_aff_list_dump( isl_pw_multi_aff_list *list); isl_ctx *isl_union_pw_aff_list_get_ctx( isl_union_pw_aff_list *list); isl_union_pw_aff_list *isl_union_pw_aff_list_from_union_pw_aff( isl_union_pw_aff *el); isl_union_pw_aff_list *isl_union_pw_aff_list_alloc(isl_ctx *ctx, int n); isl_union_pw_aff_list *isl_union_pw_aff_list_copy( isl_union_pw_aff_list *list); isl_union_pw_aff_list *isl_union_pw_aff_list_free( isl_union_pw_aff_list *list); isl_union_pw_aff_list *isl_union_pw_aff_list_add( isl_union_pw_aff_list *list, isl_union_pw_aff *el); isl_union_pw_aff_list *isl_union_pw_aff_list_insert( isl_union_pw_aff_list *list, unsigned pos, struct isl_union_pw_aff *el); isl_union_pw_aff_list *isl_union_pw_aff_list_drop( isl_union_pw_aff_list *list, unsigned first, unsigned n); isl_union_pw_aff_list *isl_union_pw_aff_list_swap( isl_union_pw_aff_list *list, unsigned pos1, unsigned pos2); isl_union_pw_aff_list *isl_union_pw_aff_list_reverse( isl_union_pw_aff_list *list); isl_union_pw_aff_list *isl_union_pw_aff_list_concat( isl_union_pw_aff_list *list1, isl_union_pw_aff_list *list2); isl_size isl_union_pw_aff_list_size( isl_union_pw_aff_list *list); isl_size isl_union_pw_aff_list_n_union_pw_aff( isl_union_pw_aff_list *list); isl_union_pw_aff *isl_union_pw_aff_list_get_at( isl_union_pw_aff_list *list, int index); struct isl_union_pw_aff *isl_union_pw_aff_list_get_union_pw_aff( isl_union_pw_aff_list *list, int index); struct isl_union_pw_aff_list *isl_union_pw_aff_list_set_union_pw_aff( struct isl_union_pw_aff_list *list, int index, struct isl_union_pw_aff *el); isl_stat isl_union_pw_aff_list_foreach( isl_union_pw_aff_list *list, isl_stat (*fn)( isl_union_pw_aff *el, void *user), void *user); isl_union_pw_aff_list *isl_union_pw_aff_list_map( isl_union_pw_aff_list *list, isl_union_pw_aff * (*fn)( isl_union_pw_aff *el, void *user), void *user); isl_union_pw_aff_list *isl_union_pw_aff_list_sort( isl_union_pw_aff_list *list, int (*cmp)( struct isl_union_pw_aff *a, struct isl_union_pw_aff *b, void *user), void *user); isl_stat isl_union_pw_aff_list_foreach_scc( isl_union_pw_aff_list *list, isl_bool (*follows)( struct isl_union_pw_aff *a, struct isl_union_pw_aff *b, void *user), void *follows_user, isl_stat (*fn)( isl_union_pw_aff_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_union_pw_aff_list( isl_printer *p, isl_union_pw_aff_list *list); void isl_union_pw_aff_list_dump( isl_union_pw_aff_list *list); isl_ctx *isl_union_pw_multi_aff_list_get_ctx( isl_union_pw_multi_aff_list *list); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_from_union_pw_multi_aff( isl_union_pw_multi_aff *el); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_alloc(isl_ctx *ctx, int n); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_copy( isl_union_pw_multi_aff_list *list); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_free( isl_union_pw_multi_aff_list *list); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_add( isl_union_pw_multi_aff_list *list, isl_union_pw_multi_aff *el); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_insert( isl_union_pw_multi_aff_list *list, unsigned pos, struct isl_union_pw_multi_aff *el); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_drop( isl_union_pw_multi_aff_list *list, unsigned first, unsigned n); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_swap( isl_union_pw_multi_aff_list *list, unsigned pos1, unsigned pos2); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_reverse( isl_union_pw_multi_aff_list *list); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_concat( isl_union_pw_multi_aff_list *list1, isl_union_pw_multi_aff_list *list2); isl_size isl_union_pw_multi_aff_list_size( isl_union_pw_multi_aff_list *list); isl_size isl_union_pw_multi_aff_list_n_union_pw_multi_aff( isl_union_pw_multi_aff_list *list); isl_union_pw_multi_aff *isl_union_pw_multi_aff_list_get_at( isl_union_pw_multi_aff_list *list, int index); struct isl_union_pw_multi_aff *isl_union_pw_multi_aff_list_get_union_pw_multi_aff( isl_union_pw_multi_aff_list *list, int index); struct isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_set_union_pw_multi_aff( struct isl_union_pw_multi_aff_list *list, int index, struct isl_union_pw_multi_aff *el); isl_stat isl_union_pw_multi_aff_list_foreach( isl_union_pw_multi_aff_list *list, isl_stat (*fn)( isl_union_pw_multi_aff *el, void *user), void *user); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_map( isl_union_pw_multi_aff_list *list, isl_union_pw_multi_aff * (*fn)( isl_union_pw_multi_aff *el, void *user), void *user); isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_sort( isl_union_pw_multi_aff_list *list, int (*cmp)( struct isl_union_pw_multi_aff *a, struct isl_union_pw_multi_aff *b, void *user), void *user); isl_stat isl_union_pw_multi_aff_list_foreach_scc( isl_union_pw_multi_aff_list *list, isl_bool (*follows)( struct isl_union_pw_multi_aff *a, struct isl_union_pw_multi_aff *b, void *user), void *follows_user, isl_stat (*fn)( isl_union_pw_multi_aff_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_union_pw_multi_aff_list( isl_printer *p, isl_union_pw_multi_aff_list *list); void isl_union_pw_multi_aff_list_dump( isl_union_pw_multi_aff_list *list); } # 14 "/work/include/isl/lp.h" 2 enum isl_lp_result { isl_lp_error = -1, isl_lp_ok = 0, isl_lp_unbounded, isl_lp_empty }; extern "C" { isl_val *isl_basic_set_min_lp_val( isl_basic_map *bset, isl_aff *obj); isl_val *isl_basic_set_max_lp_val( isl_basic_map *bset, isl_aff *obj); } # 14 "/work/isl_tab.h" 2 # 1 "/work/build3/isl_config.h" 1 # 56 "/work/build3/isl_config.h" # 1 "/work/isl_config_post.h" 1 # 57 "/work/build3/isl_config.h" 2 # 18 "/work/isl_tab.h" 2 struct isl_tab_var { int index; unsigned is_row : 1; unsigned is_nonneg : 1; unsigned is_zero : 1; unsigned is_redundant : 1; unsigned marked : 1; unsigned frozen : 1; unsigned negated : 1; }; enum isl_tab_undo_type { isl_tab_undo_bottom, isl_tab_undo_rational, isl_tab_undo_empty, isl_tab_undo_nonneg, isl_tab_undo_redundant, isl_tab_undo_freeze, isl_tab_undo_zero, isl_tab_undo_allocate, isl_tab_undo_relax, isl_tab_undo_unrestrict, isl_tab_undo_bmap_ineq, isl_tab_undo_bmap_eq, isl_tab_undo_bmap_div, isl_tab_undo_saved_basis, isl_tab_undo_drop_sample, isl_tab_undo_saved_samples, isl_tab_undo_callback, }; struct isl_tab_callback { isl_stat (*run)(struct isl_tab_callback *cb); }; union isl_tab_undo_val { int var_index; int *col_var; int n; struct isl_tab_callback *callback; }; struct isl_tab_undo { enum isl_tab_undo_type type; union isl_tab_undo_val u; struct isl_tab_undo *next; }; # 128 "/work/isl_tab.h" enum isl_tab_row_sign { isl_tab_row_unknown = 0, isl_tab_row_pos, isl_tab_row_neg, isl_tab_row_any, }; struct isl_tab { struct isl_mat *mat; unsigned n_row; unsigned n_col; unsigned n_dead; unsigned n_redundant; unsigned n_var; unsigned n_param; unsigned n_div; unsigned max_var; unsigned n_con; unsigned n_eq; unsigned max_con; struct isl_tab_var *var; struct isl_tab_var *con; int *row_var; int *col_var; enum isl_tab_row_sign *row_sign; struct isl_tab_undo bottom; struct isl_tab_undo *top; struct isl_vec *dual; struct isl_basic_map *bmap; unsigned n_sample; unsigned n_outside; int *sample_index; struct isl_mat *samples; int n_zero; int n_unbounded; struct isl_mat *basis; int (*conflict)(int con, void *user); void *conflict_user; unsigned strict_redundant : 1; unsigned need_undo : 1; unsigned preserve : 1; unsigned rational : 1; unsigned empty : 1; unsigned in_undo : 1; unsigned M : 1; unsigned cone : 1; }; struct isl_tab *isl_tab_alloc(struct isl_ctx *ctx, unsigned n_row, unsigned n_var, unsigned M); void isl_tab_free(struct isl_tab *tab); isl_ctx *isl_tab_get_ctx(struct isl_tab *tab); struct isl_tab *isl_tab_from_basic_map( isl_basic_map *bmap, int track); struct isl_tab *isl_tab_from_basic_set( isl_basic_map *bset, int track); struct isl_tab *isl_tab_from_recession_cone(struct isl_basic_map *bset, int parametric); isl_bool isl_tab_cone_is_bounded(struct isl_tab *tab); struct isl_basic_map *isl_basic_map_update_from_tab(struct isl_basic_map *bmap, struct isl_tab *tab); struct isl_basic_map *isl_basic_set_update_from_tab(struct isl_basic_map *bset, struct isl_tab *tab); int isl_tab_detect_implicit_equalities(struct isl_tab *tab) __attribute__((__warn_unused_result__)); isl_basic_map *isl_tab_make_equalities_explicit(struct isl_tab *tab, isl_basic_map *bmap); int isl_tab_detect_redundant(struct isl_tab *tab) __attribute__((__warn_unused_result__)); isl_stat isl_tab_restore_redundant(struct isl_tab *tab); enum isl_lp_result isl_tab_min(struct isl_tab *tab, isl_int *f, isl_int denom, isl_int *opt, isl_int *opt_denom, unsigned flags) __attribute__((__warn_unused_result__)); isl_stat isl_tab_add_ineq(struct isl_tab *tab, isl_int *ineq) __attribute__((__warn_unused_result__)); isl_stat isl_tab_add_eq(struct isl_tab *tab, isl_int *eq) __attribute__((__warn_unused_result__)); int isl_tab_add_valid_eq(struct isl_tab *tab, isl_int *eq) __attribute__((__warn_unused_result__)); int isl_tab_freeze_constraint(struct isl_tab *tab, int con) __attribute__((__warn_unused_result__)); isl_stat isl_tab_track_bmap(struct isl_tab *tab, isl_basic_map *bmap) __attribute__((__warn_unused_result__)); isl_stat isl_tab_track_bset(struct isl_tab *tab, isl_basic_map *bset) __attribute__((__warn_unused_result__)); isl_basic_map *isl_tab_peek_bset(struct isl_tab *tab); int isl_tab_is_equality(struct isl_tab *tab, int con); int isl_tab_is_redundant(struct isl_tab *tab, int con); int isl_tab_sample_is_integer(struct isl_tab *tab); struct isl_vec *isl_tab_get_sample_value(struct isl_tab *tab); enum isl_ineq_type { isl_ineq_error = -1, isl_ineq_redundant, isl_ineq_separate, isl_ineq_cut, isl_ineq_adj_eq, isl_ineq_adj_ineq, }; enum isl_ineq_type isl_tab_ineq_type(struct isl_tab *tab, isl_int *ineq); struct isl_tab_undo *isl_tab_snap(struct isl_tab *tab); isl_stat isl_tab_rollback(struct isl_tab *tab, struct isl_tab_undo *snap) __attribute__((__warn_unused_result__)); isl_bool isl_tab_need_undo(struct isl_tab *tab); void isl_tab_clear_undo(struct isl_tab *tab); int isl_tab_relax(struct isl_tab *tab, int con) __attribute__((__warn_unused_result__)); int isl_tab_select_facet(struct isl_tab *tab, int con) __attribute__((__warn_unused_result__)); int isl_tab_unrestrict(struct isl_tab *tab, int con) __attribute__((__warn_unused_result__)); void isl_tab_dump( struct isl_tab *tab); isl_map *isl_tab_basic_map_partial_lexopt( isl_basic_map *bmap, isl_basic_map *dom, isl_map **empty, unsigned flags); isl_pw_multi_aff *isl_tab_basic_map_partial_lexopt_pw_multi_aff( isl_basic_map *bmap, isl_basic_map *dom, isl_map **empty, unsigned flags); struct isl_trivial_region { int pos; isl_mat *trivial; }; isl_vec *isl_tab_basic_set_non_trivial_lexmin( isl_basic_map *bset, int n_op, int n_region, struct isl_trivial_region *region, int (*conflict)(int con, void *user), void *user); struct isl_tab_lexmin; typedef struct isl_tab_lexmin isl_tab_lexmin; isl_tab_lexmin *isl_tab_lexmin_from_basic_set( isl_basic_map *bset); int isl_tab_lexmin_dim( isl_tab_lexmin *tl); isl_tab_lexmin *isl_tab_lexmin_add_eq( isl_tab_lexmin *tl, isl_int *eq); isl_tab_lexmin *isl_tab_lexmin_cut_to_integer( isl_tab_lexmin *tl); isl_vec *isl_tab_lexmin_get_solution( isl_tab_lexmin *tl); isl_tab_lexmin *isl_tab_lexmin_free( isl_tab_lexmin *tl); struct isl_tab_var *isl_tab_var_from_row(struct isl_tab *tab, int i); int isl_tab_mark_redundant(struct isl_tab *tab, int row) __attribute__((__warn_unused_result__)); int isl_tab_mark_rational(struct isl_tab *tab) __attribute__((__warn_unused_result__)); isl_stat isl_tab_mark_empty(struct isl_tab *tab) __attribute__((__warn_unused_result__)); struct isl_tab *isl_tab_dup(struct isl_tab *tab); struct isl_tab *isl_tab_product(struct isl_tab *tab1, struct isl_tab *tab2); int isl_tab_extend_cons(struct isl_tab *tab, unsigned n_new) __attribute__((__warn_unused_result__)); int isl_tab_allocate_con(struct isl_tab *tab) __attribute__((__warn_unused_result__)); int isl_tab_extend_vars(struct isl_tab *tab, unsigned n_new) __attribute__((__warn_unused_result__)); int isl_tab_allocate_var(struct isl_tab *tab) __attribute__((__warn_unused_result__)); int isl_tab_insert_var(struct isl_tab *tab, int pos) __attribute__((__warn_unused_result__)); int isl_tab_pivot(struct isl_tab *tab, int row, int col) __attribute__((__warn_unused_result__)); int isl_tab_add_row(struct isl_tab *tab, isl_int *line) __attribute__((__warn_unused_result__)); int isl_tab_row_is_redundant(struct isl_tab *tab, int row); int isl_tab_min_at_most_neg_one(struct isl_tab *tab, struct isl_tab_var *var); int isl_tab_sign_of_max(struct isl_tab *tab, int con); int isl_tab_kill_col(struct isl_tab *tab, int col) __attribute__((__warn_unused_result__)); isl_stat isl_tab_push(struct isl_tab *tab, enum isl_tab_undo_type type) __attribute__((__warn_unused_result__)); isl_stat isl_tab_push_var(struct isl_tab *tab, enum isl_tab_undo_type type, struct isl_tab_var *var) __attribute__((__warn_unused_result__)); isl_stat isl_tab_push_basis(struct isl_tab *tab) __attribute__((__warn_unused_result__)); struct isl_tab *isl_tab_init_samples(struct isl_tab *tab) __attribute__((__warn_unused_result__)); int isl_tab_add_sample(struct isl_tab *tab, isl_vec *sample) __attribute__((__warn_unused_result__)); struct isl_tab *isl_tab_drop_sample(struct isl_tab *tab, int s); isl_stat isl_tab_save_samples(struct isl_tab *tab) __attribute__((__warn_unused_result__)); struct isl_tab *isl_tab_detect_equalities(struct isl_tab *tab, struct isl_tab *tab_cone) __attribute__((__warn_unused_result__)); isl_bool isl_tab_is_constant(struct isl_tab *tab, int var, isl_int *value); isl_stat isl_tab_detect_constants(struct isl_tab *tab); isl_stat isl_tab_push_callback(struct isl_tab *tab, struct isl_tab_callback *callback) __attribute__((__warn_unused_result__)); int isl_tab_insert_div(struct isl_tab *tab, int pos, isl_vec *div, isl_stat (*add_ineq)(void *user, isl_int *), void *user); int isl_tab_add_div(struct isl_tab *tab, isl_vec *div); int isl_tab_shift_var(struct isl_tab *tab, int pos, isl_int shift) __attribute__((__warn_unused_result__)); isl_stat isl_tab_swap_constraints(struct isl_tab *tab, int con1, int con2); # 23 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_tab_multi.h" 1 # 24 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/include/isl/options.h" 1 # 17 "/work/include/isl/options.h" extern "C" { struct isl_options; extern struct isl_args isl_options_args; struct isl_options *isl_options_new_with_defaults(void); void isl_options_free(struct isl_options *opt); int isl_options_parse(struct isl_options *opt, int argc, char **argv, unsigned flags); isl_stat isl_options_set_bound(isl_ctx *ctx, int val); int isl_options_get_bound(isl_ctx *ctx); isl_stat isl_options_set_on_error(isl_ctx *ctx, int val); int isl_options_get_on_error(isl_ctx *ctx); isl_stat isl_options_set_gbr_only_first(isl_ctx *ctx, int val); int isl_options_get_gbr_only_first(isl_ctx *ctx); isl_stat isl_options_set_schedule_algorithm(isl_ctx *ctx, int val); int isl_options_get_schedule_algorithm(isl_ctx *ctx); isl_stat isl_options_set_pip_symmetry(isl_ctx *ctx, int val); int isl_options_get_pip_symmetry(isl_ctx *ctx); isl_stat isl_options_set_coalesce_bounded_wrapping(isl_ctx *ctx, int val); int isl_options_get_coalesce_bounded_wrapping(isl_ctx *ctx); isl_stat isl_options_set_coalesce_preserve_locals(isl_ctx *ctx, int val); int isl_options_get_coalesce_preserve_locals(isl_ctx *ctx); } # 25 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_aff_private.h" 1 # 16 "/work/isl_aff_private.h" struct isl_aff { int ref; isl_local_space *ls; isl_vec *v; }; # 1 "/work/isl_list_templ.h" 1 struct isl_aff_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_aff *p[1]; }; isl_aff_list *isl_aff_list_dup( isl_aff_list *list); # 27 "/work/isl_aff_private.h" 2 struct isl_pw_aff_piece { struct isl_map *set; struct isl_aff *aff; }; struct isl_pw_aff { int ref; isl_space *dim; int n; size_t size; struct isl_pw_aff_piece p[1]; }; # 1 "/work/isl_pw_templ.h" 1 # 1 "/work/isl_pw_macro.h" 1 # 4 "/work/isl_pw_templ.h" 2 isl_space *isl_pw_aff_peek_space( isl_pw_aff *pw); # 48 "/work/isl_aff_private.h" 2 # 1 "/work/isl_list_templ.h" 1 struct isl_pw_aff_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_pw_aff *p[1]; }; isl_pw_aff_list *isl_pw_aff_list_dup( isl_pw_aff_list *list); # 53 "/work/isl_aff_private.h" 2 struct isl_pw_multi_aff_piece { isl_map *set; isl_multi_aff *maff; }; struct isl_pw_multi_aff { int ref; isl_space *dim; int n; size_t size; struct isl_pw_multi_aff_piece p[1]; }; # 1 "/work/isl_pw_templ.h" 1 # 1 "/work/isl_pw_macro.h" 1 # 4 "/work/isl_pw_templ.h" 2 isl_space *isl_pw_multi_aff_peek_space( isl_pw_multi_aff *pw); # 74 "/work/isl_aff_private.h" 2 isl_aff *isl_aff_alloc_vec( isl_local_space *ls, isl_vec *v); isl_aff *isl_aff_alloc( isl_local_space *ls); isl_aff *isl_aff_reset_space_and_domain( isl_aff *aff, isl_space *space, isl_space *domain); isl_aff *isl_aff_reset_domain_space( isl_aff *aff, isl_space *dim); isl_aff *isl_aff_realign_domain( isl_aff *aff, isl_reordering *r); isl_aff *isl_aff_set_constant( isl_aff *aff, isl_int v); isl_aff *isl_aff_set_coefficient( isl_aff *aff, enum isl_dim_type type, int pos, isl_int v); isl_aff *isl_aff_add_constant( isl_aff *aff, isl_int v); isl_aff *isl_aff_domain_factor_domain( isl_aff *aff); int isl_aff_plain_cmp( isl_aff *aff1, isl_aff *aff2); isl_aff *isl_aff_remove_unused_divs( isl_aff *aff); isl_aff *isl_aff_normalize( isl_aff *aff); isl_aff *isl_aff_expand_divs( isl_aff *aff, isl_mat *div, int *exp); isl_pw_aff *isl_pw_aff_alloc_size( isl_space *space, int n); isl_pw_aff *isl_pw_aff_reset_space( isl_pw_aff *pwaff, isl_space *dim); isl_pw_aff *isl_pw_aff_reset_domain_space( isl_pw_aff *pwaff, isl_space *space); isl_pw_aff *isl_pw_aff_add_disjoint( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2); isl_pw_aff *isl_pw_aff_union_opt( isl_pw_aff *pwaff1, isl_pw_aff *pwaff2, int max); isl_pw_aff *isl_pw_aff_set_rational( isl_pw_aff *pwaff); isl_pw_aff_list *isl_pw_aff_list_set_rational( isl_pw_aff_list *list); isl_aff *isl_aff_scale_down( isl_aff *aff, isl_int f); isl_pw_aff *isl_pw_aff_scale( isl_pw_aff *pwaff, isl_int f); isl_pw_aff *isl_pw_aff_scale_down( isl_pw_aff *pwaff, isl_int f); isl_bool isl_aff_matching_params( isl_aff *aff, isl_space *space); isl_stat isl_aff_check_match_domain_space( isl_aff *aff, isl_space *space); # 1 "/work/isl_multi_templ.h" 1 # 1 "/work/isl_multi_macro.h" 1 # 4 "/work/isl_multi_templ.h" 2 # 15 "/work/isl_multi_templ.h" struct isl_multi_aff { int ref; isl_space *space; int n; struct { isl_aff *p[1]; } u; }; isl_multi_aff *isl_multi_aff_alloc( isl_space *space); isl_space *isl_multi_aff_peek_space( isl_multi_aff *multi); # 132 "/work/isl_aff_private.h" 2 isl_multi_aff *isl_multi_aff_dup( isl_multi_aff *multi); isl_multi_aff *isl_multi_aff_align_divs( isl_multi_aff *maff); isl_multi_aff *isl_multi_aff_from_basic_set_equalities( isl_basic_map *bset); isl_multi_aff *isl_multi_aff_from_aff_mat( isl_space *space, isl_mat *mat); # 1 "/work/isl_list_templ.h" 1 struct isl_pw_multi_aff_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_pw_multi_aff *p[1]; }; isl_pw_multi_aff_list *isl_pw_multi_aff_list_dup( isl_pw_multi_aff_list *list); # 148 "/work/isl_aff_private.h" 2 isl_pw_multi_aff *isl_pw_multi_aff_reset_domain_space( isl_pw_multi_aff *pwmaff, isl_space *space); isl_pw_multi_aff *isl_pw_multi_aff_reset_space( isl_pw_multi_aff *pwmaff, isl_space *space); isl_pw_multi_aff *isl_pw_multi_aff_add_disjoint( isl_pw_multi_aff *pma1, isl_pw_multi_aff *pma2); isl_pw_multi_aff *isl_pw_multi_aff_project_out( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned first, unsigned n); isl_stat isl_seq_preimage(isl_int *dst, isl_int *src, isl_multi_aff *ma, int n_before, int n_after, int n_div_ma, int n_div_bmap, isl_int f, isl_int c1, isl_int c2, isl_int g, int has_denom); isl_aff *isl_aff_substitute_equalities( isl_aff *aff, isl_basic_map *eq); isl_pw_multi_aff *isl_pw_multi_aff_substitute( isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned pos, isl_pw_aff *subs); isl_stat isl_pw_aff_check_named_params( isl_pw_aff *pa); isl_stat isl_pw_multi_aff_check_named_params( isl_pw_multi_aff *pma); isl_bool isl_pw_aff_matching_params( isl_pw_aff *pa, isl_space *space); isl_stat isl_pw_aff_check_match_domain_space( isl_pw_aff *pa, isl_space *space); isl_basic_map *isl_aff_pos_basic_set( isl_aff *aff); # 1 "/work/isl_multi_templ.h" 1 # 1 "/work/isl_multi_macro.h" 1 # 4 "/work/isl_multi_templ.h" 2 # 15 "/work/isl_multi_templ.h" struct isl_multi_pw_aff { int ref; isl_space *space; int n; struct { isl_map *dom; isl_pw_aff *p[1]; } u; }; isl_multi_pw_aff *isl_multi_pw_aff_alloc( isl_space *space); isl_space *isl_multi_pw_aff_peek_space( isl_multi_pw_aff *multi); isl_bool isl_multi_pw_aff_has_non_trivial_domain( isl_multi_pw_aff *multi); # 188 "/work/isl_aff_private.h" 2 # 1 "/work/isl_list_templ.h" 1 struct isl_union_pw_aff_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_union_pw_aff *p[1]; }; isl_union_pw_aff_list *isl_union_pw_aff_list_dup( isl_union_pw_aff_list *list); # 195 "/work/isl_aff_private.h" 2 # 1 "/work/isl_multi_templ.h" 1 # 1 "/work/isl_multi_macro.h" 1 # 4 "/work/isl_multi_templ.h" 2 # 15 "/work/isl_multi_templ.h" struct isl_multi_union_pw_aff { int ref; isl_space *space; int n; struct { isl_union_set *dom; isl_union_pw_aff *p[1]; } u; }; isl_multi_union_pw_aff *isl_multi_union_pw_aff_alloc( isl_space *space); isl_space *isl_multi_union_pw_aff_peek_space( isl_multi_union_pw_aff *multi); isl_bool isl_multi_union_pw_aff_has_non_trivial_domain( isl_multi_union_pw_aff *multi); # 203 "/work/isl_aff_private.h" 2 # 1 "/work/isl_list_templ.h" 1 struct isl_union_pw_multi_aff_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_union_pw_multi_aff *p[1]; }; isl_union_pw_multi_aff_list *isl_union_pw_multi_aff_list_dup( isl_union_pw_multi_aff_list *list); # 210 "/work/isl_aff_private.h" 2 # 26 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_constraint_private.h" 1 # 1 "/work/include/isl/constraint.h" 1 # 22 "/work/include/isl/constraint.h" extern "C" { struct isl_constraint; typedef struct isl_constraint isl_constraint; struct isl_constraint; struct isl_constraint_list; typedef struct isl_constraint_list isl_constraint_list; isl_ctx *isl_constraint_list_get_ctx( isl_constraint_list *list); isl_constraint_list *isl_constraint_list_from_constraint( isl_constraint *el); isl_constraint_list *isl_constraint_list_alloc(isl_ctx *ctx, int n); isl_constraint_list *isl_constraint_list_copy( isl_constraint_list *list); isl_constraint_list *isl_constraint_list_free( isl_constraint_list *list); isl_constraint_list *isl_constraint_list_add( isl_constraint_list *list, isl_constraint *el); isl_constraint_list *isl_constraint_list_insert( isl_constraint_list *list, unsigned pos, struct isl_constraint *el); isl_constraint_list *isl_constraint_list_drop( isl_constraint_list *list, unsigned first, unsigned n); isl_constraint_list *isl_constraint_list_swap( isl_constraint_list *list, unsigned pos1, unsigned pos2); isl_constraint_list *isl_constraint_list_reverse( isl_constraint_list *list); isl_constraint_list *isl_constraint_list_concat( isl_constraint_list *list1, isl_constraint_list *list2); isl_size isl_constraint_list_size( isl_constraint_list *list); isl_size isl_constraint_list_n_constraint( isl_constraint_list *list); isl_constraint *isl_constraint_list_get_at( isl_constraint_list *list, int index); struct isl_constraint *isl_constraint_list_get_constraint( isl_constraint_list *list, int index); struct isl_constraint_list *isl_constraint_list_set_constraint( struct isl_constraint_list *list, int index, struct isl_constraint *el); isl_stat isl_constraint_list_foreach( isl_constraint_list *list, isl_stat (*fn)( isl_constraint *el, void *user), void *user); isl_constraint_list *isl_constraint_list_map( isl_constraint_list *list, isl_constraint * (*fn)( isl_constraint *el, void *user), void *user); isl_constraint_list *isl_constraint_list_sort( isl_constraint_list *list, int (*cmp)( struct isl_constraint *a, struct isl_constraint *b, void *user), void *user); isl_stat isl_constraint_list_foreach_scc( isl_constraint_list *list, isl_bool (*follows)( struct isl_constraint *a, struct isl_constraint *b, void *user), void *follows_user, isl_stat (*fn)( isl_constraint_list *scc, void *user), void *fn_user); isl_printer *isl_printer_print_constraint_list( isl_printer *p, isl_constraint_list *list); void isl_constraint_list_dump( isl_constraint_list *list); isl_ctx *isl_constraint_get_ctx( isl_constraint *c); isl_constraint *isl_constraint_alloc_equality( isl_local_space *ls); isl_constraint *isl_constraint_alloc_inequality( isl_local_space *ls); isl_constraint *isl_equality_alloc( isl_local_space *ls); isl_constraint *isl_inequality_alloc( isl_local_space *ls); struct isl_constraint *isl_constraint_copy(struct isl_constraint *c); isl_constraint *isl_constraint_free( isl_constraint *c); isl_size isl_basic_map_n_constraint( isl_basic_map *bmap); isl_size isl_basic_set_n_constraint( isl_basic_map *bset); isl_stat isl_basic_map_foreach_constraint( isl_basic_map *bmap, isl_stat (*fn)( isl_constraint *c, void *user), void *user); isl_stat isl_basic_set_foreach_constraint( isl_basic_map *bset, isl_stat (*fn)( isl_constraint *c, void *user), void *user); isl_constraint_list *isl_basic_map_get_constraint_list( isl_basic_map *bmap); isl_constraint_list *isl_basic_set_get_constraint_list( isl_basic_map *bset); int isl_constraint_is_equal(struct isl_constraint *constraint1, struct isl_constraint *constraint2); isl_stat isl_basic_set_foreach_bound_pair( isl_basic_map *bset, enum isl_dim_type type, unsigned pos, isl_stat (*fn)( isl_constraint *lower, isl_constraint *upper, isl_basic_map *bset, void *user), void *user); isl_basic_map *isl_basic_map_add_constraint( isl_basic_map *bmap, isl_constraint *constraint); isl_basic_map *isl_basic_set_add_constraint( isl_basic_map *bset, isl_constraint *constraint); isl_map *isl_map_add_constraint( isl_map *map, isl_constraint *constraint); isl_map *isl_set_add_constraint( isl_map *set, isl_constraint *constraint); isl_bool isl_basic_map_has_defining_equality( isl_basic_map *bmap, enum isl_dim_type type, int pos, isl_constraint **c); isl_bool isl_basic_set_has_defining_equality( struct isl_basic_map *bset, enum isl_dim_type type, int pos, struct isl_constraint **constraint); isl_bool isl_basic_set_has_defining_inequalities( struct isl_basic_map *bset, enum isl_dim_type type, int pos, struct isl_constraint **lower, struct isl_constraint **upper); isl_space *isl_constraint_get_space( isl_constraint *constraint); isl_local_space *isl_constraint_get_local_space( isl_constraint *constraint); isl_size isl_constraint_dim( isl_constraint *constraint, enum isl_dim_type type); isl_bool isl_constraint_involves_dims( isl_constraint *constraint, enum isl_dim_type type, unsigned first, unsigned n); const char *isl_constraint_get_dim_name( isl_constraint *constraint, enum isl_dim_type type, unsigned pos); isl_val *isl_constraint_get_constant_val( isl_constraint *constraint); isl_val *isl_constraint_get_coefficient_val( isl_constraint *constraint, enum isl_dim_type type, int pos); isl_constraint *isl_constraint_set_constant_si( isl_constraint *constraint, int v); isl_constraint *isl_constraint_set_constant_val( isl_constraint *constraint, isl_val *v); isl_constraint *isl_constraint_set_coefficient_si( isl_constraint *constraint, enum isl_dim_type type, int pos, int v); isl_constraint *isl_constraint_set_coefficient_val( isl_constraint *constraint, enum isl_dim_type type, int pos, isl_val *v); isl_aff *isl_constraint_get_div( isl_constraint *constraint, int pos); struct isl_constraint *isl_constraint_negate(struct isl_constraint *constraint); isl_bool isl_constraint_is_equality( isl_constraint *constraint); isl_bool isl_constraint_is_div_constraint( isl_constraint *constraint); isl_bool isl_constraint_is_lower_bound( isl_constraint *constraint, enum isl_dim_type type, unsigned pos); isl_bool isl_constraint_is_upper_bound( isl_constraint *constraint, enum isl_dim_type type, unsigned pos); isl_basic_map *isl_basic_map_from_constraint( isl_constraint *constraint); isl_basic_map *isl_basic_set_from_constraint( isl_constraint *constraint); isl_aff *isl_constraint_get_bound( isl_constraint *constraint, enum isl_dim_type type, int pos); isl_aff *isl_constraint_get_aff( isl_constraint *constraint); isl_constraint *isl_equality_from_aff( isl_aff *aff); isl_constraint *isl_inequality_from_aff( isl_aff *aff); int isl_constraint_plain_cmp( isl_constraint *c1, isl_constraint *c2); int isl_constraint_cmp_last_non_zero( isl_constraint *c1, isl_constraint *c2); isl_printer *isl_printer_print_constraint( isl_printer *p, isl_constraint *c); void isl_constraint_dump( isl_constraint *c); } # 5 "/work/isl_constraint_private.h" 2 struct isl_constraint { int ref; int eq; isl_local_space *ls; isl_vec *v; }; # 1 "/work/isl_list_templ.h" 1 struct isl_constraint_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_constraint *p[1]; }; isl_constraint_list *isl_constraint_list_dup( isl_constraint_list *list); # 20 "/work/isl_constraint_private.h" 2 struct isl_constraint *isl_basic_set_constraint(struct isl_basic_map *bset, isl_int **line); void isl_constraint_get_constant( isl_constraint *constraint, isl_int *v); void isl_constraint_get_coefficient( isl_constraint *constraint, enum isl_dim_type type, int pos, isl_int *v); isl_bool isl_constraint_is_div_equality( isl_constraint *constraint, unsigned div); # 27 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_ctx_private.h" 1 # 12 "/work/isl_ctx_private.h" struct isl_ctx { int ref; struct isl_stats *stats; int opt_allocated; struct isl_options *opt; void *user_opt; struct isl_args *user_args; isl_int zero; isl_int one; isl_int two; isl_int negone; isl_int normalize_gcd; int n_cached; int n_miss; struct isl_blk cache[0]; struct isl_hash_table id_table; enum isl_error error; const char *error_msg; const char *error_file; int error_line; int abort; unsigned long operations; unsigned long max_operations; }; int isl_ctx_next_operation(isl_ctx *ctx); # 28 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_equalities.h" 1 # 17 "/work/isl_equalities.h" extern "C" { isl_mat *isl_mat_final_variable_compression( isl_mat *B, int first, isl_mat **T2); isl_mat *isl_mat_variable_compression( isl_mat *B, isl_mat **T2); isl_mat *isl_mat_parameter_compression( isl_mat *B, isl_vec *d); isl_mat *isl_mat_parameter_compression_ext( isl_mat *B, isl_mat *A); struct isl_basic_map *isl_basic_set_remove_equalities( struct isl_basic_map *bset, struct isl_mat **T, struct isl_mat **T2); } # 29 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_local_space_private.h" 1 extern "C" { struct isl_local_space { int ref; isl_space *dim; isl_mat *div; }; isl_stat isl_local_space_check_range( isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n); uint32_t isl_local_space_get_hash( isl_local_space *ls); isl_local_space *isl_local_space_alloc( isl_space *space, unsigned n_div); isl_local_space *isl_local_space_alloc_div( isl_space *space, isl_mat *div); isl_space *isl_local_space_peek_space( isl_local_space *ls); isl_local_space *isl_local_space_swap_div( isl_local_space *ls, int a, int b); isl_local_space *isl_local_space_add_div( isl_local_space *ls, isl_vec *div); int isl_mat_cmp_div( isl_mat *div, int i, int j); isl_mat *isl_merge_divs( isl_mat *div1, isl_mat *div2, int *exp1, int *exp2); unsigned isl_local_space_offset( isl_local_space *ls, enum isl_dim_type type); isl_local_space *isl_local_space_replace_divs( isl_local_space *ls, isl_mat *div); isl_bool isl_local_space_div_is_marked_unknown( isl_local_space *ls, int div); isl_bool isl_local_space_div_is_known( isl_local_space *ls, int div); isl_bool isl_local_space_divs_known( isl_local_space *ls); isl_basic_map *isl_local_space_lift_basic_set( isl_local_space *ls, isl_basic_map *bset); isl_map *isl_local_space_lift_set( isl_local_space *ls, isl_map *set); isl_local_space *isl_local_space_substitute_equalities( isl_local_space *ls, isl_basic_map *eq); isl_bool isl_local_space_is_named_or_nested( isl_local_space *ls, enum isl_dim_type type); isl_bool isl_local_space_has_equal_space( isl_local_space *ls1, isl_local_space *ls2); isl_local_space *isl_local_space_reset_space( isl_local_space *ls, isl_space *dim); isl_local_space *isl_local_space_realign( isl_local_space *ls, isl_reordering *r); isl_bool isl_local_space_is_div_constraint( isl_local_space *ls, isl_int *constraint, unsigned div); isl_bool isl_local_space_is_div_equality( isl_local_space *ls, isl_int *constraint, unsigned div); int *isl_local_space_get_active( isl_local_space *ls, isl_int *l); isl_local_space *isl_local_space_substitute_seq( isl_local_space *ls, enum isl_dim_type type, unsigned pos, isl_int *subs, int subs_len, int first, int n); isl_local_space *isl_local_space_substitute( isl_local_space *ls, enum isl_dim_type type, unsigned pos, isl_aff *subs); isl_local_space *isl_local_space_lift( isl_local_space *ls); isl_local_space *isl_local_space_preimage_multi_aff( isl_local_space *ls, isl_multi_aff *ma); isl_local_space *isl_local_space_move_dims( isl_local_space *ls, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n); int isl_local_space_cmp( isl_local_space *ls1, isl_local_space *ls2); isl_point *isl_local_space_lift_point( isl_local_space *ls, isl_point *pnt); isl_bool isl_local_space_has_space( isl_local_space *ls, isl_space *space); } # 30 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_mat_private.h" 1 struct isl_mat { int ref; uint64_t tag; struct isl_ctx *ctx; unsigned flags; unsigned n_row; unsigned n_col; isl_int **row; unsigned max_col; struct isl_blk block; }; uint32_t isl_mat_get_hash( isl_mat *mat); isl_mat *isl_mat_zero(isl_ctx *ctx, unsigned n_row, unsigned n_col); isl_mat *isl_mat_dup( isl_mat *mat); isl_mat *isl_mat_cow( isl_mat *mat); isl_mat *isl_mat_sub_alloc( isl_mat *mat, unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col); isl_mat *isl_mat_sub_alloc6(isl_ctx *ctx, isl_int **row, unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col); void isl_mat_sub_copy(struct isl_ctx *ctx, isl_int **dst, isl_int **src, unsigned n_row, unsigned dst_col, unsigned src_col, unsigned n_col); void isl_mat_sub_neg(struct isl_ctx *ctx, isl_int **dst, isl_int **src, unsigned n_row, unsigned dst_col, unsigned src_col, unsigned n_col); isl_stat isl_mat_sub_transform(isl_int **row, unsigned n_row, unsigned first_col, isl_mat *mat); isl_mat *isl_mat_diag(isl_ctx *ctx, unsigned n_row, isl_int d); isl_mat *isl_mat_reverse_gauss( isl_mat *mat); isl_mat *isl_mat_scale( isl_mat *mat, isl_int m); isl_mat *isl_mat_scale_down_row( isl_mat *mat, int row, isl_int m); isl_vec *isl_mat_get_row( isl_mat *mat, unsigned row); isl_mat *isl_mat_lexnonneg_rows( isl_mat *mat); isl_bool isl_mat_is_scaled_identity( isl_mat *mat); isl_stat isl_mat_row_gcd( isl_mat *mat, int row, isl_int *gcd); void isl_mat_col_mul(struct isl_mat *mat, int dst_col, isl_int f, int src_col); void isl_mat_col_submul(struct isl_mat *mat, int dst_col, isl_int f, int src_col); isl_mat *isl_mat_col_addmul( isl_mat *mat, int dst_col, isl_int f, int src_col); isl_mat *isl_mat_col_neg( isl_mat *mat, int col); isl_mat *isl_mat_row_neg( isl_mat *mat, int row); int isl_mat_get_element( isl_mat *mat, int row, int col, isl_int *v); isl_mat *isl_mat_set_element( isl_mat *mat, int row, int col, isl_int v); # 31 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_seq.h" 1 # 18 "/work/isl_seq.h" extern "C" { void isl_seq_clr(isl_int *p, unsigned len); void isl_seq_set(isl_int *p, isl_int v, unsigned len); void isl_seq_set_si(isl_int *p, int v, unsigned len); void isl_seq_neg(isl_int *dst, isl_int *src, unsigned len); void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len); void isl_seq_addmul(isl_int *dst, isl_int f, isl_int *src, unsigned len); void isl_seq_submul(isl_int *dst, isl_int f, isl_int *src, unsigned len); void isl_seq_swp_or_cpy(isl_int *dst, isl_int *src, unsigned len); void isl_seq_scale(isl_int *dst, isl_int *src, isl_int f, unsigned len); void isl_seq_scale_down(isl_int *dst, isl_int *src, isl_int f, unsigned len); void isl_seq_cdiv_q(isl_int *dst, isl_int *src, isl_int m, unsigned len); void isl_seq_fdiv_q(isl_int *dst, isl_int *src, isl_int m, unsigned len); void isl_seq_fdiv_r(isl_int *dst, isl_int *src, isl_int m, unsigned len); void isl_seq_combine(isl_int *dst, isl_int m1, isl_int *src1, isl_int m2, isl_int *src2, unsigned len); void isl_seq_elim(isl_int *dst, isl_int *src, unsigned pos, unsigned len, isl_int *m); void isl_seq_abs_max(isl_int *p, unsigned len, isl_int *max); void isl_seq_gcd(isl_int *p, unsigned len, isl_int *gcd); void isl_seq_lcm(isl_int *p, unsigned len, isl_int *lcm); void isl_seq_normalize(struct isl_ctx *ctx, isl_int *p, unsigned len); void isl_seq_inner_product(isl_int *p1, isl_int *p2, unsigned len, isl_int *prod); int isl_seq_first_non_zero(isl_int *p, unsigned len); int isl_seq_last_non_zero(isl_int *p, unsigned len); int isl_seq_abs_min_non_zero(isl_int *p, unsigned len); int isl_seq_eq(isl_int *p1, isl_int *p2, unsigned len); int isl_seq_cmp(isl_int *p1, isl_int *p2, unsigned len); int isl_seq_is_neg(isl_int *p1, isl_int *p2, unsigned len); void isl_seq_substitute(isl_int *p, int pos, isl_int *subs, int p_len, int subs_len, isl_int v); uint32_t isl_seq_get_hash(isl_int *p, unsigned len); uint32_t isl_seq_get_hash_bits(isl_int *p, unsigned len, unsigned bits); } # 32 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_val_private.h" 1 # 10 "/work/isl_val_private.h" extern "C" { # 21 "/work/isl_val_private.h" struct isl_val { int ref; isl_ctx *ctx; isl_int n; isl_int d; }; # 1 "/work/isl_list_templ.h" 1 struct isl_val_list { int ref; isl_ctx *ctx; int n; size_t size; struct isl_val *p[1]; }; isl_val_list *isl_val_list_dup( isl_val_list *list); # 33 "/work/isl_val_private.h" 2 isl_val *isl_val_alloc(isl_ctx *ctx); isl_val *isl_val_normalize( isl_val *v); isl_val *isl_val_int_from_isl_int(isl_ctx *ctx, isl_int n); isl_val *isl_val_rat_from_isl_int(isl_ctx *ctx, isl_int n, isl_int d); isl_val *isl_val_cow( isl_val *val); isl_stat isl_val_get_num_isl_int( isl_val *v, isl_int *n); isl_bool isl_val_involves_dims( isl_val *v, enum isl_dim_type type, unsigned first, unsigned n); isl_val *isl_val_insert_dims( isl_val *v, enum isl_dim_type type, unsigned first, unsigned n); isl_val *isl_val_drop_dims( isl_val *v, enum isl_dim_type type, unsigned first, unsigned n); isl_val *isl_val_set_dim_name( isl_val *v, enum isl_dim_type type, unsigned pos, const char *s); isl_space *isl_val_get_space( isl_val *v); isl_val *isl_val_reset_domain_space( isl_val *v, isl_space *space); isl_val *isl_val_align_params( isl_val *v, isl_space *space); isl_val *isl_val_realign_domain( isl_val *v, isl_reordering *r); isl_val *isl_val_zero_on_domain( isl_local_space *ls); isl_val *isl_val_scale_val( isl_val *v1, isl_val *v2); isl_val *isl_val_scale_down_val( isl_val *v1, isl_val *v2); isl_val *isl_val_mod_val( isl_val *v1, isl_val *v2); isl_bool isl_val_plain_is_equal( isl_val *val1, isl_val *val2); isl_bool isl_val_matching_params( isl_val *v, isl_space *space); isl_stat isl_val_check_match_domain_space( isl_val *v, isl_space *space); # 1 "/work/isl_multi_templ.h" 1 # 1 "/work/isl_multi_macro.h" 1 # 4 "/work/isl_multi_templ.h" 2 # 15 "/work/isl_multi_templ.h" struct isl_multi_val { int ref; isl_space *space; int n; struct { isl_val *p[1]; } u; }; isl_multi_val *isl_multi_val_alloc( isl_space *space); isl_space *isl_multi_val_peek_space( isl_multi_val *multi); # 79 "/work/isl_val_private.h" 2 } # 33 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/isl_vec_private.h" 1 struct isl_vec { int ref; struct isl_ctx *ctx; unsigned size; isl_int *el; struct isl_blk block; }; uint32_t isl_vec_get_hash( isl_vec *vec); isl_vec *isl_vec_cow( isl_vec *vec); void isl_vec_lcm(struct isl_vec *vec, isl_int *lcm); int isl_vec_get_element( isl_vec *vec, int pos, isl_int *v); isl_vec *isl_vec_set( isl_vec *vec, isl_int v); isl_bool isl_vec_is_zero( isl_vec *vec); isl_vec *isl_vec_expand( isl_vec *vec, int pos, int n, int *exp, int expanded); # 34 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/set_from_map.cpp" 1 static isl_map *set_from_map( isl_map *map) { return (isl_map *) map; } # 36 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/set_to_map.cpp" 1 static isl_map *set_to_map( isl_map *set) { return (isl_map *) set; } # 37 "/work/isl_coalesce_libint.cpp" 2 # 1 "/work/libint/src/Simplex.h" 1 # 1 "/work/libint/src/Matrix.h" 1 # 1 "/work/libint/3rdparty/libcxx/include/experimental/simd" 1 # 13 "/work/libint/3rdparty/libcxx/include/experimental/simd" # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 1 3 # 14 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 1 3 # 13 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8))); typedef long long __v1di __attribute__((__vector_size__(8))); typedef int __v2si __attribute__((__vector_size__(8))); typedef short __v4hi __attribute__((__vector_size__(8))); typedef char __v8qi __attribute__((__vector_size__(8))); # 30 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("mmx"))) _mm_empty(void) { __builtin_ia32_emms(); } # 47 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cvtsi32_si64(int __i) { return (__m64)__builtin_ia32_vec_init_v2si(__i, 0); } # 64 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cvtsi64_si32(__m64 __m) { return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); } # 80 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cvtsi64_m64(long long __i) { return (__m64)__i; } # 96 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cvtm64_si64(__m64 __m) { return (long long)__m; } # 126 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_packs_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2); } # 156 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_packs_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2); } # 186 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_packs_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2); } # 213 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_unpackhi_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2); } # 236 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_unpackhi_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2); } # 257 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_unpackhi_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2); } # 284 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_unpacklo_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2); } # 307 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_unpacklo_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2); } # 328 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_unpacklo_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2); } # 349 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_add_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); } # 370 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_add_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); } # 391 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_add_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); } # 413 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_adds_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); } # 436 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_adds_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); } # 458 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_adds_pu8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); } # 480 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_adds_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_paddusw((__v4hi)__m1, (__v4hi)__m2); } # 501 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sub_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubb((__v8qi)__m1, (__v8qi)__m2); } # 522 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sub_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubw((__v4hi)__m1, (__v4hi)__m2); } # 543 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sub_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubd((__v2si)__m1, (__v2si)__m2); } # 566 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_subs_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubsb((__v8qi)__m1, (__v8qi)__m2); } # 589 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_subs_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubsw((__v4hi)__m1, (__v4hi)__m2); } # 613 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_subs_pu8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubusb((__v8qi)__m1, (__v8qi)__m2); } # 637 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_subs_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_psubusw((__v4hi)__m1, (__v4hi)__m2); } # 664 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_madd_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pmaddwd((__v4hi)__m1, (__v4hi)__m2); } # 685 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_mulhi_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pmulhw((__v4hi)__m1, (__v4hi)__m2); } # 706 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_mullo_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pmullw((__v4hi)__m1, (__v4hi)__m2); } # 729 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sll_pi16(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psllw((__v4hi)__m, __count); } # 751 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_slli_pi16(__m64 __m, int __count) { return (__m64)__builtin_ia32_psllwi((__v4hi)__m, __count); } # 774 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sll_pi32(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_pslld((__v2si)__m, __count); } # 796 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_slli_pi32(__m64 __m, int __count) { return (__m64)__builtin_ia32_pslldi((__v2si)__m, __count); } # 816 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sll_si64(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psllq((__v1di)__m, __count); } # 836 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_slli_si64(__m64 __m, int __count) { return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count); } # 860 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sra_pi16(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psraw((__v4hi)__m, __count); } # 883 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srai_pi16(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrawi((__v4hi)__m, __count); } # 907 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_sra_pi32(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrad((__v2si)__m, __count); } # 930 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srai_pi32(__m64 __m, int __count) { return (__m64)__builtin_ia32_psradi((__v2si)__m, __count); } # 953 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srl_pi16(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrlw((__v4hi)__m, __count); } # 975 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srli_pi16(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrlwi((__v4hi)__m, __count); } # 998 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srl_pi32(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrld((__v2si)__m, __count); } # 1020 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srli_pi32(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrldi((__v2si)__m, __count); } # 1040 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srl_si64(__m64 __m, __m64 __count) { return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count); } # 1061 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_srli_si64(__m64 __m, int __count) { return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count); } # 1079 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_and_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2); } # 1100 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_andnot_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2); } # 1118 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_or_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2); } # 1136 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_xor_si64(__m64 __m1, __m64 __m2) { return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2); } # 1158 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cmpeq_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpeqb((__v8qi)__m1, (__v8qi)__m2); } # 1180 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cmpeq_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpeqw((__v4hi)__m1, (__v4hi)__m2); } # 1202 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cmpeq_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpeqd((__v2si)__m1, (__v2si)__m2); } # 1224 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cmpgt_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpgtb((__v8qi)__m1, (__v8qi)__m2); } # 1246 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cmpgt_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpgtw((__v4hi)__m1, (__v4hi)__m2); } # 1268 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_cmpgt_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_ia32_pcmpgtd((__v2si)__m1, (__v2si)__m2); } # 1281 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_setzero_si64(void) { return __extension__ (__m64){ 0LL }; } # 1302 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_set_pi32(int __i1, int __i0) { return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1); } # 1325 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_set_pi16(short __s3, short __s2, short __s1, short __s0) { return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3); } # 1356 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { return (__m64)__builtin_ia32_vec_init_v8qi(__b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7); } # 1377 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_set1_pi32(int __i) { return _mm_set_pi32(__i, __i); } # 1396 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_set1_pi16(short __w) { return _mm_set_pi16(__w, __w, __w, __w); } # 1414 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_set1_pi8(char __b) { return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b); } # 1435 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_setr_pi32(int __i0, int __i1) { return _mm_set_pi32(__i1, __i0); } # 1458 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) { return _mm_set_pi16(__w3, __w2, __w1, __w0); } # 1489 "/opt/toolchain/target/lib/clang/9.0.0/include/mmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx"), __min_vector_width__(64))) _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7) { return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); } # 15 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 1 3 # 15 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 typedef int __v4si __attribute__((__vector_size__(16))); typedef float __v4sf __attribute__((__vector_size__(16))); typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16))); typedef float __m128_u __attribute__((__vector_size__(16), __aligned__(1))); typedef unsigned int __v4su __attribute__((__vector_size__(16))); # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/mm_malloc.h" 1 3 # 13 "/opt/toolchain/target/lib/clang/9.0.0/include/mm_malloc.h" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 14 "/opt/toolchain/target/lib/clang/9.0.0/include/mm_malloc.h" 2 3 # 25 "/opt/toolchain/target/lib/clang/9.0.0/include/mm_malloc.h" 3 extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size); static __inline__ void *__attribute__((__always_inline__, __nodebug__, __malloc__)) _mm_malloc(size_t __size, size_t __align) { if (__align == 1) { return malloc(__size); } if (!(__align & (__align - 1)) && __align < sizeof(void *)) __align = sizeof(void *); void *__mallocedMemory; if (posix_memalign(&__mallocedMemory, __align, __size)) return 0; return __mallocedMemory; } static __inline__ void __attribute__((__always_inline__, __nodebug__)) _mm_free(void *__p) { free(__p); } # 28 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 2 3 # 49 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_add_ss(__m128 __a, __m128 __b) { __a[0] += __b[0]; return __a; } # 69 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_add_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a + (__v4sf)__b); } # 91 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_sub_ss(__m128 __a, __m128 __b) { __a[0] -= __b[0]; return __a; } # 112 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_sub_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a - (__v4sf)__b); } # 134 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_mul_ss(__m128 __a, __m128 __b) { __a[0] *= __b[0]; return __a; } # 154 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_mul_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a * (__v4sf)__b); } # 176 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_div_ss(__m128 __a, __m128 __b) { __a[0] /= __b[0]; return __a; } # 195 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_div_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a / (__v4sf)__b); } # 213 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_sqrt_ss(__m128 __a) { return (__m128)__builtin_ia32_sqrtss((__v4sf)__a); } # 230 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_sqrt_ps(__m128 __a) { return __builtin_ia32_sqrtps((__v4sf)__a); } # 248 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_rcp_ss(__m128 __a) { return (__m128)__builtin_ia32_rcpss((__v4sf)__a); } # 265 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_rcp_ps(__m128 __a) { return (__m128)__builtin_ia32_rcpps((__v4sf)__a); } # 284 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_rsqrt_ss(__m128 __a) { return __builtin_ia32_rsqrtss((__v4sf)__a); } # 301 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_rsqrt_ps(__m128 __a) { return __builtin_ia32_rsqrtps((__v4sf)__a); } # 324 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_min_ss(__m128 __a, __m128 __b) { return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b); } # 343 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_min_ps(__m128 __a, __m128 __b) { return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b); } # 366 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_max_ss(__m128 __a, __m128 __b) { return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b); } # 385 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_max_ps(__m128 __a, __m128 __b) { return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b); } # 403 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_and_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a & (__v4su)__b); } # 425 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_andnot_ps(__m128 __a, __m128 __b) { return (__m128)(~(__v4su)__a & (__v4su)__b); } # 443 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_or_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a | (__v4su)__b); } # 462 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_xor_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a ^ (__v4su)__b); } # 484 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpeq_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b); } # 502 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpeq_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b); } # 525 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmplt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b); } # 544 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmplt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b); } # 568 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmple_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b); } # 587 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmple_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b); } # 610 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpgt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpltss((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } # 631 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpgt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a); } # 655 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpge_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpless((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } # 676 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpge_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a); } # 699 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpneq_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b); } # 718 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpneq_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b); } # 742 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpnlt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b); } # 762 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpnlt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b); } # 787 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpnle_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b); } # 807 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpnle_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b); } # 832 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpngt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpnltss((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } # 854 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpngt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a); } # 879 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpnge_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpnless((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } # 901 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpnge_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a); } # 926 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpord_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b); } # 946 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpord_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b); } # 971 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpunord_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b); } # 991 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cmpunord_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b); } # 1015 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_comieq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b); } # 1040 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_comilt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b); } # 1064 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_comile_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b); } # 1088 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_comigt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b); } # 1112 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_comige_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b); } # 1136 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_comineq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b); } # 1160 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_ucomieq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b); } # 1184 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_ucomilt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b); } # 1209 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_ucomile_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b); } # 1234 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_ucomigt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b); } # 1259 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_ucomige_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b); } # 1283 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_ucomineq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b); } # 1301 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvtss_si32(__m128 __a) { return __builtin_ia32_cvtss2si((__v4sf)__a); } # 1319 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvt_ss2si(__m128 __a) { return _mm_cvtss_si32(__a); } # 1339 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvtss_si64(__m128 __a) { return __builtin_ia32_cvtss2si64((__v4sf)__a); } # 1357 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtps_pi32(__m128 __a) { return (__m64)__builtin_ia32_cvtps2pi((__v4sf)__a); } # 1373 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvt_ps2pi(__m128 __a) { return _mm_cvtps_pi32(__a); } # 1392 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvttss_si32(__m128 __a) { return __builtin_ia32_cvttss2si((__v4sf)__a); } # 1411 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvtt_ss2si(__m128 __a) { return _mm_cvttss_si32(__a); } # 1431 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvttss_si64(__m128 __a) { return __builtin_ia32_cvttss2si64((__v4sf)__a); } # 1450 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvttps_pi32(__m128 __a) { return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a); } # 1467 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtt_ps2pi(__m128 __a) { return _mm_cvttps_pi32(__a); } # 1489 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvtsi32_ss(__m128 __a, int __b) { __a[0] = __b; return __a; } # 1512 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvt_si2ss(__m128 __a, int __b) { return _mm_cvtsi32_ss(__a, __b); } # 1536 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvtsi64_ss(__m128 __a, long long __b) { __a[0] = __b; return __a; } # 1562 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtpi32_ps(__m128 __a, __m64 __b) { return __builtin_ia32_cvtpi2ps((__v4sf)__a, (__v2si)__b); } # 1585 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvt_pi2ps(__m128 __a, __m64 __b) { return _mm_cvtpi32_ps(__a, __b); } # 1602 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_cvtss_f32(__m128 __a) { return __a[0]; } # 1623 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_loadh_pi(__m128 __a, const __m64 *__p) { typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_loadh_pi_struct { __mm_loadh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); __mm_loadh_pi_v2f32 __b = ((struct __mm_loadh_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5); } # 1650 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_loadl_pi(__m128 __a, const __m64 *__p) { typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_loadl_pi_struct { __mm_loadl_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); __mm_loadl_pi_v2f32 __b = ((struct __mm_loadl_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3); } # 1677 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_load_ss(const float *__p) { struct __mm_load_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); float __u = ((struct __mm_load_ss_struct*)__p)->__u; return __extension__ (__m128){ __u, 0, 0, 0 }; } # 1699 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_load1_ps(const float *__p) { struct __mm_load1_ps_struct { float __u; } __attribute__((__packed__, __may_alias__)); float __u = ((struct __mm_load1_ps_struct*)__p)->__u; return __extension__ (__m128){ __u, __u, __u, __u }; } # 1722 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_load_ps(const float *__p) { return *(__m128*)__p; } # 1739 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_loadu_ps(const float *__p) { struct __loadu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_ps*)__p)->__v; } # 1761 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_loadr_ps(const float *__p) { __m128 __a = _mm_load_ps(__p); return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); } # 1775 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_undefined_ps(void) { return (__m128)__builtin_ia32_undef128(); } # 1795 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_set_ss(float __w) { return __extension__ (__m128){ __w, 0, 0, 0 }; } # 1813 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_set1_ps(float __w) { return __extension__ (__m128){ __w, __w, __w, __w }; } # 1832 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_set_ps1(float __w) { return _mm_set1_ps(__w); } # 1859 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_set_ps(float __z, float __y, float __x, float __w) { return __extension__ (__m128){ __w, __x, __y, __z }; } # 1887 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_setr_ps(float __z, float __y, float __x, float __w) { return __extension__ (__m128){ __z, __y, __x, __w }; } # 1902 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_setzero_ps(void) { return __extension__ (__m128){ 0, 0, 0, 0 }; } # 1919 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_storeh_pi(__m64 *__p, __m128 __a) { } # 1936 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_storel_pi(__m64 *__p, __m128 __a) { } # 1953 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_store_ss(float *__p, __m128 __a) { struct __mm_store_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_store_ss_struct*)__p)->__u = __a[0]; } # 1974 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_storeu_ps(float *__p, __m128 __a) { struct __storeu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_ps*)__p)->__v = __a; } # 1995 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_store_ps(float *__p, __m128 __a) { *(__m128*)__p = __a; } # 2014 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_store1_ps(float *__p, __m128 __a) { __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 0, 0); _mm_store_ps(__p, __a); } # 2034 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_store_ps1(float *__p, __m128 __a) { _mm_store1_ps(__p, __a); } # 2053 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_storer_ps(float *__p, __m128 __a) { __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); _mm_store_ps(__p, __a); } # 2111 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_stream_pi(__m64 *__p, __m64 __a) { __builtin_ia32_movntq(__p, __a); } # 2130 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_stream_ps(float *__p, __m128 __a) { __builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p); } extern "C" { # 2149 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 void _mm_sfence(void); } # 2222 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_max_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pmaxsw((__v4hi)__a, (__v4hi)__b); } # 2241 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_max_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pmaxub((__v8qi)__a, (__v8qi)__b); } # 2260 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_min_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pminsw((__v4hi)__a, (__v4hi)__b); } # 2279 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_min_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pminub((__v8qi)__a, (__v8qi)__b); } # 2297 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_movemask_pi8(__m64 __a) { return __builtin_ia32_pmovmskb((__v8qi)__a); } # 2316 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_mulhi_pu16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pmulhuw((__v4hi)__a, (__v4hi)__b); } # 2379 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_maskmove_si64(__m64 __d, __m64 __n, char *__p) { __builtin_ia32_maskmovq((__v8qi)__d, (__v8qi)__n, __p); } # 2398 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_avg_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pavgb((__v8qi)__a, (__v8qi)__b); } # 2417 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_avg_pu16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pavgw((__v4hi)__a, (__v4hi)__b); } # 2439 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_sad_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_psadbw((__v8qi)__a, (__v8qi)__b); } extern "C" { # 2499 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 unsigned int _mm_getcsr(void); # 2553 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 void _mm_setcsr(unsigned int __i); } # 2615 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_unpackhi_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7); } # 2637 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_unpacklo_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5); } # 2659 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_move_ss(__m128 __a, __m128 __b) { __a[0] = __b[0]; return __a; } # 2681 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_movehl_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3); } # 2702 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_movelh_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5); } # 2720 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtpi16_ps(__m64 __a) { __m64 __b, __c; __m128 __r; __b = _mm_setzero_si64(); __b = _mm_cmpgt_pi16(__b, __a); __c = _mm_unpackhi_pi16(__a, __b); __r = _mm_setzero_ps(); __r = _mm_cvtpi32_ps(__r, __c); __r = _mm_movelh_ps(__r, __r); __c = _mm_unpacklo_pi16(__a, __b); __r = _mm_cvtpi32_ps(__r, __c); return __r; } # 2750 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtpu16_ps(__m64 __a) { __m64 __b, __c; __m128 __r; __b = _mm_setzero_si64(); __c = _mm_unpackhi_pi16(__a, __b); __r = _mm_setzero_ps(); __r = _mm_cvtpi32_ps(__r, __c); __r = _mm_movelh_ps(__r, __r); __c = _mm_unpacklo_pi16(__a, __b); __r = _mm_cvtpi32_ps(__r, __c); return __r; } # 2779 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtpi8_ps(__m64 __a) { __m64 __b; __b = _mm_setzero_si64(); __b = _mm_cmpgt_pi8(__b, __a); __b = _mm_unpacklo_pi8(__a, __b); return _mm_cvtpi16_ps(__b); } # 2804 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtpu8_ps(__m64 __a) { __m64 __b; __b = _mm_setzero_si64(); __b = _mm_unpacklo_pi8(__a, __b); return _mm_cvtpi16_ps(__b); } # 2831 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtpi32x2_ps(__m64 __a, __m64 __b) { __m128 __c; __c = _mm_setzero_ps(); __c = _mm_cvtpi32_ps(__c, __b); __c = _mm_movelh_ps(__c, __c); return _mm_cvtpi32_ps(__c, __a); } # 2860 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtps_pi16(__m128 __a) { __m64 __b, __c; __b = _mm_cvtps_pi32(__a); __a = _mm_movehl_ps(__a, __a); __c = _mm_cvtps_pi32(__a); return _mm_packs_pi32(__b, __c); } # 2890 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse"), __min_vector_width__(64))) _mm_cvtps_pi8(__m128 __a) { __m64 __b, __c; __b = _mm_cvtps_pi16(__a); __c = _mm_setzero_si64(); return _mm_packs_pi16(__b, __c); } # 2915 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse"), __min_vector_width__(128))) _mm_movemask_ps(__m128 __a) { return __builtin_ia32_movmskps((__v4sf)__a); } # 2997 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 1 3 # 13 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 1 3 # 14 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 2 3 typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16))); typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16))); typedef double __m128d_u __attribute__((__vector_size__(16), __aligned__(1))); typedef long long __m128i_u __attribute__((__vector_size__(16), __aligned__(1))); typedef double __v2df __attribute__ ((__vector_size__ (16))); typedef long long __v2di __attribute__ ((__vector_size__ (16))); typedef short __v8hi __attribute__((__vector_size__(16))); typedef char __v16qi __attribute__((__vector_size__(16))); typedef unsigned long long __v2du __attribute__ ((__vector_size__ (16))); typedef unsigned short __v8hu __attribute__((__vector_size__(16))); typedef unsigned char __v16qu __attribute__((__vector_size__(16))); typedef signed char __v16qs __attribute__((__vector_size__(16))); # 55 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_add_sd(__m128d __a, __m128d __b) { __a[0] += __b[0]; return __a; } # 74 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_add_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a + (__v2df)__b); } # 97 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sub_sd(__m128d __a, __m128d __b) { __a[0] -= __b[0]; return __a; } # 116 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sub_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a - (__v2df)__b); } # 138 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_mul_sd(__m128d __a, __m128d __b) { __a[0] *= __b[0]; return __a; } # 157 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_mul_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a * (__v2df)__b); } # 180 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_div_sd(__m128d __a, __m128d __b) { __a[0] /= __b[0]; return __a; } # 200 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_div_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a / (__v2df)__b); } # 225 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sqrt_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b); return __extension__ (__m128d) { __c[0], __a[1] }; } # 243 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sqrt_pd(__m128d __a) { return __builtin_ia32_sqrtpd((__v2df)__a); } # 267 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_min_sd(__m128d __a, __m128d __b) { return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b); } # 287 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_min_pd(__m128d __a, __m128d __b) { return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b); } # 311 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_max_sd(__m128d __a, __m128d __b) { return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b); } # 331 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_max_pd(__m128d __a, __m128d __b) { return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b); } # 349 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_and_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2du)__a & (__v2du)__b); } # 370 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_andnot_pd(__m128d __a, __m128d __b) { return (__m128d)(~(__v2du)__a & (__v2du)__b); } # 388 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_or_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2du)__a | (__v2du)__b); } # 406 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_xor_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2du)__a ^ (__v2du)__b); } # 425 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpeq_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b); } # 445 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmplt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b); } # 466 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmple_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b); } # 487 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpgt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a); } # 508 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpge_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a); } # 531 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpord_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b); } # 555 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpunord_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b); } # 576 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpneq_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b); } # 597 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpnlt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b); } # 618 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpnle_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b); } # 639 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpngt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a); } # 660 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpnge_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a); } # 683 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpeq_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b); } # 708 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmplt_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b); } # 733 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmple_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b); } # 758 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpgt_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a); return __extension__ (__m128d) { __c[0], __a[1] }; } # 784 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpge_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a); return __extension__ (__m128d) { __c[0], __a[1] }; } # 812 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpord_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b); } # 840 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpunord_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b); } # 865 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpneq_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b); } # 890 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpnlt_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b); } # 915 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpnle_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b); } # 940 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpngt_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a); return __extension__ (__m128d) { __c[0], __a[1] }; } # 966 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpnge_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a); return __extension__ (__m128d) { __c[0], __a[1] }; } # 991 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_comieq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b); } # 1017 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_comilt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b); } # 1043 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_comile_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b); } # 1069 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_comigt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b); } # 1095 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_comige_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b); } # 1121 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_comineq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b); } # 1145 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_ucomieq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b); } # 1171 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_ucomilt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b); } # 1197 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_ucomile_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b); } # 1223 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_ucomigt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b); } # 1249 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_ucomige_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b); } # 1275 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_ucomineq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b); } # 1294 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtpd_ps(__m128d __a) { return __builtin_ia32_cvtpd2ps((__v2df)__a); } # 1314 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtps_pd(__m128 __a) { return (__m128d) __builtin_convertvector( __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df); } # 1337 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtepi32_pd(__m128i __a) { return (__m128d) __builtin_convertvector( __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df); } # 1357 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtpd_epi32(__m128d __a) { return __builtin_ia32_cvtpd2dq((__v2df)__a); } # 1374 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsd_si32(__m128d __a) { return __builtin_ia32_cvtsd2si((__v2df)__a); } # 1399 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsd_ss(__m128 __a, __m128d __b) { return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b); } # 1422 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsi32_sd(__m128d __a, int __b) { __a[0] = __b; return __a; } # 1448 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtss_sd(__m128d __a, __m128 __b) { __a[0] = __b[0]; return __a; } # 1472 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvttpd_epi32(__m128d __a) { return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a); } # 1490 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvttsd_si32(__m128d __a) { return __builtin_ia32_cvttsd2si((__v2df)__a); } # 1507 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) _mm_cvtpd_pi32(__m128d __a) { return (__m64)__builtin_ia32_cvtpd2pi((__v2df)__a); } # 1527 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) _mm_cvttpd_pi32(__m128d __a) { return (__m64)__builtin_ia32_cvttpd2pi((__v2df)__a); } # 1544 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) _mm_cvtpi32_pd(__m64 __a) { return __builtin_ia32_cvtpi2pd((__v2si)__a); } # 1561 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsd_f64(__m128d __a) { return __a[0]; } # 1578 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_load_pd(double const *__dp) { return *(__m128d*)__dp; } # 1596 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_load1_pd(double const *__dp) { struct __mm_load1_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((struct __mm_load1_pd_struct*)__dp)->__u; return __extension__ (__m128d){ __u, __u }; } # 1622 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadr_pd(double const *__dp) { __m128d __u = *(__m128d*)__dp; return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0); } # 1640 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadu_pd(double const *__dp) { struct __loadu_pd { __m128d_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_pd*)__dp)->__v; } # 1660 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadu_si64(void const *__a) { struct __loadu_si64 { long long __v; } __attribute__((__packed__, __may_alias__)); long long __u = ((struct __loadu_si64*)__a)->__v; return __extension__ (__m128i)(__v2di){__u, 0LL}; } # 1681 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadu_si32(void const *__a) { struct __loadu_si32 { int __v; } __attribute__((__packed__, __may_alias__)); int __u = ((struct __loadu_si32*)__a)->__v; return __extension__ (__m128i)(__v4si){__u, 0, 0, 0}; } # 1702 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadu_si16(void const *__a) { struct __loadu_si16 { short __v; } __attribute__((__packed__, __may_alias__)); short __u = ((struct __loadu_si16*)__a)->__v; return __extension__ (__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0}; } # 1723 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_load_sd(double const *__dp) { struct __mm_load_sd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((struct __mm_load_sd_struct*)__dp)->__u; return __extension__ (__m128d){ __u, 0 }; } # 1750 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadh_pd(__m128d __a, double const *__dp) { struct __mm_loadh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((struct __mm_loadh_pd_struct*)__dp)->__u; return __extension__ (__m128d){ __a[0], __u }; } # 1777 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadl_pd(__m128d __a, double const *__dp) { struct __mm_loadl_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((struct __mm_loadl_pd_struct*)__dp)->__u; return __extension__ (__m128d){ __u, __a[1] }; } # 1798 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_undefined_pd(void) { return (__m128d)__builtin_ia32_undef128(); } # 1818 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_sd(double __w) { return __extension__ (__m128d){ __w, 0 }; } # 1836 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set1_pd(double __w) { return __extension__ (__m128d){ __w, __w }; } # 1854 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_pd1(double __w) { return _mm_set1_pd(__w); } # 1874 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_pd(double __w, double __x) { return __extension__ (__m128d){ __x, __w }; } # 1895 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setr_pd(double __w, double __x) { return __extension__ (__m128d){ __w, __x }; } # 1910 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setzero_pd(void) { return __extension__ (__m128d){ 0, 0 }; } # 1931 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_move_sd(__m128d __a, __m128d __b) { __a[0] = __b[0]; return __a; } # 1949 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_store_sd(double *__dp, __m128d __a) { struct __mm_store_sd_struct { double __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_store_sd_struct*)__dp)->__u = __a[0]; } # 1971 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_store_pd(double *__dp, __m128d __a) { *(__m128d*)__dp = __a; } # 1991 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_store1_pd(double *__dp, __m128d __a) { __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); _mm_store_pd(__dp, __a); } # 2012 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_store_pd1(double *__dp, __m128d __a) { _mm_store1_pd(__dp, __a); } # 2030 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storeu_pd(double *__dp, __m128d __a) { struct __storeu_pd { __m128d_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_pd*)__dp)->__v = __a; } # 2053 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storer_pd(double *__dp, __m128d __a) { __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0); *(__m128d *)__dp = __a; } # 2071 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storeh_pd(double *__dp, __m128d __a) { struct __mm_storeh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[1]; } # 2091 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storel_pd(double *__dp, __m128d __a) { struct __mm_storeh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pd_struct*)__dp)->__u = __a[0]; } # 2116 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_add_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qu)__a + (__v16qu)__b); } # 2138 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_add_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hu)__a + (__v8hu)__b); } # 2160 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_add_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a + (__v4su)__b); } # 2178 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) _mm_add_si64(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_paddq((__v1di)__a, (__v1di)__b); } # 2200 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_add_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a + (__v2du)__b); } # 2221 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_adds_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_paddsb128((__v16qi)__a, (__v16qi)__b); } # 2243 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_adds_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_paddsw128((__v8hi)__a, (__v8hi)__b); } # 2264 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_adds_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_paddusb128((__v16qi)__a, (__v16qi)__b); } # 2285 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_adds_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_paddusw128((__v8hi)__a, (__v8hi)__b); } # 2305 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_avg_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b); } # 2325 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_avg_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b); } # 2351 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_madd_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b); } # 2371 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_max_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmaxsw128((__v8hi)__a, (__v8hi)__b); } # 2391 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_max_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmaxub128((__v16qi)__a, (__v16qi)__b); } # 2411 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_min_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pminsw128((__v8hi)__a, (__v8hi)__b); } # 2431 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_min_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pminub128((__v16qi)__a, (__v16qi)__b); } # 2451 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_mulhi_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b); } # 2471 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_mulhi_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b); } # 2491 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_mullo_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hu)__a * (__v8hu)__b); } # 2510 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) _mm_mul_su32(__m64 __a, __m64 __b) { return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b); } # 2529 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_mul_epu32(__m128i __a, __m128i __b) { return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b); } # 2551 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sad_epu8(__m128i __a, __m128i __b) { return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b); } # 2569 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sub_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qu)__a - (__v16qu)__b); } # 2587 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sub_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hu)__a - (__v8hu)__b); } # 2605 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sub_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a - (__v4su)__b); } # 2624 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,sse2"), __min_vector_width__(64))) _mm_sub_si64(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_psubq((__v1di)__a, (__v1di)__b); } # 2642 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sub_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a - (__v2du)__b); } # 2663 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_subs_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b); } # 2684 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_subs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b); } # 2704 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_subs_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b); } # 2724 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_subs_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b); } # 2742 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_and_si128(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a & (__v2du)__b); } # 2762 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_andnot_si128(__m128i __a, __m128i __b) { return (__m128i)(~(__v2du)__a & (__v2du)__b); } # 2779 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_or_si128(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a | (__v2du)__b); } # 2797 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_xor_si128(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a ^ (__v2du)__b); } # 2839 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_slli_epi16(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count); } # 2858 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sll_epi16(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count); } # 2877 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_slli_epi32(__m128i __a, int __count) { return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count); } # 2896 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sll_epi32(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count); } # 2915 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_slli_epi64(__m128i __a, int __count) { return __builtin_ia32_psllqi128((__v2di)__a, __count); } # 2934 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sll_epi64(__m128i __a, __m128i __count) { return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count); } # 2954 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srai_epi16(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count); } # 2974 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sra_epi16(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count); } # 2994 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srai_epi32(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count); } # 3014 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_sra_epi32(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count); } # 3056 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srli_epi16(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count); } # 3075 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srl_epi16(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count); } # 3094 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srli_epi32(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count); } # 3113 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srl_epi32(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count); } # 3132 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srli_epi64(__m128i __a, int __count) { return __builtin_ia32_psrlqi128((__v2di)__a, __count); } # 3151 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_srl_epi64(__m128i __a, __m128i __count) { return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count); } # 3170 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpeq_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qi)__a == (__v16qi)__b); } # 3189 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpeq_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hi)__a == (__v8hi)__b); } # 3208 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpeq_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4si)__a == (__v4si)__b); } # 3228 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpgt_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qs)__a > (__v16qs)__b); } # 3251 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpgt_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hi)__a > (__v8hi)__b); } # 3272 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmpgt_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4si)__a > (__v4si)__b); } # 3293 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmplt_epi8(__m128i __a, __m128i __b) { return _mm_cmpgt_epi8(__b, __a); } # 3314 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmplt_epi16(__m128i __a, __m128i __b) { return _mm_cmpgt_epi16(__b, __a); } # 3335 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cmplt_epi32(__m128i __a, __m128i __b) { return _mm_cmpgt_epi32(__b, __a); } # 3359 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsi64_sd(__m128d __a, long long __b) { __a[0] = __b; return __a; } # 3377 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsd_si64(__m128d __a) { return __builtin_ia32_cvtsd2si64((__v2df)__a); } # 3395 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvttsd_si64(__m128d __a) { return __builtin_ia32_cvttsd2si64((__v2df)__a); } # 3411 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtepi32_ps(__m128i __a) { return (__m128)__builtin_convertvector((__v4si)__a, __v4sf); } # 3427 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtps_epi32(__m128 __a) { return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a); } # 3444 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvttps_epi32(__m128 __a) { return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a); } # 3460 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsi32_si128(int __a) { return __extension__ (__m128i)(__v4si){ __a, 0, 0, 0 }; } # 3477 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsi64_si128(long long __a) { return __extension__ (__m128i)(__v2di){ __a, 0 }; } # 3495 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsi128_si32(__m128i __a) { __v4si __b = (__v4si)__a; return __b[0]; } # 3514 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_cvtsi128_si64(__m128i __a) { return __a[0]; } # 3531 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_load_si128(__m128i const *__p) { return *__p; } # 3547 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadu_si128(__m128i_u const *__p) { struct __loadu_si128 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_si128*)__p)->__v; } # 3568 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_loadl_epi64(__m128i_u const *__p) { struct __mm_loadl_epi64_struct { long long __u; } __attribute__((__packed__, __may_alias__)); return __extension__ (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0}; } # 3586 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_undefined_si128(void) { return (__m128i)__builtin_ia32_undef128(); } # 3608 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_epi64x(long long __q1, long long __q0) { return __extension__ (__m128i)(__v2di){ __q0, __q1 }; } # 3630 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_epi64(__m64 __q1, __m64 __q0) { return _mm_set_epi64x((long long)__q1, (long long)__q0); } # 3658 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_epi32(int __i3, int __i2, int __i1, int __i0) { return __extension__ (__m128i)(__v4si){ __i0, __i1, __i2, __i3}; } # 3698 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0) { return __extension__ (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 }; } # 3746 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b9, char __b8, char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { return __extension__ (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 }; } # 3765 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set1_epi64x(long long __q) { return _mm_set_epi64x(__q, __q); } # 3784 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set1_epi64(__m64 __q) { return _mm_set_epi64(__q, __q); } # 3803 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set1_epi32(int __i) { return _mm_set_epi32(__i, __i, __i, __i); } # 3822 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set1_epi16(short __w) { return _mm_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w); } # 3841 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_set1_epi8(char __b) { return _mm_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); } # 3861 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setr_epi64(__m64 __q0, __m64 __q1) { return _mm_set_epi64(__q1, __q0); } # 3884 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setr_epi32(int __i0, int __i1, int __i2, int __i3) { return _mm_set_epi32(__i3, __i2, __i1, __i0); } # 3915 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4, short __w5, short __w6, short __w7) { return _mm_set_epi16(__w7, __w6, __w5, __w4, __w3, __w2, __w1, __w0); } # 3962 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7, char __b8, char __b9, char __b10, char __b11, char __b12, char __b13, char __b14, char __b15) { return _mm_set_epi8(__b15, __b14, __b13, __b12, __b11, __b10, __b9, __b8, __b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); } # 3976 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_setzero_si128(void) { return __extension__ (__m128i)(__v2di){ 0LL, 0LL }; } # 3994 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_store_si128(__m128i *__p, __m128i __b) { *__p = __b; } # 4010 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storeu_si128(__m128i_u *__p, __m128i __b) { struct __storeu_si128 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si128*)__p)->__v = __b; } # 4031 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storeu_si64(void const *__p, __m128i __b) { struct __storeu_si64 { long long __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si64*)__p)->__v = ((__v2di)__b)[0]; } # 4052 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storeu_si32(void const *__p, __m128i __b) { struct __storeu_si32 { int __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si32*)__p)->__v = ((__v4si)__b)[0]; } # 4073 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storeu_si16(void const *__p, __m128i __b) { struct __storeu_si16 { short __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si16*)__p)->__v = ((__v8hi)__b)[0]; } # 4103 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p) { __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p); } # 4122 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_storel_epi64(__m128i_u *__p, __m128i __a) { struct __mm_storel_epi64_struct { long long __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storel_epi64_struct*)__p)->__u = __a[0]; } # 4145 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_stream_pd(double *__p, __m128d __a) { __builtin_nontemporal_store((__v2df)__a, (__v2df*)__p); } # 4164 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_stream_si128(__m128i *__p, __m128i __a) { __builtin_nontemporal_store((__v2di)__a, (__v2di*)__p); } # 4183 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) _mm_stream_si32(int *__p, int __a) { __builtin_ia32_movnti(__p, __a); } # 4203 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) _mm_stream_si64(long long *__p, long long __a) { __builtin_ia32_movnti64(__p, __a); } extern "C" { # 4224 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 void _mm_clflush(void const * __p); # 4235 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 void _mm_lfence(void); # 4246 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 void _mm_mfence(void); } # 4274 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_packs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b); } # 4302 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_packs_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b); } # 4330 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_packus_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b); } # 4398 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_movemask_epi8(__m128i __a) { return __builtin_ia32_pmovmskb128((__v16qi)__a); } # 4524 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpackhi_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15); } # 4551 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpackhi_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8+4, 5, 8+5, 6, 8+6, 7, 8+7); } # 4574 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpackhi_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4+2, 3, 4+3); } # 4595 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpackhi_epi64(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2+1); } # 4630 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpacklo_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v16qi)__a, (__v16qi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7); } # 4658 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpacklo_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8+0, 1, 8+1, 2, 8+2, 3, 8+3); } # 4681 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpacklo_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4+0, 1, 4+1); } # 4702 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpacklo_epi64(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2+0); } # 4719 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_movepi64_pi64(__m128i __a) { return (__m64)__a[0]; } # 4736 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_movpi64_epi64(__m64 __a) { return __extension__ (__m128i)(__v2di){ (long long)__a, 0 }; } # 4754 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_move_epi64(__m128i __a) { return __builtin_shufflevector((__v2di)__a, _mm_setzero_si128(), 0, 2); } # 4775 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpackhi_pd(__m128d __a, __m128d __b) { return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2+1); } # 4796 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_unpacklo_pd(__m128d __a, __m128d __b) { return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2+0); } # 4815 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_movemask_pd(__m128d __a) { return __builtin_ia32_movmskpd((__v2df)__a); } # 4861 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_castpd_ps(__m128d __a) { return (__m128)__a; } # 4878 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_castpd_si128(__m128d __a) { return (__m128i)__a; } # 4895 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_castps_pd(__m128 __a) { return (__m128d)__a; } # 4912 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_castps_si128(__m128 __a) { return (__m128i)__a; } # 4929 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_castsi128_ps(__m128i __a) { return (__m128)__a; } # 4946 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse2"), __min_vector_width__(128))) _mm_castsi128_pd(__m128i __a) { return (__m128d)__a; } extern "C" { # 4963 "/opt/toolchain/target/lib/clang/9.0.0/include/emmintrin.h" 3 void _mm_pause(void); } # 2998 "/opt/toolchain/target/lib/clang/9.0.0/include/xmmintrin.h" 2 3 # 19 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 1 3 # 33 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_lddqu_si128(__m128i const *__p) { return (__m128i)__builtin_ia32_lddqu((char const *)__p); } # 52 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_addsub_ps(__m128 __a, __m128 __b) { return __builtin_ia32_addsubps((__v4sf)__a, (__v4sf)__b); } # 75 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_hadd_ps(__m128 __a, __m128 __b) { return __builtin_ia32_haddps((__v4sf)__a, (__v4sf)__b); } # 98 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_hsub_ps(__m128 __a, __m128 __b) { return __builtin_ia32_hsubps((__v4sf)__a, (__v4sf)__b); } # 120 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_movehdup_ps(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 1, 1, 3, 3); } # 141 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_moveldup_ps(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 2, 2); } # 160 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_addsub_pd(__m128d __a, __m128d __b) { return __builtin_ia32_addsubpd((__v2df)__a, (__v2df)__b); } # 183 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_hadd_pd(__m128d __a, __m128d __b) { return __builtin_ia32_haddpd((__v2df)__a, (__v2df)__b); } # 206 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_hsub_pd(__m128d __a, __m128d __b) { return __builtin_ia32_hsubpd((__v2df)__a, (__v2df)__b); } # 242 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_movedup_pd(__m128d __a) { return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); } # 263 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_monitor(void const *__p, unsigned __extensions, unsigned __hints) { __builtin_ia32_monitor((void *)__p, __extensions, __hints); } # 282 "/opt/toolchain/target/lib/clang/9.0.0/include/pmmintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse3"), __min_vector_width__(128))) _mm_mwait(unsigned __extensions, unsigned __hints) { __builtin_ia32_mwait(__extensions, __hints); } # 27 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 1 3 # 31 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_abs_pi8(__m64 __a) { return (__m64)__builtin_ia32_pabsb((__v8qi)__a); } # 49 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_abs_epi8(__m128i __a) { return (__m128i)__builtin_ia32_pabsb128((__v16qi)__a); } # 67 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_abs_pi16(__m64 __a) { return (__m64)__builtin_ia32_pabsw((__v4hi)__a); } # 85 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_abs_epi16(__m128i __a) { return (__m128i)__builtin_ia32_pabsw128((__v8hi)__a); } # 103 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_abs_pi32(__m64 __a) { return (__m64)__builtin_ia32_pabsd((__v2si)__a); } # 121 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_abs_epi32(__m128i __a) { return (__m128i)__builtin_ia32_pabsd128((__v4si)__a); } # 190 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_hadd_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b); } # 213 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_hadd_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b); } # 236 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_hadd_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_phaddw((__v4hi)__a, (__v4hi)__b); } # 259 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_hadd_pi32(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_phaddd((__v2si)__a, (__v2si)__b); } # 284 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_hadds_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b); } # 309 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_hadds_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_phaddsw((__v4hi)__a, (__v4hi)__b); } # 332 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_hsub_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b); } # 355 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_hsub_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b); } # 378 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_hsub_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_phsubw((__v4hi)__a, (__v4hi)__b); } # 401 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_hsub_pi32(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_phsubd((__v2si)__a, (__v2si)__b); } # 426 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_hsubs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b); } # 451 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_hsubs_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_phsubsw((__v4hi)__a, (__v4hi)__b); } # 485 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_maddubs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b); } # 515 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_maddubs_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pmaddubsw((__v8qi)__a, (__v8qi)__b); } # 535 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_mulhrs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b); } # 555 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_mulhrs_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pmulhrsw((__v4hi)__a, (__v4hi)__b); } # 581 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_shuffle_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b); } # 606 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_shuffle_pi8(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_pshufb((__v8qi)__a, (__v8qi)__b); } # 632 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_sign_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b); } # 658 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_sign_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b); } # 684 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), __min_vector_width__(64))) _mm_sign_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b); } # 710 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_sign_pi8(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_psignb((__v8qi)__a, (__v8qi)__b); } # 736 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_sign_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_psignw((__v4hi)__a, (__v4hi)__b); } # 762 "/opt/toolchain/target/lib/clang/9.0.0/include/tmmintrin.h" 3 static __inline__ __m64 __attribute__((__always_inline__, __nodebug__, __target__("mmx,ssse3"), __min_vector_width__(64))) _mm_sign_pi32(__m64 __a, __m64 __b) { return (__m64)__builtin_ia32_psignd((__v2si)__a, (__v2si)__b); } # 31 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 1 3 # 430 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_blendv_pd (__m128d __V1, __m128d __V2, __m128d __M) { return (__m128d) __builtin_ia32_blendvpd ((__v2df)__V1, (__v2df)__V2, (__v2df)__M); } # 457 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_blendv_ps (__m128 __V1, __m128 __V2, __m128 __M) { return (__m128) __builtin_ia32_blendvps ((__v4sf)__V1, (__v4sf)__V2, (__v4sf)__M); } # 484 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_blendv_epi8 (__m128i __V1, __m128i __V2, __m128i __M) { return (__m128i) __builtin_ia32_pblendvb128 ((__v16qi)__V1, (__v16qi)__V2, (__v16qi)__M); } # 533 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_mullo_epi32 (__m128i __V1, __m128i __V2) { return (__m128i) ((__v4su)__V1 * (__v4su)__V2); } # 553 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_mul_epi32 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pmuldq128 ((__v4si)__V1, (__v4si)__V2); } # 644 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_stream_load_si128 (__m128i const *__V) { return (__m128i) __builtin_nontemporal_load ((const __v2di *) __V); } # 664 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_min_epi8 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pminsb128 ((__v16qi) __V1, (__v16qi) __V2); } # 683 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_max_epi8 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pmaxsb128 ((__v16qi) __V1, (__v16qi) __V2); } # 702 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_min_epu16 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pminuw128 ((__v8hi) __V1, (__v8hi) __V2); } # 721 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_max_epu16 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pmaxuw128 ((__v8hi) __V1, (__v8hi) __V2); } # 740 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_min_epi32 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pminsd128 ((__v4si) __V1, (__v4si) __V2); } # 759 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_max_epi32 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pmaxsd128 ((__v4si) __V1, (__v4si) __V2); } # 778 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_min_epu32 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pminud128((__v4si) __V1, (__v4si) __V2); } # 797 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_max_epu32 (__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_pmaxud128((__v4si) __V1, (__v4si) __V2); } # 1099 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_testz_si128(__m128i __M, __m128i __V) { return __builtin_ia32_ptestz128((__v2di)__M, (__v2di)__V); } # 1117 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_testc_si128(__m128i __M, __m128i __V) { return __builtin_ia32_ptestc128((__v2di)__M, (__v2di)__V); } # 1136 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_testnzc_si128(__m128i __M, __m128i __V) { return __builtin_ia32_ptestnzc128((__v2di)__M, (__v2di)__V); } # 1209 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cmpeq_epi64(__m128i __V1, __m128i __V2) { return (__m128i)((__v2di)__V1 == (__v2di)__V2); } # 1229 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepi8_epi16(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); } # 1250 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepi8_epi32(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4si); } # 1271 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepi8_epi64(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1), __v2di); } # 1292 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepi16_epi32(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4si); } # 1311 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepi16_epi64(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1), __v2di); } # 1330 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepi32_epi64(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4si)__V, (__v4si)__V, 0, 1), __v2di); } # 1350 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepu8_epi16(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); } # 1369 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepu8_epi32(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si); } # 1388 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepu8_epi64(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di); } # 1407 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepu16_epi32(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si); } # 1426 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepu16_epi64(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di); } # 1445 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_cvtepu32_epi64(__m128i __V) { return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4su)__V, (__v4su)__V, 0, 1), __v2di); } # 1474 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_packus_epi32(__m128i __V1, __m128i __V2) { return (__m128i) __builtin_ia32_packusdw128((__v4si)__V1, (__v4si)__V2); } # 1533 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), __min_vector_width__(128))) _mm_minpos_epu16(__m128i __V) { return (__m128i) __builtin_ia32_phminposuw128((__v8hi)__V); } # 2337 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) _mm_cmpgt_epi64(__m128i __V1, __m128i __V2) { return (__m128i)((__v2di)__V1 > (__v2di)__V2); } # 2358 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) _mm_crc32_u8(unsigned int __C, unsigned char __D) { return __builtin_ia32_crc32qi(__C, __D); } # 2378 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) _mm_crc32_u16(unsigned int __C, unsigned short __D) { return __builtin_ia32_crc32hi(__C, __D); } # 2398 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) _mm_crc32_u32(unsigned int __C, unsigned int __D) { return __builtin_ia32_crc32si(__C, __D); } # 2419 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) _mm_crc32_u64(unsigned long long __C, unsigned long long __D) { return __builtin_ia32_crc32di(__C, __D); } # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/popcntintrin.h" 1 3 # 26 "/opt/toolchain/target/lib/clang/9.0.0/include/popcntintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("popcnt"))) _mm_popcnt_u32(unsigned int __A) { return __builtin_popcount(__A); } # 43 "/opt/toolchain/target/lib/clang/9.0.0/include/popcntintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("popcnt"))) _mm_popcnt_u64(unsigned long long __A) { return __builtin_popcountll(__A); } # 2429 "/opt/toolchain/target/lib/clang/9.0.0/include/smmintrin.h" 2 3 # 36 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/wmmintrin.h" 1 3 # 15 "/opt/toolchain/target/lib/clang/9.0.0/include/wmmintrin.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_aes.h" 1 3 # 34 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_aes.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128))) _mm_aesenc_si128(__m128i __V, __m128i __R) { return (__m128i)__builtin_ia32_aesenc128((__v2di)__V, (__v2di)__R); } # 54 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_aes.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128))) _mm_aesenclast_si128(__m128i __V, __m128i __R) { return (__m128i)__builtin_ia32_aesenclast128((__v2di)__V, (__v2di)__R); } # 74 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_aes.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128))) _mm_aesdec_si128(__m128i __V, __m128i __R) { return (__m128i)__builtin_ia32_aesdec128((__v2di)__V, (__v2di)__R); } # 94 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_aes.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128))) _mm_aesdeclast_si128(__m128i __V, __m128i __R) { return (__m128i)__builtin_ia32_aesdeclast128((__v2di)__V, (__v2di)__R); } # 111 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_aes.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128))) _mm_aesimc_si128(__m128i __V) { return (__m128i)__builtin_ia32_aesimc128((__v2di)__V); } # 16 "/opt/toolchain/target/lib/clang/9.0.0/include/wmmintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/__wmmintrin_pclmul.h" 1 3 # 18 "/opt/toolchain/target/lib/clang/9.0.0/include/wmmintrin.h" 2 3 # 41 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/clflushoptintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/clflushoptintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("clflushopt"))) _mm_clflushopt(void const * __m) { __builtin_ia32_clflushopt(__m); } # 45 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/clwbintrin.h" 1 3 # 31 "/opt/toolchain/target/lib/clang/9.0.0/include/clwbintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("clwb"))) _mm_clwb(void const *__p) { __builtin_ia32_clwb(__p); } # 49 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 1 3 # 17 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 typedef double __v4df __attribute__ ((__vector_size__ (32))); typedef float __v8sf __attribute__ ((__vector_size__ (32))); typedef long long __v4di __attribute__ ((__vector_size__ (32))); typedef int __v8si __attribute__ ((__vector_size__ (32))); typedef short __v16hi __attribute__ ((__vector_size__ (32))); typedef char __v32qi __attribute__ ((__vector_size__ (32))); typedef unsigned long long __v4du __attribute__ ((__vector_size__ (32))); typedef unsigned int __v8su __attribute__ ((__vector_size__ (32))); typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32))); typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32))); typedef signed char __v32qs __attribute__((__vector_size__(32))); typedef float __m256 __attribute__ ((__vector_size__ (32), __aligned__(32))); typedef double __m256d __attribute__((__vector_size__(32), __aligned__(32))); typedef long long __m256i __attribute__((__vector_size__(32), __aligned__(32))); typedef float __m256_u __attribute__ ((__vector_size__ (32), __aligned__(1))); typedef double __m256d_u __attribute__((__vector_size__(32), __aligned__(1))); typedef long long __m256i_u __attribute__((__vector_size__(32), __aligned__(1))); # 59 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_add_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4df)__a+(__v4df)__b); } # 77 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_add_ps(__m256 __a, __m256 __b) { return (__m256)((__v8sf)__a+(__v8sf)__b); } # 95 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_sub_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4df)__a-(__v4df)__b); } # 113 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_sub_ps(__m256 __a, __m256 __b) { return (__m256)((__v8sf)__a-(__v8sf)__b); } # 132 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_addsub_pd(__m256d __a, __m256d __b) { return (__m256d)__builtin_ia32_addsubpd256((__v4df)__a, (__v4df)__b); } # 151 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_addsub_ps(__m256 __a, __m256 __b) { return (__m256)__builtin_ia32_addsubps256((__v8sf)__a, (__v8sf)__b); } # 169 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_div_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4df)__a/(__v4df)__b); } # 187 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_div_ps(__m256 __a, __m256 __b) { return (__m256)((__v8sf)__a/(__v8sf)__b); } # 206 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_max_pd(__m256d __a, __m256d __b) { return (__m256d)__builtin_ia32_maxpd256((__v4df)__a, (__v4df)__b); } # 225 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_max_ps(__m256 __a, __m256 __b) { return (__m256)__builtin_ia32_maxps256((__v8sf)__a, (__v8sf)__b); } # 244 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_min_pd(__m256d __a, __m256d __b) { return (__m256d)__builtin_ia32_minpd256((__v4df)__a, (__v4df)__b); } # 263 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_min_ps(__m256 __a, __m256 __b) { return (__m256)__builtin_ia32_minps256((__v8sf)__a, (__v8sf)__b); } # 281 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_mul_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4df)__a * (__v4df)__b); } # 299 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_mul_ps(__m256 __a, __m256 __b) { return (__m256)((__v8sf)__a * (__v8sf)__b); } # 316 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_sqrt_pd(__m256d __a) { return (__m256d)__builtin_ia32_sqrtpd256((__v4df)__a); } # 333 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_sqrt_ps(__m256 __a) { return (__m256)__builtin_ia32_sqrtps256((__v8sf)__a); } # 350 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_rsqrt_ps(__m256 __a) { return (__m256)__builtin_ia32_rsqrtps256((__v8sf)__a); } # 367 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_rcp_ps(__m256 __a) { return (__m256)__builtin_ia32_rcpps256((__v8sf)__a); } # 519 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_and_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4du)__a & (__v4du)__b); } # 537 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_and_ps(__m256 __a, __m256 __b) { return (__m256)((__v8su)__a & (__v8su)__b); } # 558 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_andnot_pd(__m256d __a, __m256d __b) { return (__m256d)(~(__v4du)__a & (__v4du)__b); } # 579 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_andnot_ps(__m256 __a, __m256 __b) { return (__m256)(~(__v8su)__a & (__v8su)__b); } # 597 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_or_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4du)__a | (__v4du)__b); } # 615 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_or_ps(__m256 __a, __m256 __b) { return (__m256)((__v8su)__a | (__v8su)__b); } # 633 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_xor_pd(__m256d __a, __m256d __b) { return (__m256d)((__v4du)__a ^ (__v4du)__b); } # 651 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_xor_ps(__m256 __a, __m256 __b) { return (__m256)((__v8su)__a ^ (__v8su)__b); } # 675 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_hadd_pd(__m256d __a, __m256d __b) { return (__m256d)__builtin_ia32_haddpd256((__v4df)__a, (__v4df)__b); } # 698 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_hadd_ps(__m256 __a, __m256 __b) { return (__m256)__builtin_ia32_haddps256((__v8sf)__a, (__v8sf)__b); } # 721 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_hsub_pd(__m256d __a, __m256d __b) { return (__m256d)__builtin_ia32_hsubpd256((__v4df)__a, (__v4df)__b); } # 744 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_hsub_ps(__m256 __a, __m256 __b) { return (__m256)__builtin_ia32_hsubps256((__v8sf)__a, (__v8sf)__b); } # 774 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_permutevar_pd(__m128d __a, __m128i __c) { return (__m128d)__builtin_ia32_vpermilvarpd((__v2df)__a, (__v2di)__c); } # 813 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_permutevar_pd(__m256d __a, __m256i __c) { return (__m256d)__builtin_ia32_vpermilvarpd256((__v4df)__a, (__v4di)__c); } # 867 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_permutevar_ps(__m128 __a, __m128i __c) { return (__m128)__builtin_ia32_vpermilvarps((__v4sf)__a, (__v4si)__c); } # 958 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_permutevar_ps(__m256 __a, __m256i __c) { return (__m256)__builtin_ia32_vpermilvarps256((__v8sf)__a, (__v8si)__c); } # 1382 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_blendv_pd(__m256d __a, __m256d __b, __m256d __c) { return (__m256d)__builtin_ia32_blendvpd256( (__v4df)__a, (__v4df)__b, (__v4df)__c); } # 1410 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c) { return (__m256)__builtin_ia32_blendvps256( (__v8sf)__a, (__v8sf)__b, (__v8sf)__c); } # 2128 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtepi32_pd(__m128i __a) { return (__m256d)__builtin_convertvector((__v4si)__a, __v4df); } # 2143 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtepi32_ps(__m256i __a) { return (__m256)__builtin_convertvector((__v8si)__a, __v8sf); } # 2159 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtpd_ps(__m256d __a) { return (__m128)__builtin_ia32_cvtpd2ps256((__v4df) __a); } # 2174 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtps_epi32(__m256 __a) { return (__m256i)__builtin_ia32_cvtps2dq256((__v8sf) __a); } # 2190 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtps_pd(__m128 __a) { return (__m256d)__builtin_convertvector((__v4sf)__a, __v4df); } # 2207 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvttpd_epi32(__m256d __a) { return (__m128i)__builtin_ia32_cvttpd2dq256((__v4df) __a); } # 2224 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtpd_epi32(__m256d __a) { return (__m128i)__builtin_ia32_cvtpd2dq256((__v4df) __a); } # 2240 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvttps_epi32(__m256 __a) { return (__m256i)__builtin_ia32_cvttps2dq256((__v8sf) __a); } # 2256 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline double __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtsd_f64(__m256d __a) { return __a[0]; } # 2272 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtsi256_si32(__m256i __a) { __v8si __b = (__v8si)__a; return __b[0]; } # 2289 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline float __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_cvtss_f32(__m256 __a) { return __a[0]; } # 2315 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_movehdup_ps(__m256 __a) { return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 1, 1, 3, 3, 5, 5, 7, 7); } # 2340 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_moveldup_ps(__m256 __a) { return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 0, 2, 2, 4, 4, 6, 6); } # 2362 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_movedup_pd(__m256d __a) { return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 0, 2, 2); } # 2385 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_unpackhi_pd(__m256d __a, __m256d __b) { return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 1, 5, 1+2, 5+2); } # 2407 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_unpacklo_pd(__m256d __a, __m256d __b) { return __builtin_shufflevector((__v4df)__a, (__v4df)__b, 0, 4, 0+2, 4+2); } # 2434 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_unpackhi_ps(__m256 __a, __m256 __b) { return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 2, 10, 2+1, 10+1, 6, 14, 6+1, 14+1); } # 2461 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_unpacklo_ps(__m256 __a, __m256 __b) { return __builtin_shufflevector((__v8sf)__a, (__v8sf)__b, 0, 8, 0+1, 8+1, 4, 12, 4+1, 12+1); } # 2491 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_testz_pd(__m128d __a, __m128d __b) { return __builtin_ia32_vtestzpd((__v2df)__a, (__v2df)__b); } # 2520 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_testc_pd(__m128d __a, __m128d __b) { return __builtin_ia32_vtestcpd((__v2df)__a, (__v2df)__b); } # 2550 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_testnzc_pd(__m128d __a, __m128d __b) { return __builtin_ia32_vtestnzcpd((__v2df)__a, (__v2df)__b); } # 2579 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_testz_ps(__m128 __a, __m128 __b) { return __builtin_ia32_vtestzps((__v4sf)__a, (__v4sf)__b); } # 2608 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_testc_ps(__m128 __a, __m128 __b) { return __builtin_ia32_vtestcps((__v4sf)__a, (__v4sf)__b); } # 2638 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_testnzc_ps(__m128 __a, __m128 __b) { return __builtin_ia32_vtestnzcps((__v4sf)__a, (__v4sf)__b); } # 2667 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testz_pd(__m256d __a, __m256d __b) { return __builtin_ia32_vtestzpd256((__v4df)__a, (__v4df)__b); } # 2696 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testc_pd(__m256d __a, __m256d __b) { return __builtin_ia32_vtestcpd256((__v4df)__a, (__v4df)__b); } # 2726 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testnzc_pd(__m256d __a, __m256d __b) { return __builtin_ia32_vtestnzcpd256((__v4df)__a, (__v4df)__b); } # 2755 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testz_ps(__m256 __a, __m256 __b) { return __builtin_ia32_vtestzps256((__v8sf)__a, (__v8sf)__b); } # 2784 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testc_ps(__m256 __a, __m256 __b) { return __builtin_ia32_vtestcps256((__v8sf)__a, (__v8sf)__b); } # 2814 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testnzc_ps(__m256 __a, __m256 __b) { return __builtin_ia32_vtestnzcps256((__v8sf)__a, (__v8sf)__b); } # 2840 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testz_si256(__m256i __a, __m256i __b) { return __builtin_ia32_ptestz256((__v4di)__a, (__v4di)__b); } # 2866 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testc_si256(__m256i __a, __m256i __b) { return __builtin_ia32_ptestc256((__v4di)__a, (__v4di)__b); } # 2893 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_testnzc_si256(__m256i __a, __m256i __b) { return __builtin_ia32_ptestnzc256((__v4di)__a, (__v4di)__b); } # 2912 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_movemask_pd(__m256d __a) { return __builtin_ia32_movmskpd256((__v4df)__a); } # 2930 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline int __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_movemask_ps(__m256 __a) { return __builtin_ia32_movmskps256((__v8sf)__a); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"))) _mm256_zeroall(void) { __builtin_ia32_vzeroall(); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"))) _mm256_zeroupper(void) { __builtin_ia32_vzeroupper(); } # 2972 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_broadcast_ss(float const *__a) { float __f = *__a; return __extension__ (__m128)(__v4sf){ __f, __f, __f, __f }; } # 2991 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_broadcast_sd(double const *__a) { double __d = *__a; return __extension__ (__m256d)(__v4df){ __d, __d, __d, __d }; } # 3010 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_broadcast_ss(float const *__a) { float __f = *__a; return __extension__ (__m256)(__v8sf){ __f, __f, __f, __f, __f, __f, __f, __f }; } # 3029 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_broadcast_pd(__m128d const *__a) { __m128d __b = _mm_loadu_pd((const double *)__a); return (__m256d)__builtin_shufflevector((__v2df)__b, (__v2df)__b, 0, 1, 0, 1); } # 3049 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_broadcast_ps(__m128 const *__a) { __m128 __b = _mm_loadu_ps((const float *)__a); return (__m256)__builtin_shufflevector((__v4sf)__b, (__v4sf)__b, 0, 1, 2, 3, 0, 1, 2, 3); } # 3069 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_load_pd(double const *__p) { return *(__m256d *)__p; } # 3085 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_load_ps(float const *__p) { return *(__m256 *)__p; } # 3102 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_loadu_pd(double const *__p) { struct __loadu_pd { __m256d_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_pd*)__p)->__v; } # 3122 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_loadu_ps(float const *__p) { struct __loadu_ps { __m256_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_ps*)__p)->__v; } # 3142 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_load_si256(__m256i const *__p) { return *__p; } # 3158 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_loadu_si256(__m256i_u const *__p) { struct __loadu_si256 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_si256*)__p)->__v; } # 3179 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_lddqu_si256(__m256i const *__p) { return (__m256i)__builtin_ia32_lddqu256((char const *)__p); } # 3199 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_store_pd(double *__p, __m256d __a) { *(__m256d *)__p = __a; } # 3217 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_store_ps(float *__p, __m256 __a) { *(__m256 *)__p = __a; } # 3235 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_storeu_pd(double *__p, __m256d __a) { struct __storeu_pd { __m256d_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_pd*)__p)->__v = __a; } # 3255 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_storeu_ps(float *__p, __m256 __a) { struct __storeu_ps { __m256_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_ps*)__p)->__v = __a; } # 3276 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_store_si256(__m256i *__p, __m256i __a) { *__p = __a; } # 3293 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_storeu_si256(__m256i_u *__p, __m256i __a) { struct __storeu_si256 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si256*)__p)->__v = __a; } # 3321 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_maskload_pd(double const *__p, __m128i __m) { return (__m128d)__builtin_ia32_maskloadpd((const __v2df *)__p, (__v2di)__m); } # 3345 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_maskload_pd(double const *__p, __m256i __m) { return (__m256d)__builtin_ia32_maskloadpd256((const __v4df *)__p, (__v4di)__m); } # 3370 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_maskload_ps(float const *__p, __m128i __m) { return (__m128)__builtin_ia32_maskloadps((const __v4sf *)__p, (__v4si)__m); } # 3394 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_maskload_ps(float const *__p, __m256i __m) { return (__m256)__builtin_ia32_maskloadps256((const __v8sf *)__p, (__v8si)__m); } # 3419 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_maskstore_ps(float *__p, __m256i __m, __m256 __a) { __builtin_ia32_maskstoreps256((__v8sf *)__p, (__v8si)__m, (__v8sf)__a); } # 3443 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_maskstore_pd(double *__p, __m128i __m, __m128d __a) { __builtin_ia32_maskstorepd((__v2df *)__p, (__v2di)__m, (__v2df)__a); } # 3467 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_maskstore_pd(double *__p, __m256i __m, __m256d __a) { __builtin_ia32_maskstorepd256((__v4df *)__p, (__v4di)__m, (__v4df)__a); } # 3491 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(128))) _mm_maskstore_ps(float *__p, __m128i __m, __m128 __a) { __builtin_ia32_maskstoreps((__v4sf *)__p, (__v4si)__m, (__v4sf)__a); } # 3511 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_stream_si256(__m256i *__a, __m256i __b) { typedef __v4di __v4di_aligned __attribute__((aligned(32))); __builtin_nontemporal_store((__v4di_aligned)__b, (__v4di_aligned*)__a); } # 3531 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_stream_pd(double *__a, __m256d __b) { typedef __v4df __v4df_aligned __attribute__((aligned(32))); __builtin_nontemporal_store((__v4df_aligned)__b, (__v4df_aligned*)__a); } # 3552 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_stream_ps(float *__p, __m256 __a) { typedef __v8sf __v8sf_aligned __attribute__((aligned(32))); __builtin_nontemporal_store((__v8sf_aligned)__a, (__v8sf_aligned*)__p); } # 3567 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_undefined_pd(void) { return (__m256d)__builtin_ia32_undef256(); } # 3580 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_undefined_ps(void) { return (__m256)__builtin_ia32_undef256(); } # 3593 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_undefined_si256(void) { return (__m256i)__builtin_ia32_undef256(); } # 3620 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_pd(double __a, double __b, double __c, double __d) { return __extension__ (__m256d){ __d, __c, __b, __a }; } # 3659 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_ps(float __a, float __b, float __c, float __d, float __e, float __f, float __g, float __h) { return __extension__ (__m256){ __h, __g, __f, __e, __d, __c, __b, __a }; } # 3691 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_epi32(int __i0, int __i1, int __i2, int __i3, int __i4, int __i5, int __i6, int __i7) { return __extension__ (__m256i)(__v8si){ __i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0 }; } # 3739 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_epi16(short __w15, short __w14, short __w13, short __w12, short __w11, short __w10, short __w09, short __w08, short __w07, short __w06, short __w05, short __w04, short __w03, short __w02, short __w01, short __w00) { return __extension__ (__m256i)(__v16hi){ __w00, __w01, __w02, __w03, __w04, __w05, __w06, __w07, __w08, __w09, __w10, __w11, __w12, __w13, __w14, __w15 }; } # 3822 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_epi8(char __b31, char __b30, char __b29, char __b28, char __b27, char __b26, char __b25, char __b24, char __b23, char __b22, char __b21, char __b20, char __b19, char __b18, char __b17, char __b16, char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b09, char __b08, char __b07, char __b06, char __b05, char __b04, char __b03, char __b02, char __b01, char __b00) { return __extension__ (__m256i)(__v32qi){ __b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07, __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15, __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23, __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31 }; } # 3857 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_epi64x(long long __a, long long __b, long long __c, long long __d) { return __extension__ (__m256i)(__v4di){ __d, __c, __b, __a }; } # 3886 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_pd(double __a, double __b, double __c, double __d) { return _mm256_set_pd(__d, __c, __b, __a); } # 3926 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_ps(float __a, float __b, float __c, float __d, float __e, float __f, float __g, float __h) { return _mm256_set_ps(__h, __g, __f, __e, __d, __c, __b, __a); } # 3958 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_epi32(int __i0, int __i1, int __i2, int __i3, int __i4, int __i5, int __i6, int __i7) { return _mm256_set_epi32(__i7, __i6, __i5, __i4, __i3, __i2, __i1, __i0); } # 4006 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_epi16(short __w15, short __w14, short __w13, short __w12, short __w11, short __w10, short __w09, short __w08, short __w07, short __w06, short __w05, short __w04, short __w03, short __w02, short __w01, short __w00) { return _mm256_set_epi16(__w00, __w01, __w02, __w03, __w04, __w05, __w06, __w07, __w08, __w09, __w10, __w11, __w12, __w13, __w14, __w15); } # 4091 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_epi8(char __b31, char __b30, char __b29, char __b28, char __b27, char __b26, char __b25, char __b24, char __b23, char __b22, char __b21, char __b20, char __b19, char __b18, char __b17, char __b16, char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b09, char __b08, char __b07, char __b06, char __b05, char __b04, char __b03, char __b02, char __b01, char __b00) { return _mm256_set_epi8(__b00, __b01, __b02, __b03, __b04, __b05, __b06, __b07, __b08, __b09, __b10, __b11, __b12, __b13, __b14, __b15, __b16, __b17, __b18, __b19, __b20, __b21, __b22, __b23, __b24, __b25, __b26, __b27, __b28, __b29, __b30, __b31); } # 4124 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_epi64x(long long __a, long long __b, long long __c, long long __d) { return _mm256_set_epi64x(__d, __c, __b, __a); } # 4143 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set1_pd(double __w) { return _mm256_set_pd(__w, __w, __w, __w); } # 4162 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set1_ps(float __w) { return _mm256_set_ps(__w, __w, __w, __w, __w, __w, __w, __w); } # 4181 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set1_epi32(int __i) { return _mm256_set_epi32(__i, __i, __i, __i, __i, __i, __i, __i); } # 4199 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set1_epi16(short __w) { return _mm256_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w); } # 4217 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set1_epi8(char __b) { return _mm256_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); } # 4238 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set1_epi64x(long long __q) { return _mm256_set_epi64x(__q, __q, __q, __q); } # 4253 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setzero_pd(void) { return __extension__ (__m256d){ 0, 0, 0, 0 }; } # 4267 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setzero_ps(void) { return __extension__ (__m256){ 0, 0, 0, 0, 0, 0, 0, 0 }; } # 4280 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setzero_si256(void) { return __extension__ (__m256i)(__v4di){ 0, 0, 0, 0 }; } # 4298 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castpd_ps(__m256d __a) { return (__m256)__a; } # 4315 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castpd_si256(__m256d __a) { return (__m256i)__a; } # 4332 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castps_pd(__m256 __a) { return (__m256d)__a; } # 4349 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castps_si256(__m256 __a) { return (__m256i)__a; } # 4366 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castsi256_ps(__m256i __a) { return (__m256)__a; } # 4383 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castsi256_pd(__m256i __a) { return (__m256d)__a; } # 4400 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castpd256_pd128(__m256d __a) { return __builtin_shufflevector((__v4df)__a, (__v4df)__a, 0, 1); } # 4417 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castps256_ps128(__m256 __a) { return __builtin_shufflevector((__v8sf)__a, (__v8sf)__a, 0, 1, 2, 3); } # 4433 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castsi256_si128(__m256i __a) { return __builtin_shufflevector((__v4di)__a, (__v4di)__a, 0, 1); } # 4454 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castpd128_pd256(__m128d __a) { return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 1, -1, -1); } # 4475 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castps128_ps256(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1, 2, 3, -1, -1, -1, -1); } # 4494 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_castsi128_si256(__m128i __a) { return __builtin_shufflevector((__v2di)__a, (__v2di)__a, 0, 1, -1, -1); } # 4513 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_zextpd128_pd256(__m128d __a) { return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3); } # 4531 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_zextps128_ps256(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7); } # 4549 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_zextsi128_si256(__m128i __a) { return __builtin_shufflevector((__v2di)__a, (__v2di)_mm_setzero_si128(), 0, 1, 2, 3); } # 4773 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_loadu2_m128(float const *__addr_hi, float const *__addr_lo) { __m256 __v256 = _mm256_castps128_ps256(_mm_loadu_ps(__addr_lo)); return (__m256)__builtin_ia32_vinsertf128_ps256((__v8sf)(__m256)(__v256), (__v4sf)(__m128)(_mm_loadu_ps(__addr_hi)), (int)(1)); } # 4801 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_loadu2_m128d(double const *__addr_hi, double const *__addr_lo) { __m256d __v256 = _mm256_castpd128_pd256(_mm_loadu_pd(__addr_lo)); return (__m256d)__builtin_ia32_vinsertf128_pd256((__v4df)(__m256d)(__v256), (__v2df)(__m128d)(_mm_loadu_pd(__addr_hi)), (int)(1)); } # 4826 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_loadu2_m128i(__m128i_u const *__addr_hi, __m128i_u const *__addr_lo) { __m256i __v256 = _mm256_castsi128_si256(_mm_loadu_si128(__addr_lo)); return (__m256i)__builtin_ia32_vinsertf128_si256((__v8si)(__m256i)(__v256), (__v4si)(__m128i)(_mm_loadu_si128(__addr_hi)), (int)(1)); } # 4852 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_storeu2_m128(float *__addr_hi, float *__addr_lo, __m256 __a) { __m128 __v128; __v128 = _mm256_castps256_ps128(__a); _mm_storeu_ps(__addr_lo, __v128); __v128 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__a), (int)(1)); _mm_storeu_ps(__addr_hi, __v128); } # 4881 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_storeu2_m128d(double *__addr_hi, double *__addr_lo, __m256d __a) { __m128d __v128; __v128 = _mm256_castpd256_pd128(__a); _mm_storeu_pd(__addr_lo, __v128); __v128 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__a), (int)(1)); _mm_storeu_pd(__addr_hi, __v128); } # 4910 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_storeu2_m128i(__m128i_u *__addr_hi, __m128i_u *__addr_lo, __m256i __a) { __m128i __v128; __v128 = _mm256_castsi256_si128(__a); _mm_storeu_si128(__addr_lo, __v128); __v128 = (__m128i)__builtin_ia32_vextractf128_si256((__v8si)(__m256i)(__a), (int)(1)); _mm_storeu_si128(__addr_hi, __v128); } # 4936 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_m128 (__m128 __hi, __m128 __lo) { return (__m256) __builtin_shufflevector((__v4sf)__lo, (__v4sf)__hi, 0, 1, 2, 3, 4, 5, 6, 7); } # 4957 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_m128d (__m128d __hi, __m128d __lo) { return (__m256d) __builtin_shufflevector((__v2df)__lo, (__v2df)__hi, 0, 1, 2, 3); } # 4977 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_set_m128i (__m128i __hi, __m128i __lo) { return (__m256i) __builtin_shufflevector((__v2di)__lo, (__v2di)__hi, 0, 1, 2, 3); } # 5000 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_m128 (__m128 __lo, __m128 __hi) { return _mm256_set_m128(__hi, __lo); } # 5023 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_m128d (__m128d __lo, __m128d __hi) { return (__m256d)_mm256_set_m128d(__hi, __lo); } # 5044 "/opt/toolchain/target/lib/clang/9.0.0/include/avxintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx"), __min_vector_width__(256))) _mm256_setr_m128i (__m128i __lo, __m128i __hi) { return (__m256i)_mm256_set_m128i(__hi, __lo); } # 53 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx2intrin.h" 1 3 # 26 "/opt/toolchain/target/lib/clang/9.0.0/include/avx2intrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_abs_epi8(__m256i __a) { return (__m256i)__builtin_ia32_pabsb256((__v32qi)__a); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_abs_epi16(__m256i __a) { return (__m256i)__builtin_ia32_pabsw256((__v16hi)__a); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_abs_epi32(__m256i __a) { return (__m256i)__builtin_ia32_pabsd256((__v8si)__a); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_packs_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_packsswb256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_packs_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_packssdw256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_packus_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_packuswb256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_packus_epi32(__m256i __V1, __m256i __V2) { return (__m256i) __builtin_ia32_packusdw256((__v8si)__V1, (__v8si)__V2); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_add_epi8(__m256i __a, __m256i __b) { return (__m256i)((__v32qu)__a + (__v32qu)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_add_epi16(__m256i __a, __m256i __b) { return (__m256i)((__v16hu)__a + (__v16hu)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_add_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8su)__a + (__v8su)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_add_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a + (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_adds_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_paddsb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_adds_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_paddsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_adds_epu8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_paddusb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_adds_epu16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_paddusw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_and_si256(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a & (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_andnot_si256(__m256i __a, __m256i __b) { return (__m256i)(~(__v4du)__a & (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_avg_epu8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pavgb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_avg_epu16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pavgw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_blendv_epi8(__m256i __V1, __m256i __V2, __m256i __M) { return (__m256i)__builtin_ia32_pblendvb256((__v32qi)__V1, (__v32qi)__V2, (__v32qi)__M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpeq_epi8(__m256i __a, __m256i __b) { return (__m256i)((__v32qi)__a == (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpeq_epi16(__m256i __a, __m256i __b) { return (__m256i)((__v16hi)__a == (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpeq_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8si)__a == (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpeq_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4di)__a == (__v4di)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpgt_epi8(__m256i __a, __m256i __b) { return (__m256i)((__v32qs)__a > (__v32qs)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpgt_epi16(__m256i __a, __m256i __b) { return (__m256i)((__v16hi)__a > (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpgt_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8si)__a > (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cmpgt_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4di)__a > (__v4di)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_hadd_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_phaddw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_hadd_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_phaddd256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_hadds_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_phaddsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_hsub_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_phsubw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_hsub_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_phsubd256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_hsubs_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_phsubsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_maddubs_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaddubsw256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_madd_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaddwd256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_max_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaxsb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_max_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaxsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_max_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaxsd256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_max_epu8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaxub256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_max_epu16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaxuw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_max_epu32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmaxud256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_min_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pminsb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_min_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pminsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_min_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pminsd256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_min_epu8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pminub256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_min_epu16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pminuw256 ((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_min_epu32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pminud256((__v8si)__a, (__v8si)__b); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_movemask_epi8(__m256i __a) { return __builtin_ia32_pmovmskb256((__v32qi)__a); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepi8_epi16(__m128i __V) { return (__m256i)__builtin_convertvector((__v16qs)__V, __v16hi); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepi8_epi32(__m128i __V) { return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8si); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepi8_epi64(__m128i __V) { return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4di); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepi16_epi32(__m128i __V) { return (__m256i)__builtin_convertvector((__v8hi)__V, __v8si); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepi16_epi64(__m128i __V) { return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4di); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepi32_epi64(__m128i __V) { return (__m256i)__builtin_convertvector((__v4si)__V, __v4di); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepu8_epi16(__m128i __V) { return (__m256i)__builtin_convertvector((__v16qu)__V, __v16hi); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepu8_epi32(__m128i __V) { return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8si); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepu8_epi64(__m128i __V) { return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4di); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepu16_epi32(__m128i __V) { return (__m256i)__builtin_convertvector((__v8hu)__V, __v8si); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepu16_epi64(__m128i __V) { return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4di); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_cvtepu32_epi64(__m128i __V) { return (__m256i)__builtin_convertvector((__v4su)__V, __v4di); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mul_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmuldq256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mulhrs_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmulhrsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mulhi_epu16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmulhuw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mulhi_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pmulhw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mullo_epi16(__m256i __a, __m256i __b) { return (__m256i)((__v16hu)__a * (__v16hu)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mullo_epi32 (__m256i __a, __m256i __b) { return (__m256i)((__v8su)__a * (__v8su)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_mul_epu32(__m256i __a, __m256i __b) { return __builtin_ia32_pmuludq256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_or_si256(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a | (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sad_epu8(__m256i __a, __m256i __b) { return __builtin_ia32_psadbw256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_shuffle_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_pshufb256((__v32qi)__a, (__v32qi)__b); } # 478 "/opt/toolchain/target/lib/clang/9.0.0/include/avx2intrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sign_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psignb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sign_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psignw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sign_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psignd256((__v8si)__a, (__v8si)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_slli_epi16(__m256i __a, int __count) { return (__m256i)__builtin_ia32_psllwi256((__v16hi)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sll_epi16(__m256i __a, __m128i __count) { return (__m256i)__builtin_ia32_psllw256((__v16hi)__a, (__v8hi)__count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_slli_epi32(__m256i __a, int __count) { return (__m256i)__builtin_ia32_pslldi256((__v8si)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sll_epi32(__m256i __a, __m128i __count) { return (__m256i)__builtin_ia32_pslld256((__v8si)__a, (__v4si)__count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_slli_epi64(__m256i __a, int __count) { return __builtin_ia32_psllqi256((__v4di)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sll_epi64(__m256i __a, __m128i __count) { return __builtin_ia32_psllq256((__v4di)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srai_epi16(__m256i __a, int __count) { return (__m256i)__builtin_ia32_psrawi256((__v16hi)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sra_epi16(__m256i __a, __m128i __count) { return (__m256i)__builtin_ia32_psraw256((__v16hi)__a, (__v8hi)__count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srai_epi32(__m256i __a, int __count) { return (__m256i)__builtin_ia32_psradi256((__v8si)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sra_epi32(__m256i __a, __m128i __count) { return (__m256i)__builtin_ia32_psrad256((__v8si)__a, (__v4si)__count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srli_epi16(__m256i __a, int __count) { return (__m256i)__builtin_ia32_psrlwi256((__v16hi)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srl_epi16(__m256i __a, __m128i __count) { return (__m256i)__builtin_ia32_psrlw256((__v16hi)__a, (__v8hi)__count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srli_epi32(__m256i __a, int __count) { return (__m256i)__builtin_ia32_psrldi256((__v8si)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srl_epi32(__m256i __a, __m128i __count) { return (__m256i)__builtin_ia32_psrld256((__v8si)__a, (__v4si)__count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srli_epi64(__m256i __a, int __count) { return __builtin_ia32_psrlqi256((__v4di)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srl_epi64(__m256i __a, __m128i __count) { return __builtin_ia32_psrlq256((__v4di)__a, __count); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sub_epi8(__m256i __a, __m256i __b) { return (__m256i)((__v32qu)__a - (__v32qu)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sub_epi16(__m256i __a, __m256i __b) { return (__m256i)((__v16hu)__a - (__v16hu)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sub_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8su)__a - (__v8su)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sub_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a - (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_subs_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psubsb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_subs_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psubsw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_subs_epu8(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psubusb256((__v32qi)__a, (__v32qi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_subs_epu16(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_psubusw256((__v16hi)__a, (__v16hi)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpackhi_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v32qi)__a, (__v32qi)__b, 8, 32+8, 9, 32+9, 10, 32+10, 11, 32+11, 12, 32+12, 13, 32+13, 14, 32+14, 15, 32+15, 24, 32+24, 25, 32+25, 26, 32+26, 27, 32+27, 28, 32+28, 29, 32+29, 30, 32+30, 31, 32+31); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpackhi_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)__b, 4, 16+4, 5, 16+5, 6, 16+6, 7, 16+7, 12, 16+12, 13, 16+13, 14, 16+14, 15, 16+15); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpackhi_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)__b, 2, 8+2, 3, 8+3, 6, 8+6, 7, 8+7); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpackhi_epi64(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v4di)__a, (__v4di)__b, 1, 4+1, 3, 4+3); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpacklo_epi8(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v32qi)__a, (__v32qi)__b, 0, 32+0, 1, 32+1, 2, 32+2, 3, 32+3, 4, 32+4, 5, 32+5, 6, 32+6, 7, 32+7, 16, 32+16, 17, 32+17, 18, 32+18, 19, 32+19, 20, 32+20, 21, 32+21, 22, 32+22, 23, 32+23); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpacklo_epi16(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v16hi)__a, (__v16hi)__b, 0, 16+0, 1, 16+1, 2, 16+2, 3, 16+3, 8, 16+8, 9, 16+9, 10, 16+10, 11, 16+11); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpacklo_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v8si)__a, (__v8si)__b, 0, 8+0, 1, 8+1, 4, 8+4, 5, 8+5); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_unpacklo_epi64(__m256i __a, __m256i __b) { return (__m256i)__builtin_shufflevector((__v4di)__a, (__v4di)__b, 0, 4+0, 2, 4+2); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_xor_si256(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a ^ (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_stream_load_si256(__m256i const *__V) { typedef __v4di __v4di_aligned __attribute__((aligned(32))); return (__m256i)__builtin_nontemporal_load((const __v4di_aligned *)__V); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_broadcastss_ps(__m128 __X) { return (__m128)__builtin_shufflevector((__v4sf)__X, (__v4sf)__X, 0, 0, 0, 0); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_broadcastsd_pd(__m128d __a) { return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastss_ps(__m128 __X) { return (__m256)__builtin_shufflevector((__v4sf)__X, (__v4sf)__X, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastsd_pd(__m128d __X) { return (__m256d)__builtin_shufflevector((__v2df)__X, (__v2df)__X, 0, 0, 0, 0); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastsi128_si256(__m128i __X) { return (__m256i)__builtin_shufflevector((__v2di)__X, (__v2di)__X, 0, 1, 0, 1); } # 751 "/opt/toolchain/target/lib/clang/9.0.0/include/avx2intrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastb_epi8(__m128i __X) { return (__m256i)__builtin_shufflevector((__v16qi)__X, (__v16qi)__X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastw_epi16(__m128i __X) { return (__m256i)__builtin_shufflevector((__v8hi)__X, (__v8hi)__X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastd_epi32(__m128i __X) { return (__m256i)__builtin_shufflevector((__v4si)__X, (__v4si)__X, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_broadcastq_epi64(__m128i __X) { return (__m256i)__builtin_shufflevector((__v2di)__X, (__v2di)__X, 0, 0, 0, 0); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_broadcastb_epi8(__m128i __X) { return (__m128i)__builtin_shufflevector((__v16qi)__X, (__v16qi)__X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_broadcastw_epi16(__m128i __X) { return (__m128i)__builtin_shufflevector((__v8hi)__X, (__v8hi)__X, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_broadcastd_epi32(__m128i __X) { return (__m128i)__builtin_shufflevector((__v4si)__X, (__v4si)__X, 0, 0, 0, 0); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_broadcastq_epi64(__m128i __X) { return (__m128i)__builtin_shufflevector((__v2di)__X, (__v2di)__X, 0, 0); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_permutevar8x32_epi32(__m256i __a, __m256i __b) { return (__m256i)__builtin_ia32_permvarsi256((__v8si)__a, (__v8si)__b); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_permutevar8x32_ps(__m256 __a, __m256i __b) { return (__m256)__builtin_ia32_permvarsf256((__v8sf)__a, (__v8si)__b); } # 828 "/opt/toolchain/target/lib/clang/9.0.0/include/avx2intrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_maskload_epi32(int const *__X, __m256i __M) { return (__m256i)__builtin_ia32_maskloadd256((const __v8si *)__X, (__v8si)__M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_maskload_epi64(long long const *__X, __m256i __M) { return (__m256i)__builtin_ia32_maskloadq256((const __v4di *)__X, (__v4di)__M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_maskload_epi32(int const *__X, __m128i __M) { return (__m128i)__builtin_ia32_maskloadd((const __v4si *)__X, (__v4si)__M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_maskload_epi64(long long const *__X, __m128i __M) { return (__m128i)__builtin_ia32_maskloadq((const __v2di *)__X, (__v2di)__M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_maskstore_epi32(int *__X, __m256i __M, __m256i __Y) { __builtin_ia32_maskstored256((__v8si *)__X, (__v8si)__M, (__v8si)__Y); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_maskstore_epi64(long long *__X, __m256i __M, __m256i __Y) { __builtin_ia32_maskstoreq256((__v4di *)__X, (__v4di)__M, (__v4di)__Y); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_maskstore_epi32(int *__X, __m128i __M, __m128i __Y) { __builtin_ia32_maskstored((__v4si *)__X, (__v4si)__M, (__v4si)__Y); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_maskstore_epi64(long long *__X, __m128i __M, __m128i __Y) { __builtin_ia32_maskstoreq(( __v2di *)__X, (__v2di)__M, (__v2di)__Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sllv_epi32(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_psllv8si((__v8si)__X, (__v8si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_sllv_epi32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_psllv4si((__v4si)__X, (__v4si)__Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_sllv_epi64(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_psllv4di((__v4di)__X, (__v4di)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_sllv_epi64(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_psllv2di((__v2di)__X, (__v2di)__Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srav_epi32(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_psrav8si((__v8si)__X, (__v8si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_srav_epi32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_psrav4si((__v4si)__X, (__v4si)__Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srlv_epi32(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_psrlv8si((__v8si)__X, (__v8si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_srlv_epi32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_psrlv4si((__v4si)__X, (__v4si)__Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(256))) _mm256_srlv_epi64(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_psrlv4di((__v4di)__X, (__v4di)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx2"), __min_vector_width__(128))) _mm_srlv_epi64(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_psrlv2di((__v2di)__X, (__v2di)__Y); } # 57 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/f16cintrin.h" 1 3 # 38 "/opt/toolchain/target/lib/clang/9.0.0/include/f16cintrin.h" 3 static __inline float __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(128))) _cvtsh_ss(unsigned short __a) { __v8hi __v = {(short)__a, 0, 0, 0, 0, 0, 0, 0}; __v4sf __r = __builtin_ia32_vcvtph2ps(__v); return __r[0]; } # 109 "/opt/toolchain/target/lib/clang/9.0.0/include/f16cintrin.h" 3 static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(128))) _mm_cvtph_ps(__m128i __a) { return (__m128)__builtin_ia32_vcvtph2ps((__v8hi)__a); } # 153 "/opt/toolchain/target/lib/clang/9.0.0/include/f16cintrin.h" 3 static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(256))) _mm256_cvtph_ps(__m128i __a) { return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a); } # 61 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/vpclmulqdqintrin.h" 1 3 # 65 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 1 3 # 48 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned short __attribute__((__always_inline__, __nodebug__)) __tzcnt_u16(unsigned short __X) { return __builtin_ia32_tzcnt_u16(__X); } # 67 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __andn_u32(unsigned int __X, unsigned int __Y) { return ~__X & __Y; } # 90 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __bextr_u32(unsigned int __X, unsigned int __Y) { return __builtin_ia32_bextr_u32(__X, __Y); } # 115 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) _bextr_u32(unsigned int __X, unsigned int __Y, unsigned int __Z) { return __builtin_ia32_bextr_u32 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); } # 132 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __blsi_u32(unsigned int __X) { return __X & -__X; } # 149 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __blsmsk_u32(unsigned int __X) { return __X ^ (__X - 1); } # 166 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __blsr_u32(unsigned int __X) { return __X & (__X - 1); } # 182 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__)) __tzcnt_u32(unsigned int __X) { return __builtin_ia32_tzcnt_u32(__X); } # 198 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__)) _mm_tzcnt_32(unsigned int __X) { return __builtin_ia32_tzcnt_u32(__X); } # 230 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __andn_u64 (unsigned long long __X, unsigned long long __Y) { return ~__X & __Y; } # 253 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __bextr_u64(unsigned long long __X, unsigned long long __Y) { return __builtin_ia32_bextr_u64(__X, __Y); } # 278 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) _bextr_u64(unsigned long long __X, unsigned int __Y, unsigned int __Z) { return __builtin_ia32_bextr_u64 (__X, ((__Y & 0xff) | ((__Z & 0xff) << 8))); } # 295 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __blsi_u64(unsigned long long __X) { return __X & -__X; } # 312 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __blsmsk_u64(unsigned long long __X) { return __X ^ (__X - 1); } # 329 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) __blsr_u64(unsigned long long __X) { return __X & (__X - 1); } # 345 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__)) __tzcnt_u64(unsigned long long __X) { return __builtin_ia32_tzcnt_u64(__X); } # 361 "/opt/toolchain/target/lib/clang/9.0.0/include/bmiintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__)) _mm_tzcnt_64(unsigned long long __X) { return __builtin_ia32_tzcnt_u64(__X); } # 69 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/bmi2intrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/bmi2intrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _bzhi_u32(unsigned int __X, unsigned int __Y) { return __builtin_ia32_bzhi_si(__X, __Y); } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _pdep_u32(unsigned int __X, unsigned int __Y) { return __builtin_ia32_pdep_si(__X, __Y); } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _pext_u32(unsigned int __X, unsigned int __Y) { return __builtin_ia32_pext_si(__X, __Y); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _bzhi_u64(unsigned long long __X, unsigned long long __Y) { return __builtin_ia32_bzhi_di(__X, __Y); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _pdep_u64(unsigned long long __X, unsigned long long __Y) { return __builtin_ia32_pdep_di(__X, __Y); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _pext_u64(unsigned long long __X, unsigned long long __Y) { return __builtin_ia32_pext_di(__X, __Y); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("bmi2"))) _mulx_u64 (unsigned long long __X, unsigned long long __Y, unsigned long long *__P) { unsigned __int128 __res = (unsigned __int128) __X * __Y; *__P = (unsigned long long) (__res >> 64); return (unsigned long long) __res; } # 73 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/lzcntintrin.h" 1 3 # 45 "/opt/toolchain/target/lib/clang/9.0.0/include/lzcntintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("lzcnt"))) __lzcnt32(unsigned int __X) { return __builtin_ia32_lzcnt_u32(__X); } # 62 "/opt/toolchain/target/lib/clang/9.0.0/include/lzcntintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("lzcnt"))) _lzcnt_u32(unsigned int __X) { return __builtin_ia32_lzcnt_u32(__X); } # 95 "/opt/toolchain/target/lib/clang/9.0.0/include/lzcntintrin.h" 3 static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("lzcnt"))) _lzcnt_u64(unsigned long long __X) { return __builtin_ia32_lzcnt_u64(__X); } # 77 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/fmaintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/fmaintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmadd_ps(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmadd_pd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmadd_ss(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmadd_sd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, (__v2df)__B, (__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmsub_ps(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmsub_pd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, -(__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmsub_ss(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmsub_sd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, (__v2df)__B, -(__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, (__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmadd_ss(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, -(__v4sf)__B, (__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmadd_sd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, -(__v2df)__B, (__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmsub_ss(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddss3((__v4sf)__A, -(__v4sf)__B, -(__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fnmsub_sd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddsd3((__v2df)__A, -(__v2df)__B, -(__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C) { return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(128))) _mm_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C) { return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, -(__v2df)__C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmadd_ps(__m256 __A, __m256 __B, __m256 __C) { return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmadd_pd(__m256d __A, __m256d __B, __m256d __C) { return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmsub_ps(__m256 __A, __m256 __B, __m256 __C) { return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmsub_pd(__m256d __A, __m256d __B, __m256d __C) { return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C) { return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C) { return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, (__v4df)__C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C) { return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C) { return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, -(__v4df)__C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C) { return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C) { return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C) { return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("fma"), __min_vector_width__(256))) _mm256_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C) { return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C); } # 85 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 1 3 # 16 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 typedef char __v64qi __attribute__((__vector_size__(64))); typedef short __v32hi __attribute__((__vector_size__(64))); typedef double __v8df __attribute__((__vector_size__(64))); typedef float __v16sf __attribute__((__vector_size__(64))); typedef long long __v8di __attribute__((__vector_size__(64))); typedef int __v16si __attribute__((__vector_size__(64))); typedef unsigned char __v64qu __attribute__((__vector_size__(64))); typedef unsigned short __v32hu __attribute__((__vector_size__(64))); typedef unsigned long long __v8du __attribute__((__vector_size__(64))); typedef unsigned int __v16su __attribute__((__vector_size__(64))); typedef float __m512 __attribute__((__vector_size__(64), __aligned__(64))); typedef double __m512d __attribute__((__vector_size__(64), __aligned__(64))); typedef long long __m512i __attribute__((__vector_size__(64), __aligned__(64))); typedef float __m512_u __attribute__((__vector_size__(64), __aligned__(1))); typedef double __m512d_u __attribute__((__vector_size__(64), __aligned__(1))); typedef long long __m512i_u __attribute__((__vector_size__(64), __aligned__(1))); typedef unsigned char __mmask8; typedef unsigned short __mmask16; # 48 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 typedef enum { _MM_CMPINT_EQ, _MM_CMPINT_LT, _MM_CMPINT_LE, _MM_CMPINT_UNUSED, _MM_CMPINT_NE, _MM_CMPINT_NLT, _MM_CMPINT_NLE } _MM_CMPINT_ENUM; typedef enum { _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02, _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05, _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08, _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B, _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E, _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11, _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14, _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17, _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A, _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D, _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20, _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23, _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26, _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29, _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C, _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F, _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32, _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35, _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38, _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B, _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E, _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41, _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44, _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47, _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A, _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D, _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50, _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53, _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56, _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59, _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C, _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F, _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62, _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65, _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68, _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B, _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E, _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71, _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74, _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77, _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A, _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D, _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80, _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83, _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86, _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89, _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C, _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F, _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92, _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95, _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98, _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B, _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E, _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1, _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4, _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7, _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA, _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD, _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0, _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3, _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6, _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9, _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC, _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF, _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2, _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5, _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8, _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB, _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE, _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1, _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4, _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7, _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA, _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD, _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0, _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3, _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6, _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9, _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC, _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF, _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2, _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5, _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8, _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB, _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE, _MM_PERM_DDDD = 0xFF } _MM_PERM_ENUM; typedef enum { _MM_MANT_NORM_1_2, _MM_MANT_NORM_p5_2, _MM_MANT_NORM_p5_1, _MM_MANT_NORM_p75_1p5 } _MM_MANTISSA_NORM_ENUM; typedef enum { _MM_MANT_SIGN_src, _MM_MANT_SIGN_zero, _MM_MANT_SIGN_nan } _MM_MANTISSA_SIGN_ENUM; # 172 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_setzero_si512(void) { return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 }; } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_undefined_pd(void) { return (__m512d)__builtin_ia32_undef512(); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_undefined(void) { return (__m512)__builtin_ia32_undef512(); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_undefined_ps(void) { return (__m512)__builtin_ia32_undef512(); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_undefined_epi32(void) { return (__m512i)__builtin_ia32_undef512(); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcastd_epi32 (__m128i __A) { return (__m512i)__builtin_shufflevector((__v4si) __A, (__v4si) __A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512(__M, (__v16si) _mm512_broadcastd_epi32(__A), (__v16si) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512(__M, (__v16si) _mm512_broadcastd_epi32(__A), (__v16si) _mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcastq_epi64 (__m128i __A) { return (__m512i)__builtin_shufflevector((__v2di) __A, (__v2di) __A, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di) _mm512_broadcastq_epi64(__A), (__v8di) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di) _mm512_broadcastq_epi64(__A), (__v8di) _mm512_setzero_si512()); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_setzero_ps(void) { return __extension__ (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_setzero_pd(void) { return __extension__ (__m512d){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set1_ps(float __w) { return __extension__ (__m512){ __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w }; } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set1_pd(double __w) { return __extension__ (__m512d){ __w, __w, __w, __w, __w, __w, __w, __w }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set1_epi8(char __w) { return __extension__ (__m512i)(__v64qi){ __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set1_epi16(short __w) { return __extension__ (__m512i)(__v32hi){ __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w, __w }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set1_epi32(int __s) { return __extension__ (__m512i)(__v16si){ __s, __s, __s, __s, __s, __s, __s, __s, __s, __s, __s, __s, __s, __s, __s, __s }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_set1_epi32(__mmask16 __M, int __A) { return (__m512i)__builtin_ia32_selectd_512(__M, (__v16si)_mm512_set1_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set1_epi64(long long __d) { return __extension__(__m512i)(__v8di){ __d, __d, __d, __d, __d, __d, __d, __d }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_set1_epi64(__mmask8 __M, long long __A) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di)_mm512_set1_epi64(__A), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcastss_ps(__m128 __A) { return (__m512)__builtin_shufflevector((__v4sf) __A, (__v4sf) __A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set4_epi32 (int __A, int __B, int __C, int __D) { return __extension__ (__m512i)(__v16si) { __D, __C, __B, __A, __D, __C, __B, __A, __D, __C, __B, __A, __D, __C, __B, __A }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set4_epi64 (long long __A, long long __B, long long __C, long long __D) { return __extension__ (__m512i) (__v8di) { __D, __C, __B, __A, __D, __C, __B, __A }; } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set4_pd (double __A, double __B, double __C, double __D) { return __extension__ (__m512d) { __D, __C, __B, __A, __D, __C, __B, __A }; } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set4_ps (float __A, float __B, float __C, float __D) { return __extension__ (__m512) { __D, __C, __B, __A, __D, __C, __B, __A, __D, __C, __B, __A, __D, __C, __B, __A }; } # 384 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcastsd_pd(__m128d __A) { return (__m512d)__builtin_shufflevector((__v2df) __A, (__v2df) __A, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castpd256_pd512(__m256d __a) { return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, -1, -1, -1, -1); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castps256_ps512(__m256 __a) { return __builtin_shufflevector(__a, __a, 0, 1, 2, 3, 4, 5, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1); } static __inline __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castpd512_pd128(__m512d __a) { return __builtin_shufflevector(__a, __a, 0, 1); } static __inline __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castpd512_pd256 (__m512d __A) { return __builtin_shufflevector(__A, __A, 0, 1, 2, 3); } static __inline __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castps512_ps128(__m512 __a) { return __builtin_shufflevector(__a, __a, 0, 1, 2, 3); } static __inline __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castps512_ps256 (__m512 __A) { return __builtin_shufflevector(__A, __A, 0, 1, 2, 3, 4, 5, 6, 7); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castpd_ps (__m512d __A) { return (__m512) (__A); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castpd_si512 (__m512d __A) { return (__m512i) (__A); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castpd128_pd512 (__m128d __A) { return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castps_pd (__m512 __A) { return (__m512d) (__A); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castps_si512 (__m512 __A) { return (__m512i) (__A); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castps128_ps512 (__m128 __A) { return __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castsi128_si512 (__m128i __A) { return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castsi256_si512 (__m256i __A) { return __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castsi512_ps (__m512i __A) { return (__m512) (__A); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castsi512_pd (__m512i __A) { return (__m512d) (__A); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castsi512_si128 (__m512i __A) { return (__m128i)__builtin_shufflevector(__A, __A , 0, 1); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_castsi512_si256 (__m512i __A) { return (__m256i)__builtin_shufflevector(__A, __A , 0, 1, 2, 3); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_int2mask(int __a) { return (__mmask16)__a; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_mask2int(__mmask16 __a) { return (int)__a; } # 527 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_zextpd128_pd512(__m128d __a) { return __builtin_shufflevector((__v2df)__a, (__v2df)_mm_setzero_pd(), 0, 1, 2, 3, 2, 3, 2, 3); } # 546 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_zextpd256_pd512(__m256d __a) { return __builtin_shufflevector((__v4df)__a, (__v4df)_mm256_setzero_pd(), 0, 1, 2, 3, 4, 5, 6, 7); } # 564 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_zextps128_ps512(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)_mm_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7); } # 582 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_zextps256_ps512(__m256 __a) { return __builtin_shufflevector((__v8sf)__a, (__v8sf)_mm256_setzero_ps(), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); } # 600 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_zextsi128_si512(__m128i __a) { return __builtin_shufflevector((__v2di)__a, (__v2di)_mm_setzero_si128(), 0, 1, 2, 3, 2, 3, 2, 3); } # 618 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_zextsi256_si512(__m256i __a) { return __builtin_shufflevector((__v4di)__a, (__v4di)_mm256_setzero_si256(), 0, 1, 2, 3, 4, 5, 6, 7); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_and_epi32(__m512i __a, __m512i __b) { return (__m512i)((__v16su)__a & (__v16su)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_and_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k, (__v16si) _mm512_and_epi32(__a, __b), (__v16si) __src); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_and_epi32(__mmask16 __k, __m512i __a, __m512i __b) { return (__m512i) _mm512_mask_and_epi32(_mm512_setzero_si512 (), __k, __a, __b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_and_epi64(__m512i __a, __m512i __b) { return (__m512i)((__v8du)__a & (__v8du)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_and_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b) { return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __k, (__v8di) _mm512_and_epi64(__a, __b), (__v8di) __src); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_and_epi64(__mmask8 __k, __m512i __a, __m512i __b) { return (__m512i) _mm512_mask_and_epi64(_mm512_setzero_si512 (), __k, __a, __b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_andnot_si512 (__m512i __A, __m512i __B) { return (__m512i)(~(__v8du)__A & (__v8du)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_andnot_epi32 (__m512i __A, __m512i __B) { return (__m512i)(~(__v16su)__A & (__v16su)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_andnot_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_andnot_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_andnot_epi32(__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)_mm512_mask_andnot_epi32(_mm512_setzero_si512(), __U, __A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_andnot_epi64(__m512i __A, __m512i __B) { return (__m512i)(~(__v8du)__A & (__v8du)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_andnot_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_andnot_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_andnot_epi64(__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)_mm512_mask_andnot_epi64(_mm512_setzero_si512(), __U, __A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_or_epi32(__m512i __a, __m512i __b) { return (__m512i)((__v16su)__a | (__v16su)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_or_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k, (__v16si)_mm512_or_epi32(__a, __b), (__v16si)__src); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_or_epi32(__mmask16 __k, __m512i __a, __m512i __b) { return (__m512i)_mm512_mask_or_epi32(_mm512_setzero_si512(), __k, __a, __b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_or_epi64(__m512i __a, __m512i __b) { return (__m512i)((__v8du)__a | (__v8du)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_or_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k, (__v8di)_mm512_or_epi64(__a, __b), (__v8di)__src); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_or_epi64(__mmask8 __k, __m512i __a, __m512i __b) { return (__m512i)_mm512_mask_or_epi64(_mm512_setzero_si512(), __k, __a, __b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_xor_epi32(__m512i __a, __m512i __b) { return (__m512i)((__v16su)__a ^ (__v16su)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_xor_epi32(__m512i __src, __mmask16 __k, __m512i __a, __m512i __b) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__k, (__v16si)_mm512_xor_epi32(__a, __b), (__v16si)__src); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_xor_epi32(__mmask16 __k, __m512i __a, __m512i __b) { return (__m512i)_mm512_mask_xor_epi32(_mm512_setzero_si512(), __k, __a, __b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_xor_epi64(__m512i __a, __m512i __b) { return (__m512i)((__v8du)__a ^ (__v8du)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_xor_epi64(__m512i __src, __mmask8 __k, __m512i __a, __m512i __b) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__k, (__v8di)_mm512_xor_epi64(__a, __b), (__v8di)__src); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_xor_epi64(__mmask8 __k, __m512i __a, __m512i __b) { return (__m512i)_mm512_mask_xor_epi64(_mm512_setzero_si512(), __k, __a, __b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_and_si512(__m512i __a, __m512i __b) { return (__m512i)((__v8du)__a & (__v8du)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_or_si512(__m512i __a, __m512i __b) { return (__m512i)((__v8du)__a | (__v8du)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_xor_si512(__m512i __a, __m512i __b) { return (__m512i)((__v8du)__a ^ (__v8du)__b); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_add_pd(__m512d __a, __m512d __b) { return (__m512d)((__v8df)__a + (__v8df)__b); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_add_ps(__m512 __a, __m512 __b) { return (__m512)((__v16sf)__a + (__v16sf)__b); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mul_pd(__m512d __a, __m512d __b) { return (__m512d)((__v8df)__a * (__v8df)__b); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mul_ps(__m512 __a, __m512 __b) { return (__m512)((__v16sf)__a * (__v16sf)__b); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sub_pd(__m512d __a, __m512d __b) { return (__m512d)((__v8df)__a - (__v8df)__b); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sub_ps(__m512 __a, __m512 __b) { return (__m512)((__v16sf)__a - (__v16sf)__b); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_add_epi64 (__m512i __A, __m512i __B) { return (__m512i) ((__v8du) __A + (__v8du) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_add_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_add_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_add_epi64(__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_add_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sub_epi64 (__m512i __A, __m512i __B) { return (__m512i) ((__v8du) __A - (__v8du) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sub_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sub_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sub_epi64(__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sub_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_add_epi32 (__m512i __A, __m512i __B) { return (__m512i) ((__v16su) __A + (__v16su) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_add_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_add_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_add_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sub_epi32 (__m512i __A, __m512i __B) { return (__m512i) ((__v16su) __A - (__v16su) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sub_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sub_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sub_epi32(__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sub_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } # 953 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_max_pd(__m512d __A, __m512d __B) { return (__m512d) __builtin_ia32_maxpd512((__v8df) __A, (__v8df) __B, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_max_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_max_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } # 990 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_max_ps(__m512 __A, __m512 __B) { return (__m512) __builtin_ia32_maxps512((__v16sf) __A, (__v16sf) __B, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_max_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_max_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_max_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_max_ss(__mmask8 __U,__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_maxss_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U, 0x04); } # 1049 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_max_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_max_sd(__mmask8 __U,__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_maxsd_round_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U, 0x04); } # 1085 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_max_epi32(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxsd512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_max_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_max_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_max_epu32(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxud512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_max_epu32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_max_epu32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_max_epi64(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxsq512((__v8di)__A, (__v8di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_max_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_max_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_max_epu64(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxuq512((__v8di)__A, (__v8di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_max_epu64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_max_epu64(__A, __B), (__v8di)_mm512_setzero_si512()); } # 1188 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_min_pd(__m512d __A, __m512d __B) { return (__m512d) __builtin_ia32_minpd512((__v8df) __A, (__v8df) __B, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_min_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_min_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } # 1225 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_min_ps(__m512 __A, __m512 __B) { return (__m512) __builtin_ia32_minps512((__v16sf) __A, (__v16sf) __B, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_min_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_min_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_min_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_min_ss(__mmask8 __U,__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_minss_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U, 0x04); } # 1284 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_min_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_min_sd(__mmask8 __U,__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_minsd_round_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U, 0x04); } # 1320 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_min_epi32(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminsd512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_min_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_min_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_min_epu32(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminud512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_min_epu32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_min_epu32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_min_epi64(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminsq512((__v8di)__A, (__v8di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_min_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_min_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_min_epu64(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminuq512((__v8di)__A, (__v8di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_min_epu64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_min_epu64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mul_epi32(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_pmuldq512((__v16si)__X, (__v16si) __Y); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mul_epi32(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_mul_epi32(__X, __Y), (__v8di)__W); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mul_epi32(__mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_mul_epi32(__X, __Y), (__v8di)_mm512_setzero_si512 ()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mul_epu32(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_pmuludq512((__v16si)__X, (__v16si)__Y); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mul_epu32(__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_mul_epu32(__X, __Y), (__v8di)__W); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mul_epu32(__mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_mul_epu32(__X, __Y), (__v8di)_mm512_setzero_si512 ()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mullo_epi32 (__m512i __A, __m512i __B) { return (__m512i) ((__v16su) __A * (__v16su) __B); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mullo_epi32(__mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_mullo_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mullo_epi32(__m512i __W, __mmask16 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_mullo_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mullox_epi64 (__m512i __A, __m512i __B) { return (__m512i) ((__v8du) __A * (__v8du) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mullox_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_mullox_epi64(__A, __B), (__v8di)__W); } # 1500 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sqrt_pd(__m512d __A) { return (__m512d)__builtin_ia32_sqrtpd512((__v8df)__A, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_sqrt_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_sqrt_pd(__A), (__v8df)_mm512_setzero_pd()); } # 1536 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sqrt_ps(__m512 __A) { return (__m512)__builtin_ia32_sqrtps512((__v16sf)__A, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sqrt_ps(__m512 __W, __mmask16 __U, __m512 __A) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_sqrt_ps(__A), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sqrt_ps( __mmask16 __U, __m512 __A) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_sqrt_ps(__A), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rsqrt14_pd(__m512d __A) { return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) -1);} static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, (__v8df) __W, (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rsqrt14_ps(__m512 __A) { return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) -1); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, (__v16sf) __W, (__mmask16) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_rsqrt14_ss(__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_rsqrt14_sd(__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) -1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rcp14_pd(__m512d __A) { return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) -1); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, (__v8df) __W, (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rcp14_ps(__m512 __A) { return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) -1); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, (__v16sf) __W, (__mmask16) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_rcp14_ss(__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_rcp14_sd(__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) -1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_floor_ps(__m512 __A) { return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, (0x00 | 0x01), (__v16sf) __A, -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, (0x00 | 0x01), (__v16sf) __W, __U, 0x04); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_floor_pd(__m512d __A) { return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, (0x00 | 0x01), (__v8df) __A, -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, (0x00 | 0x01), (__v8df) __W, __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, (0x00 | 0x02), (__v16sf) __W, __U, 0x04); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_ceil_ps(__m512 __A) { return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, (0x00 | 0x02), (__v16sf) __A, -1, 0x04); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_ceil_pd(__m512d __A) { return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, (0x00 | 0x02), (__v8df) __A, -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, (0x00 | 0x02), (__v8df) __W, __U, 0x04); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_abs_epi64(__m512i __A) { return (__m512i)__builtin_ia32_pabsq512((__v8di)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_abs_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_abs_epi64(__A), (__v8di)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_abs_epi32(__m512i __A) { return (__m512i)__builtin_ia32_pabsd512((__v16si) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_abs_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_abs_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_add_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_add_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, __W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_add_ss(__mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_add_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); } # 1920 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_add_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_add_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, __W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_add_sd(__mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_add_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); } # 1949 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_add_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_add_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_add_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_add_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_add_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_add_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_add_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_add_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } # 2005 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_sub_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_sub_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, __W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_sub_ss(__mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_sub_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); } # 2034 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_sub_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_sub_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, __W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_sub_sd(__mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_sub_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); } # 2064 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sub_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_sub_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sub_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_sub_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sub_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_sub_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sub_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_sub_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } # 2120 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_mul_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_mul_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, __W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_mul_ss(__mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_mul_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); } # 2149 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_mul_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_mul_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, __W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_mul_sd(__mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_mul_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); } # 2179 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mul_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_mul_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mul_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_mul_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mul_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_mul_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mul_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_mul_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } # 2235 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_div_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_div_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, __W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_div_ss(__mmask8 __U,__m128 __A, __m128 __B) { __A = _mm_div_ss(__A, __B); return __builtin_ia32_selectss_128(__U, __A, _mm_setzero_ps()); } # 2265 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_div_sd(__m128d __W, __mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_div_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, __W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_div_sd(__mmask8 __U,__m128d __A, __m128d __B) { __A = _mm_div_sd(__A, __B); return __builtin_ia32_selectsd_128(__U, __A, _mm_setzero_pd()); } # 2295 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_div_pd(__m512d __a, __m512d __b) { return (__m512d)((__v8df)__a/(__v8df)__b); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_div_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_div_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_div_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_div_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_div_ps(__m512 __a, __m512 __b) { return (__m512)((__v16sf)__a/(__v16sf)__b); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_div_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_div_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_div_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_div_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } # 2511 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmadd_pd(__m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmsub_pd(__m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, -(__v8df) __B, (__v8df) __C, (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fnmadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { return (__m512d) __builtin_ia32_vfmaddpd512_mask3 (-(__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fnmadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, -(__v8df) __B, -(__v8df) __C, (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fnmsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_maskz (-(__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) __U, 0x04); } # 2715 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmadd_ps(__m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmsub_ps(__m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, -(__v16sf) __B, (__v16sf) __C, (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fnmadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { return (__m512) __builtin_ia32_vfmaddps512_mask3 (-(__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fnmadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, -(__v16sf) __B, -(__v16sf) __C, (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fnmsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_maskz (-(__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) __U, 0x04); } # 2884 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmaddsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmaddsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmaddsub_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmsubadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmsubadd_pd(__mmask8 __U, __m512d __A, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A, (__v8df) __B, -(__v8df) __C, (__mmask8) __U, 0x04); } # 3003 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmaddsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmaddsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmaddsub_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fmsubadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_fmsubadd_ps(__mmask16 __U, __m512 __A, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A, (__v16sf) __B, -(__v16sf) __C, (__mmask16) __U, 0x04); } # 3080 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { return (__m512d)__builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { return (__m512)__builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } # 3113 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmsubadd_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { return (__m512d)__builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } # 3130 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fmsubadd_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { return (__m512)__builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } # 3147 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fnmadd_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, -(__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } # 3164 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fnmadd_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, -(__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } # 3188 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fnmsub_pd(__m512d __A, __mmask8 __U, __m512d __B, __m512d __C) { return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A, -(__v8df) __B, -(__v8df) __C, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fnmsub_pd(__m512d __A, __m512d __B, __m512d __C, __mmask8 __U) { return (__m512d) __builtin_ia32_vfmsubpd512_mask3 (-(__v8df) __A, (__v8df) __B, (__v8df) __C, (__mmask8) __U, 0x04); } # 3222 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_fnmsub_ps(__m512 __A, __mmask16 __U, __m512 __B, __m512 __C) { return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A, -(__v16sf) __B, -(__v16sf) __C, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask3_fnmsub_ps(__m512 __A, __m512 __B, __m512 __C, __mmask16 __U) { return (__m512) __builtin_ia32_vfmsubps512_mask3 (-(__v16sf) __A, (__v16sf) __B, (__v16sf) __C, (__mmask16) __U, 0x04); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutex2var_epi32(__m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_vpermi2vard512((__v16si)__A, (__v16si) __I, (__v16si) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutex2var_epi32(__m512i __A, __mmask16 __U, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_permutex2var_epi32(__A, __I, __B), (__v16si)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask2_permutex2var_epi32(__m512i __A, __m512i __I, __mmask16 __U, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_permutex2var_epi32(__A, __I, __B), (__v16si)__I); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutex2var_epi32(__mmask16 __U, __m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_permutex2var_epi32(__A, __I, __B), (__v16si)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutex2var_epi64(__m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_vpermi2varq512((__v8di)__A, (__v8di) __I, (__v8di) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutex2var_epi64(__m512i __A, __mmask8 __U, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_permutex2var_epi64(__A, __I, __B), (__v8di)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask2_permutex2var_epi64(__m512i __A, __m512i __I, __mmask8 __U, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_permutex2var_epi64(__A, __I, __B), (__v8di)__I); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutex2var_epi64(__mmask8 __U, __m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_permutex2var_epi64(__A, __I, __B), (__v8di)_mm512_setzero_si512()); } # 3375 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_blend_pd(__mmask8 __U, __m512d __A, __m512d __W) { return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U, (__v8df) __W, (__v8df) __A); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_blend_ps(__mmask16 __U, __m512 __A, __m512 __W) { return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U, (__v16sf) __W, (__v16sf) __A); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_blend_epi64(__mmask8 __U, __m512i __A, __m512i __W) { return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U, (__v8di) __W, (__v8di) __A); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_blend_epi32(__mmask16 __U, __m512i __A, __m512i __W) { return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U, (__v16si) __W, (__v16si) __A); } # 3537 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvttps_epu32(__m512 __A) { return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, (__v16si) _mm512_setzero_si512 (), (__mmask16) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, (__v16si) __W, (__mmask16) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U, 0x04); } # 3595 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu32_ps (__m512i __A) { return (__m512)__builtin_convertvector((__v16su)__A, __v16sf); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_cvtepu32_ps(__A), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_cvtepu32_ps(__A), (__v16sf)_mm512_setzero_ps()); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi32_pd(__m256i __A) { return (__m512d)__builtin_convertvector((__v8si)__A, __v8df); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_cvtepi32_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_cvtepi32_pd(__A), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi32lo_pd(__m512i __A) { return (__m512d) _mm512_cvtepi32_pd(_mm512_castsi512_si256(__A)); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32lo_pd(__m512d __W, __mmask8 __U,__m512i __A) { return (__m512d) _mm512_mask_cvtepi32_pd(__W, __U, _mm512_castsi512_si256(__A)); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi32_ps (__m512i __A) { return (__m512)__builtin_convertvector((__v16si)__A, __v16sf); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_cvtepi32_ps(__A), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_cvtepi32_ps(__A), (__v16sf)_mm512_setzero_ps()); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu32_pd(__m256i __A) { return (__m512d)__builtin_convertvector((__v8su)__A, __v8df); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_cvtepu32_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_cvtepu32_pd(__A), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu32lo_pd(__m512i __A) { return (__m512d) _mm512_cvtepu32_pd(_mm512_castsi512_si256(__A)); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu32lo_pd(__m512d __W, __mmask8 __U,__m512i __A) { return (__m512d) _mm512_mask_cvtepu32_pd(__W, __U, _mm512_castsi512_si256(__A)); } # 3722 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtpd_ps (__m512d __A) { return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, (__v8sf) _mm256_undefined_ps (), (__mmask8) -1, 0x04); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A) { return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, (__v8sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A) { return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtpd_pslo (__m512d __A) { return (__m512) __builtin_shufflevector((__v8sf) _mm512_cvtpd_ps(__A), (__v8sf) _mm256_setzero_ps (), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtpd_pslo (__m512 __W, __mmask8 __U,__m512d __A) { return (__m512) __builtin_shufflevector ( (__v8sf) _mm512_mask_cvtpd_ps (_mm512_castps512_ps256(__W), __U, __A), (__v8sf) _mm256_setzero_ps (), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); } # 3813 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtph_ps(__m256i __A) { return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A) { return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, (__v16sf) __W, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A) { return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U, 0x04); } # 3856 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvttpd_epi32(__m512d __a) { return (__m256i)__builtin_ia32_cvttpd2dq512_mask((__v8df) __a, (__v8si)_mm256_setzero_si256(), (__mmask8) -1, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, (__v8si) __W, (__mmask8) __U, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U, 0x04); } # 3898 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvttps_epi32(__m512 __a) { return (__m512i) __builtin_ia32_cvttps2dq512_mask((__v16sf) __a, (__v16si) _mm512_setzero_si512 (), (__mmask16) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, (__v16si) __W, (__mmask16) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U, 0x04); } # 3940 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtps_epi32 (__m512 __A) { return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, (__v16si) _mm512_undefined_epi32 (), (__mmask16) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, (__v16si) __W, (__mmask16) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U, 0x04); } # 3983 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtpd_epi32 (__m512d __A) { return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, (__v8si) _mm256_undefined_si256 (), (__mmask8) -1, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, (__v8si) __W, (__mmask8) __U, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U, 0x04); } # 4027 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtps_epu32 ( __m512 __A) { return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, (__v16si) _mm512_undefined_epi32 (), (__mmask16) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, (__v16si) __W, (__mmask16) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtps_epu32 ( __mmask16 __U, __m512 __A) { return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U , 0x04); } # 4071 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtpd_epu32 (__m512d __A) { return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, (__v8si) _mm256_undefined_si256 (), (__mmask8) -1, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, (__v8si) __W, (__mmask8) __U, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U, 0x04); } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtsd_f64(__m512d __a) { return __a[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtss_f32(__m512 __a) { return __a[0]; } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpackhi_pd(__m512d __a, __m512d __b) { return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b, 1, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpackhi_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_unpackhi_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpackhi_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_unpackhi_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpacklo_pd(__m512d __a, __m512d __b) { return (__m512d)__builtin_shufflevector((__v8df)__a, (__v8df)__b, 0, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpacklo_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_unpacklo_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8) __U, (__v8df)_mm512_unpacklo_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpackhi_ps(__m512 __a, __m512 __b) { return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b, 2, 18, 3, 19, 2+4, 18+4, 3+4, 19+4, 2+8, 18+8, 3+8, 19+8, 2+12, 18+12, 3+12, 19+12); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpackhi_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, (__v16sf)_mm512_unpackhi_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, (__v16sf)_mm512_unpackhi_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpacklo_ps(__m512 __a, __m512 __b) { return (__m512)__builtin_shufflevector((__v16sf)__a, (__v16sf)__b, 0, 16, 1, 17, 0+4, 16+4, 1+4, 17+4, 0+8, 16+8, 1+8, 17+8, 0+12, 16+12, 1+12, 17+12); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpacklo_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, (__v16sf)_mm512_unpacklo_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16) __U, (__v16sf)_mm512_unpacklo_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpackhi_epi32(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B, 2, 18, 3, 19, 2+4, 18+4, 3+4, 19+4, 2+8, 18+8, 3+8, 19+8, 2+12, 18+12, 3+12, 19+12); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpackhi_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, (__v16si)_mm512_unpackhi_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpackhi_epi32(__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, (__v16si)_mm512_unpackhi_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpacklo_epi32(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v16si)__A, (__v16si)__B, 0, 16, 1, 17, 0+4, 16+4, 1+4, 17+4, 0+8, 16+8, 1+8, 17+8, 0+12, 16+12, 1+12, 17+12); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpacklo_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, (__v16si)_mm512_unpacklo_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpacklo_epi32(__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16) __U, (__v16si)_mm512_unpacklo_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpackhi_epi64(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B, 1, 9, 1+2, 9+2, 1+4, 9+4, 1+6, 9+6); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpackhi_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, (__v8di)_mm512_unpackhi_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpackhi_epi64(__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, (__v8di)_mm512_unpackhi_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_unpacklo_epi64 (__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v8di)__A, (__v8di)__B, 0, 8, 0+2, 8+2, 0+4, 8+4, 0+6, 8+6); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, (__v8di)_mm512_unpacklo_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8) __U, (__v8di)_mm512_unpacklo_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_loadu_si512 (void const *__P) { struct __loadu_si512 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_si512*)__P)->__v; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_loadu_epi32 (void const *__P) { struct __loadu_epi32 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi32*)__P)->__v; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P, (__v16si) __W, (__mmask16) __U); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_loadu_epi32(__mmask16 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *)__P, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_loadu_epi64 (void const *__P) { struct __loadu_epi64 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi64*)__P)->__v; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P, (__v8di) __W, (__mmask8) __U); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_loadu_epi64(__mmask8 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *)__P, (__v8di) _mm512_setzero_si512 (), (__mmask8) __U); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P) { return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P, (__v16sf) __W, (__mmask16) __U); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_loadu_ps(__mmask16 __U, void const *__P) { return (__m512) __builtin_ia32_loadups512_mask ((const float *)__P, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P) { return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P, (__v8df) __W, (__mmask8) __U); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_loadu_pd(__mmask8 __U, void const *__P) { return (__m512d) __builtin_ia32_loadupd512_mask ((const double *)__P, (__v8df) _mm512_setzero_pd (), (__mmask8) __U); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_loadu_pd(void const *__p) { struct __loadu_pd { __m512d_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_pd*)__p)->__v; } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_loadu_ps(void const *__p) { struct __loadu_ps { __m512_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_ps*)__p)->__v; } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_load_ps(void const *__p) { return *(__m512*)__p; } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P) { return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P, (__v16sf) __W, (__mmask16) __U); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_load_ps(__mmask16 __U, void const *__P) { return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *)__P, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_load_pd(void const *__p) { return *(__m512d*)__p; } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P) { return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P, (__v8df) __W, (__mmask8) __U); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_load_pd(__mmask8 __U, void const *__P) { return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *)__P, (__v8df) _mm512_setzero_pd (), (__mmask8) __U); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_load_si512 (void const *__P) { return *(__m512i *) __P; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_load_epi32 (void const *__P) { return *(__m512i *) __P; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_load_epi64 (void const *__P) { return *(__m512i *) __P; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_storeu_epi64 (void *__P, __m512i __A) { struct __storeu_epi64 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi64*)__P)->__v = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A) { __builtin_ia32_storedqudi512_mask ((long long *)__P, (__v8di) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_storeu_si512 (void *__P, __m512i __A) { struct __storeu_si512 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si512*)__P)->__v = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_storeu_epi32 (void *__P, __m512i __A) { struct __storeu_epi32 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi32*)__P)->__v = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A) { __builtin_ia32_storedqusi512_mask ((int *)__P, (__v16si) __A, (__mmask16) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_storeu_pd(void *__P, __mmask8 __U, __m512d __A) { __builtin_ia32_storeupd512_mask ((double *)__P, (__v8df) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_storeu_pd(void *__P, __m512d __A) { struct __storeu_pd { __m512d_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_pd*)__P)->__v = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_storeu_ps(void *__P, __mmask16 __U, __m512 __A) { __builtin_ia32_storeups512_mask ((float *)__P, (__v16sf) __A, (__mmask16) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_storeu_ps(void *__P, __m512 __A) { struct __storeu_ps { __m512_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_ps*)__P)->__v = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_store_pd(void *__P, __mmask8 __U, __m512d __A) { __builtin_ia32_storeapd512_mask ((__v8df *)__P, (__v8df) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_store_pd(void *__P, __m512d __A) { *(__m512d*)__P = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_store_ps(void *__P, __mmask16 __U, __m512 __A) { __builtin_ia32_storeaps512_mask ((__v16sf *)__P, (__v16sf) __A, (__mmask16) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_store_ps(void *__P, __m512 __A) { *(__m512*)__P = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_store_si512 (void *__P, __m512i __A) { *(__m512i *) __P = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_store_epi32 (void *__P, __m512i __A) { *(__m512i *) __P = __A; } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_store_epi64 (void *__P, __m512i __A) { *(__m512i *) __P = __A; } static __inline __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_knot(__mmask16 __M) { return __builtin_ia32_knothi(__M); } # 4718 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi8_epi32(__m128i __A) { return (__m512i)__builtin_convertvector((__v16qs)__A, __v16si); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi8_epi32(__m512i __W, __mmask16 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepi8_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi8_epi32(__mmask16 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepi8_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi8_epi64(__m128i __A) { return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qs)__A, (__v16qs)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi8_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepi8_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepi8_epi64(__A), (__v8di)_mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi32_epi64(__m256i __X) { return (__m512i)__builtin_convertvector((__v8si)__X, __v8di); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_epi64(__m512i __W, __mmask8 __U, __m256i __X) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepi32_epi64(__X), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi32_epi64(__mmask8 __U, __m256i __X) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepi32_epi64(__X), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi16_epi32(__m256i __A) { return (__m512i)__builtin_convertvector((__v16hi)__A, __v16si); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi16_epi32(__m512i __W, __mmask16 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepi16_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi16_epi32(__mmask16 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepi16_epi32(__A), (__v16si)_mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi16_epi64(__m128i __A) { return (__m512i)__builtin_convertvector((__v8hi)__A, __v8di); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi16_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepi16_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepi16_epi64(__A), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu8_epi32(__m128i __A) { return (__m512i)__builtin_convertvector((__v16qu)__A, __v16si); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu8_epi32(__m512i __W, __mmask16 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepu8_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu8_epi32(__mmask16 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepu8_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu8_epi64(__m128i __A) { return (__m512i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__A, (__v16qu)__A, 0, 1, 2, 3, 4, 5, 6, 7), __v8di); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu8_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepu8_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepu8_epi64(__A), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu32_epi64(__m256i __X) { return (__m512i)__builtin_convertvector((__v8su)__X, __v8di); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu32_epi64(__m512i __W, __mmask8 __U, __m256i __X) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepu32_epi64(__X), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu32_epi64(__mmask8 __U, __m256i __X) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepu32_epi64(__X), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu16_epi32(__m256i __A) { return (__m512i)__builtin_convertvector((__v16hu)__A, __v16si); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu16_epi32(__m512i __W, __mmask16 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepu16_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu16_epi32(__mmask16 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_cvtepu16_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepu16_epi64(__m128i __A) { return (__m512i)__builtin_convertvector((__v8hu)__A, __v8di); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepu16_epi64(__m512i __W, __mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepu16_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_cvtepu16_epi64(__A), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rorv_epi32 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_prorvd512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_rorv_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_rorv_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rorv_epi64 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_prorvq512((__v8di)__A, (__v8di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_rorv_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_rorv_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } # 5054 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rolv_epi32 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_prolvd512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_rolv_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_rolv_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_rolv_epi64 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_prolvq512((__v8di)__A, (__v8di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_rolv_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_rolv_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } # 5124 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_slli_epi32(__m512i __A, int __B) { return (__m512i)__builtin_ia32_pslldi512((__v16si)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_slli_epi32(__m512i __W, __mmask16 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_slli_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_slli_epi32(__mmask16 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_slli_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_slli_epi64(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psllqi512((__v8di)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_slli_epi64(__m512i __W, __mmask8 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_slli_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_slli_epi64(__mmask8 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_slli_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srli_epi32(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psrldi512((__v16si)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srli_epi32(__m512i __W, __mmask16 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srli_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srli_epi32(__mmask16 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srli_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srli_epi64(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psrlqi512((__v8di)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srli_epi64(__m512i __W, __mmask8 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srli_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srli_epi64(__mmask8 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srli_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P) { return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P, (__v16si) __W, (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_load_epi32 (__mmask16 __U, void const *__P) { return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A) { __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A, (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U, (__v16si) __A, (__v16si) __W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectd_512 ((__mmask16) __U, (__v16si) __A, (__v16si) _mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U, (__v8di) __A, (__v8di) __W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectq_512 ((__mmask8) __U, (__v8di) __A, (__v8di) _mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P) { return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P, (__v8di) __W, (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_load_epi64 (__mmask8 __U, void const *__P) { return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P, (__v8di) _mm512_setzero_si512 (), (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A) { __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A, (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_movedup_pd (__m512d __A) { return (__m512d)__builtin_shufflevector((__v8df)__A, (__v8df)__A, 0, 0, 2, 2, 4, 4, 6, 6); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_movedup_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_movedup_pd(__A), (__v8df)_mm512_setzero_pd()); } # 5478 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_getexp_sd (__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_getexpsd128_round_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd(), (__mmask8) -1, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U, 0x04); } # 5523 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_getexp_ss (__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps(), (__mmask8) -1, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U, 0x04); } # 5652 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kmov (__mmask16 __A) { return __A; } # 5671 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sll_epi32(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_pslld512((__v16si) __A, (__v4si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sll_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sll_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sll_epi32(__mmask16 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sll_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sll_epi64(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psllq512((__v8di)__A, (__v2di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sll_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sll_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sll_epi64(__mmask8 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sll_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sllv_epi32(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_psllv16si((__v16si)__X, (__v16si)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sllv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sllv_epi32(__X, __Y), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sllv_epi32(__X, __Y), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sllv_epi64(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_psllv8di((__v8di)__X, (__v8di)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sllv_epi64(__X, __Y), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sllv_epi64(__X, __Y), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sra_epi32(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psrad512((__v16si) __A, (__v4si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sra_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sra_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sra_epi32(__mmask16 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_sra_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_sra_epi64(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psraq512((__v8di)__A, (__v2di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_sra_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sra_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_sra_epi64(__mmask8 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_sra_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srav_epi32(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_psrav16si((__v16si)__X, (__v16si)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srav_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srav_epi32(__X, __Y), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srav_epi32(__X, __Y), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srav_epi64(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_psrav8di((__v8di)__X, (__v8di)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srav_epi64(__X, __Y), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srav_epi64(__X, __Y), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srl_epi32(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psrld512((__v16si) __A, (__v4si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srl_epi32(__m512i __W, __mmask16 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srl_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srl_epi32(__mmask16 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srl_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srl_epi64(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psrlq512((__v8di)__A, (__v2di)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srl_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srl_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srl_epi64(__mmask8 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srl_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srlv_epi32(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_psrlv16si((__v16si)__X, (__v16si)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srlv_epi32(__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srlv_epi32(__X, __Y), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srlv_epi32(__X, __Y), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srlv_epi64 (__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_psrlv8di((__v8di)__X, (__v8di)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srlv_epi64(__X, __Y), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srlv_epi64(__X, __Y), (__v8di)_mm512_setzero_si512()); } # 5985 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ unsigned __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtsd_u32 (__m128d __A) { return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, 0x04); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtsd_u64 (__m128d __A) { return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) __A, 0x04); } # 6023 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ unsigned __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtss_u32 (__m128 __A) { return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, 0x04); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtss_u64 (__m128 __A) { return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) __A, 0x04); } # 6050 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttsd_i32 (__m128d __A) { return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, 0x04); } # 6064 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttsd_i64 (__m128d __A) { return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, 0x04); } static __inline__ unsigned __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttsd_u32 (__m128d __A) { return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, 0x04); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttsd_u64 (__m128d __A) { return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) __A, 0x04); } # 6102 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttss_i32 (__m128 __A) { return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, 0x04); } # 6116 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttss_i64 (__m128 __A) { return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, 0x04); } static __inline__ unsigned __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttss_u32 (__m128 __A) { return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, 0x04); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvttss_u64 (__m128 __A) { return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) __A, 0x04); } # 6174 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutevar_pd(__m512d __A, __m512i __C) { return (__m512d)__builtin_ia32_vpermilvarpd512((__v8df)__A, (__v8di)__C); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutevar_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512i __C) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_permutevar_pd(__A, __C), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutevar_pd(__mmask8 __U, __m512d __A, __m512i __C) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_permutevar_pd(__A, __C), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutevar_ps(__m512 __A, __m512i __C) { return (__m512)__builtin_ia32_vpermilvarps512((__v16sf)__A, (__v16si)__C); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutevar_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512i __C) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_permutevar_ps(__A, __C), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutevar_ps(__mmask16 __U, __m512 __A, __m512i __C) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_permutevar_ps(__A, __C), (__v16sf)_mm512_setzero_ps()); } static __inline __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutex2var_pd(__m512d __A, __m512i __I, __m512d __B) { return (__m512d)__builtin_ia32_vpermi2varpd512((__v8df)__A, (__v8di)__I, (__v8df)__B); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutex2var_pd(__m512d __A, __mmask8 __U, __m512i __I, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_permutex2var_pd(__A, __I, __B), (__v8df)__A); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask2_permutex2var_pd(__m512d __A, __m512i __I, __mmask8 __U, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_permutex2var_pd(__A, __I, __B), (__v8df)(__m512d)__I); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutex2var_pd(__mmask8 __U, __m512d __A, __m512i __I, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512(__U, (__v8df)_mm512_permutex2var_pd(__A, __I, __B), (__v8df)_mm512_setzero_pd()); } static __inline __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutex2var_ps(__m512 __A, __m512i __I, __m512 __B) { return (__m512)__builtin_ia32_vpermi2varps512((__v16sf)__A, (__v16si)__I, (__v16sf) __B); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutex2var_ps(__m512 __A, __mmask16 __U, __m512i __I, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_permutex2var_ps(__A, __I, __B), (__v16sf)__A); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask2_permutex2var_ps(__m512 __A, __m512i __I, __mmask16 __U, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_permutex2var_ps(__A, __I, __B), (__v16sf)(__m512)__I); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutex2var_ps(__mmask16 __U, __m512 __A, __m512i __I, __m512 __B) { return (__m512)__builtin_ia32_selectps_512(__U, (__v16sf)_mm512_permutex2var_ps(__A, __I, __B), (__v16sf)_mm512_setzero_ps()); } # 6298 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvttpd_epu32 (__m512d __A) { return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, (__v8si) _mm256_undefined_si256 (), (__mmask8) -1, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, (__v8si) __W, (__mmask8) __U, 0x04); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A) { return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U, 0x04); } # 6429 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_scalef_pd (__m512d __A, __m512d __B) { return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) _mm512_undefined_pd (), (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) __W, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A, (__v8df) __B, (__v8df) _mm512_setzero_pd (), (__mmask8) __U, 0x04); } # 6479 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_scalef_ps (__m512 __A, __m512 __B) { return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) _mm512_undefined_ps (), (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) __W, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B) { return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A, (__v16sf) __B, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_scalef_sd (__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_scalefsd_round_mask ((__v2df) __A, (__v2df)( __B), (__v2df) _mm_setzero_pd(), (__mmask8) -1, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_scalef_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_scalef_sd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U, 0x04); } # 6564 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_scalef_ss (__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_scalefss_round_mask ((__v4sf) __A, (__v4sf)( __B), (__v4sf) _mm_setzero_ps(), (__mmask8) -1, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_scalef_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_scalef_ss (__mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U, 0x04); } # 6606 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srai_epi32(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psradi512((__v16si)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srai_epi32(__m512i __W, __mmask16 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srai_epi32(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srai_epi32(__mmask16 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_srai_epi32(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_srai_epi64(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psraqi512((__v8di)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_srai_epi64(__m512i __W, __mmask8 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srai_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_srai_epi64(__mmask8 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_srai_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } # 6739 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_sqrt_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_sqrt_sd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U, 0x04); } # 6777 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_sqrt_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_sqrt_ss (__mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcast_f32x4(__m128 __A) { return (__m512)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcast_f32x4(__m512 __O, __mmask16 __M, __m128 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, (__v16sf)_mm512_broadcast_f32x4(__A), (__v16sf)__O); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcast_f32x4(__mmask16 __M, __m128 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, (__v16sf)_mm512_broadcast_f32x4(__A), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcast_f64x4(__m256d __A) { return (__m512d)__builtin_shufflevector((__v4df)__A, (__v4df)__A, 0, 1, 2, 3, 0, 1, 2, 3); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcast_f64x4(__m512d __O, __mmask8 __M, __m256d __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, (__v8df)_mm512_broadcast_f64x4(__A), (__v8df)__O); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcast_f64x4(__mmask8 __M, __m256d __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, (__v8df)_mm512_broadcast_f64x4(__A), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcast_i32x4(__m128i __A) { return (__m512i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcast_i32x4(__m512i __O, __mmask16 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_broadcast_i32x4(__A), (__v16si)__O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcast_i32x4(__mmask16 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_broadcast_i32x4(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_broadcast_i64x4(__m256i __A) { return (__m512i)__builtin_shufflevector((__v4di)__A, (__v4di)__A, 0, 1, 2, 3, 0, 1, 2, 3); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcast_i64x4(__m512i __O, __mmask8 __M, __m256i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_broadcast_i64x4(__A), (__v8di)__O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcast_i64x4(__mmask8 __M, __m256i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_broadcast_i64x4(__A), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A) { return (__m512d)__builtin_ia32_selectpd_512(__M, (__v8df) _mm512_broadcastsd_pd(__A), (__v8df) __O); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) { return (__m512d)__builtin_ia32_selectpd_512(__M, (__v8df) _mm512_broadcastsd_pd(__A), (__v8df) _mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A) { return (__m512)__builtin_ia32_selectps_512(__M, (__v16sf) _mm512_broadcastss_ps(__A), (__v16sf) __O); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A) { return (__m512)__builtin_ia32_selectps_512(__M, (__v16sf) _mm512_broadcastss_ps(__A), (__v16sf) _mm512_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtsepi32_epi8 (__m512i __A) { return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, (__v16qi) _mm_undefined_si128 (), (__mmask16) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) { __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtsepi32_epi16 (__m512i __A) { return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, (__v16hi) _mm256_undefined_si256 (), (__mmask16) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, (__v16hi) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A, (__v16hi) _mm256_setzero_si256 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A) { __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtsepi64_epi8 (__m512i __A) { return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, (__v16qi) _mm_undefined_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtsepi64_epi32 (__m512i __A) { return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, (__v8si) _mm256_undefined_si256 (), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, (__v8si) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A, (__v8si) _mm256_setzero_si256 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtsepi64_epi16 (__m512i __A) { return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, (__v8hi) _mm_undefined_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtusepi32_epi8 (__m512i __A) { return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, (__v16qi) _mm_undefined_si128 (), (__mmask16) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) { __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtusepi32_epi16 (__m512i __A) { return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, (__v16hi) _mm256_undefined_si256 (), (__mmask16) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, (__v16hi) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A, (__v16hi) _mm256_setzero_si256 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A) { __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtusepi64_epi8 (__m512i __A) { return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, (__v16qi) _mm_undefined_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtusepi64_epi32 (__m512i __A) { return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, (__v8si) _mm256_undefined_si256 (), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, (__v8si) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A, (__v8si) _mm256_setzero_si256 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtusepi64_epi16 (__m512i __A) { return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, (__v8hi) _mm_undefined_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi32_epi8 (__m512i __A) { return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, (__v16qi) _mm_undefined_si128 (), (__mmask16) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A) { __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi32_epi16 (__m512i __A) { return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, (__v16hi) _mm256_undefined_si256 (), (__mmask16) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, (__v16hi) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A, (__v16hi) _mm256_setzero_si256 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A) { __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi64_epi8 (__m512i __A) { return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, (__v16qi) _mm_undefined_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi64_epi32 (__m512i __A) { return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, (__v8si) _mm256_undefined_si256 (), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, (__v8si) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A, (__v8si) _mm256_setzero_si256 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtepi64_epi16 (__m512i __A) { return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, (__v8hi) _mm_undefined_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A) { return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A) { __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M); } # 7552 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_getexp_pd (__m512d __A) { return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A, (__v8df) _mm512_undefined_pd (), (__mmask8) -1, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A, (__v8df) __W, (__mmask8) __U, 0x04); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) __U, 0x04); } # 7594 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_getexp_ps (__m512 __A) { return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A, (__v16sf) _mm512_undefined_ps (), (__mmask16) -1, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A, (__v16sf) __W, (__mmask16) __U, 0x04); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U, 0x04); } # 7797 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, (__v4sf)__A, (__v4sf)__B, (__mmask8)__U, 0x04); } # 7819 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, (__v4sf)__B, (__v4sf)__C, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) { return __builtin_ia32_vfmaddss3_mask3((__v4sf)__W, (__v4sf)__X, (__v4sf)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, (__v4sf)__A, -(__v4sf)__B, (__mmask8)__U, 0x04); } # 7873 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) { return __builtin_ia32_vfmsubss3_mask3((__v4sf)__W, (__v4sf)__X, (__v4sf)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, -(__v4sf)__A, (__v4sf)__B, (__mmask8)__U, 0x04); } # 7927 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, -(__v4sf)__B, (__v4sf)__C, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fnmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) { return __builtin_ia32_vfmaddss3_mask3((__v4sf)__W, -(__v4sf)__X, (__v4sf)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return __builtin_ia32_vfmaddss3_mask((__v4sf)__W, -(__v4sf)__A, -(__v4sf)__B, (__mmask8)__U, 0x04); } # 7981 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return __builtin_ia32_vfmaddss3_maskz((__v4sf)__A, -(__v4sf)__B, -(__v4sf)__C, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fnmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) { return __builtin_ia32_vfmsubss3_mask3((__v4sf)__W, -(__v4sf)__X, (__v4sf)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, (__v2df)__A, (__v2df)__B, (__mmask8)__U, 0x04); } # 8035 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, (__v2df)__B, (__v2df)__C, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) { return __builtin_ia32_vfmaddsd3_mask3((__v2df)__W, (__v2df)__X, (__v2df)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, (__v2df)__A, -(__v2df)__B, (__mmask8)__U, 0x04); } # 8089 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, (__v2df)__B, -(__v2df)__C, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) { return __builtin_ia32_vfmsubsd3_mask3((__v2df)__W, (__v2df)__X, (__v2df)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, -(__v2df)__A, (__v2df)__B, (__mmask8)__U, 0x04); } # 8143 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, -(__v2df)__B, (__v2df)__C, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fnmadd_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) { return __builtin_ia32_vfmaddsd3_mask3((__v2df)__W, -(__v2df)__X, (__v2df)__Y, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return __builtin_ia32_vfmaddsd3_mask((__v2df)__W, -(__v2df)__A, -(__v2df)__B, (__mmask8)__U, 0x04); } # 8197 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return __builtin_ia32_vfmaddsd3_maskz((__v2df)__A, -(__v2df)__B, -(__v2df)__C, (__mmask8)__U, 0x04); } # 8214 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask3_fnmsub_sd (__m128d __W, __m128d __X, __m128d __Y, __mmask8 __U) { return __builtin_ia32_vfmsubsd3_mask3((__v2df)__W, -(__v2df)__X, (__v2df)__Y, (__mmask8)__U, 0x04); } # 8256 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutexvar_pd (__m512i __X, __m512d __Y) { return (__m512d)__builtin_ia32_permvardf512((__v8df) __Y, (__v8di) __X); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_permutexvar_pd(__X, __Y), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_permutexvar_pd(__X, __Y), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutexvar_epi64 (__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_permvardi512((__v8di)__Y, (__v8di)__X); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_permutexvar_epi64(__X, __Y), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_permutexvar_epi64(__X, __Y), (__v8di)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutexvar_ps (__m512i __X, __m512 __Y) { return (__m512)__builtin_ia32_permvarsf512((__v16sf)__Y, (__v16si)__X); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_permutexvar_ps(__X, __Y), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_permutexvar_ps(__X, __Y), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_permutexvar_epi32 (__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_permvarsi512((__v16si)__Y, (__v16si)__X); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_permutexvar_epi32(__X, __Y), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_permutexvar_epi32(__X, __Y), (__v16si)__W); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kand (__mmask16 __A, __mmask16 __B) { return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kandn (__mmask16 __A, __mmask16 __B) { return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kor (__mmask16 __A, __mmask16 __B) { return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kortestc (__mmask16 __A, __mmask16 __B) { return __builtin_ia32_kortestchi ((__mmask16) __A, (__mmask16) __B); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kortestz (__mmask16 __A, __mmask16 __B) { return __builtin_ia32_kortestzhi ((__mmask16) __A, (__mmask16) __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _kortestc_mask16_u8(__mmask16 __A, __mmask16 __B) { return (unsigned char)__builtin_ia32_kortestchi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _kortestz_mask16_u8(__mmask16 __A, __mmask16 __B) { return (unsigned char)__builtin_ia32_kortestzhi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _kortest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_kortestchi(__A, __B); return (unsigned char)__builtin_ia32_kortestzhi(__A, __B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kunpackb (__mmask16 __A, __mmask16 __B) { return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kxnor (__mmask16 __A, __mmask16 __B) { return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _mm512_kxor (__mmask16 __A, __mmask16 __B) { return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B); } # 8429 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _cvtmask16_u32(__mmask16 __A) { return (unsigned int)__builtin_ia32_kmovw((__mmask16)__A); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _cvtu32_mask16(unsigned int __A) { return (__mmask16)__builtin_ia32_kmovw((__mmask16)__A); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _load_mask16(__mmask16 *__A) { return (__mmask16)__builtin_ia32_kmovw(*(__mmask16 *)__A); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"))) _store_mask16(__mmask16 *__A, __mmask16 __B) { *(__mmask16 *)__A = __builtin_ia32_kmovw((__mmask16)__B); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_stream_si512 (__m512i * __P, __m512i __A) { typedef __v8di __v8di_aligned __attribute__((aligned(64))); __builtin_nontemporal_store((__v8di_aligned)__A, (__v8di_aligned*)__P); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_stream_load_si512 (void const *__P) { typedef __v8di __v8di_aligned __attribute__((aligned(64))); return (__m512i) __builtin_nontemporal_load((const __v8di_aligned *)__P); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_stream_pd (double *__P, __m512d __A) { typedef __v8df __v8df_aligned __attribute__((aligned(64))); __builtin_nontemporal_store((__v8df_aligned)__A, (__v8df_aligned*)__P); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_stream_ps (float *__P, __m512 __A) { typedef __v16sf __v16sf_aligned __attribute__((aligned(64))); __builtin_nontemporal_store((__v16sf_aligned)__A, (__v16sf_aligned*)__P); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A, (__v8df) __W, (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_compress_pd (__mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A, (__v8di) __W, (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A, (__v8di) _mm512_setzero_si512 (), (__mmask8) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A, (__v16sf) __W, (__mmask16) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_compress_ps (__mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps (), (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A, (__v16si) __W, (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A, (__v16si) _mm512_setzero_si512 (), (__mmask16) __U); } # 8591 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_test_epi32_mask (__m512i __A, __m512i __B) { return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((_mm512_and_epi32(__A, __B))), (__v16si)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask16)-1); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) { return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v16si)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask16)((__U))); } static __inline __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_test_epi64_mask (__m512i __A, __m512i __B) { return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v8di)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) { return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v8di)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask8)((__U))); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_testn_epi32_mask (__m512i __A, __m512i __B) { return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v16si)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask16)-1); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B) { return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v16si)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask16)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_testn_epi64_mask (__m512i __A, __m512i __B) { return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v8di)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B) { return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v8di)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask8)((__U))); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_movehdup_ps (__m512 __A) { return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A, 1, 1, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11, 13, 13, 15, 15); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_movehdup_ps(__A), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_movehdup_ps(__A), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_moveldup_ps (__m512 __A) { return (__m512)__builtin_shufflevector((__v16sf)__A, (__v16sf)__A, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_moveldup_ps(__A), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_moveldup_ps(__A), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return __builtin_ia32_selectss_128(__U, _mm_move_ss(__A, __B), __W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B) { return __builtin_ia32_selectss_128(__U, _mm_move_ss(__A, __B), _mm_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return __builtin_ia32_selectsd_128(__U, _mm_move_sd(__A, __B), __W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B) { return __builtin_ia32_selectsd_128(__U, _mm_move_sd(__A, __B), _mm_setzero_pd()); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_store_ss (float * __W, __mmask8 __U, __m128 __A) { __builtin_ia32_storess128_mask ((__v4sf *)__W, __A, __U & 1); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_store_sd (double * __W, __mmask8 __U, __m128d __A) { __builtin_ia32_storesd128_mask ((__v2df *)__W, __A, __U & 1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_load_ss (__m128 __W, __mmask8 __U, const float* __A) { __m128 src = (__v4sf) __builtin_shufflevector((__v4sf) __W, (__v4sf)_mm_setzero_ps(), 0, 4, 4, 4); return (__m128) __builtin_ia32_loadss128_mask ((__v4sf *) __A, src, __U & 1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_load_ss (__mmask8 __U, const float* __A) { return (__m128)__builtin_ia32_loadss128_mask ((__v4sf *) __A, (__v4sf) _mm_setzero_ps(), __U & 1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_load_sd (__m128d __W, __mmask8 __U, const double* __A) { __m128d src = (__v2df) __builtin_shufflevector((__v2df) __W, (__v2df)_mm_setzero_pd(), 0, 2); return (__m128d) __builtin_ia32_loadsd128_mask ((__v2df *) __A, src, __U & 1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_load_sd (__mmask8 __U, const double* __A) { return (__m128d) __builtin_ia32_loadsd128_mask ((__v2df *) __A, (__v2df) _mm_setzero_pd(), __U & 1); } # 8780 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A, (__v8df) __W, (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expand_pd (__mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A, (__v8df) _mm512_setzero_pd (), (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A, (__v8di) __W, (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expand_epi64 ( __mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A, (__v8di) _mm512_setzero_si512 (), (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P) { return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P, (__v8df) __W, (__mmask8) __U); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P) { return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P, (__v8df) _mm512_setzero_pd(), (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P, (__v8di) __W, (__mmask8) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P, (__v8di) _mm512_setzero_si512(), (__mmask8) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expandloadu_ps(__m512 __W, __mmask16 __U, void const *__P) { return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P, (__v16sf) __W, (__mmask16) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expandloadu_ps(__mmask16 __U, void const *__P) { return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P, (__v16sf) _mm512_setzero_ps(), (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P, (__v16si) __W, (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P, (__v16si) _mm512_setzero_si512(), (__mmask16) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A, (__v16sf) __W, (__mmask16) __U); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expand_ps (__mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A, (__v16sf) _mm512_setzero_ps(), (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A, (__v16si) __W, (__mmask16) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A, (__v16si) _mm512_setzero_si512(), (__mmask16) __U); } # 8923 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtps_pd (__m256 __A) { return (__m512d) __builtin_convertvector((__v8sf)__A, __v8df); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_cvtps_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_cvtps_pd(__A), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_cvtpslo_pd (__m512 __A) { return (__m512d) _mm512_cvtps_pd(_mm512_castps512_ps256(__A)); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_cvtpslo_pd (__m512d __W, __mmask8 __U, __m512 __A) { return (__m512d) _mm512_mask_cvtps_pd(__W, __U, _mm512_castps512_ps256(__A)); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U, (__v8df) __A, (__v8df) __W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mov_pd (__mmask8 __U, __m512d __A) { return (__m512d) __builtin_ia32_selectpd_512 ((__mmask8) __U, (__v8df) __A, (__v8df) _mm512_setzero_pd ()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U, (__v16sf) __A, (__v16sf) __W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_maskz_mov_ps (__mmask16 __U, __m512 __A) { return (__m512) __builtin_ia32_selectps_512 ((__mmask16) __U, (__v16sf) __A, (__v16sf) _mm512_setzero_ps ()); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A) { __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A) { __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A) { __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A, (__mmask16) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A) { __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A, (__mmask16) __U); } # 9035 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_cvtsd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128d __B) { return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)__A, (__v2df)__B, (__v4sf)__W, (__mmask8)__U, 0x04); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_cvtsd_ss (__mmask8 __U, __m128 __A, __m128d __B) { return __builtin_ia32_cvtsd2ss_round_mask ((__v4sf)__A, (__v2df)__B, (__v4sf)_mm_setzero_ps(), (__mmask8)__U, 0x04); } # 9108 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_mask_cvtss_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128 __B) { return __builtin_ia32_cvtss2sd_round_mask((__v2df)__A, (__v4sf)__B, (__v2df)__W, (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_maskz_cvtss_sd (__mmask8 __U, __m128d __A, __m128 __B) { return __builtin_ia32_cvtss2sd_round_mask((__v2df)__A, (__v4sf)__B, (__v2df)_mm_setzero_pd(), (__mmask8)__U, 0x04); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtu32_sd (__m128d __A, unsigned __B) { __A[0] = __B; return __A; } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtu64_sd (__m128d __A, unsigned long long __B) { __A[0] = __B; return __A; } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtu32_ss (__m128 __A, unsigned __B) { __A[0] = __B; return __A; } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128))) _mm_cvtu64_ss (__m128 __A, unsigned long long __B) { __A[0] = __B; return __A; } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A) { return (__m512i) __builtin_ia32_selectd_512(__M, (__v16si) _mm512_set1_epi32(__A), (__v16si) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A) { return (__m512i) __builtin_ia32_selectq_512(__M, (__v8di) _mm512_set1_epi64(__A), (__v8di) __O); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set_epi8 (char __e63, char __e62, char __e61, char __e60, char __e59, char __e58, char __e57, char __e56, char __e55, char __e54, char __e53, char __e52, char __e51, char __e50, char __e49, char __e48, char __e47, char __e46, char __e45, char __e44, char __e43, char __e42, char __e41, char __e40, char __e39, char __e38, char __e37, char __e36, char __e35, char __e34, char __e33, char __e32, char __e31, char __e30, char __e29, char __e28, char __e27, char __e26, char __e25, char __e24, char __e23, char __e22, char __e21, char __e20, char __e19, char __e18, char __e17, char __e16, char __e15, char __e14, char __e13, char __e12, char __e11, char __e10, char __e9, char __e8, char __e7, char __e6, char __e5, char __e4, char __e3, char __e2, char __e1, char __e0) { return __extension__ (__m512i)(__v64qi) {__e0, __e1, __e2, __e3, __e4, __e5, __e6, __e7, __e8, __e9, __e10, __e11, __e12, __e13, __e14, __e15, __e16, __e17, __e18, __e19, __e20, __e21, __e22, __e23, __e24, __e25, __e26, __e27, __e28, __e29, __e30, __e31, __e32, __e33, __e34, __e35, __e36, __e37, __e38, __e39, __e40, __e41, __e42, __e43, __e44, __e45, __e46, __e47, __e48, __e49, __e50, __e51, __e52, __e53, __e54, __e55, __e56, __e57, __e58, __e59, __e60, __e61, __e62, __e63}; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set_epi16(short __e31, short __e30, short __e29, short __e28, short __e27, short __e26, short __e25, short __e24, short __e23, short __e22, short __e21, short __e20, short __e19, short __e18, short __e17, short __e16, short __e15, short __e14, short __e13, short __e12, short __e11, short __e10, short __e9, short __e8, short __e7, short __e6, short __e5, short __e4, short __e3, short __e2, short __e1, short __e0) { return __extension__ (__m512i)(__v32hi) {__e0, __e1, __e2, __e3, __e4, __e5, __e6, __e7, __e8, __e9, __e10, __e11, __e12, __e13, __e14, __e15, __e16, __e17, __e18, __e19, __e20, __e21, __e22, __e23, __e24, __e25, __e26, __e27, __e28, __e29, __e30, __e31 }; } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set_epi32 (int __A, int __B, int __C, int __D, int __E, int __F, int __G, int __H, int __I, int __J, int __K, int __L, int __M, int __N, int __O, int __P) { return __extension__ (__m512i)(__v16si) { __P, __O, __N, __M, __L, __K, __J, __I, __H, __G, __F, __E, __D, __C, __B, __A }; } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set_epi64 (long long __A, long long __B, long long __C, long long __D, long long __E, long long __F, long long __G, long long __H) { return __extension__ (__m512i) (__v8di) { __H, __G, __F, __E, __D, __C, __B, __A }; } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set_pd (double __A, double __B, double __C, double __D, double __E, double __F, double __G, double __H) { return __extension__ (__m512d) { __H, __G, __F, __E, __D, __C, __B, __A }; } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_set_ps (float __A, float __B, float __C, float __D, float __E, float __F, float __G, float __H, float __I, float __J, float __K, float __L, float __M, float __N, float __O, float __P) { return __extension__ (__m512) { __P, __O, __N, __M, __L, __K, __J, __I, __H, __G, __F, __E, __D, __C, __B, __A }; } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_abs_ps(__m512 __A) { return (__m512)_mm512_and_epi32(_mm512_set1_epi32(0x7FFFFFFF),(__m512i)__A) ; } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_abs_ps(__m512 __W, __mmask16 __K, __m512 __A) { return (__m512)_mm512_mask_and_epi32((__m512i)__W, __K, _mm512_set1_epi32(0x7FFFFFFF),(__m512i)__A) ; } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_abs_pd(__m512d __A) { return (__m512d)_mm512_and_epi64(_mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)__A) ; } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_abs_pd(__m512d __W, __mmask8 __K, __m512d __A) { return (__m512d)_mm512_mask_and_epi64((__v8di)__W, __K, _mm512_set1_epi64(0x7FFFFFFFFFFFFFFF),(__v8di)__A); } # 9324 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_add_epi64(__m512i __W) { __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 + __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 + __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 + __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_mul_epi64(__m512i __W) { __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 * __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 * __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 * __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_and_epi64(__m512i __W) { __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 & __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 & __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 & __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_or_epi64(__m512i __W) { __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 | __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 | __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 | __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_add_epi64(__mmask8 __M, __m512i __W) { __W = _mm512_maskz_mov_epi64(__M, __W); __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 + __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 + __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 + __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_mul_epi64(__mmask8 __M, __m512i __W) { __W = _mm512_mask_mov_epi64(_mm512_set1_epi64(1), __M, __W); __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 * __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 * __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 * __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_and_epi64(__mmask8 __M, __m512i __W) { __W = _mm512_mask_mov_epi64(_mm512_set1_epi64(~0ULL), __M, __W); __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 & __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 & __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 & __t7; return __t8[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_or_epi64(__mmask8 __M, __m512i __W) { __W = _mm512_maskz_mov_epi64(__M, __W); __v4du __t1 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v4du __t2 = (__v4du)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 | __t2); __v2du __t4 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v2du __t5 = (__v2du)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v2du __t6 = __t4 | __t5; __v2du __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __v2du __t8 = __t6 | __t7; return __t8[0]; } # 9376 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_add_pd(__m512d __W) { __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = __t1 + __t2; __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = __t4 + __t5; __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = __t6 + __t7; return __t8[0]; } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_mul_pd(__m512d __W) { __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = __t1 * __t2; __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = __t4 * __t5; __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = __t6 * __t7; return __t8[0]; } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_add_pd(__mmask8 __M, __m512d __W) { __W = _mm512_maskz_mov_pd(__M, __W); __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = __t1 + __t2; __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = __t4 + __t5; __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = __t6 + __t7; return __t8[0]; } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_mul_pd(__mmask8 __M, __m512d __W) { __W = _mm512_mask_mov_pd(_mm512_set1_pd(1.0), __M, __W); __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = __t1 * __t2; __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = __t4 * __t5; __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = __t6 * __t7; return __t8[0]; } # 9410 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_add_epi32(__m512i __W) { __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 + __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 + __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 + __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 + __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_mul_epi32(__m512i __W) { __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 * __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 * __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 * __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 * __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_and_epi32(__m512i __W) { __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 & __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 & __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 & __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 & __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_or_epi32(__m512i __W) { __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 | __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 | __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 | __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 | __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_add_epi32( __mmask16 __M, __m512i __W) { __W = _mm512_maskz_mov_epi32(__M, __W); __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 + __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 + __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 + __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 + __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_mul_epi32( __mmask16 __M, __m512i __W) { __W = _mm512_mask_mov_epi32(_mm512_set1_epi32(1), __M, __W); __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 * __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 * __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 * __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 * __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_and_epi32( __mmask16 __M, __m512i __W) { __W = _mm512_mask_mov_epi32(_mm512_set1_epi32(~0U), __M, __W); __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 & __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 & __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 & __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 & __t9; return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_or_epi32(__mmask16 __M, __m512i __W) { __W = _mm512_maskz_mov_epi32(__M, __W); __v8su __t1 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __v8su __t2 = (__v8su)(__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__W), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = (__m256i)(__t1 | __t2); __v4su __t4 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __v4su __t5 = (__v4su)(__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __v4su __t6 = __t4 | __t5; __v4su __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __v4su __t8 = __t6 | __t7; __v4su __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __v4su __t10 = __t8 | __t9; return __t10[0]; } # 9468 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_add_ps(__m512 __W) { __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = __t1 + __t2; __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = __t4 + __t5; __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = __t6 + __t7; __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = __t8 + __t9; return __t10[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_mul_ps(__m512 __W) { __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = __t1 * __t2; __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = __t4 * __t5; __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = __t6 * __t7; __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = __t8 * __t9; return __t10[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_add_ps(__mmask16 __M, __m512 __W) { __W = _mm512_maskz_mov_ps(__M, __W); __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = __t1 + __t2; __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = __t4 + __t5; __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = __t6 + __t7; __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = __t8 + __t9; return __t10[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_mul_ps(__mmask16 __M, __m512 __W) { __W = _mm512_mask_mov_ps(_mm512_set1_ps(1.0f), __M, __W); __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__W), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = __t1 * __t2; __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = __t4 * __t5; __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = __t6 * __t7; __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = __t8 * __t9; return __t10[0]; } # 9500 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_max_epi64(__m512i __V) { __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_max_epi64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_max_epi64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_max_epi64(__t4, __t5); return __t6[0]; } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_max_epu64(__m512i __V) { __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_max_epu64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_max_epu64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_max_epu64(__t4, __t5); return __t6[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_min_epi64(__m512i __V) { __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_min_epi64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_min_epi64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_min_epi64(__t4, __t5); return __t6[0]; } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_min_epu64(__m512i __V) { __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_min_epu64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_min_epu64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_min_epu64(__t4, __t5); return __t6[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_max_epi64(__mmask8 __M, __m512i __V) { __V = _mm512_mask_mov_epi64(_mm512_set1_epi64(-9223372036854775807LL - 1LL), __M, __V); __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_max_epi64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_max_epi64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_max_epi64(__t4, __t5); return __t6[0]; } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_max_epu64(__mmask8 __M, __m512i __V) { __V = _mm512_maskz_mov_epi64(__M, __V); __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_max_epu64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_max_epu64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_max_epu64(__t4, __t5); return __t6[0]; } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_min_epi64(__mmask8 __M, __m512i __V) { __V = _mm512_mask_mov_epi64(_mm512_set1_epi64(9223372036854775807LL), __M, __V); __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_min_epi64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_min_epi64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_min_epi64(__t4, __t5); return __t6[0]; } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_min_epu64(__mmask8 __M, __m512i __V) { __V = _mm512_mask_mov_epi64(_mm512_set1_epi64(~0ULL), __M, __V); __m512i __t1 = (__m512i)__builtin_shufflevector((__v8di)__V, (__v8di)__V, 4, 5, 6, 7, 0, 1, 2, 3); __m512i __t2 = _mm512_min_epu64(__V, __t1); __m512i __t3 = (__m512i)__builtin_shufflevector((__v8di)__t2, (__v8di)__t2, 2, 3, 0, 1, 6, 7, 4, 5); __m512i __t4 = _mm512_min_epu64(__t2, __t3); __m512i __t5 = (__m512i)__builtin_shufflevector((__v8di)__t4, (__v8di)__t4, 1, 0, 3, 2, 5, 4, 7, 6); __v8di __t6 = (__v8di)_mm512_min_epu64(__t4, __t5); return __t6[0]; } # 9558 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_max_epi32(__m512i __V) { __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_max_epi32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_max_epi32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_max_epi32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_max_epi32(__t8, __t9); return __t10[0]; } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_max_epu32(__m512i __V) { __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_max_epu32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_max_epu32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_max_epu32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_max_epu32(__t8, __t9); return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_min_epi32(__m512i __V) { __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_min_epi32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_min_epi32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_min_epi32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_min_epi32(__t8, __t9); return __t10[0]; } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_min_epu32(__m512i __V) { __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_min_epu32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_min_epu32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_min_epu32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_min_epu32(__t8, __t9); return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_max_epi32(__mmask16 __M, __m512i __V) { __V = _mm512_mask_mov_epi32(_mm512_set1_epi32(-2147483647 - 1), __M, __V); __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_max_epi32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_max_epi32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_max_epi32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_max_epi32(__t8, __t9); return __t10[0]; } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_max_epu32(__mmask16 __M, __m512i __V) { __V = _mm512_maskz_mov_epi32(__M, __V); __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_max_epu32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_max_epu32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_max_epu32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_max_epu32(__t8, __t9); return __t10[0]; } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_min_epi32(__mmask16 __M, __m512i __V) { __V = _mm512_mask_mov_epi32(_mm512_set1_epi32(2147483647), __M, __V); __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_min_epi32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_min_epi32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_min_epi32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_min_epi32(__t8, __t9); return __t10[0]; } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_min_epu32(__mmask16 __M, __m512i __V) { __V = _mm512_mask_mov_epi32(_mm512_set1_epi32(~0U), __M, __V); __m256i __t1 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(0), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t2 = (__m256i)__builtin_ia32_extracti64x4_mask((__v8di)(__m512i)(__V), (int)(1), (__v4di)_mm256_undefined_si256(), (__mmask8)-1); __m256i __t3 = _mm256_min_epu32(__t1, __t2); __m128i __t4 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(0)); __m128i __t5 = (__m128i)__builtin_ia32_extract128i256((__v4di)(__m256i)(__t3), (int)(1)); __m128i __t6 = _mm_min_epu32(__t4, __t5); __m128i __t7 = (__m128i)__builtin_shufflevector((__v4si)__t6, (__v4si)__t6, 2, 3, 0, 1); __m128i __t8 = _mm_min_epu32(__t6, __t7); __m128i __t9 = (__m128i)__builtin_shufflevector((__v4si)__t8, (__v4si)__t8, 1, 0, 3, 2); __v4si __t10 = (__v4si)_mm_min_epu32(__t8, __t9); return __t10[0]; } # 9614 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_max_pd(__m512d __V) { __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = _mm256_max_pd(__t1, __t2); __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = _mm_max_pd(__t4, __t5); __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = _mm_max_pd(__t6, __t7); return __t8[0]; } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_min_pd(__m512d __V) { __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = _mm256_min_pd(__t1, __t2); __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = _mm_min_pd(__t4, __t5); __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = _mm_min_pd(__t6, __t7); return __t8[0]; } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_max_pd(__mmask8 __M, __m512d __V) { __V = _mm512_mask_mov_pd(_mm512_set1_pd(-__builtin_inf()), __M, __V); __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = _mm256_max_pd(__t1, __t2); __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = _mm_max_pd(__t4, __t5); __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = _mm_max_pd(__t6, __t7); return __t8[0]; } static __inline__ double __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_min_pd(__mmask8 __M, __m512d __V) { __V = _mm512_mask_mov_pd(_mm512_set1_pd(__builtin_inf()), __M, __V); __m256d __t1 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t2 = (__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)(__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256d __t3 = _mm256_min_pd(__t1, __t2); __m128d __t4 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(0)); __m128d __t5 = (__m128d)__builtin_ia32_vextractf128_pd256((__v4df)(__m256d)(__t3), (int)(1)); __m128d __t6 = _mm_min_pd(__t4, __t5); __m128d __t7 = __builtin_shufflevector(__t6, __t6, 1, 0); __m128d __t8 = _mm_min_pd(__t6, __t7); return __t8[0]; } # 9650 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512fintrin.h" 3 static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_max_ps(__m512 __V) { __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = _mm256_max_ps(__t1, __t2); __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = _mm_max_ps(__t4, __t5); __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = _mm_max_ps(__t6, __t7); __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = _mm_max_ps(__t8, __t9); return __t10[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_reduce_min_ps(__m512 __V) { __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = _mm256_min_ps(__t1, __t2); __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = _mm_min_ps(__t4, __t5); __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = _mm_min_ps(__t6, __t7); __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = _mm_min_ps(__t8, __t9); return __t10[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_max_ps(__mmask16 __M, __m512 __V) { __V = _mm512_mask_mov_ps(_mm512_set1_ps(-__builtin_inff()), __M, __V); __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = _mm256_max_ps(__t1, __t2); __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = _mm_max_ps(__t4, __t5); __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = _mm_max_ps(__t6, __t7); __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = _mm_max_ps(__t8, __t9); return __t10[0]; } static __inline__ float __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512))) _mm512_mask_reduce_min_ps(__mmask16 __M, __m512 __V) { __V = _mm512_mask_mov_ps(_mm512_set1_ps(__builtin_inff()), __M, __V); __m256 __t1 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(0), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t2 = (__m256)(__m256d)__builtin_ia32_extractf64x4_mask((__v8df)(__m512d)((__m512d)__V), (int)(1), (__v4df)_mm256_undefined_pd(), (__mmask8)-1); __m256 __t3 = _mm256_min_ps(__t1, __t2); __m128 __t4 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(0)); __m128 __t5 = (__m128)__builtin_ia32_vextractf128_ps256((__v8sf)(__m256)(__t3), (int)(1)); __m128 __t6 = _mm_min_ps(__t4, __t5); __m128 __t7 = __builtin_shufflevector(__t6, __t6, 2, 3, 0, 1); __m128 __t8 = _mm_min_ps(__t6, __t7); __m128 __t9 = __builtin_shufflevector(__t8, __t8, 1, 0, 3, 2); __m128 __t10 = _mm_min_ps(__t8, __t9); return __t10[0]; } # 89 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 typedef short __v2hi __attribute__((__vector_size__(4))); typedef char __v4qi __attribute__((__vector_size__(4))); typedef char __v2qi __attribute__((__vector_size__(2))); # 226 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_add_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_add_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_add_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_add_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_add_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_add_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_add_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_add_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sub_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sub_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sub_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sub_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sub_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sub_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sub_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sub_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_add_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_add_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_add_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_add_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_add_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_add_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_add_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_add_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sub_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sub_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sub_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sub_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sub_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sub_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sub_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sub_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mul_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_mul_epi32(__X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mul_epi32(__mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_mul_epi32(__X, __Y), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mul_epi32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_mul_epi32(__X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mul_epi32(__mmask8 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_mul_epi32(__X, __Y), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mul_epu32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_mul_epu32(__X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mul_epu32(__mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_mul_epu32(__X, __Y), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mul_epu32(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_mul_epu32(__X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mul_epu32(__mmask8 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_mul_epu32(__X, __Y), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mullo_epi32(__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_mullo_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mullo_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_mullo_epi32(__A, __B), (__v8si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mullo_epi32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_mullo_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_mullo_epi32(__A, __B), (__v4si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_and_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8su)__a & (__v8su)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_and_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_and_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a & (__v4su)__b); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_and_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_andnot_epi32(__m256i __A, __m256i __B) { return (__m256i)(~(__v8su)__A & (__v8su)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_andnot_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_andnot_epi32(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_andnot_epi32(__m128i __A, __m128i __B) { return (__m128i)(~(__v4su)__A & (__v4su)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_andnot_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_andnot_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_or_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8su)__a | (__v8su)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_or_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_or_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a | (__v4su)__b); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_or_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_xor_epi32(__m256i __a, __m256i __b) { return (__m256i)((__v8su)__a ^ (__v8su)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_xor_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_xor_epi32(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_xor_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a ^ (__v4su)__b); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_xor_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_and_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a & (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_and_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_and_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a & (__v2du)__b); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_and_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_andnot_epi64(__m256i __A, __m256i __B) { return (__m256i)(~(__v4du)__A & (__v4du)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_andnot_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_andnot_epi64(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_andnot_epi64(__m128i __A, __m128i __B) { return (__m128i)(~(__v2du)__A & (__v2du)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_andnot_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_or_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a | (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_or_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_or_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a | (__v2du)__b); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_or_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_xor_epi64(__m256i __a, __m256i __b) { return (__m256i)((__v4du)__a ^ (__v4du)__b); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_xor_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_xor_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a ^ (__v2du)__b); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_xor_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_xor_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)_mm_mask_xor_epi64(_mm_setzero_si128(), __U, __A, __B); } # 893 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df) __C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd (-(__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df) __C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd (-(__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd (-(__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df) __C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 (-(__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df) __C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 (-(__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 (-(__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf) __C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps (-(__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf) __C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps (-(__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps (-(__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf) __C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 (-(__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf) __C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 (-(__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 (-(__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddsubpd ((__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddsubpd ((__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df) __C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddsubpd ((__v2df) __A, (__v2df) __B, (__v2df) __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddsubpd ((__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddsubpd ((__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df) __C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, (__v4df) __B, (__v4df) __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddsubps ((__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddsubps ((__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf) __C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddsubps ((__v4sf) __A, (__v4sf) __B, (__v4sf) __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddsubps ((__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddsubps ((__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf) __C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, (__v8sf) __B, (__v8sf) __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df) __C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df) __C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf) __C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf) __C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddsubpd ((__v2df) __A, (__v2df) __B, -(__v2df) __C), (__v2df) __C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddsubpd256 ((__v4df) __A, (__v4df) __B, -(__v4df) __C), (__v4df) __C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddsubps ((__v4sf) __A, (__v4sf) __B, -(__v4sf) __C), (__v4sf) __C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddsubps256 ((__v8sf) __A, (__v8sf) __B, -(__v8sf) __C), (__v8sf) __C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, -(__v2df) __B, (__v2df) __C), (__v2df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, -(__v4df) __B, (__v4df) __C), (__v4df) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, -(__v4sf) __B, (__v4sf) __C), (__v4sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, -(__v8sf) __B, (__v8sf) __C), (__v8sf) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, -(__v2df) __B, -(__v2df) __C), (__v2df) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { return (__m128d) __builtin_ia32_selectpd_128((__mmask8) __U, __builtin_ia32_vfmaddpd ((__v2df) __A, -(__v2df) __B, -(__v2df) __C), (__v2df) __C); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, -(__v4df) __B, -(__v4df) __C), (__v4df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { return (__m256d) __builtin_ia32_selectpd_256((__mmask8) __U, __builtin_ia32_vfmaddpd256 ((__v4df) __A, -(__v4df) __B, -(__v4df) __C), (__v4df) __C); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, -(__v4sf) __B, -(__v4sf) __C), (__v4sf) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { return (__m128) __builtin_ia32_selectps_128((__mmask8) __U, __builtin_ia32_vfmaddps ((__v4sf) __A, -(__v4sf) __B, -(__v4sf) __C), (__v4sf) __C); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, -(__v8sf) __B, -(__v8sf) __C), (__v8sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { return (__m256) __builtin_ia32_selectps_256((__mmask8) __U, __builtin_ia32_vfmaddps256 ((__v8sf) __A, -(__v8sf) __B, -(__v8sf) __C), (__v8sf) __C); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_add_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_add_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_add_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_add_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_add_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_add_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_add_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_add_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_add_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_add_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_add_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_add_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_blend_epi32 (__mmask8 __U, __m128i __A, __m128i __W) { return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, (__v4si) __W, (__v4si) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_blend_epi32 (__mmask8 __U, __m256i __A, __m256i __W) { return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, (__v8si) __W, (__v8si) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_blend_pd (__mmask8 __U, __m128d __A, __m128d __W) { return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, (__v2df) __W, (__v2df) __A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_blend_pd (__mmask8 __U, __m256d __A, __m256d __W) { return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, (__v4df) __W, (__v4df) __A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_blend_ps (__mmask8 __U, __m128 __A, __m128 __W) { return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, (__v4sf) __W, (__v4sf) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_blend_ps (__mmask8 __U, __m256 __A, __m256 __W) { return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, (__v8sf) __W, (__v8sf) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_blend_epi64 (__mmask8 __U, __m128i __A, __m128i __W) { return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, (__v2di) __W, (__v2di) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_blend_epi64 (__mmask8 __U, __m256i __A, __m256i __W) { return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, (__v4di) __W, (__v4di) __A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compress_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_compress_pd (__mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_compressdf128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compress_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_compress_pd (__mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_compressdf256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compress_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_compress_epi64 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_compressdi128_mask ((__v2di) __A, (__v2di) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compress_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_compress_epi64 (__mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_compressdi256_mask ((__v4di) __A, (__v4di) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compress_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_compress_ps (__mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_compresssf128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compress_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_compress_ps (__mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_compresssf256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compress_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_compress_epi32 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_compresssi128_mask ((__v4si) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compress_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_compress_epi32 (__mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_compresssi256_mask ((__v8si) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m128d __A) { __builtin_ia32_compressstoredf128_mask ((__v2df *) __P, (__v2df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m256d __A) { __builtin_ia32_compressstoredf256_mask ((__v4df *) __P, (__v4df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_compressstoredi128_mask ((__v2di *) __P, (__v2di) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m256i __A) { __builtin_ia32_compressstoredi256_mask ((__v4di *) __P, (__v4di) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m128 __A) { __builtin_ia32_compressstoresf128_mask ((__v4sf *) __P, (__v4sf) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compressstoreu_ps (void *__P, __mmask8 __U, __m256 __A) { __builtin_ia32_compressstoresf256_mask ((__v8sf *) __P, (__v8sf) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_compressstoresi128_mask ((__v4si *) __P, (__v4si) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_compressstoreu_epi32 (void *__P, __mmask8 __U, __m256i __A) { __builtin_ia32_compressstoresi256_mask ((__v8si *) __P, (__v8si) __A, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi32_pd (__m128d __W, __mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, (__v2df)_mm_cvtepi32_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, (__v2df)_mm_cvtepi32_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_pd (__m256d __W, __mmask8 __U, __m128i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, (__v4df)_mm256_cvtepi32_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi32_pd (__mmask8 __U, __m128i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, (__v4df)_mm256_cvtepi32_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi32_ps (__m128 __W, __mmask8 __U, __m128i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_cvtepi32_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi32_ps (__mmask8 __U, __m128i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_cvtepi32_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_ps (__m256 __W, __mmask8 __U, __m256i __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_cvtepi32_ps(__A), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi32_ps (__mmask8 __U, __m256i __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_cvtepi32_ps(__A), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtpd_epi32 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2dq128_mask ((__v2df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm256_cvtpd_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtpd_epi32 (__mmask8 __U, __m256d __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm256_cvtpd_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m128d __A) { return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtpd_ps (__mmask8 __U, __m128d __A) { return (__m128) __builtin_ia32_cvtpd2ps_mask ((__v2df) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtpd_ps (__m128 __W, __mmask8 __U, __m256d __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm256_cvtpd_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtpd_ps (__mmask8 __U, __m256d __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm256_cvtpd_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtpd_epu32 (__m128d __A) { return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtpd_epu32 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2udq128_mask ((__v2df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtpd_epu32 (__m256d __A) { return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) { return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtpd_epu32 (__mmask8 __U, __m256d __A) { return (__m128i) __builtin_ia32_cvtpd2udq256_mask ((__v4df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtps_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtps_epi32 (__mmask8 __U, __m128 __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtps_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtps_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtps_epi32 (__mmask8 __U, __m256 __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtps_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtps_pd (__m128d __W, __mmask8 __U, __m128 __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_cvtps_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtps_pd (__mmask8 __U, __m128 __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_cvtps_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtps_pd (__m256d __W, __mmask8 __U, __m128 __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_cvtps_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtps_pd (__mmask8 __U, __m128 __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_cvtps_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtps_epu32 (__m128 __A) { return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtps_epu32 (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvtps2udq128_mask ((__v4sf) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtps_epu32 (__m256 __A) { return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) { return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtps_epu32 (__mmask8 __U, __m256 __A) { return (__m256i) __builtin_ia32_cvtps2udq256_mask ((__v8sf) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvttpd_epi32 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2dq128_mask ((__v2df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvttpd_epi32 (__m128i __W, __mmask8 __U, __m256d __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm256_cvttpd_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvttpd_epi32 (__mmask8 __U, __m256d __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm256_cvttpd_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvttpd_epu32 (__m128d __A) { return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvttpd_epu32 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2udq128_mask ((__v2df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvttpd_epu32 (__m256d __A) { return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvttpd_epu32 (__m128i __W, __mmask8 __U, __m256d __A) { return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvttpd_epu32 (__mmask8 __U, __m256d __A) { return (__m128i) __builtin_ia32_cvttpd2udq256_mask ((__v4df) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvttps_epi32 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvttps_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvttps_epi32 (__mmask8 __U, __m128 __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvttps_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvttps_epi32 (__m256i __W, __mmask8 __U, __m256 __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvttps_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvttps_epi32 (__mmask8 __U, __m256 __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvttps_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvttps_epu32 (__m128 __A) { return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvttps_epu32 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvttps_epu32 (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvttps2udq128_mask ((__v4sf) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvttps_epu32 (__m256 __A) { return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvttps_epu32 (__m256i __W, __mmask8 __U, __m256 __A) { return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvttps_epu32 (__mmask8 __U, __m256 __A) { return (__m256i) __builtin_ia32_cvttps2udq256_mask ((__v8sf) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepu32_pd (__m128i __A) { return (__m128d) __builtin_convertvector( __builtin_shufflevector((__v4su)__A, (__v4su)__A, 0, 1), __v2df); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu32_pd (__m128d __W, __mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, (__v2df)_mm_cvtepu32_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8) __U, (__v2df)_mm_cvtepu32_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepu32_pd (__m128i __A) { return (__m256d)__builtin_convertvector((__v4su)__A, __v4df); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu32_pd (__m256d __W, __mmask8 __U, __m128i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, (__v4df)_mm256_cvtepu32_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu32_pd (__mmask8 __U, __m128i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8) __U, (__v4df)_mm256_cvtepu32_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepu32_ps (__m128i __A) { return (__m128)__builtin_convertvector((__v4su)__A, __v4sf); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu32_ps (__m128 __W, __mmask8 __U, __m128i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_cvtepu32_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu32_ps (__mmask8 __U, __m128i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_cvtepu32_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepu32_ps (__m256i __A) { return (__m256)__builtin_convertvector((__v8su)__A, __v8sf); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu32_ps (__m256 __W, __mmask8 __U, __m256i __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_cvtepu32_ps(__A), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu32_ps (__mmask8 __U, __m256i __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_cvtepu32_ps(__A), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_div_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_div_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_div_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_div_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_div_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_div_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_div_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_div_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expand_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expand_pd (__mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_expanddf128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expand_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expand_pd (__mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_expanddf256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expand_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expand_epi64 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_expanddi128_mask ((__v2di) __A, (__v2di) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expand_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expand_epi64 (__mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_expanddi256_mask ((__v4di) __A, (__v4di) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) { return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) { return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, (__v2di) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, (__v4di) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) { return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) { return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expand_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expand_ps (__mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_expandsf128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expand_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expand_ps (__mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_expandsf256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_expand_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_expand_epi32 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_expandsi128_mask ((__v4si) __A, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_expand_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_expand_epi32 (__mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_expandsi256_mask ((__v8si) __A, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_getexp_pd (__m128d __A) { return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) -1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_getexp_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_getexp_pd (__mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_getexppd128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_getexp_pd (__m256d __A) { return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) -1); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_getexp_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_getexp_pd (__mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_getexppd256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_getexp_ps (__m128 __A) { return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_getexp_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_getexp_ps (__mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_getexpps128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_getexp_ps (__m256 __A) { return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) -1); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_getexp_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_getexp_ps (__mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_getexpps256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_max_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_max_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_max_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_max_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_max_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_max_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_max_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_max_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_min_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_min_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_min_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_min_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_min_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_min_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_min_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_min_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_mul_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_mul_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_mul_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_mul_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_mul_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_mul_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_mul_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_mul_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_abs_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_abs_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_abs_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_abs_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_abs_epi64 (__m128i __A) { return (__m128i)__builtin_ia32_pabsq128((__v2di)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_abs_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_abs_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_abs_epi64 (__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_abs_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_abs_epi64 (__m256i __A) { return (__m256i)__builtin_ia32_pabsq256 ((__v4di)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_abs_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_abs_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_abs_epi64 (__mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_abs_epi64(__A), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_max_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_max_epi32(__A, __B), (__v4si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_max_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_max_epi32(__A, __B), (__v8si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_max_epi64 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_pmaxsq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_max_epi64 (__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_max_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_max_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_max_epi64(__A, __B), (__v2di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_max_epi64 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_pmaxsq256((__v4di)__A, (__v4di)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_max_epi64 (__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_max_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_max_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_max_epi64(__A, __B), (__v4di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_max_epu32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_max_epu32(__A, __B), (__v4si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_max_epu32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_max_epu32(__A, __B), (__v8si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_max_epu64 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_pmaxuq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_max_epu64 (__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_max_epu64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_max_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_max_epu64(__A, __B), (__v2di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_max_epu64 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_pmaxuq256((__v4di)__A, (__v4di)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_max_epu64 (__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_max_epu64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_max_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_max_epu64(__A, __B), (__v4di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_min_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_min_epi32(__A, __B), (__v4si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_min_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_min_epi32(__A, __B), (__v8si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_min_epi64 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_pminsq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_min_epi64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_min_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_min_epi64 (__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_min_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_min_epi64 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_pminsq256((__v4di)__A, (__v4di)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_min_epi64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_min_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_min_epi64 (__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_min_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_min_epu32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_min_epu32(__A, __B), (__v4si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_min_epu32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_min_epu32(__A, __B), (__v8si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_min_epu64 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_pminuq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_min_epu64 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_min_epu64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_min_epu64 (__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__M, (__v2di)_mm_min_epu64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_min_epu64 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_pminuq256((__v4di)__A, (__v4di)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_min_epu64 (__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_min_epu64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_min_epu64 (__mmask8 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_min_epu64(__A, __B), (__v4di)_mm256_setzero_si256()); } # 3365 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_scalef_pd (__m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) -1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_scalef_pd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, (__v2df) __B, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_scalef_pd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d) __builtin_ia32_scalefpd128_mask ((__v2df) __A, (__v2df) __B, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_scalef_pd (__m256d __A, __m256d __B) { return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, (__v4df) __B, (__v4df) _mm256_setzero_pd (), (__mmask8) -1); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_scalef_pd (__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, (__v4df) __B, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_scalef_pd (__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d) __builtin_ia32_scalefpd256_mask ((__v4df) __A, (__v4df) __B, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_scalef_ps (__m128 __A, __m128 __B) { return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_scalef_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_scalef_ps (__mmask8 __U, __m128 __A, __m128 __B) { return (__m128) __builtin_ia32_scalefps128_mask ((__v4sf) __A, (__v4sf) __B, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_scalef_ps (__m256 __A, __m256 __B) { return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, (__v8sf) __B, (__v8sf) _mm256_setzero_ps (), (__mmask8) -1); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_scalef_ps (__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, (__v8sf) __B, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) { return (__m256) __builtin_ia32_scalefps256_mask ((__v8sf) __A, (__v8sf) __B, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } # 3632 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_sqrt_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_sqrt_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_sqrt_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_sqrt_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_sqrt_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_sqrt_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_sqrt_ps(__A), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_sqrt_ps(__A), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_sub_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_sub_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_sub_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_sub_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sub_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_sub_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sub_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_sub_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sub_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_sub_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sub_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_sub_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_vpermi2vard128((__v4si) __A, (__v4si)__I, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_permutex2var_epi32(__A, __I, __B), (__v4si)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_permutex2var_epi32(__A, __I, __B), (__v4si)__I); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_permutex2var_epi32(__A, __I, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_vpermi2vard256((__v8si)__A, (__v8si) __I, (__v8si) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_permutex2var_epi32(__A, __I, __B), (__v8si)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_permutex2var_epi32(__A, __I, __B), (__v8si)__I); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_permutex2var_epi32(__A, __I, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) { return (__m128d)__builtin_ia32_vpermi2varpd128((__v2df)__A, (__v2di)__I, (__v2df)__B); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128(__U, (__v2df)_mm_permutex2var_pd(__A, __I, __B), (__v2df)__A); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128(__U, (__v2df)_mm_permutex2var_pd(__A, __I, __B), (__v2df)(__m128d)__I); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128(__U, (__v2df)_mm_permutex2var_pd(__A, __I, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) { return (__m256d)__builtin_ia32_vpermi2varpd256((__v4df)__A, (__v4di)__I, (__v4df)__B); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256(__U, (__v4df)_mm256_permutex2var_pd(__A, __I, __B), (__v4df)__A); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256(__U, (__v4df)_mm256_permutex2var_pd(__A, __I, __B), (__v4df)(__m256d)__I); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256(__U, (__v4df)_mm256_permutex2var_pd(__A, __I, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) { return (__m128)__builtin_ia32_vpermi2varps128((__v4sf)__A, (__v4si)__I, (__v4sf)__B); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) { return (__m128)__builtin_ia32_selectps_128(__U, (__v4sf)_mm_permutex2var_ps(__A, __I, __B), (__v4sf)__A); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) { return (__m128)__builtin_ia32_selectps_128(__U, (__v4sf)_mm_permutex2var_ps(__A, __I, __B), (__v4sf)(__m128)__I); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) { return (__m128)__builtin_ia32_selectps_128(__U, (__v4sf)_mm_permutex2var_ps(__A, __I, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) { return (__m256)__builtin_ia32_vpermi2varps256((__v8sf)__A, (__v8si)__I, (__v8sf) __B); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) { return (__m256)__builtin_ia32_selectps_256(__U, (__v8sf)_mm256_permutex2var_ps(__A, __I, __B), (__v8sf)__A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U, __m256 __B) { return (__m256)__builtin_ia32_selectps_256(__U, (__v8sf)_mm256_permutex2var_ps(__A, __I, __B), (__v8sf)(__m256)__I); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) { return (__m256)__builtin_ia32_selectps_256(__U, (__v8sf)_mm256_permutex2var_ps(__A, __I, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_vpermi2varq128((__v2di)__A, (__v2di)__I, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_permutex2var_epi64(__A, __I, __B), (__v2di)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_permutex2var_epi64(__A, __I, __B), (__v2di)__I); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_permutex2var_epi64(__A, __I, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_vpermi2varq256((__v4di)__A, (__v4di) __I, (__v4di) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_permutex2var_epi64(__A, __I, __B), (__v4di)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_permutex2var_epi64(__A, __I, __B), (__v4di)__I); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_permutex2var_epi64(__A, __I, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepi8_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepi8_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi8_epi32 (__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepi8_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi8_epi32 (__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepi8_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepi8_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepi8_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepi8_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepi8_epi64(__A), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepi32_epi64(__X), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepi32_epi64(__X), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepi32_epi64(__X), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepi32_epi64(__X), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepi16_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepi16_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepi16_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi16_epi32 (__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepi16_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepi16_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepi16_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepi16_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepi16_epi64(__A), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepu8_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepu8_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepu8_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepu8_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepu8_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepu8_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepu8_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepu8_epi64(__A), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepu32_epi64(__X), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepu32_epi64(__X), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepu32_epi64(__X), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepu32_epi64(__X), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepu16_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_cvtepu16_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepu16_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_cvtepu16_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepu16_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_cvtepu16_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepu16_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_cvtepu16_epi64(__A), (__v4di)_mm256_setzero_si256()); } # 4352 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rolv_epi32 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_prolvd128((__v4si)__A, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rolv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_rolv_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rolv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_rolv_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rolv_epi32 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_prolvd256((__v8si)__A, (__v8si)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rolv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_rolv_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rolv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_rolv_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rolv_epi64 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_prolvq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rolv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_rolv_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rolv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_rolv_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rolv_epi64 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_prolvq256((__v4di)__A, (__v4di)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rolv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_rolv_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rolv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_rolv_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } # 4492 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sll_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sll_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sll_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sll_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sll_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sll_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sll_epi32(__mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sll_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_slli_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_slli_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_slli_epi32(__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_slli_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_slli_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_slli_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_slli_epi32(__mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_slli_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sll_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sll_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sll_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sll_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sll_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sll_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sll_epi64(__mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sll_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_slli_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_slli_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_slli_epi64(__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_slli_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_slli_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_slli_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_slli_epi64(__mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_slli_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rorv_epi32 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_prorvd128((__v4si)__A, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rorv_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_rorv_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rorv_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_rorv_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rorv_epi32 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_prorvd256((__v8si)__A, (__v8si)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rorv_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_rorv_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rorv_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_rorv_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rorv_epi64 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_prorvq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rorv_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_rorv_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rorv_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_rorv_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rorv_epi64 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_prorvq256((__v4di)__A, (__v4di)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rorv_epi64 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_rorv_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rorv_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_rorv_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sllv_epi64(__X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sllv_epi64(__X, __Y), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sllv_epi64(__X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sllv_epi64(__X, __Y), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sllv_epi32(__X, __Y), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sllv_epi32(__X, __Y), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sllv_epi32(__X, __Y), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sllv_epi32(__X, __Y), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srlv_epi64(__X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srlv_epi64(__X, __Y), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srlv_epi64(__X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srlv_epi64(__X, __Y), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srlv_epi32(__X, __Y), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srlv_epi32(__X, __Y), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srlv_epi32(__X, __Y), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srlv_epi32(__X, __Y), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srl_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srl_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srl_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srl_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srli_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srli_epi32(__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srli_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srli_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srli_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srl_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srl_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srl_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srl_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srli_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srli_epi64(__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srli_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srli_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srli_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srav_epi32(__X, __Y), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srav_epi32(__X, __Y), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srav_epi32(__X, __Y), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srav_epi32(__X, __Y), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_srav_epi64(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_psravq128((__v2di)__X, (__v2di)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srav_epi64(__X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srav_epi64(__X, __Y), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_srav_epi64(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_psravq256((__v4di)__X, (__v4di) __Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srav_epi64(__X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srav_epi64 (__mmask8 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srav_epi64(__X, __Y), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mov_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, (__v4si) __A, (__v4si) __W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mov_epi32 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectd_128 ((__mmask8) __U, (__v4si) __A, (__v4si) _mm_setzero_si128 ()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mov_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, (__v8si) __A, (__v8si) __W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectd_256 ((__mmask8) __U, (__v8si) __A, (__v8si) _mm256_setzero_si256 ()); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_load_epi32 (void const *__P) { return *(__m128i *) __P; } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_load_epi32 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_load_epi32 (void const *__P) { return *(__m256i *) __P; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_store_epi32 (void *__P, __m128i __A) { *(__m128i *) __P = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_movdqa32store128_mask ((__v4si *) __P, (__v4si) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_store_epi32 (void *__P, __m256i __A) { *(__m256i *) __P = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A) { __builtin_ia32_movdqa32store256_mask ((__v8si *) __P, (__v8si) __A, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mov_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, (__v2di) __A, (__v2di) __W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mov_epi64 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectq_128 ((__mmask8) __U, (__v2di) __A, (__v2di) _mm_setzero_si128 ()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mov_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, (__v4di) __A, (__v4di) __W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectq_256 ((__mmask8) __U, (__v4di) __A, (__v4di) _mm256_setzero_si256 ()); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_load_epi64 (void const *__P) { return *(__m128i *) __P; } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_load_epi64 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, (__v2di) _mm_setzero_si128 (), (__mmask8) __U); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_load_epi64 (void const *__P) { return *(__m256i *) __P; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, (__v4di) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_store_epi64 (void *__P, __m128i __A) { *(__m128i *) __P = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_movdqa64store128_mask ((__v2di *) __P, (__v2di) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_store_epi64 (void *__P, __m256i __A) { *(__m256i *) __P = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A) { __builtin_ia32_movdqa64store256_mask ((__v4di *) __P, (__v4di) __A, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_movedup_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_movedup_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_movedup_pd (__mmask8 __U, __m128d __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_movedup_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_movedup_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_movedup_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_movedup_pd (__mmask8 __U, __m256d __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_movedup_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_set1_epi32(__m128i __O, __mmask8 __M, int __A) { return (__m128i)__builtin_ia32_selectd_128(__M, (__v4si) _mm_set1_epi32(__A), (__v4si)__O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_set1_epi32( __mmask8 __M, int __A) { return (__m128i)__builtin_ia32_selectd_128(__M, (__v4si) _mm_set1_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_set1_epi32(__m256i __O, __mmask8 __M, int __A) { return (__m256i)__builtin_ia32_selectd_256(__M, (__v8si) _mm256_set1_epi32(__A), (__v8si)__O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_set1_epi32( __mmask8 __M, int __A) { return (__m256i)__builtin_ia32_selectd_256(__M, (__v8si) _mm256_set1_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_set1_epi64 (__m128i __O, __mmask8 __M, long long __A) { return (__m128i) __builtin_ia32_selectq_128(__M, (__v2di) _mm_set1_epi64x(__A), (__v2di) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_set1_epi64 (__mmask8 __M, long long __A) { return (__m128i) __builtin_ia32_selectq_128(__M, (__v2di) _mm_set1_epi64x(__A), (__v2di) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_set1_epi64 (__m256i __O, __mmask8 __M, long long __A) { return (__m256i) __builtin_ia32_selectq_256(__M, (__v4di) _mm256_set1_epi64x(__A), (__v4di) __O) ; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_set1_epi64 (__mmask8 __M, long long __A) { return (__m256i) __builtin_ia32_selectq_256(__M, (__v4di) _mm256_set1_epi64x(__A), (__v4di) _mm256_setzero_si256()); } # 5430 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P) { return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_load_pd (__mmask8 __U, void const *__P) { return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P) { return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_load_pd (__mmask8 __U, void const *__P) { return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P) { return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_load_ps (__mmask8 __U, void const *__P) { return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P) { return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_load_ps (__mmask8 __U, void const *__P) { return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_loadu_epi64 (void const *__P) { struct __loadu_epi64 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi64*)__P)->__v; } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, (__v2di) _mm_setzero_si128 (), (__mmask8) __U); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_loadu_epi64 (void const *__P) { struct __loadu_epi64 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi64*)__P)->__v; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, (__v4di) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_loadu_epi32 (void const *__P) { struct __loadu_epi32 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi32*)__P)->__v; } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, (__v4si) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_loadu_epi32 (void const *__P) { struct __loadu_epi32 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi32*)__P)->__v; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, (__v8si) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P) { return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_loadu_pd (__mmask8 __U, void const *__P) { return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P) { return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_loadu_pd (__mmask8 __U, void const *__P) { return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P) { return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_loadu_ps (__mmask8 __U, void const *__P) { return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P) { return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_loadu_ps (__mmask8 __U, void const *__P) { return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A) { __builtin_ia32_storeapd128_mask ((__v2df *) __P, (__v2df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A) { __builtin_ia32_storeapd256_mask ((__v4df *) __P, (__v4df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A) { __builtin_ia32_storeaps128_mask ((__v4sf *) __P, (__v4sf) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A) { __builtin_ia32_storeaps256_mask ((__v8sf *) __P, (__v8sf) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_storeu_epi64 (void *__P, __m128i __A) { struct __storeu_epi64 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi64*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_storedqudi128_mask ((__v2di *) __P, (__v2di) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_storeu_epi64 (void *__P, __m256i __A) { struct __storeu_epi64 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi64*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A) { __builtin_ia32_storedqudi256_mask ((__v4di *) __P, (__v4di) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_storeu_epi32 (void *__P, __m128i __A) { struct __storeu_epi32 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi32*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_storedqusi128_mask ((__v4si *) __P, (__v4si) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_storeu_epi32 (void *__P, __m256i __A) { struct __storeu_epi32 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi32*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A) { __builtin_ia32_storedqusi256_mask ((__v8si *) __P, (__v8si) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A) { __builtin_ia32_storeupd128_mask ((__v2df *) __P, (__v2df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A) { __builtin_ia32_storeupd256_mask ((__v4df *) __P, (__v4df) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A) { __builtin_ia32_storeups128_mask ((__v4sf *) __P, (__v4sf) __A, (__mmask8) __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A) { __builtin_ia32_storeups256_mask ((__v8sf *) __P, (__v8sf) __A, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_unpackhi_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_unpackhi_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_unpackhi_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_unpackhi_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_unpackhi_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_unpackhi_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_unpackhi_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_unpackhi_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_unpacklo_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_unpacklo_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_unpacklo_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_unpacklo_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_unpacklo_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_unpacklo_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_unpacklo_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_unpacklo_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rcp14_pd (__m128d __A) { return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) -1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rcp14_pd (__m256d __A) { return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) -1); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rcp14_ps (__m128 __A) { return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rcp14_ps (__m256 __A) { return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) -1); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } # 6075 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_permutevar_pd(__A, __C), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_permutevar_pd(__A, __C), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_permutevar_pd(__A, __C), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_permutevar_pd(__A, __C), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_permutevar_ps(__A, __C), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_permutevar_ps(__A, __C), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_permutevar_ps(__A, __C), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_permutevar_ps(__A, __C), (__v8sf)_mm256_setzero_ps()); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_test_epi32_mask (__m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)((_mm_and_si128 (__A, __B))), (__v4si)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)((_mm_and_si128 (__A, __B))), (__v4si)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_test_epi32_mask (__m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)((_mm256_and_si256 (__A, __B))), (__v8si)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)((_mm256_and_si256 (__A, __B))), (__v8si)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_test_epi64_mask (__m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)((_mm_and_si128 (__A, __B))), (__v2di)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)((_mm_and_si128 (__A, __B))), (__v2di)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_test_epi64_mask (__m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)((_mm256_and_si256 (__A, __B))), (__v4di)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)((_mm256_and_si256 (__A, __B))), (__v4di)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_testn_epi32_mask (__m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)((_mm_and_si128 (__A, __B))), (__v4si)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)((_mm_and_si128 (__A, __B))), (__v4si)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_testn_epi32_mask (__m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)((_mm256_and_si256 (__A, __B))), (__v8si)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)((_mm256_and_si256 (__A, __B))), (__v8si)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_testn_epi64_mask (__m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)((_mm_and_si128 (__A, __B))), (__v2di)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)((_mm_and_si128 (__A, __B))), (__v2di)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask8)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_testn_epi64_mask (__m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)((_mm256_and_si256 (__A, __B))), (__v4di)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B) { return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)((_mm256_and_si256 (__A, __B))), (__v4di)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask8)((__U))); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_unpackhi_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_unpackhi_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_unpackhi_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_unpackhi_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_unpackhi_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_unpackhi_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_unpackhi_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_unpackhi_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_unpacklo_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_unpacklo_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_unpacklo_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_unpacklo_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_unpacklo_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_unpacklo_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_unpacklo_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_unpacklo_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sra_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_sra_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sra_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_sra_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srai_epi32(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srai_epi32(__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_srai_epi32(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srai_epi32(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_srai_epi32(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_sra_epi64(__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_psraq128((__v2di)__A, (__v2di)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sra_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_sra_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_sra_epi64(__m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_psraq256((__v4di) __A, (__v2di) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sra_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_sra_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_srai_epi64(__m128i __A, int __imm) { return (__m128i)__builtin_ia32_psraqi128((__v2di)__A, __imm); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A, int __imm) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srai_epi64(__A, __imm), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_srai_epi64(__mmask8 __U, __m128i __A, int __imm) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_srai_epi64(__A, __imm), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_srai_epi64(__m256i __A, int __imm) { return (__m256i)__builtin_ia32_psraqi256((__v4di)__A, __imm); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A, int __imm) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srai_epi64(__A, __imm), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A, int __imm) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_srai_epi64(__A, __imm), (__v4di)_mm256_setzero_si256()); } # 6698 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rsqrt14_pd (__m128d __A) { return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) -1); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, (__v2df) __W, (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A, (__v2df) _mm_setzero_pd (), (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rsqrt14_pd (__m256d __A) { return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) -1); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, (__v4df) __W, (__mmask8) __U); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_rsqrt14_ps (__m128 __A) { return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_rsqrt14_ps (__m256 __A) { return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) -1); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_broadcast_f32x4(__m128 __A) { return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, 0, 1, 2, 3, 0, 1, 2, 3); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, (__v8sf)_mm256_broadcast_f32x4(__A), (__v8sf)__O); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, (__v8sf)_mm256_broadcast_f32x4(__A), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_broadcast_i32x4(__m128i __A) { return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, 0, 1, 2, 3, 0, 1, 2, 3); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_broadcast_i32x4(__A), (__v8si)__O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_broadcast_i32x4(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A) { return (__m256d)__builtin_ia32_selectpd_256(__M, (__v4df) _mm256_broadcastsd_pd(__A), (__v4df) __O); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A) { return (__m256d)__builtin_ia32_selectpd_256(__M, (__v4df) _mm256_broadcastsd_pd(__A), (__v4df) _mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A) { return (__m128)__builtin_ia32_selectps_128(__M, (__v4sf) _mm_broadcastss_ps(__A), (__v4sf) __O); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) { return (__m128)__builtin_ia32_selectps_128(__M, (__v4sf) _mm_broadcastss_ps(__A), (__v4sf) _mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A) { return (__m256)__builtin_ia32_selectps_256(__M, (__v8sf) _mm256_broadcastss_ps(__A), (__v8sf) __O); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A) { return (__m256)__builtin_ia32_selectps_256(__M, (__v8sf) _mm256_broadcastss_ps(__A), (__v8sf) _mm256_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128(__M, (__v4si) _mm_broadcastd_epi32(__A), (__v4si) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128(__M, (__v4si) _mm_broadcastd_epi32(__A), (__v4si) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256(__M, (__v8si) _mm256_broadcastd_epi32(__A), (__v8si) __O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256(__M, (__v8si) _mm256_broadcastd_epi32(__A), (__v8si) _mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128(__M, (__v2di) _mm_broadcastq_epi64(__A), (__v2di) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128(__M, (__v2di) _mm_broadcastq_epi64(__A), (__v2di) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256(__M, (__v4di) _mm256_broadcastq_epi64(__A), (__v4di) __O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256(__M, (__v4di) _mm256_broadcastq_epi64(__A), (__v4di) _mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtsepi32_epi8 (__m128i __A) { return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm256_cvtsepi32_epi8 (__m256i __A) { return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtsepi32_epi16 (__m128i __A) { return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, (__v8hi)_mm_setzero_si128 (), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, (__v8hi)__O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtsepi32_epi16 (__m256i __A) { return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, (__v8hi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtsepi64_epi8 (__m128i __A) { return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtsepi64_epi8 (__m256i __A) { return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtsepi64_epi32 (__m128i __A) { return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, (__v4si)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, (__v4si) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A, (__v4si) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtsepi64_epi32 (__m256i __A) { return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, (__v4si)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, (__v4si)__O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A, (__v4si) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtsepi64_epi16 (__m128i __A) { return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, (__v8hi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtsepi64_epi16 (__m256i __A) { return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, (__v8hi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtusepi32_epi8 (__m128i __A) { return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtusepi32_epi8 (__m256i __A) { return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtusepi32_epi16 (__m128i __A) { return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, (__v8hi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtusepi32_epi16 (__m256i __A) { return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, (__v8hi) _mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtusepi64_epi8 (__m128i __A) { return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtusepi64_epi8 (__m256i __A) { return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, (__v16qi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtusepi64_epi32 (__m128i __A) { return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, (__v4si)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, (__v4si) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A, (__v4si) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtusepi64_epi32 (__m256i __A) { return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, (__v4si)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, (__v4si) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A, (__v4si) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtusepi64_epi16 (__m128i __A) { return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, (__v8hi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtusepi64_epi16 (__m256i __A) { return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, (__v8hi)_mm_undefined_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepi32_epi8 (__m128i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v4si)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepi32_epi8 (__m256i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v8si)__A, __v8qi), (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepi32_epi16 (__m128i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v4si)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepi32_epi16 (__m256i __A) { return (__m128i)__builtin_convertvector((__v8si)__A, __v8hi); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepi64_epi8 (__m128i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v2di)__A, __v2qi), (__v2qi){0, 0}, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepi64_epi8 (__m256i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v4di)__A, __v4qi), (__v4qi){0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A, (__v16qi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepi64_epi32 (__m128i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v2di)__A, __v2si), (__v2si){0, 0}, 0, 1, 2, 3); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, (__v4si) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A, (__v4si) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepi64_epi32 (__m256i __A) { return (__m128i)__builtin_convertvector((__v4di)__A, __v4si); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm256_cvtepi64_epi32(__A), (__v4si)__O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm256_cvtepi64_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_cvtepi64_epi16 (__m128i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v2di)__A, __v2hi), (__v2hi){0, 0}, 0, 1, 2, 3, 3, 3, 3, 3); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, (__v8hi)__O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_cvtepi64_epi16 (__m256i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v4di)__A, __v4hi), (__v4hi){0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, (__v8hi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A, (__v8hi) _mm_setzero_si128 (), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) { __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M); } # 8093 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_permutexvar_pd (__m256i __X, __m256d __Y) { return (__m256d)__builtin_ia32_permvardf256((__v4df)__Y, (__v4di)__X); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_permutexvar_pd(__X, __Y), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_permutexvar_pd(__X, __Y), (__v4df)_mm256_setzero_pd()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_permutexvar_epi64 ( __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_permvardi256((__v4di) __Y, (__v4di) __X); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_permutexvar_epi64(__X, __Y), (__v4di)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_permutexvar_epi64(__X, __Y), (__v4di)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_permutevar8x32_ps((__Y), (__X)), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_permutevar8x32_ps((__Y), (__X)), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_permutevar8x32_epi32((__Y), (__X)), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_permutevar8x32_epi32((__Y), (__X)), (__v8si)_mm256_setzero_si256()); } # 8232 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_movehdup_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_movehdup_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_movehdup_ps(__A), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_movehdup_ps(__A), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_moveldup_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_moveldup_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_moveldup_ps(__A), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_moveldup_ps(__A), (__v8sf)_mm256_setzero_ps()); } # 8316 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, (__v2df) __A, (__v2df) __W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mov_pd (__mmask8 __U, __m128d __A) { return (__m128d) __builtin_ia32_selectpd_128 ((__mmask8) __U, (__v2df) __A, (__v2df) _mm_setzero_pd ()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, (__v4df) __A, (__v4df) __W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mov_pd (__mmask8 __U, __m256d __A) { return (__m256d) __builtin_ia32_selectpd_256 ((__mmask8) __U, (__v4df) __A, (__v4df) _mm256_setzero_pd ()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, (__v4sf) __A, (__v4sf) __W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_mov_ps (__mmask8 __U, __m128 __A) { return (__m128) __builtin_ia32_selectps_128 ((__mmask8) __U, (__v4sf) __A, (__v4sf) _mm_setzero_ps ()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, (__v8sf) __A, (__v8sf) __W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_mov_ps (__mmask8 __U, __m256 __A) { return (__m256) __builtin_ia32_selectps_256 ((__mmask8) __U, (__v8sf) __A, (__v8sf) _mm256_setzero_ps ()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A) { return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A) { return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A) { return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A) { return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, 0x04, (__v8hi) __W, (__mmask8) __U); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(128))) _mm_maskz_cvtps_ph (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_vcvtps2ph_mask ((__v4sf) __A, 0x04, (__v8hi) _mm_setzero_si128 (), (__mmask8) __U); } # 8440 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlintrin.h" 3 static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_mask_cvtps_ph (__m128i __W, __mmask8 __U, __m256 __A) { return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, 0x04, (__v8hi) __W, (__mmask8) __U); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl"), __min_vector_width__(256))) _mm256_maskz_cvtps_ph ( __mmask8 __U, __m256 __A) { return (__m128i) __builtin_ia32_vcvtps2ph256_mask ((__v8sf) __A, 0x04, (__v8hi) _mm_setzero_si128(), (__mmask8) __U); } # 93 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bwintrin.h" 1 3 # 17 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bwintrin.h" 3 typedef unsigned int __mmask32; typedef unsigned long long __mmask64; static __inline __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _knot_mask32(__mmask32 __M) { return __builtin_ia32_knotsi(__M); } static __inline __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _knot_mask64(__mmask64 __M) { return __builtin_ia32_knotdi(__M); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kand_mask32(__mmask32 __A, __mmask32 __B) { return (__mmask32)__builtin_ia32_kandsi((__mmask32)__A, (__mmask32)__B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kand_mask64(__mmask64 __A, __mmask64 __B) { return (__mmask64)__builtin_ia32_kanddi((__mmask64)__A, (__mmask64)__B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kandn_mask32(__mmask32 __A, __mmask32 __B) { return (__mmask32)__builtin_ia32_kandnsi((__mmask32)__A, (__mmask32)__B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kandn_mask64(__mmask64 __A, __mmask64 __B) { return (__mmask64)__builtin_ia32_kandndi((__mmask64)__A, (__mmask64)__B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kor_mask32(__mmask32 __A, __mmask32 __B) { return (__mmask32)__builtin_ia32_korsi((__mmask32)__A, (__mmask32)__B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kor_mask64(__mmask64 __A, __mmask64 __B) { return (__mmask64)__builtin_ia32_kordi((__mmask64)__A, (__mmask64)__B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kxnor_mask32(__mmask32 __A, __mmask32 __B) { return (__mmask32)__builtin_ia32_kxnorsi((__mmask32)__A, (__mmask32)__B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kxnor_mask64(__mmask64 __A, __mmask64 __B) { return (__mmask64)__builtin_ia32_kxnordi((__mmask64)__A, (__mmask64)__B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kxor_mask32(__mmask32 __A, __mmask32 __B) { return (__mmask32)__builtin_ia32_kxorsi((__mmask32)__A, (__mmask32)__B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kxor_mask64(__mmask64 __A, __mmask64 __B) { return (__mmask64)__builtin_ia32_kxordi((__mmask64)__A, (__mmask64)__B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kortestc_mask32_u8(__mmask32 __A, __mmask32 __B) { return (unsigned char)__builtin_ia32_kortestcsi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kortestz_mask32_u8(__mmask32 __A, __mmask32 __B) { return (unsigned char)__builtin_ia32_kortestzsi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kortest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_kortestcsi(__A, __B); return (unsigned char)__builtin_ia32_kortestzsi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kortestc_mask64_u8(__mmask64 __A, __mmask64 __B) { return (unsigned char)__builtin_ia32_kortestcdi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kortestz_mask64_u8(__mmask64 __A, __mmask64 __B) { return (unsigned char)__builtin_ia32_kortestzdi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kortest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_kortestcdi(__A, __B); return (unsigned char)__builtin_ia32_kortestzdi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _ktestc_mask32_u8(__mmask32 __A, __mmask32 __B) { return (unsigned char)__builtin_ia32_ktestcsi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _ktestz_mask32_u8(__mmask32 __A, __mmask32 __B) { return (unsigned char)__builtin_ia32_ktestzsi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _ktest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_ktestcsi(__A, __B); return (unsigned char)__builtin_ia32_ktestzsi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _ktestc_mask64_u8(__mmask64 __A, __mmask64 __B) { return (unsigned char)__builtin_ia32_ktestcdi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _ktestz_mask64_u8(__mmask64 __A, __mmask64 __B) { return (unsigned char)__builtin_ia32_ktestzdi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _ktest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_ktestcdi(__A, __B); return (unsigned char)__builtin_ia32_ktestzdi(__A, __B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kadd_mask32(__mmask32 __A, __mmask32 __B) { return (__mmask32)__builtin_ia32_kaddsi((__mmask32)__A, (__mmask32)__B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _kadd_mask64(__mmask64 __A, __mmask64 __B) { return (__mmask64)__builtin_ia32_kadddi((__mmask64)__A, (__mmask64)__B); } # 192 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bwintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _cvtmask32_u32(__mmask32 __A) { return (unsigned int)__builtin_ia32_kmovd((__mmask32)__A); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _cvtmask64_u64(__mmask64 __A) { return (unsigned long long)__builtin_ia32_kmovq((__mmask64)__A); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _cvtu32_mask32(unsigned int __A) { return (__mmask32)__builtin_ia32_kmovd((__mmask32)__A); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _cvtu64_mask64(unsigned long long __A) { return (__mmask64)__builtin_ia32_kmovq((__mmask64)__A); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _load_mask32(__mmask32 *__A) { return (__mmask32)__builtin_ia32_kmovd(*(__mmask32 *)__A); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _load_mask64(__mmask64 *__A) { return (__mmask64)__builtin_ia32_kmovq(*(__mmask64 *)__A); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _store_mask32(__mmask32 *__A, __mmask32 __B) { *(__mmask32 *)__A = __builtin_ia32_kmovd((__mmask32)__B); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"))) _store_mask64(__mmask64 *__A, __mmask64 __B) { *(__mmask64 *)__A = __builtin_ia32_kmovq((__mmask64)__B); } # 374 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bwintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_add_epi8 (__m512i __A, __m512i __B) { return (__m512i) ((__v64qu) __A + (__v64qu) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_add_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_add_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_sub_epi8 (__m512i __A, __m512i __B) { return (__m512i) ((__v64qu) __A - (__v64qu) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_sub_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_sub_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_add_epi16 (__m512i __A, __m512i __B) { return (__m512i) ((__v32hu) __A + (__v32hu) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_add_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_add_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_sub_epi16 (__m512i __A, __m512i __B) { return (__m512i) ((__v32hu) __A - (__v32hu) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sub_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sub_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mullo_epi16 (__m512i __A, __m512i __B) { return (__m512i) ((__v32hu) __A * (__v32hu) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mullo_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mullo_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W) { return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U, (__v64qi) __W, (__v64qi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W) { return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U, (__v32hi) __W, (__v32hi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_abs_epi8 (__m512i __A) { return (__m512i)__builtin_ia32_pabsb512((__v64qi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_abs_epi8(__A), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_abs_epi8(__A), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_abs_epi16 (__m512i __A) { return (__m512i)__builtin_ia32_pabsw512((__v32hi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_abs_epi16(__A), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_abs_epi16(__A), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_packs_epi32(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_packssdw512((__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_packs_epi32(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_packs_epi32(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_packs_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_packsswb512((__v32hi)__A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_packs_epi16(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_packs_epi16(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_packus_epi32(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_packusdw512((__v16si) __A, (__v16si) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_packus_epi32(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_packus_epi32(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_packus_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_packuswb512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_packus_epi16(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_packus_epi16(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_adds_epi8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_paddsb512((__v64qi)__A, (__v64qi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_adds_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_adds_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_adds_epi16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_paddsw512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_adds_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_adds_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_adds_epu8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_paddusb512((__v64qi) __A, (__v64qi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_adds_epu8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_adds_epu8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_adds_epu16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_paddusw512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_adds_epu16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_adds_epu16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_avg_epu8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pavgb512((__v64qi)__A, (__v64qi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_avg_epu8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_avg_epu8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_avg_epu16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pavgw512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_avg_epu16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_avg_epu16(__A, __B), (__v32hi) _mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_max_epi8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxsb512((__v64qi) __A, (__v64qi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_max_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_max_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_max_epi16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxsw512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_max_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_max_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_max_epu8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxub512((__v64qi)__A, (__v64qi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_max_epu8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_max_epu8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_max_epu16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaxuw512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_max_epu16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_max_epu16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_min_epi8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminsb512((__v64qi) __A, (__v64qi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_min_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_min_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_min_epi16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminsw512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_min_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_min_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_min_epu8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminub512((__v64qi)__A, (__v64qi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_min_epu8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_min_epu8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_min_epu16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pminuw512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_min_epu16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_min_epu16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_shuffle_epi8(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pshufb512((__v64qi)__A,(__v64qi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_shuffle_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_shuffle_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_subs_epi8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psubsb512((__v64qi)__A, (__v64qi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_subs_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_subs_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_subs_epi16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psubsw512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_subs_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_subs_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_subs_epu8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psubusb512((__v64qi) __A, (__v64qi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_subs_epu8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_subs_epu8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_subs_epu16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psubusw512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_subs_epu16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_subs_epu16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B), (__v32hi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B), (__v32hi)__I); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_permutex2var_epi16(__A, __I, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mulhrs_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmulhrsw512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mulhrs_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mulhrs_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mulhi_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmulhw512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mulhi_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mulhi_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mulhi_epu16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmulhuw512((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mulhi_epu16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_mulhi_epu16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maddubs_epi16(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_pmaddubsw512((__v64qi)__X, (__v64qi)__Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U, (__v32hi)_mm512_maddubs_epi16(__X, __Y), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U, (__v32hi)_mm512_maddubs_epi16(__X, __Y), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_madd_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_pmaddwd512((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_madd_epi16(__A, __B), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_madd_epi16(__A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_cvtsepi16_epi8 (__m512i __A) { return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, (__v32qi)_mm256_setzero_si256(), (__mmask32) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, (__v32qi)__O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A, (__v32qi) _mm256_setzero_si256(), __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_cvtusepi16_epi8 (__m512i __A) { return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, (__v32qi) _mm256_setzero_si256(), (__mmask32) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, (__v32qi) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A, (__v32qi) _mm256_setzero_si256(), __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_cvtepi16_epi8 (__m512i __A) { return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, (__v32qi) _mm256_undefined_si256(), (__mmask32) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, (__v32qi) __O, __M); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) { return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A, (__v32qi) _mm256_setzero_si256(), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) { __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) { __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A) { __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_unpackhi_epi8(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B, 8, 64+8, 9, 64+9, 10, 64+10, 11, 64+11, 12, 64+12, 13, 64+13, 14, 64+14, 15, 64+15, 24, 64+24, 25, 64+25, 26, 64+26, 27, 64+27, 28, 64+28, 29, 64+29, 30, 64+30, 31, 64+31, 40, 64+40, 41, 64+41, 42, 64+42, 43, 64+43, 44, 64+44, 45, 64+45, 46, 64+46, 47, 64+47, 56, 64+56, 57, 64+57, 58, 64+58, 59, 64+59, 60, 64+60, 61, 64+61, 62, 64+62, 63, 64+63); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_unpackhi_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_unpackhi_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_unpackhi_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B, 4, 32+4, 5, 32+5, 6, 32+6, 7, 32+7, 12, 32+12, 13, 32+13, 14, 32+14, 15, 32+15, 20, 32+20, 21, 32+21, 22, 32+22, 23, 32+23, 28, 32+28, 29, 32+29, 30, 32+30, 31, 32+31); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_unpackhi_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_unpackhi_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_unpacklo_epi8(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B, 0, 64+0, 1, 64+1, 2, 64+2, 3, 64+3, 4, 64+4, 5, 64+5, 6, 64+6, 7, 64+7, 16, 64+16, 17, 64+17, 18, 64+18, 19, 64+19, 20, 64+20, 21, 64+21, 22, 64+22, 23, 64+23, 32, 64+32, 33, 64+33, 34, 64+34, 35, 64+35, 36, 64+36, 37, 64+37, 38, 64+38, 39, 64+39, 48, 64+48, 49, 64+49, 50, 64+50, 51, 64+51, 52, 64+52, 53, 64+53, 54, 64+54, 55, 64+55); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_unpacklo_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U, (__v64qi)_mm512_unpacklo_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_unpacklo_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B, 0, 32+0, 1, 32+1, 2, 32+2, 3, 32+3, 8, 32+8, 9, 32+9, 10, 32+10, 11, 32+11, 16, 32+16, 17, 32+17, 18, 32+18, 19, 32+19, 24, 32+24, 25, 32+25, 26, 32+26, 27, 32+27); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_unpacklo_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_unpacklo_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_cvtepi8_epi16(__m256i __A) { return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_cvtepi8_epi16(__A), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_cvtepi8_epi16(__A), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_cvtepu8_epi16(__m256i __A) { return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_cvtepu8_epi16(__A), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_cvtepu8_epi16(__A), (__v32hi)_mm512_setzero_si512()); } # 1462 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bwintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_sllv_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sllv_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sllv_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_sll_epi16(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psllw512((__v32hi) __A, (__v8hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sll_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sll_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_slli_epi16(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psllwi512((__v32hi)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_slli_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_slli_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_srlv_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srlv_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srlv_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_srav_epi16(__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srav_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srav_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_sra_epi16(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psraw512((__v32hi) __A, (__v8hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sra_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_sra_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_srai_epi16(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psrawi512((__v32hi)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srai_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srai_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_srl_epi16(__m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_psrlw512((__v32hi) __A, (__v8hi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srl_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srl_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_srli_epi16(__m512i __A, int __B) { return (__m512i)__builtin_ia32_psrlwi512((__v32hi)__A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srli_epi16(__A, __B), (__v32hi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_srli_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U, (__v32hi) __A, (__v32hi) __W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U, (__v32hi) __A, (__v32hi) _mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U, (__v64qi) __A, (__v64qi) __W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A) { return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U, (__v64qi) __A, (__v64qi) _mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A) { return (__m512i) __builtin_ia32_selectb_512(__M, (__v64qi)_mm512_set1_epi8(__A), (__v64qi) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_set1_epi8 (__mmask64 __M, char __A) { return (__m512i) __builtin_ia32_selectb_512(__M, (__v64qi) _mm512_set1_epi8(__A), (__v64qi) _mm512_setzero_si512()); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_kunpackd (__mmask64 __A, __mmask64 __B) { return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A, (__mmask64) __B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_kunpackw (__mmask32 __A, __mmask32 __B) { return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A, (__mmask32) __B); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_loadu_epi16 (void const *__P) { struct __loadu_epi16 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi16*)__P)->__v; } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, (__v32hi) __W, (__mmask32) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, (__v32hi) _mm512_setzero_si512 (), (__mmask32) __U); } static __inline __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_loadu_epi8 (void const *__P) { struct __loadu_epi8 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi8*)__P)->__v; } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, (__v64qi) __W, (__mmask64) __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P) { return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, (__v64qi) _mm512_setzero_si512 (), (__mmask64) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_storeu_epi16 (void *__P, __m512i __A) { struct __storeu_epi16 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi16*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A) { __builtin_ia32_storedquhi512_mask ((__v32hi *) __P, (__v32hi) __A, (__mmask32) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_storeu_epi8 (void *__P, __m512i __A) { struct __storeu_epi8 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi8*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A) { __builtin_ia32_storedquqi512_mask ((__v64qi *) __P, (__v64qi) __A, (__mmask64) __U); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_test_epi8_mask (__m512i __A, __m512i __B) { return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v64qi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask64)-1); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) { return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v64qi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask64)((__U))); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_test_epi16_mask (__m512i __A, __m512i __B) { return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v32hi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask32)-1); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) { return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v32hi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_NE), (__mmask32)((__U))); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_testn_epi8_mask (__m512i __A, __m512i __B) { return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v64qi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask64)-1); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B) { return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v64qi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask64)((__U))); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_testn_epi16_mask (__m512i __A, __m512i __B) { return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v32hi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask32)-1); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B) { return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((_mm512_and_epi32 (__A, __B))), (__v32hi)(__m512i)((_mm512_setzero_si512())), (int)(_MM_CMPINT_EQ), (__mmask32)((__U))); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_movepi8_mask (__m512i __A) { return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_movepi16_mask (__m512i __A) { return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_movm_epi8 (__mmask64 __A) { return (__m512i) __builtin_ia32_cvtmask2b512 (__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_movm_epi16 (__mmask32 __A) { return (__m512i) __builtin_ia32_cvtmask2w512 (__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_broadcastb_epi8 (__m128i __A) { return (__m512i)__builtin_shufflevector((__v16qi) __A, (__v16qi) __A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectb_512(__M, (__v64qi) _mm512_broadcastb_epi8(__A), (__v64qi) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectb_512(__M, (__v64qi) _mm512_broadcastb_epi8(__A), (__v64qi) _mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A) { return (__m512i) __builtin_ia32_selectw_512(__M, (__v32hi) _mm512_set1_epi16(__A), (__v32hi) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_set1_epi16 (__mmask32 __M, short __A) { return (__m512i) __builtin_ia32_selectw_512(__M, (__v32hi) _mm512_set1_epi16(__A), (__v32hi) _mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_broadcastw_epi16 (__m128i __A) { return (__m512i)__builtin_shufflevector((__v8hi) __A, (__v8hi) __A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectw_512(__M, (__v32hi) _mm512_broadcastw_epi16(__A), (__v32hi) __O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectw_512(__M, (__v32hi) _mm512_broadcastw_epi16(__A), (__v32hi) _mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_permutexvar_epi16 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_permutexvar_epi16(__A, __B), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M, (__v32hi)_mm512_permutexvar_epi16(__A, __B), (__v32hi)__W); } # 2011 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bwintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512))) _mm512_sad_epu8 (__m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A, (__v64qi) __B); } # 97 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bitalgintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bitalgintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_popcnt_epi16(__m512i __A) { return (__m512i) __builtin_ia32_vpopcntw_512((__v32hi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_mask_popcnt_epi16(__m512i __A, __mmask32 __U, __m512i __B) { return (__m512i) __builtin_ia32_selectw_512((__mmask32) __U, (__v32hi) _mm512_popcnt_epi16(__B), (__v32hi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_maskz_popcnt_epi16(__mmask32 __U, __m512i __B) { return _mm512_mask_popcnt_epi16((__m512i) _mm512_setzero_si512(), __U, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_popcnt_epi8(__m512i __A) { return (__m512i) __builtin_ia32_vpopcntb_512((__v64qi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_mask_popcnt_epi8(__m512i __A, __mmask64 __U, __m512i __B) { return (__m512i) __builtin_ia32_selectb_512((__mmask64) __U, (__v64qi) _mm512_popcnt_epi8(__B), (__v64qi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_maskz_popcnt_epi8(__mmask64 __U, __m512i __B) { return _mm512_mask_popcnt_epi8((__m512i) _mm512_setzero_si512(), __U, __B); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_mask_bitshuffle_epi64_mask(__mmask64 __U, __m512i __A, __m512i __B) { return (__mmask64) __builtin_ia32_vpshufbitqmb512_mask((__v64qi) __A, (__v64qi) __B, __U); } static __inline__ __mmask64 __attribute__((__always_inline__, __nodebug__, __target__("avx512bitalg"), __min_vector_width__(512))) _mm512_bitshuffle_epi64_mask(__m512i __A, __m512i __B) { return _mm512_mask_bitshuffle_epi64_mask((__mmask64) -1, __A, __B); } # 101 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512cdintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512cdintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_conflict_epi64 (__m512i __A) { return (__m512i) __builtin_ia32_vpconflictdi_512 ((__v8di) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_mask_conflict_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_conflict_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_maskz_conflict_epi64 (__mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_conflict_epi64(__A), (__v8di)_mm512_setzero_si512 ()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_conflict_epi32 (__m512i __A) { return (__m512i) __builtin_ia32_vpconflictsi_512 ((__v16si) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_mask_conflict_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_conflict_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_maskz_conflict_epi32 (__mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_conflict_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_lzcnt_epi32 (__m512i __A) { return (__m512i) __builtin_ia32_vplzcntd_512 ((__v16si) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_mask_lzcnt_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_lzcnt_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_maskz_lzcnt_epi32 (__mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U, (__v16si)_mm512_lzcnt_epi32(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_lzcnt_epi64 (__m512i __A) { return (__m512i) __builtin_ia32_vplzcntq_512 ((__v8di) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_mask_lzcnt_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_lzcnt_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_maskz_lzcnt_epi64 (__mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_lzcnt_epi64(__A), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_broadcastmb_epi64 (__mmask8 __A) { return (__m512i) _mm512_set1_epi64((long long) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512cd"), __min_vector_width__(512))) _mm512_broadcastmw_epi32 (__mmask16 __A) { return (__m512i) _mm512_set1_epi32((int) __A); } # 105 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vpopcntdqintrin.h" 1 3 # 22 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vpopcntdqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) _mm512_popcnt_epi64(__m512i __A) { return (__m512i)__builtin_ia32_vpopcntq_512((__v8di)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) _mm512_mask_popcnt_epi64(__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectq_512( (__mmask8)__U, (__v8di)_mm512_popcnt_epi64(__A), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) _mm512_maskz_popcnt_epi64(__mmask8 __U, __m512i __A) { return _mm512_mask_popcnt_epi64((__m512i)_mm512_setzero_si512(), __U, __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) _mm512_popcnt_epi32(__m512i __A) { return (__m512i)__builtin_ia32_vpopcntd_512((__v16si)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) _mm512_mask_popcnt_epi32(__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i)__builtin_ia32_selectd_512( (__mmask16)__U, (__v16si)_mm512_popcnt_epi32(__A), (__v16si)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq"), __min_vector_width__(512))) _mm512_maskz_popcnt_epi32(__mmask16 __U, __m512i __A) { return _mm512_mask_popcnt_epi32((__m512i)_mm512_setzero_si512(), __U, __A); } # 109 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vpopcntdqvlintrin.h" 1 3 # 24 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vpopcntdqvlintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) _mm_popcnt_epi64(__m128i __A) { return (__m128i)__builtin_ia32_vpopcntq_128((__v2di)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) _mm_mask_popcnt_epi64(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128( (__mmask8)__U, (__v2di)_mm_popcnt_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) _mm_maskz_popcnt_epi64(__mmask8 __U, __m128i __A) { return _mm_mask_popcnt_epi64((__m128i)_mm_setzero_si128(), __U, __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) _mm_popcnt_epi32(__m128i __A) { return (__m128i)__builtin_ia32_vpopcntd_128((__v4si)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) _mm_mask_popcnt_epi32(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128( (__mmask8)__U, (__v4si)_mm_popcnt_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(128))) _mm_maskz_popcnt_epi32(__mmask8 __U, __m128i __A) { return _mm_mask_popcnt_epi32((__m128i)_mm_setzero_si128(), __U, __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) _mm256_popcnt_epi64(__m256i __A) { return (__m256i)__builtin_ia32_vpopcntq_256((__v4di)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) _mm256_mask_popcnt_epi64(__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256( (__mmask8)__U, (__v4di)_mm256_popcnt_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) _mm256_maskz_popcnt_epi64(__mmask8 __U, __m256i __A) { return _mm256_mask_popcnt_epi64((__m256i)_mm256_setzero_si256(), __U, __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) _mm256_popcnt_epi32(__m256i __A) { return (__m256i)__builtin_ia32_vpopcntd_256((__v8si)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) _mm256_mask_popcnt_epi32(__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256( (__mmask8)__U, (__v8si)_mm256_popcnt_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vpopcntdq,avx512vl"), __min_vector_width__(256))) _mm256_maskz_popcnt_epi32(__mmask8 __U, __m256i __A) { return _mm256_mask_popcnt_epi32((__m256i)_mm256_setzero_si256(), __U, __A); } # 114 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vnniintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vnniintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_dpbusd_epi32(__m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_vpdpbusd512((__v16si)__S, (__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_mask_dpbusd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpbusd_epi32(__S, __A, __B), (__v16si)__S); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_maskz_dpbusd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpbusd_epi32(__S, __A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_dpbusds_epi32(__m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_vpdpbusds512((__v16si)__S, (__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_mask_dpbusds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpbusds_epi32(__S, __A, __B), (__v16si)__S); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_maskz_dpbusds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpbusds_epi32(__S, __A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_dpwssd_epi32(__m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_vpdpwssd512((__v16si)__S, (__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_mask_dpwssd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpwssd_epi32(__S, __A, __B), (__v16si)__S); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_maskz_dpwssd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpwssd_epi32(__S, __A, __B), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_dpwssds_epi32(__m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_vpdpwssds512((__v16si)__S, (__v16si)__A, (__v16si)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_mask_dpwssds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpwssds_epi32(__S, __A, __B), (__v16si)__S); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), __min_vector_width__(512))) _mm512_maskz_dpwssds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_dpwssds_epi32(__S, __A, __B), (__v16si)_mm512_setzero_si512()); } # 118 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvnniintrin.h" 1 3 # 22 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvnniintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_dpbusd_epi32(__m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_vpdpbusd256((__v8si)__S, (__v8si)__A, (__v8si)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_mask_dpbusd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpbusd_epi32(__S, __A, __B), (__v8si)__S); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_maskz_dpbusd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpbusd_epi32(__S, __A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_dpbusds_epi32(__m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_vpdpbusds256((__v8si)__S, (__v8si)__A, (__v8si)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_mask_dpbusds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpbusds_epi32(__S, __A, __B), (__v8si)__S); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_maskz_dpbusds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpbusds_epi32(__S, __A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_dpwssd_epi32(__m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_vpdpwssd256((__v8si)__S, (__v8si)__A, (__v8si)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_mask_dpwssd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpwssd_epi32(__S, __A, __B), (__v8si)__S); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_maskz_dpwssd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpwssd_epi32(__S, __A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_dpwssds_epi32(__m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_vpdpwssds256((__v8si)__S, (__v8si)__A, (__v8si)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_mask_dpwssds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpwssds_epi32(__S, __A, __B), (__v8si)__S); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(256))) _mm256_maskz_dpwssds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_dpwssds_epi32(__S, __A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_dpbusd_epi32(__m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_vpdpbusd128((__v4si)__S, (__v4si)__A, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_mask_dpbusd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpbusd_epi32(__S, __A, __B), (__v4si)__S); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_maskz_dpbusd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpbusd_epi32(__S, __A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_dpbusds_epi32(__m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_vpdpbusds128((__v4si)__S, (__v4si)__A, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_mask_dpbusds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpbusds_epi32(__S, __A, __B), (__v4si)__S); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_maskz_dpbusds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpbusds_epi32(__S, __A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_dpwssd_epi32(__m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_vpdpwssd128((__v4si)__S, (__v4si)__A, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_mask_dpwssd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpwssd_epi32(__S, __A, __B), (__v4si)__S); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_maskz_dpwssd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpwssd_epi32(__S, __A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_dpwssds_epi32(__m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_vpdpwssds128((__v4si)__S, (__v4si)__A, (__v4si)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_mask_dpwssds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpwssds_epi32(__S, __A, __B), (__v4si)__S); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vnni"), __min_vector_width__(128))) _mm_maskz_dpwssds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_dpwssds_epi32(__S, __A, __B), (__v4si)_mm_setzero_si128()); } # 123 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _knot_mask8(__mmask8 __M) { return __builtin_ia32_knotqi(__M); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kand_mask8(__mmask8 __A, __mmask8 __B) { return (__mmask8)__builtin_ia32_kandqi((__mmask8)__A, (__mmask8)__B); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kandn_mask8(__mmask8 __A, __mmask8 __B) { return (__mmask8)__builtin_ia32_kandnqi((__mmask8)__A, (__mmask8)__B); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kor_mask8(__mmask8 __A, __mmask8 __B) { return (__mmask8)__builtin_ia32_korqi((__mmask8)__A, (__mmask8)__B); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kxnor_mask8(__mmask8 __A, __mmask8 __B) { return (__mmask8)__builtin_ia32_kxnorqi((__mmask8)__A, (__mmask8)__B); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kxor_mask8(__mmask8 __A, __mmask8 __B) { return (__mmask8)__builtin_ia32_kxorqi((__mmask8)__A, (__mmask8)__B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kortestc_mask8_u8(__mmask8 __A, __mmask8 __B) { return (unsigned char)__builtin_ia32_kortestcqi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kortestz_mask8_u8(__mmask8 __A, __mmask8 __B) { return (unsigned char)__builtin_ia32_kortestzqi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kortest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_kortestcqi(__A, __B); return (unsigned char)__builtin_ia32_kortestzqi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _ktestc_mask8_u8(__mmask8 __A, __mmask8 __B) { return (unsigned char)__builtin_ia32_ktestcqi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _ktestz_mask8_u8(__mmask8 __A, __mmask8 __B) { return (unsigned char)__builtin_ia32_ktestzqi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _ktest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_ktestcqi(__A, __B); return (unsigned char)__builtin_ia32_ktestzqi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _ktestc_mask16_u8(__mmask16 __A, __mmask16 __B) { return (unsigned char)__builtin_ia32_ktestchi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _ktestz_mask16_u8(__mmask16 __A, __mmask16 __B) { return (unsigned char)__builtin_ia32_ktestzhi(__A, __B); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _ktest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) { *__C = (unsigned char)__builtin_ia32_ktestchi(__A, __B); return (unsigned char)__builtin_ia32_ktestzhi(__A, __B); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kadd_mask8(__mmask8 __A, __mmask8 __B) { return (__mmask8)__builtin_ia32_kaddqi((__mmask8)__A, (__mmask8)__B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _kadd_mask16(__mmask16 __A, __mmask16 __B) { return (__mmask16)__builtin_ia32_kaddhi((__mmask16)__A, (__mmask16)__B); } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _cvtmask8_u32(__mmask8 __A) { return (unsigned int)__builtin_ia32_kmovb((__mmask8)__A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _cvtu32_mask8(unsigned int __A) { return (__mmask8)__builtin_ia32_kmovb((__mmask8)__A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _load_mask8(__mmask8 *__A) { return (__mmask8)__builtin_ia32_kmovb(*(__mmask8 *)__A); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"))) _store_mask8(__mmask8 *__A, __mmask8 __B) { *(__mmask8 *)__A = __builtin_ia32_kmovb((__mmask8)__B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mullo_epi64 (__m512i __A, __m512i __B) { return (__m512i) ((__v8du) __A * (__v8du) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_mullo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_mullo_epi64(__A, __B), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_mullo_epi64(__mmask8 __U, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U, (__v8di)_mm512_mullo_epi64(__A, __B), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_xor_pd(__m512d __A, __m512d __B) { return (__m512d)((__v8du)__A ^ (__v8du)__B); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_xor_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_xor_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_xor_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_xor_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_xor_ps (__m512 __A, __m512 __B) { return (__m512)((__v16su)__A ^ (__v16su)__B); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_xor_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_xor_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_xor_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_xor_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_or_pd(__m512d __A, __m512d __B) { return (__m512d)((__v8du)__A | (__v8du)__B); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_or_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_or_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_or_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_or_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_or_ps(__m512 __A, __m512 __B) { return (__m512)((__v16su)__A | (__v16su)__B); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_or_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_or_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_or_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_or_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_and_pd(__m512d __A, __m512d __B) { return (__m512d)((__v8du)__A & (__v8du)__B); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_and_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_and_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_and_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_and_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_and_ps(__m512 __A, __m512 __B) { return (__m512)((__v16su)__A & (__v16su)__B); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_and_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_and_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_and_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_and_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_andnot_pd(__m512d __A, __m512d __B) { return (__m512d)(~(__v8du)__A & (__v8du)__B); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_andnot_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_andnot_pd(__A, __B), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_andnot_pd(__mmask8 __U, __m512d __A, __m512d __B) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_andnot_pd(__A, __B), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_andnot_ps(__m512 __A, __m512 __B) { return (__m512)(~(__v16su)__A & (__v16su)__B); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_andnot_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_andnot_ps(__A, __B), (__v16sf)__W); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_andnot_ps(__mmask16 __U, __m512 __A, __m512 __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_andnot_ps(__A, __B), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtpd_epi64 (__m512d __A) { return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 359 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtpd_epu64 (__m512d __A) { return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 398 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtps_epi64 (__m256 __A) { return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 437 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtps_epu64 (__m256 __A) { return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 477 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtepi64_pd (__m512i __A) { return (__m512d)__builtin_convertvector((__v8di)__A, __v8df); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_cvtepi64_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_cvtepi64_pd(__A), (__v8df)_mm512_setzero_pd()); } # 511 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtepi64_ps (__m512i __A) { return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, (__v8sf) _mm256_setzero_ps(), (__mmask8) -1, 0x04); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) { return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, (__v8sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) { return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A, (__v8sf) _mm256_setzero_ps(), (__mmask8) __U, 0x04); } # 551 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvttpd_epi64 (__m512d __A) { return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 590 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvttpd_epu64 (__m512d __A) { return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) { return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 629 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvttps_epi64 (__m256 __A) { return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 668 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvttps_epu64 (__m256 __A) { return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) -1, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, (__v8di) __W, (__mmask8) __U, 0x04); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) { return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A, (__v8di) _mm512_setzero_si512(), (__mmask8) __U, 0x04); } # 707 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtepu64_pd (__m512i __A) { return (__m512d)__builtin_convertvector((__v8du)__A, __v8df); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_cvtepu64_pd(__A), (__v8df)__W); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U, (__v8df)_mm512_cvtepu64_pd(__A), (__v8df)_mm512_setzero_pd()); } # 743 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_cvtepu64_ps (__m512i __A) { return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, (__v8sf) _mm256_setzero_ps(), (__mmask8) -1, 0x04); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) { return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, (__v8sf) __W, (__mmask8) __U, 0x04); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) { return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A, (__v8sf) _mm256_setzero_ps(), (__mmask8) __U, 0x04); } # 1053 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512dqintrin.h" 3 static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_movepi32_mask (__m512i __A) { return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_movm_epi32 (__mmask16 __A) { return (__m512i) __builtin_ia32_cvtmask2d512 (__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_movm_epi64 (__mmask8 __A) { return (__m512i) __builtin_ia32_cvtmask2q512 (__A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_movepi64_mask (__m512i __A) { return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_broadcast_f32x2 (__m128 __A) { return (__m512)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, (__v16sf)_mm512_broadcast_f32x2(__A), (__v16sf)__O); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, (__v16sf)_mm512_broadcast_f32x2(__A), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_broadcast_f32x8(__m256 __A) { return (__m512)__builtin_shufflevector((__v8sf)__A, (__v8sf)__A, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, (__v16sf)_mm512_broadcast_f32x8(__A), (__v16sf)__O); } static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__M, (__v16sf)_mm512_broadcast_f32x8(__A), (__v16sf)_mm512_setzero_ps()); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_broadcast_f64x2(__m128d __A) { return (__m512d)__builtin_shufflevector((__v2df)__A, (__v2df)__A, 0, 1, 0, 1, 0, 1, 0, 1); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, (__v8df)_mm512_broadcast_f64x2(__A), (__v8df)__O); } static __inline__ __m512d __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A) { return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M, (__v8df)_mm512_broadcast_f64x2(__A), (__v8df)_mm512_setzero_pd()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_broadcast_i32x2 (__m128i __A) { return (__m512i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_broadcast_i32x2(__A), (__v16si)__O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_broadcast_i32x2(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_broadcast_i32x8(__m256i __A) { return (__m512i)__builtin_shufflevector((__v8si)__A, (__v8si)__A, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_broadcast_i32x8(__A), (__v16si)__O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A) { return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M, (__v16si)_mm512_broadcast_i32x8(__A), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_broadcast_i64x2(__m128i __A) { return (__m512i)__builtin_shufflevector((__v2di)__A, (__v2di)__A, 0, 1, 0, 1, 0, 1, 0, 1); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_broadcast_i64x2(__A), (__v8di)__O); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512))) _mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A) { return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M, (__v8di)_mm512_broadcast_i64x2(__A), (__v8di)_mm512_setzero_si512()); } # 127 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbitalgintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbitalgintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_popcnt_epi16(__m256i __A) { return (__m256i) __builtin_ia32_vpopcntw_256((__v16hi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_mask_popcnt_epi16(__m256i __A, __mmask16 __U, __m256i __B) { return (__m256i) __builtin_ia32_selectw_256((__mmask16) __U, (__v16hi) _mm256_popcnt_epi16(__B), (__v16hi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_maskz_popcnt_epi16(__mmask16 __U, __m256i __B) { return _mm256_mask_popcnt_epi16((__m256i) _mm256_setzero_si256(), __U, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_popcnt_epi16(__m128i __A) { return (__m128i) __builtin_ia32_vpopcntw_128((__v8hi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_mask_popcnt_epi16(__m128i __A, __mmask8 __U, __m128i __B) { return (__m128i) __builtin_ia32_selectw_128((__mmask8) __U, (__v8hi) _mm_popcnt_epi16(__B), (__v8hi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_maskz_popcnt_epi16(__mmask8 __U, __m128i __B) { return _mm_mask_popcnt_epi16((__m128i) _mm_setzero_si128(), __U, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_popcnt_epi8(__m256i __A) { return (__m256i) __builtin_ia32_vpopcntb_256((__v32qi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_mask_popcnt_epi8(__m256i __A, __mmask32 __U, __m256i __B) { return (__m256i) __builtin_ia32_selectb_256((__mmask32) __U, (__v32qi) _mm256_popcnt_epi8(__B), (__v32qi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_maskz_popcnt_epi8(__mmask32 __U, __m256i __B) { return _mm256_mask_popcnt_epi8((__m256i) _mm256_setzero_si256(), __U, __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_popcnt_epi8(__m128i __A) { return (__m128i) __builtin_ia32_vpopcntb_128((__v16qi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_mask_popcnt_epi8(__m128i __A, __mmask16 __U, __m128i __B) { return (__m128i) __builtin_ia32_selectb_128((__mmask16) __U, (__v16qi) _mm_popcnt_epi8(__B), (__v16qi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_maskz_popcnt_epi8(__mmask16 __U, __m128i __B) { return _mm_mask_popcnt_epi8((__m128i) _mm_setzero_si128(), __U, __B); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_mask_bitshuffle_epi64_mask(__mmask32 __U, __m256i __A, __m256i __B) { return (__mmask32) __builtin_ia32_vpshufbitqmb256_mask((__v32qi) __A, (__v32qi) __B, __U); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(256))) _mm256_bitshuffle_epi64_mask(__m256i __A, __m256i __B) { return _mm256_mask_bitshuffle_epi64_mask((__mmask32) -1, __A, __B); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_mask_bitshuffle_epi64_mask(__mmask16 __U, __m128i __A, __m128i __B) { return (__mmask16) __builtin_ia32_vpshufbitqmb128_mask((__v16qi) __A, (__v16qi) __B, __U); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bitalg"), __min_vector_width__(128))) _mm_bitshuffle_epi64_mask(__m128i __A, __m128i __B) { return _mm_mask_bitshuffle_epi64_mask((__mmask16) -1, __A, __B); } # 132 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbwintrin.h" 1 3 # 303 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbwintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_add_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){ return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_add_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_add_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_add_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_add_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_add_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_add_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_add_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_sub_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_sub_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_sub_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_sub_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_sub_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sub_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_sub_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sub_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_add_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_add_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_add_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_add_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_add_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_add_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_add_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_add_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_sub_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_sub_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_sub_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_sub_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_sub_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sub_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_sub_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sub_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_mullo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mullo_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_mullo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mullo_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_mullo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mullo_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_mullo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mullo_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_blend_epi8 (__mmask16 __U, __m128i __A, __m128i __W) { return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, (__v16qi) __W, (__v16qi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_blend_epi8 (__mmask32 __U, __m256i __A, __m256i __W) { return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, (__v32qi) __W, (__v32qi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_blend_epi16 (__mmask8 __U, __m128i __A, __m128i __W) { return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, (__v8hi) __W, (__v8hi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_blend_epi16 (__mmask16 __U, __m256i __A, __m256i __W) { return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, (__v16hi) __W, (__v16hi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_abs_epi8(__A), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_abs_epi8(__A), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_abs_epi8(__A), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_abs_epi8 (__mmask32 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_abs_epi8(__A), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_abs_epi16(__A), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_abs_epi16(__A), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_abs_epi16(__A), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_abs_epi16(__A), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_packs_epi32(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_packs_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_packs_epi32(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_packs_epi32(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_packs_epi32(__A, __B), (__v16hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_packs_epi16(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_packs_epi16(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_packs_epi16(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_packs_epi16(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_packus_epi32(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_packus_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_packus_epi32(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_packus_epi32(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_packus_epi32(__A, __B), (__v16hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_packus_epi16(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_packus_epi16(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_packus_epi16(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_packus_epi16(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_adds_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_adds_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_adds_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_adds_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_adds_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_adds_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_adds_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_adds_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_adds_epu8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_adds_epu8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_adds_epu8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_adds_epu8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_adds_epu16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_adds_epu16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_adds_epu16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_adds_epu16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_avg_epu8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_avg_epu8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_avg_epu8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_avg_epu8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_avg_epu16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_avg_epu16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_avg_epu16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_avg_epu16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_max_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_max_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_max_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_max_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_max_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_max_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_max_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_max_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_max_epu8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_max_epu8(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_max_epu8 (__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_max_epu8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_max_epu8(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_max_epu16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_max_epu16(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_max_epu16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_max_epu16(__A, __B), (__v16hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_min_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_min_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_min_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_min_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_min_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_min_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_min_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_min_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_min_epu8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_min_epu8(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_min_epu8 (__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_min_epu8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_min_epu8(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_min_epu16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_min_epu16(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_min_epu16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_min_epu16(__A, __B), (__v16hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_shuffle_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_shuffle_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_shuffle_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_shuffle_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_subs_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_subs_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_subs_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_subs_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_subs_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_subs_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_subs_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_subs_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_subs_epu8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_subs_epu8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_subs_epu8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_subs_epu8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_subs_epu16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_subs_epu16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_subs_epu16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_subs_epu16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_vpermi2varhi128((__v8hi)__A, (__v8hi)__I, (__v8hi) __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_permutex2var_epi16(__A, __I, __B), (__v8hi)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_permutex2var_epi16(__A, __I, __B), (__v8hi)__I); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_permutex2var_epi16 (__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_permutex2var_epi16(__A, __I, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_vpermi2varhi256((__v16hi)__A, (__v16hi)__I, (__v16hi)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B), (__v16hi)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B), (__v16hi)__I); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_permutex2var_epi16 (__mmask16 __U, __m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_permutex2var_epi16(__A, __I, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_maddubs_epi16(__X, __Y), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_maddubs_epi16(__X, __Y), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_maddubs_epi16(__X, __Y), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_maddubs_epi16(__X, __Y), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_madd_epi16(__A, __B), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_madd_epi16(__A, __B), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_madd_epi16(__A, __B), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_madd_epi16(__A, __B), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_cvtsepi16_epi8 (__m128i __A) { return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, (__v16qi) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtsepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_cvtsepi16_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovswb128_mask ((__v8hi) __A, (__v16qi) _mm_setzero_si128(), __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_cvtsepi16_epi8 (__m256i __A) { return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, (__v16qi) _mm_setzero_si128(), (__mmask16) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtsepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_cvtsepi16_epi8 (__mmask16 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovswb256_mask ((__v16hi) __A, (__v16qi) _mm_setzero_si128(), __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_cvtusepi16_epi8 (__m128i __A) { return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, (__v16qi) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtusepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_cvtusepi16_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovuswb128_mask ((__v8hi) __A, (__v16qi) _mm_setzero_si128(), __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_cvtusepi16_epi8 (__m256i __A) { return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, (__v16qi) _mm_setzero_si128(), (__mmask16) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtusepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_cvtusepi16_epi8 (__mmask16 __M, __m256i __A) { return (__m128i) __builtin_ia32_pmovuswb256_mask ((__v16hi) __A, (__v16qi) _mm_setzero_si128(), __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_cvtepi16_epi8 (__m128i __A) { return (__m128i)__builtin_shufflevector( __builtin_convertvector((__v8hi)__A, __v8qi), (__v8qi){0, 0, 0, 0, 0, 0, 0, 0}, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtepi16_epi8 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, (__v16qi) __O, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_cvtepi16_epi8 (__mmask8 __M, __m128i __A) { return (__m128i) __builtin_ia32_pmovwb128_mask ((__v8hi) __A, (__v16qi) _mm_setzero_si128(), __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovwb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A) { __builtin_ia32_pmovuswb128mem_mask ((__v16qi *) __P, (__v8hi) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_cvtepi16_epi8 (__m256i __A) { return (__m128i)__builtin_convertvector((__v16hi) __A, __v16qi); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtepi16_epi8 (__m128i __O, __mmask16 __M, __m256i __A) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm256_cvtepi16_epi8(__A), (__v16qi)__O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_cvtepi16_epi8 (__mmask16 __M, __m256i __A) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm256_cvtepi16_epi8(__A), (__v16qi)_mm_setzero_si128()); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) { __builtin_ia32_pmovwb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) { __builtin_ia32_pmovswb256mem_mask ((__v16qi *) __P, (__v16hi) __A, __M); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask16 __M, __m256i __A) { __builtin_ia32_pmovuswb256mem_mask ((__v16qi*) __P, (__v16hi) __A, __M); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mulhrs_epi16(__X, __Y), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mulhrs_epi16(__X, __Y), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mulhrs_epi16(__X, __Y), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mulhrs_epi16(__X, __Y), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mulhi_epu16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mulhi_epu16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mulhi_epu16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mulhi_epu16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mulhi_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_mulhi_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mulhi_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_mulhi_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_unpackhi_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_unpackhi_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_unpackhi_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_unpackhi_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_unpackhi_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_unpackhi_epi16(__A, __B), (__v8hi) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_unpackhi_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_unpackhi_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_unpacklo_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__U, (__v16qi)_mm_unpacklo_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_unpacklo_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__U, (__v32qi)_mm256_unpacklo_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_unpacklo_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_unpacklo_epi16(__A, __B), (__v8hi) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_unpacklo_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_unpacklo_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtepi8_epi16(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_cvtepi8_epi16(__A), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_cvtepi8_epi16(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_cvtepi8_epi16(__A), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtepi8_epi16(__m256i __W, __mmask16 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_cvtepi8_epi16(__A), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_cvtepi8_epi16(__mmask16 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_cvtepi8_epi16(__A), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_cvtepu8_epi16(__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_cvtepu8_epi16(__A), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_cvtepu8_epi16(__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_cvtepu8_epi16(__A), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_cvtepu8_epi16(__m256i __W, __mmask16 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_cvtepu8_epi16(__A), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_cvtepu8_epi16 (__mmask16 __U, __m128i __A) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_cvtepu8_epi16(__A), (__v16hi)_mm256_setzero_si256()); } # 1865 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbwintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_sllv_epi16(__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_psllv16hi((__v16hi)__A, (__v16hi)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_sllv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sllv_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_sllv_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sllv_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_sllv_epi16(__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_psllv8hi((__v8hi)__A, (__v8hi)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_sllv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sllv_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_sllv_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sllv_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_sll_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sll_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_sll_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sll_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_sll_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sll_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_sll_epi16(__mmask16 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sll_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_slli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_slli_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_slli_epi16 (__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_slli_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_slli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_slli_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_slli_epi16(__mmask16 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_slli_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_srlv_epi16(__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_psrlv16hi((__v16hi)__A, (__v16hi)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_srlv_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srlv_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_srlv_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srlv_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_srlv_epi16(__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_psrlv8hi((__v8hi)__A, (__v8hi)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_srlv_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srlv_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_srlv_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srlv_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_srav_epi16(__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_psrav16hi((__v16hi)__A, (__v16hi)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_srav_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srav_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_srav_epi16(__mmask16 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srav_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_srav_epi16(__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_psrav8hi((__v8hi)__A, (__v8hi)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_srav_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srav_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_srav_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srav_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_sra_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sra_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_sra_epi16(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_sra_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_sra_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sra_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_sra_epi16(__mmask16 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_sra_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_srai_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srai_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_srai_epi16(__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srai_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_srai_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srai_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_srai_epi16(__mmask16 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srai_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_srl_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srl_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_srl_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srl_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_srl_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srl_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_srl_epi16(__mmask16 __U, __m256i __A, __m128i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srl_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_srli_epi16(__m128i __W, __mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srli_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_srli_epi16 (__mmask8 __U, __m128i __A, int __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_srli_epi16(__A, __B), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_srli_epi16(__m256i __W, __mmask16 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srli_epi16(__A, __B), (__v16hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_srli_epi16(__mmask16 __U, __m256i __A, int __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_srli_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, (__v8hi) __A, (__v8hi) __W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_mov_epi16 (__mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectw_128 ((__mmask8) __U, (__v8hi) __A, (__v8hi) _mm_setzero_si128 ()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_mov_epi16 (__m256i __W, __mmask16 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, (__v16hi) __A, (__v16hi) __W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_mov_epi16 (__mmask16 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectw_256 ((__mmask16) __U, (__v16hi) __A, (__v16hi) _mm256_setzero_si256 ()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_mov_epi8 (__m128i __W, __mmask16 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, (__v16qi) __A, (__v16qi) __W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_mov_epi8 (__mmask16 __U, __m128i __A) { return (__m128i) __builtin_ia32_selectb_128 ((__mmask16) __U, (__v16qi) __A, (__v16qi) _mm_setzero_si128 ()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_mov_epi8 (__m256i __W, __mmask32 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, (__v32qi) __A, (__v32qi) __W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_mov_epi8 (__mmask32 __U, __m256i __A) { return (__m256i) __builtin_ia32_selectb_256 ((__mmask32) __U, (__v32qi) __A, (__v32qi) _mm256_setzero_si256 ()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_set1_epi8 (__m128i __O, __mmask16 __M, char __A) { return (__m128i) __builtin_ia32_selectb_128(__M, (__v16qi) _mm_set1_epi8(__A), (__v16qi) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_set1_epi8 (__mmask16 __M, char __A) { return (__m128i) __builtin_ia32_selectb_128(__M, (__v16qi) _mm_set1_epi8(__A), (__v16qi) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_set1_epi8 (__m256i __O, __mmask32 __M, char __A) { return (__m256i) __builtin_ia32_selectb_256(__M, (__v32qi) _mm256_set1_epi8(__A), (__v32qi) __O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_set1_epi8 (__mmask32 __M, char __A) { return (__m256i) __builtin_ia32_selectb_256(__M, (__v32qi) _mm256_set1_epi8(__A), (__v32qi) _mm256_setzero_si256()); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_loadu_epi16 (void const *__P) { struct __loadu_epi16 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi16*)__P)->__v; } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, (__v8hi) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, (__v8hi) _mm_setzero_si128 (), (__mmask8) __U); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_loadu_epi16 (void const *__P) { struct __loadu_epi16 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi16*)__P)->__v; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, (__v16hi) __W, (__mmask16) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, (__v16hi) _mm256_setzero_si256 (), (__mmask16) __U); } static __inline __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_loadu_epi8 (void const *__P) { struct __loadu_epi8 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi8*)__P)->__v; } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, (__v16qi) __W, (__mmask16) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P) { return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, (__v16qi) _mm_setzero_si128 (), (__mmask16) __U); } static __inline __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_loadu_epi8 (void const *__P) { struct __loadu_epi8 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); return ((struct __loadu_epi8*)__P)->__v; } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, (__v32qi) __W, (__mmask32) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P) { return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, (__v32qi) _mm256_setzero_si256 (), (__mmask32) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_storeu_epi16 (void *__P, __m128i __A) { struct __storeu_epi16 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi16*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A) { __builtin_ia32_storedquhi128_mask ((__v8hi *) __P, (__v8hi) __A, (__mmask8) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_storeu_epi16 (void *__P, __m256i __A) { struct __storeu_epi16 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi16*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A) { __builtin_ia32_storedquhi256_mask ((__v16hi *) __P, (__v16hi) __A, (__mmask16) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_storeu_epi8 (void *__P, __m128i __A) { struct __storeu_epi8 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi8*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A) { __builtin_ia32_storedquqi128_mask ((__v16qi *) __P, (__v16qi) __A, (__mmask16) __U); } static __inline void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_storeu_epi8 (void *__P, __m256i __A) { struct __storeu_epi8 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_epi8*)__P)->__v = __A; } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A) { __builtin_ia32_storedquqi256_mask ((__v32qi *) __P, (__v32qi) __A, (__mmask32) __U); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_test_epi8_mask (__m128i __A, __m128i __B) { return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)((_mm_and_si128(__A, __B))), (__v16qi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask16)-1); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) { return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)((_mm_and_si128 (__A, __B))), (__v16qi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask16)((__U))); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_test_epi8_mask (__m256i __A, __m256i __B) { return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)((_mm256_and_si256(__A, __B))), (__v32qi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask32)-1); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) { return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)((_mm256_and_si256(__A, __B))), (__v32qi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask32)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_test_epi16_mask (__m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)((_mm_and_si128 (__A, __B))), (__v8hi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)((_mm_and_si128 (__A, __B))), (__v8hi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_NE), (__mmask8)((__U))); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_test_epi16_mask (__m256i __A, __m256i __B) { return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)((_mm256_and_si256 (__A, __B))), (__v16hi)(__m256i)((_mm256_setzero_si256 ())), (int)(_MM_CMPINT_NE), (__mmask16)-1); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) { return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)((_mm256_and_si256(__A, __B))), (__v16hi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_NE), (__mmask16)((__U))); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_testn_epi8_mask (__m128i __A, __m128i __B) { return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)((_mm_and_si128 (__A, __B))), (__v16qi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask16)-1); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B) { return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)((_mm_and_si128 (__A, __B))), (__v16qi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask16)((__U))); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_testn_epi8_mask (__m256i __A, __m256i __B) { return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)((_mm256_and_si256 (__A, __B))), (__v32qi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask32)-1); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B) { return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)((_mm256_and_si256 (__A, __B))), (__v32qi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask32)((__U))); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_testn_epi16_mask (__m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)((_mm_and_si128 (__A, __B))), (__v8hi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask8)-1); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B) { return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)((_mm_and_si128(__A, __B))), (__v8hi)(__m128i)((_mm_setzero_si128())), (int)(_MM_CMPINT_EQ), (__mmask8)((__U))); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_testn_epi16_mask (__m256i __A, __m256i __B) { return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)((_mm256_and_si256(__A, __B))), (__v16hi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask16)-1); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B) { return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)((_mm256_and_si256 (__A, __B))), (__v16hi)(__m256i)((_mm256_setzero_si256())), (int)(_MM_CMPINT_EQ), (__mmask16)((__U))); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_movepi8_mask (__m128i __A) { return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A); } static __inline__ __mmask32 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_movepi8_mask (__m256i __A) { return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_movepi16_mask (__m128i __A) { return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A); } static __inline__ __mmask16 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_movepi16_mask (__m256i __A) { return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_movm_epi8 (__mmask16 __A) { return (__m128i) __builtin_ia32_cvtmask2b128 (__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_movm_epi8 (__mmask32 __A) { return (__m256i) __builtin_ia32_cvtmask2b256 (__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_movm_epi16 (__mmask8 __A) { return (__m128i) __builtin_ia32_cvtmask2w128 (__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_movm_epi16 (__mmask16 __A) { return (__m256i) __builtin_ia32_cvtmask2w256 (__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectb_128(__M, (__v16qi) _mm_broadcastb_epi8(__A), (__v16qi) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectb_128(__M, (__v16qi) _mm_broadcastb_epi8(__A), (__v16qi) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectb_256(__M, (__v32qi) _mm256_broadcastb_epi8(__A), (__v32qi) __O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectb_256(__M, (__v32qi) _mm256_broadcastb_epi8(__A), (__v32qi) _mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128(__M, (__v8hi) _mm_broadcastw_epi16(__A), (__v8hi) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectw_128(__M, (__v8hi) _mm_broadcastw_epi16(__A), (__v8hi) _mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectw_256(__M, (__v16hi) _mm256_broadcastw_epi16(__A), (__v16hi) __O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectw_256(__M, (__v16hi) _mm256_broadcastw_epi16(__A), (__v16hi) _mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A) { return (__m256i) __builtin_ia32_selectw_256 (__M, (__v16hi) _mm256_set1_epi16(__A), (__v16hi) __O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_set1_epi16 (__mmask16 __M, short __A) { return (__m256i) __builtin_ia32_selectw_256(__M, (__v16hi)_mm256_set1_epi16(__A), (__v16hi) _mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A) { return (__m128i) __builtin_ia32_selectw_128(__M, (__v8hi) _mm_set1_epi16(__A), (__v8hi) __O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_set1_epi16 (__mmask8 __M, short __A) { return (__m128i) __builtin_ia32_selectw_128(__M, (__v8hi) _mm_set1_epi16(__A), (__v8hi) _mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_permutexvar_epi16 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_permvarhi128((__v8hi) __B, (__v8hi) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_permutexvar_epi16(__A, __B), (__v8hi) _mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(128))) _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectw_128((__mmask8)__M, (__v8hi)_mm_permutexvar_epi16(__A, __B), (__v8hi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_permutexvar_epi16 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_permvarhi256((__v16hi) __B, (__v16hi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_permutexvar_epi16(__A, __B), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512bw"), __min_vector_width__(256))) _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectw_256((__mmask16)__M, (__v16hi)_mm256_permutexvar_epi16(__A, __B), (__v16hi)__W); } # 137 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlcdintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlcdintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_broadcastmb_epi64 (__mmask8 __A) { return (__m128i) _mm_set1_epi64x((long long) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_broadcastmb_epi64 (__mmask8 __A) { return (__m256i) _mm256_set1_epi64x((long long)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_broadcastmw_epi32 (__mmask16 __A) { return (__m128i) _mm_set1_epi32((int)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_broadcastmw_epi32 (__mmask16 __A) { return (__m256i) _mm256_set1_epi32((int)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_conflict_epi64 (__m128i __A) { return (__m128i) __builtin_ia32_vpconflictdi_128 ((__v2di) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_conflict_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_conflict_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_conflict_epi64 (__m256i __A) { return (__m256i) __builtin_ia32_vpconflictdi_256 ((__v4di) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_conflict_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_conflict_epi64(__A), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_conflict_epi32 (__m128i __A) { return (__m128i) __builtin_ia32_vpconflictsi_128 ((__v4si) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_conflict_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_conflict_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_conflict_epi32 (__m256i __A) { return (__m256i) __builtin_ia32_vpconflictsi_256 ((__v8si) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_conflict_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_conflict_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_lzcnt_epi32 (__m128i __A) { return (__m128i) __builtin_ia32_vplzcntd_128 ((__v4si) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_lzcnt_epi32(__A), (__v4si)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U, (__v4si)_mm_lzcnt_epi32(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_lzcnt_epi32 (__m256i __A) { return (__m256i) __builtin_ia32_vplzcntd_256 ((__v8si) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_lzcnt_epi32(__A), (__v8si)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U, (__v8si)_mm256_lzcnt_epi32(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_lzcnt_epi64 (__m128i __A) { return (__m128i) __builtin_ia32_vplzcntq_128 ((__v2di) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_lzcnt_epi64(__A), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(128))) _mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_lzcnt_epi64(__A), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_lzcnt_epi64 (__m256i __A) { return (__m256i) __builtin_ia32_vplzcntq_256 ((__v4di) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_lzcnt_epi64(__A), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd"), __min_vector_width__(256))) _mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_lzcnt_epi64(__A), (__v4di)_mm256_setzero_si256()); } # 142 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vldqintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vldqintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mullo_epi64 (__m256i __A, __m256i __B) { return (__m256i) ((__v4du) __A * (__v4du) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_mullo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_mullo_epi64(__A, __B), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_mullo_epi64(__mmask8 __U, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U, (__v4di)_mm256_mullo_epi64(__A, __B), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mullo_epi64 (__m128i __A, __m128i __B) { return (__m128i) ((__v2du) __A * (__v2du) __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_mullo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_mullo_epi64(__A, __B), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_mullo_epi64(__mmask8 __U, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U, (__v2di)_mm_mullo_epi64(__A, __B), (__v2di)_mm_setzero_si128()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_andnot_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_andnot_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_andnot_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_andnot_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_andnot_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_andnot_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_andnot_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_andnot_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_andnot_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_andnot_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_andnot_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_andnot_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_andnot_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_andnot_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_andnot_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_andnot_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_and_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_and_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_and_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_and_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_and_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_and_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_and_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_and_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_and_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_and_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_and_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_and_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_and_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_and_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_and_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_and_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_xor_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_xor_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_xor_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_xor_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_xor_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_xor_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_xor_pd (__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_xor_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_xor_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_xor_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_xor_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_xor_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_xor_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_xor_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_xor_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_xor_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_or_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_or_pd(__A, __B), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_or_pd(__mmask8 __U, __m256d __A, __m256d __B) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_or_pd(__A, __B), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_or_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_or_pd(__A, __B), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_or_pd(__mmask8 __U, __m128d __A, __m128d __B) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_or_pd(__A, __B), (__v2df)_mm_setzero_pd()); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_or_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_or_ps(__A, __B), (__v8sf)__W); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_or_ps(__mmask8 __U, __m256 __A, __m256 __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_or_ps(__A, __B), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_or_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_or_ps(__A, __B), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_or_ps(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_or_ps(__A, __B), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtpd_epi64 (__m128d __A) { return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtpd_epi64 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtpd_epi64 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2qq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtpd_epi64 (__m256d __A) { return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtpd_epi64 (__m256i __W, __mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtpd_epi64 (__mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvtpd2qq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtpd_epu64 (__m128d __A) { return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtpd_epu64 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtpd_epu64 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvtpd2uqq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtpd_epu64 (__m256d __A) { return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtpd_epu64 (__m256i __W, __mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtpd_epu64 (__mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvtpd2uqq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtps_epi64 (__m128 __A) { return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtps_epi64 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtps_epi64 (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvtps2qq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtps_epi64 (__m128 __A) { return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtps_epi64 (__m256i __W, __mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtps_epi64 (__mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvtps2qq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtps_epu64 (__m128 __A) { return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtps_epu64 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtps_epu64 (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvtps2uqq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtps_epu64 (__m128 __A) { return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtps_epu64 (__m256i __W, __mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtps_epu64 (__mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvtps2uqq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtepi64_pd (__m128i __A) { return (__m128d)__builtin_convertvector((__v2di)__A, __v2df); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtepi64_pd (__m128d __W, __mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_cvtepi64_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtepi64_pd (__mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_cvtepi64_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtepi64_pd (__m256i __A) { return (__m256d)__builtin_convertvector((__v4di)__A, __v4df); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtepi64_pd (__m256d __W, __mmask8 __U, __m256i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_cvtepi64_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtepi64_pd (__mmask8 __U, __m256i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_cvtepi64_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtepi64_ps (__m128i __A) { return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, (__v4sf) _mm_setzero_ps(), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtepi64_ps (__m128 __W, __mmask8 __U, __m128i __A) { return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtepi64_ps (__mmask8 __U, __m128i __A) { return (__m128) __builtin_ia32_cvtqq2ps128_mask ((__v2di) __A, (__v4sf) _mm_setzero_ps(), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtepi64_ps (__m256i __A) { return (__m128)__builtin_convertvector((__v4di)__A, __v4sf); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtepi64_ps (__m128 __W, __mmask8 __U, __m256i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm256_cvtepi64_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtepi64_ps (__mmask8 __U, __m256i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm256_cvtepi64_ps(__A), (__v4sf)_mm_setzero_ps()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvttpd_epi64 (__m128d __A) { return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvttpd_epi64 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvttpd_epi64 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2qq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvttpd_epi64 (__m256d __A) { return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvttpd_epi64 (__m256i __W, __mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvttpd_epi64 (__mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvttpd2qq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvttpd_epu64 (__m128d __A) { return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvttpd_epu64 (__m128i __W, __mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvttpd_epu64 (__mmask8 __U, __m128d __A) { return (__m128i) __builtin_ia32_cvttpd2uqq128_mask ((__v2df) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvttpd_epu64 (__m256d __A) { return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvttpd_epu64 (__m256i __W, __mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvttpd_epu64 (__mmask8 __U, __m256d __A) { return (__m256i) __builtin_ia32_cvttpd2uqq256_mask ((__v4df) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvttps_epi64 (__m128 __A) { return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvttps_epi64 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvttps_epi64 (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvttps2qq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvttps_epi64 (__m128 __A) { return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvttps_epi64 (__m256i __W, __mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvttps_epi64 (__mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvttps2qq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvttps_epu64 (__m128 __A) { return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) -1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvttps_epu64 (__m128i __W, __mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, (__v2di) __W, (__mmask8) __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvttps_epu64 (__mmask8 __U, __m128 __A) { return (__m128i) __builtin_ia32_cvttps2uqq128_mask ((__v4sf) __A, (__v2di) _mm_setzero_si128(), (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvttps_epu64 (__m128 __A) { return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) -1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvttps_epu64 (__m256i __W, __mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, (__v4di) __W, (__mmask8) __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvttps_epu64 (__mmask8 __U, __m128 __A) { return (__m256i) __builtin_ia32_cvttps2uqq256_mask ((__v4sf) __A, (__v4di) _mm256_setzero_si256(), (__mmask8) __U); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtepu64_pd (__m128i __A) { return (__m128d)__builtin_convertvector((__v2du)__A, __v2df); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtepu64_pd (__m128d __W, __mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_cvtepu64_pd(__A), (__v2df)__W); } static __inline__ __m128d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtepu64_pd (__mmask8 __U, __m128i __A) { return (__m128d)__builtin_ia32_selectpd_128((__mmask8)__U, (__v2df)_mm_cvtepu64_pd(__A), (__v2df)_mm_setzero_pd()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtepu64_pd (__m256i __A) { return (__m256d)__builtin_convertvector((__v4du)__A, __v4df); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtepu64_pd (__m256d __W, __mmask8 __U, __m256i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_cvtepu64_pd(__A), (__v4df)__W); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtepu64_pd (__mmask8 __U, __m256i __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__U, (__v4df)_mm256_cvtepu64_pd(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_cvtepu64_ps (__m128i __A) { return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, (__v4sf) _mm_setzero_ps(), (__mmask8) -1); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_cvtepu64_ps (__m128 __W, __mmask8 __U, __m128i __A) { return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_cvtepu64_ps (__mmask8 __U, __m128i __A) { return (__m128) __builtin_ia32_cvtuqq2ps128_mask ((__v2di) __A, (__v4sf) _mm_setzero_ps(), (__mmask8) __U); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_cvtepu64_ps (__m256i __A) { return (__m128)__builtin_convertvector((__v4du)__A, __v4sf); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_cvtepu64_ps (__m128 __W, __mmask8 __U, __m256i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm256_cvtepu64_ps(__A), (__v4sf)__W); } static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_cvtepu64_ps (__mmask8 __U, __m256i __A) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm256_cvtepu64_ps(__A), (__v4sf)_mm_setzero_ps()); } # 905 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vldqintrin.h" 3 static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_movepi32_mask (__m128i __A) { return (__mmask8) __builtin_ia32_cvtd2mask128 ((__v4si) __A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_movepi32_mask (__m256i __A) { return (__mmask8) __builtin_ia32_cvtd2mask256 ((__v8si) __A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_movm_epi32 (__mmask8 __A) { return (__m128i) __builtin_ia32_cvtmask2d128 (__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_movm_epi32 (__mmask8 __A) { return (__m256i) __builtin_ia32_cvtmask2d256 (__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_movm_epi64 (__mmask8 __A) { return (__m128i) __builtin_ia32_cvtmask2q128 (__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_movm_epi64 (__mmask8 __A) { return (__m256i) __builtin_ia32_cvtmask2q256 (__A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_movepi64_mask (__m128i __A) { return (__mmask8) __builtin_ia32_cvtq2mask128 ((__v2di) __A); } static __inline__ __mmask8 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_movepi64_mask (__m256i __A) { return (__mmask8) __builtin_ia32_cvtq2mask256 ((__v4di) __A); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_broadcast_f32x2 (__m128 __A) { return (__m256)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A, 0, 1, 0, 1, 0, 1, 0, 1); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_broadcast_f32x2 (__m256 __O, __mmask8 __M, __m128 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, (__v8sf)_mm256_broadcast_f32x2(__A), (__v8sf)__O); } static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_broadcast_f32x2 (__mmask8 __M, __m128 __A) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__M, (__v8sf)_mm256_broadcast_f32x2(__A), (__v8sf)_mm256_setzero_ps()); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_broadcast_f64x2(__m128d __A) { return (__m256d)__builtin_shufflevector((__v2df)__A, (__v2df)__A, 0, 1, 0, 1); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_broadcast_f64x2(__m256d __O, __mmask8 __M, __m128d __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__M, (__v4df)_mm256_broadcast_f64x2(__A), (__v4df)__O); } static __inline__ __m256d __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A) { return (__m256d)__builtin_ia32_selectpd_256((__mmask8)__M, (__v4df)_mm256_broadcast_f64x2(__A), (__v4df)_mm256_setzero_pd()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_broadcast_i32x2 (__m128i __A) { return (__m128i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, 0, 1, 0, 1); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_mask_broadcast_i32x2 (__m128i __O, __mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_broadcast_i32x2(__A), (__v4si)__O); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(128))) _mm_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) { return (__m128i)__builtin_ia32_selectd_128((__mmask8)__M, (__v4si)_mm_broadcast_i32x2(__A), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_broadcast_i32x2 (__m128i __A) { return (__m256i)__builtin_shufflevector((__v4si)__A, (__v4si)__A, 0, 1, 0, 1, 0, 1, 0, 1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_broadcast_i32x2 (__m256i __O, __mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_broadcast_i32x2(__A), (__v8si)__O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectd_256((__mmask8)__M, (__v8si)_mm256_broadcast_i32x2(__A), (__v8si)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_broadcast_i64x2(__m128i __A) { return (__m256i)__builtin_shufflevector((__v2di)__A, (__v2di)__A, 0, 1, 0, 1); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_mask_broadcast_i64x2(__m256i __O, __mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_broadcast_i64x2(__A), (__v4di)__O); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512dq"), __min_vector_width__(256))) _mm256_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A) { return (__m256i)__builtin_ia32_selectq_256((__mmask8)__M, (__v4di)_mm256_broadcast_i64x2(__A), (__v4di)_mm256_setzero_si256()); } # 147 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512erintrin.h" 1 3 # 151 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512ifmaintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512ifmaintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) _mm512_madd52hi_epu64 (__m512i __X, __m512i __Y, __m512i __Z) { return (__m512i)__builtin_ia32_vpmadd52huq512((__v8di) __X, (__v8di) __Y, (__v8di) __Z); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) _mm512_mask_madd52hi_epu64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di)_mm512_madd52hi_epu64(__W, __X, __Y), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) _mm512_maskz_madd52hi_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di)_mm512_madd52hi_epu64(__X, __Y, __Z), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) _mm512_madd52lo_epu64 (__m512i __X, __m512i __Y, __m512i __Z) { return (__m512i)__builtin_ia32_vpmadd52luq512((__v8di) __X, (__v8di) __Y, (__v8di) __Z); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) _mm512_mask_madd52lo_epu64 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di)_mm512_madd52lo_epu64(__W, __X, __Y), (__v8di)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma"), __min_vector_width__(512))) _mm512_maskz_madd52lo_epu64 (__mmask8 __M, __m512i __X, __m512i __Y, __m512i __Z) { return (__m512i)__builtin_ia32_selectq_512(__M, (__v8di)_mm512_madd52lo_epu64(__X, __Y, __Z), (__v8di)_mm512_setzero_si512()); } # 155 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512ifmavlintrin.h" 1 3 # 23 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512ifmavlintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) _mm_madd52hi_epu64 (__m128i __X, __m128i __Y, __m128i __Z) { return (__m128i)__builtin_ia32_vpmadd52huq128((__v2di) __X, (__v2di) __Y, (__v2di) __Z); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) _mm_mask_madd52hi_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128(__M, (__v2di)_mm_madd52hi_epu64(__W, __X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) _mm_maskz_madd52hi_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { return (__m128i)__builtin_ia32_selectq_128(__M, (__v2di)_mm_madd52hi_epu64(__X, __Y, __Z), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) _mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z) { return (__m256i)__builtin_ia32_vpmadd52huq256((__v4di)__X, (__v4di)__Y, (__v4di)__Z); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) _mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256(__M, (__v4di)_mm256_madd52hi_epu64(__W, __X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) _mm256_maskz_madd52hi_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { return (__m256i)__builtin_ia32_selectq_256(__M, (__v4di)_mm256_madd52hi_epu64(__X, __Y, __Z), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) _mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z) { return (__m128i)__builtin_ia32_vpmadd52luq128((__v2di)__X, (__v2di)__Y, (__v2di)__Z); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) _mm_mask_madd52lo_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectq_128(__M, (__v2di)_mm_madd52lo_epu64(__W, __X, __Y), (__v2di)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128))) _mm_maskz_madd52lo_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { return (__m128i)__builtin_ia32_selectq_128(__M, (__v2di)_mm_madd52lo_epu64(__X, __Y, __Z), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) _mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z) { return (__m256i)__builtin_ia32_vpmadd52luq256((__v4di)__X, (__v4di)__Y, (__v4di)__Z); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) _mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectq_256(__M, (__v4di)_mm256_madd52lo_epu64(__W, __X, __Y), (__v4di)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256))) _mm256_maskz_madd52lo_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { return (__m256i)__builtin_ia32_selectq_256(__M, (__v4di)_mm256_madd52lo_epu64(__X, __Y, __Z), (__v4di)_mm256_setzero_si256()); } # 160 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmiintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmiintrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_permutex2var_epi8(__m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_vpermi2varqi512((__v64qi)__A, (__v64qi)__I, (__v64qi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_mask_permutex2var_epi8(__m512i __A, __mmask64 __U, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512(__U, (__v64qi)_mm512_permutex2var_epi8(__A, __I, __B), (__v64qi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_mask2_permutex2var_epi8(__m512i __A, __m512i __I, __mmask64 __U, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512(__U, (__v64qi)_mm512_permutex2var_epi8(__A, __I, __B), (__v64qi)__I); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_maskz_permutex2var_epi8(__mmask64 __U, __m512i __A, __m512i __I, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512(__U, (__v64qi)_mm512_permutex2var_epi8(__A, __I, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_permutexvar_epi8 (__m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_permvarqi512((__v64qi) __B, (__v64qi) __A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_maskz_permutexvar_epi8 (__mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_permutexvar_epi8(__A, __B), (__v64qi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_mask_permutexvar_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_permutexvar_epi8(__A, __B), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_multishift_epi64_epi8(__m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_vpmultishiftqb512((__v64qi)__X, (__v64qi) __Y); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_mask_multishift_epi64_epi8(__m512i __W, __mmask64 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_multishift_epi64_epi8(__X, __Y), (__v64qi)__W); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi"), __min_vector_width__(512))) _mm512_maskz_multishift_epi64_epi8(__mmask64 __M, __m512i __X, __m512i __Y) { return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M, (__v64qi)_mm512_multishift_epi64_epi8(__X, __Y), (__v64qi)_mm512_setzero_si512()); } # 164 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmivlintrin.h" 1 3 # 22 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmivlintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_permutex2var_epi8(__m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_vpermi2varqi128((__v16qi)__A, (__v16qi)__I, (__v16qi)__B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_mask_permutex2var_epi8(__m128i __A, __mmask16 __U, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128(__U, (__v16qi)_mm_permutex2var_epi8(__A, __I, __B), (__v16qi)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_mask2_permutex2var_epi8(__m128i __A, __m128i __I, __mmask16 __U, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128(__U, (__v16qi)_mm_permutex2var_epi8(__A, __I, __B), (__v16qi)__I); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_maskz_permutex2var_epi8(__mmask16 __U, __m128i __A, __m128i __I, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128(__U, (__v16qi)_mm_permutex2var_epi8(__A, __I, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_permutex2var_epi8(__m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_vpermi2varqi256((__v32qi)__A, (__v32qi)__I, (__v32qi)__B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_mask_permutex2var_epi8(__m256i __A, __mmask32 __U, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256(__U, (__v32qi)_mm256_permutex2var_epi8(__A, __I, __B), (__v32qi)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_mask2_permutex2var_epi8(__m256i __A, __m256i __I, __mmask32 __U, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256(__U, (__v32qi)_mm256_permutex2var_epi8(__A, __I, __B), (__v32qi)__I); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutex2var_epi8(__mmask32 __U, __m256i __A, __m256i __I, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256(__U, (__v32qi)_mm256_permutex2var_epi8(__A, __I, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_permutexvar_epi8 (__m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_permvarqi128((__v16qi)__B, (__v16qi)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_maskz_permutexvar_epi8 (__mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_permutexvar_epi8(__A, __B), (__v16qi)_mm_setzero_si128()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_mask_permutexvar_epi8 (__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_permutexvar_epi8(__A, __B), (__v16qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_permutexvar_epi8 (__m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_permvarqi256((__v32qi) __B, (__v32qi) __A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_maskz_permutexvar_epi8 (__mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_permutexvar_epi8(__A, __B), (__v32qi)_mm256_setzero_si256()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_mask_permutexvar_epi8 (__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_permutexvar_epi8(__A, __B), (__v32qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_multishift_epi64_epi8(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_vpmultishiftqb128((__v16qi)__X, (__v16qi)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_mask_multishift_epi64_epi8(__m128i __W, __mmask16 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_multishift_epi64_epi8(__X, __Y), (__v16qi)__W); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(128))) _mm_maskz_multishift_epi64_epi8(__mmask16 __M, __m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M, (__v16qi)_mm_multishift_epi64_epi8(__X, __Y), (__v16qi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_multishift_epi64_epi8(__m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_vpmultishiftqb256((__v32qi)__X, (__v32qi)__Y); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_mask_multishift_epi64_epi8(__m256i __W, __mmask32 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_multishift_epi64_epi8(__X, __Y), (__v32qi)__W); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi,avx512vl"), __min_vector_width__(256))) _mm256_maskz_multishift_epi64_epi8(__mmask32 __M, __m256i __X, __m256i __Y) { return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M, (__v32qi)_mm256_multishift_epi64_epi8(__X, __Y), (__v32qi)_mm256_setzero_si256()); } # 169 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmi2intrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmi2intrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_compress_epi16(__m512i __S, __mmask32 __U, __m512i __D) { return (__m512i) __builtin_ia32_compresshi512_mask ((__v32hi) __D, (__v32hi) __S, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_compress_epi16(__mmask32 __U, __m512i __D) { return (__m512i) __builtin_ia32_compresshi512_mask ((__v32hi) __D, (__v32hi) _mm512_setzero_si512(), __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_compress_epi8(__m512i __S, __mmask64 __U, __m512i __D) { return (__m512i) __builtin_ia32_compressqi512_mask ((__v64qi) __D, (__v64qi) __S, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_compress_epi8(__mmask64 __U, __m512i __D) { return (__m512i) __builtin_ia32_compressqi512_mask ((__v64qi) __D, (__v64qi) _mm512_setzero_si512(), __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_compressstoreu_epi16(void *__P, __mmask32 __U, __m512i __D) { __builtin_ia32_compressstorehi512_mask ((__v32hi *) __P, (__v32hi) __D, __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_compressstoreu_epi8(void *__P, __mmask64 __U, __m512i __D) { __builtin_ia32_compressstoreqi512_mask ((__v64qi *) __P, (__v64qi) __D, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_expand_epi16(__m512i __S, __mmask32 __U, __m512i __D) { return (__m512i) __builtin_ia32_expandhi512_mask ((__v32hi) __D, (__v32hi) __S, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_expand_epi16(__mmask32 __U, __m512i __D) { return (__m512i) __builtin_ia32_expandhi512_mask ((__v32hi) __D, (__v32hi) _mm512_setzero_si512(), __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_expand_epi8(__m512i __S, __mmask64 __U, __m512i __D) { return (__m512i) __builtin_ia32_expandqi512_mask ((__v64qi) __D, (__v64qi) __S, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_expand_epi8(__mmask64 __U, __m512i __D) { return (__m512i) __builtin_ia32_expandqi512_mask ((__v64qi) __D, (__v64qi) _mm512_setzero_si512(), __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_expandloadu_epi16(__m512i __S, __mmask32 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloadhi512_mask ((const __v32hi *)__P, (__v32hi) __S, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_expandloadu_epi16(__mmask32 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloadhi512_mask ((const __v32hi *)__P, (__v32hi) _mm512_setzero_si512(), __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_expandloadu_epi8(__m512i __S, __mmask64 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloadqi512_mask ((const __v64qi *)__P, (__v64qi) __S, __U); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P) { return (__m512i) __builtin_ia32_expandloadqi512_mask ((const __v64qi *)__P, (__v64qi) _mm512_setzero_si512(), __U); } # 215 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vbmi2intrin.h" 3 static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_vpshldvq512((__v8di)__A, (__v8di)__B, (__v8di)__C); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_shldv_epi64(__A, __B, __C), (__v8di)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_shldv_epi64(__A, __B, __C), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_vpshldvd512((__v16si)__A, (__v16si)__B, (__v16si)__C); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_shldv_epi32(__A, __B, __C), (__v16si)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectd_512(__U, (__v16si)_mm512_shldv_epi32(__A, __B, __C), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_vpshldvw512((__v32hi)__A, (__v32hi)__B, (__v32hi)__C); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_shldv_epi16(__A, __B, __C), (__v32hi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_shldv_epi16(__A, __B, __C), (__v32hi)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_vpshrdvq512((__v8di)__A, (__v8di)__B, (__v8di)__C); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_shrdv_epi64(__A, __B, __C), (__v8di)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectq_512(__U, (__v8di)_mm512_shrdv_epi64(__A, __B, __C), (__v8di)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_vpshrdvd512((__v16si)__A, (__v16si)__B, (__v16si)__C); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C) { return (__m512i) __builtin_ia32_selectd_512(__U, (__v16si)_mm512_shrdv_epi32(__A, __B, __C), (__v16si)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C) { return (__m512i) __builtin_ia32_selectd_512(__U, (__v16si)_mm512_shrdv_epi32(__A, __B, __C), (__v16si)_mm512_setzero_si512()); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_vpshrdvw512((__v32hi)__A, (__v32hi)__B, (__v32hi)__C); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_shrdv_epi16(__A, __B, __C), (__v32hi)__A); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512vbmi2"), __min_vector_width__(512))) _mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C) { return (__m512i)__builtin_ia32_selectw_512(__U, (__v32hi)_mm512_shrdv_epi16(__A, __B, __C), (__v32hi)_mm512_setzero_si512()); } # 173 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvbmi2intrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvbmi2intrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_compress_epi16(__m128i __S, __mmask8 __U, __m128i __D) { return (__m128i) __builtin_ia32_compresshi128_mask ((__v8hi) __D, (__v8hi) __S, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_compress_epi16(__mmask8 __U, __m128i __D) { return (__m128i) __builtin_ia32_compresshi128_mask ((__v8hi) __D, (__v8hi) _mm_setzero_si128(), __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_compress_epi8(__m128i __S, __mmask16 __U, __m128i __D) { return (__m128i) __builtin_ia32_compressqi128_mask ((__v16qi) __D, (__v16qi) __S, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_compress_epi8(__mmask16 __U, __m128i __D) { return (__m128i) __builtin_ia32_compressqi128_mask ((__v16qi) __D, (__v16qi) _mm_setzero_si128(), __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_compressstoreu_epi16(void *__P, __mmask8 __U, __m128i __D) { __builtin_ia32_compressstorehi128_mask ((__v8hi *) __P, (__v8hi) __D, __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_compressstoreu_epi8(void *__P, __mmask16 __U, __m128i __D) { __builtin_ia32_compressstoreqi128_mask ((__v16qi *) __P, (__v16qi) __D, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_expand_epi16(__m128i __S, __mmask8 __U, __m128i __D) { return (__m128i) __builtin_ia32_expandhi128_mask ((__v8hi) __D, (__v8hi) __S, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_expand_epi16(__mmask8 __U, __m128i __D) { return (__m128i) __builtin_ia32_expandhi128_mask ((__v8hi) __D, (__v8hi) _mm_setzero_si128(), __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_expand_epi8(__m128i __S, __mmask16 __U, __m128i __D) { return (__m128i) __builtin_ia32_expandqi128_mask ((__v16qi) __D, (__v16qi) __S, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_expand_epi8(__mmask16 __U, __m128i __D) { return (__m128i) __builtin_ia32_expandqi128_mask ((__v16qi) __D, (__v16qi) _mm_setzero_si128(), __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_expandloadu_epi16(__m128i __S, __mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloadhi128_mask ((const __v8hi *)__P, (__v8hi) __S, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_expandloadu_epi16(__mmask8 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloadhi128_mask ((const __v8hi *)__P, (__v8hi) _mm_setzero_si128(), __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_expandloadu_epi8(__m128i __S, __mmask16 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloadqi128_mask ((const __v16qi *)__P, (__v16qi) __S, __U); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_expandloadu_epi8(__mmask16 __U, void const *__P) { return (__m128i) __builtin_ia32_expandloadqi128_mask ((const __v16qi *)__P, (__v16qi) _mm_setzero_si128(), __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_compress_epi16(__m256i __S, __mmask16 __U, __m256i __D) { return (__m256i) __builtin_ia32_compresshi256_mask ((__v16hi) __D, (__v16hi) __S, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_compress_epi16(__mmask16 __U, __m256i __D) { return (__m256i) __builtin_ia32_compresshi256_mask ((__v16hi) __D, (__v16hi) _mm256_setzero_si256(), __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_compress_epi8(__m256i __S, __mmask32 __U, __m256i __D) { return (__m256i) __builtin_ia32_compressqi256_mask ((__v32qi) __D, (__v32qi) __S, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_compress_epi8(__mmask32 __U, __m256i __D) { return (__m256i) __builtin_ia32_compressqi256_mask ((__v32qi) __D, (__v32qi) _mm256_setzero_si256(), __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_compressstoreu_epi16(void *__P, __mmask16 __U, __m256i __D) { __builtin_ia32_compressstorehi256_mask ((__v16hi *) __P, (__v16hi) __D, __U); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_compressstoreu_epi8(void *__P, __mmask32 __U, __m256i __D) { __builtin_ia32_compressstoreqi256_mask ((__v32qi *) __P, (__v32qi) __D, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_expand_epi16(__m256i __S, __mmask16 __U, __m256i __D) { return (__m256i) __builtin_ia32_expandhi256_mask ((__v16hi) __D, (__v16hi) __S, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_expand_epi16(__mmask16 __U, __m256i __D) { return (__m256i) __builtin_ia32_expandhi256_mask ((__v16hi) __D, (__v16hi) _mm256_setzero_si256(), __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_expand_epi8(__m256i __S, __mmask32 __U, __m256i __D) { return (__m256i) __builtin_ia32_expandqi256_mask ((__v32qi) __D, (__v32qi) __S, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_expand_epi8(__mmask32 __U, __m256i __D) { return (__m256i) __builtin_ia32_expandqi256_mask ((__v32qi) __D, (__v32qi) _mm256_setzero_si256(), __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_expandloadu_epi16(__m256i __S, __mmask16 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloadhi256_mask ((const __v16hi *)__P, (__v16hi) __S, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_expandloadu_epi16(__mmask16 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloadhi256_mask ((const __v16hi *)__P, (__v16hi) _mm256_setzero_si256(), __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_expandloadu_epi8(__m256i __S, __mmask32 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloadqi256_mask ((const __v32qi *)__P, (__v32qi) __S, __U); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_expandloadu_epi8(__mmask32 __U, void const *__P) { return (__m256i) __builtin_ia32_expandloadqi256_mask ((const __v32qi *)__P, (__v32qi) _mm256_setzero_si256(), __U); } # 409 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvbmi2intrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_vpshldvq256((__v4di)__A, (__v4di)__B, (__v4di)__C); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_shldv_epi64(__A, __B, __C), (__v4di)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_shldv_epi64(__A, __B, __C), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_shldv_epi64(__m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_vpshldvq128((__v2di)__A, (__v2di)__B, (__v2di)__C); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_shldv_epi64(__A, __B, __C), (__v2di)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_shldv_epi64(__A, __B, __C), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_shldv_epi32(__m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_vpshldvd256((__v8si)__A, (__v8si)__B, (__v8si)__C); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_shldv_epi32(__A, __B, __C), (__v8si)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_shldv_epi32(__A, __B, __C), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_shldv_epi32(__m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_vpshldvd128((__v4si)__A, (__v4si)__B, (__v4si)__C); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_shldv_epi32(__A, __B, __C), (__v4si)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_shldv_epi32(__A, __B, __C), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_shldv_epi16(__m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_vpshldvw256((__v16hi)__A, (__v16hi)__B, (__v16hi)__C); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_shldv_epi16(__A, __B, __C), (__v16hi)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_shldv_epi16(__A, __B, __C), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_shldv_epi16(__m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_vpshldvw128((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_shldv_epi16(__A, __B, __C), (__v8hi)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_shldv_epi16(__A, __B, __C), (__v8hi)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_vpshrdvq256((__v4di)__A, (__v4di)__B, (__v4di)__C); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_shrdv_epi64(__A, __B, __C), (__v4di)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectq_256(__U, (__v4di)_mm256_shrdv_epi64(__A, __B, __C), (__v4di)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_vpshrdvq128((__v2di)__A, (__v2di)__B, (__v2di)__C); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_shrdv_epi64(__A, __B, __C), (__v2di)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectq_128(__U, (__v2di)_mm_shrdv_epi64(__A, __B, __C), (__v2di)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_vpshrdvd256((__v8si)__A, (__v8si)__B, (__v8si)__C); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_shrdv_epi32(__A, __B, __C), (__v8si)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectd_256(__U, (__v8si)_mm256_shrdv_epi32(__A, __B, __C), (__v8si)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_vpshrdvd128((__v4si)__A, (__v4si)__B, (__v4si)__C); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_shrdv_epi32(__A, __B, __C), (__v4si)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectd_128(__U, (__v4si)_mm_shrdv_epi32(__A, __B, __C), (__v4si)_mm_setzero_si128()); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_vpshrdvw256((__v16hi)__A, (__v16hi)__B, (__v16hi)__C); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_mask_shrdv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_shrdv_epi16(__A, __B, __C), (__v16hi)__A); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(256))) _mm256_maskz_shrdv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C) { return (__m256i)__builtin_ia32_selectw_256(__U, (__v16hi)_mm256_shrdv_epi16(__A, __B, __C), (__v16hi)_mm256_setzero_si256()); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_shrdv_epi16(__m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_vpshrdvw128((__v8hi)__A, (__v8hi)__B, (__v8hi)__C); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_mask_shrdv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_shrdv_epi16(__A, __B, __C), (__v8hi)__A); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vbmi2"), __min_vector_width__(128))) _mm_maskz_shrdv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { return (__m128i)__builtin_ia32_selectw_128(__U, (__v8hi)_mm_shrdv_epi16(__A, __B, __C), (__v8hi)_mm_setzero_si128()); } # 178 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512pfintrin.h" 1 3 # 182 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 1 3 # 16 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 typedef short __m512bh __attribute__((__vector_size__(64), __aligned__(64))); typedef short __m256bh __attribute__((__vector_size__(32), __aligned__(32))); # 35 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m512bh __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_cvtne2ps_pbh(__m512 __A, __m512 __B) { return (__m512bh)__builtin_ia32_cvtne2ps2bf16_512((__v16sf) __A, (__v16sf) __B); } # 58 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m512bh __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_mask_cvtne2ps_pbh(__m512bh __W, __mmask32 __U, __m512 __A, __m512 __B) { return (__m512bh)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_cvtne2ps_pbh(__A, __B), (__v32hi)__W); } # 80 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m512bh __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_maskz_cvtne2ps_pbh(__mmask32 __U, __m512 __A, __m512 __B) { return (__m512bh)__builtin_ia32_selectw_512((__mmask32)__U, (__v32hi)_mm512_cvtne2ps_pbh(__A, __B), (__v32hi)_mm512_setzero_si512()); } # 96 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m256bh __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_cvtneps_pbh(__m512 __A) { return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A, (__v16hi)_mm256_undefined_si256(), (__mmask16)-1); } # 117 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m256bh __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_mask_cvtneps_pbh(__m256bh __W, __mmask16 __U, __m512 __A) { return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A, (__v16hi)__W, (__mmask16)__U); } # 136 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m256bh __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_maskz_cvtneps_pbh(__mmask16 __U, __m512 __A) { return (__m256bh)__builtin_ia32_cvtneps2bf16_512_mask((__v16sf)__A, (__v16hi)_mm256_setzero_si256(), (__mmask16)__U); } # 157 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_dpbf16_ps(__m512 __D, __m512bh __A, __m512bh __B) { return (__m512)__builtin_ia32_dpbf16ps_512((__v16sf) __D, (__v16si) __A, (__v16si) __B); } # 181 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_mask_dpbf16_ps(__m512 __D, __mmask16 __U, __m512bh __A, __m512bh __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_dpbf16_ps(__D, __A, __B), (__v16sf)__D); } # 205 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512bf16intrin.h" 3 static __inline__ __m512 __attribute__((__always_inline__, __nodebug__, __target__("avx512bf16"), __min_vector_width__(512))) _mm512_maskz_dpbf16_ps(__mmask16 __U, __m512 __D, __m512bh __A, __m512bh __B) { return (__m512)__builtin_ia32_selectps_512((__mmask16)__U, (__v16sf)_mm512_dpbf16_ps(__D, __A, __B), (__v16sf)_mm512_setzero_si512()); } # 186 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 1 3 # 16 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 typedef short __m128bh __attribute__((__vector_size__(16), __aligned__(16))); # 37 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_cvtne2ps_pbh(__m128 __A, __m128 __B) { return (__m128bh)__builtin_ia32_cvtne2ps2bf16_128((__v4sf) __A, (__v4sf) __B); } # 60 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_mask_cvtne2ps_pbh(__m128bh __W, __mmask8 __U, __m128 __A, __m128 __B) { return (__m128bh)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_cvtne2ps_pbh(__A, __B), (__v8hi)__W); } # 82 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_maskz_cvtne2ps_pbh(__mmask8 __U, __m128 __A, __m128 __B) { return (__m128bh)__builtin_ia32_selectw_128((__mmask8)__U, (__v8hi)_mm_cvtne2ps_pbh(__A, __B), (__v8hi)_mm_setzero_si128()); } # 101 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m256bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_cvtne2ps_pbh(__m256 __A, __m256 __B) { return (__m256bh)__builtin_ia32_cvtne2ps2bf16_256((__v8sf) __A, (__v8sf) __B); } # 124 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m256bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_mask_cvtne2ps_pbh(__m256bh __W, __mmask16 __U, __m256 __A, __m256 __B) { return (__m256bh)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_cvtne2ps_pbh(__A, __B), (__v16hi)__W); } # 146 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m256bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_maskz_cvtne2ps_pbh(__mmask16 __U, __m256 __A, __m256 __B) { return (__m256bh)__builtin_ia32_selectw_256((__mmask16)__U, (__v16hi)_mm256_cvtne2ps_pbh(__A, __B), (__v16hi)_mm256_setzero_si256()); } # 163 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_cvtneps_pbh(__m128 __A) { return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A, (__v8hi)_mm_undefined_si128(), (__mmask8)-1); } # 185 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m128 __A) { return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A, (__v8hi)__W, (__mmask8)__U); } # 205 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_maskz_cvtneps_pbh(__mmask8 __U, __m128 __A) { return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A, (__v8hi)_mm_setzero_si128(), (__mmask8)__U); } # 221 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_cvtneps_pbh(__m256 __A) { return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A, (__v8hi)_mm_undefined_si128(), (__mmask8)-1); } # 242 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m256 __A) { return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A, (__v8hi)__W, (__mmask8)__U); } # 261 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128bh __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_maskz_cvtneps_pbh(__mmask8 __U, __m256 __A) { return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A, (__v8hi)_mm_setzero_si128(), (__mmask8)__U); } # 282 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_dpbf16_ps(__m128 __D, __m128bh __A, __m128bh __B) { return (__m128)__builtin_ia32_dpbf16ps_128((__v4sf)__D, (__v4si)__A, (__v4si)__B); } # 306 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_mask_dpbf16_ps(__m128 __D, __mmask8 __U, __m128bh __A, __m128bh __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_dpbf16_ps(__D, __A, __B), (__v4sf)__D); } # 330 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m128 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(128))) _mm_maskz_dpbf16_ps(__mmask8 __U, __m128 __D, __m128bh __A, __m128bh __B) { return (__m128)__builtin_ia32_selectps_128((__mmask8)__U, (__v4sf)_mm_dpbf16_ps(__D, __A, __B), (__v4sf)_mm_setzero_si128()); } # 351 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_dpbf16_ps(__m256 __D, __m256bh __A, __m256bh __B) { return (__m256)__builtin_ia32_dpbf16ps_256((__v8sf)__D, (__v8si)__A, (__v8si)__B); } # 375 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_mask_dpbf16_ps(__m256 __D, __mmask8 __U, __m256bh __A, __m256bh __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_dpbf16_ps(__D, __A, __B), (__v8sf)__D); } # 399 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlbf16intrin.h" 3 static __inline__ __m256 __attribute__((__always_inline__, __nodebug__, __target__("avx512vl, avx512bf16"), __min_vector_width__(256))) _mm256_maskz_dpbf16_ps(__mmask8 __U, __m256 __D, __m256bh __A, __m256bh __B) { return (__m256)__builtin_ia32_selectps_256((__mmask8)__U, (__v8sf)_mm256_dpbf16_ps(__D, __A, __B), (__v8sf)_mm256_setzero_si256()); } # 191 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/pkuintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/pkuintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("pku"))) _rdpkru_u32(void) { return __builtin_ia32_rdpkru(); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("pku"))) _wrpkru(unsigned int __val) { __builtin_ia32_wrpkru(__val); } # 195 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/vaesintrin.h" 1 3 # 24 "/opt/toolchain/target/lib/clang/9.0.0/include/vaesintrin.h" 3 static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("vaes"), __min_vector_width__(256))) _mm256_aesenc_epi128(__m256i __A, __m256i __B) { return (__m256i) __builtin_ia32_aesenc256((__v4di) __A, (__v4di) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f,vaes"), __min_vector_width__(512))) _mm512_aesenc_epi128(__m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_aesenc512((__v8di) __A, (__v8di) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("vaes"), __min_vector_width__(256))) _mm256_aesdec_epi128(__m256i __A, __m256i __B) { return (__m256i) __builtin_ia32_aesdec256((__v4di) __A, (__v4di) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f,vaes"), __min_vector_width__(512))) _mm512_aesdec_epi128(__m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_aesdec512((__v8di) __A, (__v8di) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("vaes"), __min_vector_width__(256))) _mm256_aesenclast_epi128(__m256i __A, __m256i __B) { return (__m256i) __builtin_ia32_aesenclast256((__v4di) __A, (__v4di) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f,vaes"), __min_vector_width__(512))) _mm512_aesenclast_epi128(__m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_aesenclast512((__v8di) __A, (__v8di) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("vaes"), __min_vector_width__(256))) _mm256_aesdeclast_epi128(__m256i __A, __m256i __B) { return (__m256i) __builtin_ia32_aesdeclast256((__v4di) __A, (__v4di) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512f,vaes"), __min_vector_width__(512))) _mm512_aesdeclast_epi128(__m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_aesdeclast512((__v8di) __A, (__v8di) __B); } # 199 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/gfniintrin.h" 1 3 # 121 "/opt/toolchain/target/lib/clang/9.0.0/include/gfniintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("gfni"), __min_vector_width__(128))) _mm_gf2p8mul_epi8(__m128i __A, __m128i __B) { return (__m128i) __builtin_ia32_vgf2p8mulb_v16qi((__v16qi) __A, (__v16qi) __B); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(128))) _mm_mask_gf2p8mul_epi8(__m128i __S, __mmask16 __U, __m128i __A, __m128i __B) { return (__m128i) __builtin_ia32_selectb_128(__U, (__v16qi) _mm_gf2p8mul_epi8(__A, __B), (__v16qi) __S); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(128))) _mm_maskz_gf2p8mul_epi8(__mmask16 __U, __m128i __A, __m128i __B) { return _mm_mask_gf2p8mul_epi8((__m128i)_mm_setzero_si128(), __U, __A, __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx,gfni"), __min_vector_width__(256))) _mm256_gf2p8mul_epi8(__m256i __A, __m256i __B) { return (__m256i) __builtin_ia32_vgf2p8mulb_v32qi((__v32qi) __A, (__v32qi) __B); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(256))) _mm256_mask_gf2p8mul_epi8(__m256i __S, __mmask32 __U, __m256i __A, __m256i __B) { return (__m256i) __builtin_ia32_selectb_256(__U, (__v32qi) _mm256_gf2p8mul_epi8(__A, __B), (__v32qi) __S); } static __inline__ __m256i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(256))) _mm256_maskz_gf2p8mul_epi8(__mmask32 __U, __m256i __A, __m256i __B) { return _mm256_mask_gf2p8mul_epi8((__m256i)_mm256_setzero_si256(), __U, __A, __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512))) _mm512_gf2p8mul_epi8(__m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_vgf2p8mulb_v64qi((__v64qi) __A, (__v64qi) __B); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512))) _mm512_mask_gf2p8mul_epi8(__m512i __S, __mmask64 __U, __m512i __A, __m512i __B) { return (__m512i) __builtin_ia32_selectb_512(__U, (__v64qi) _mm512_gf2p8mul_epi8(__A, __B), (__v64qi) __S); } static __inline__ __m512i __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512))) _mm512_maskz_gf2p8mul_epi8(__mmask64 __U, __m512i __A, __m512i __B) { return _mm512_mask_gf2p8mul_epi8((__m512i)_mm512_setzero_si512(), __U, __A, __B); } # 203 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("rdpid"))) _rdpid_u32(void) { return __builtin_ia32_rdpid(); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) _rdrand16_step(unsigned short *__p) { return __builtin_ia32_rdrand16_step(__p); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) _rdrand32_step(unsigned int *__p) { return __builtin_ia32_rdrand32_step(__p); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd"))) _rdrand64_step(unsigned long long *__p) { return __builtin_ia32_rdrand64_step(__p); } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _readfsbase_u32(void) { return __builtin_ia32_rdfsbase32(); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _readfsbase_u64(void) { return __builtin_ia32_rdfsbase64(); } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _readgsbase_u32(void) { return __builtin_ia32_rdgsbase32(); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _readgsbase_u64(void) { return __builtin_ia32_rdgsbase64(); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _writefsbase_u32(unsigned int __V) { __builtin_ia32_wrfsbase32(__V); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _writefsbase_u64(unsigned long long __V) { __builtin_ia32_wrfsbase64(__V); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _writegsbase_u32(unsigned int __V) { __builtin_ia32_wrgsbase32(__V); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase"))) _writegsbase_u64(unsigned long long __V) { __builtin_ia32_wrgsbase64(__V); } # 300 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 3 static __inline__ short __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) _loadbe_i16(void const * __P) { struct __loadu_i16 { short __v; } __attribute__((__packed__, __may_alias__)); return __builtin_bswap16(((struct __loadu_i16*)__P)->__v); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) _storebe_i16(void * __P, short __D) { struct __storeu_i16 { short __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_i16*)__P)->__v = __builtin_bswap16(__D); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) _loadbe_i32(void const * __P) { struct __loadu_i32 { int __v; } __attribute__((__packed__, __may_alias__)); return __builtin_bswap32(((struct __loadu_i32*)__P)->__v); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) _storebe_i32(void * __P, int __D) { struct __storeu_i32 { int __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_i32*)__P)->__v = __builtin_bswap32(__D); } static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) _loadbe_i64(void const * __P) { struct __loadu_i64 { long long __v; } __attribute__((__packed__, __may_alias__)); return __builtin_bswap64(((struct __loadu_i64*)__P)->__v); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) _storebe_i64(void * __P, long long __D) { struct __storeu_i64 { long long __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_i64*)__P)->__v = __builtin_bswap64(__D); } # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/rtmintrin.h" 1 3 # 29 "/opt/toolchain/target/lib/clang/9.0.0/include/rtmintrin.h" 3 static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("rtm"))) _xbegin(void) { return __builtin_ia32_xbegin(); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("rtm"))) _xend(void) { __builtin_ia32_xend(); } # 353 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xtestintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/xtestintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rtm"))) _xtest(void) { return __builtin_ia32_xtest(); } # 354 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/shaintrin.h" 1 3 # 23 "/opt/toolchain/target/lib/clang/9.0.0/include/shaintrin.h" 3 static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) _mm_sha1nexte_epu32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_sha1nexte((__v4si)__X, (__v4si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) _mm_sha1msg1_epu32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_sha1msg1((__v4si)__X, (__v4si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) _mm_sha1msg2_epu32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_sha1msg2((__v4si)__X, (__v4si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) _mm_sha256rnds2_epu32(__m128i __X, __m128i __Y, __m128i __Z) { return (__m128i)__builtin_ia32_sha256rnds2((__v4si)__X, (__v4si)__Y, (__v4si)__Z); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) _mm_sha256msg1_epu32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_sha256msg1((__v4si)__X, (__v4si)__Y); } static __inline__ __m128i __attribute__((__always_inline__, __nodebug__, __target__("sha"), __min_vector_width__(128))) _mm_sha256msg2_epu32(__m128i __X, __m128i __Y) { return (__m128i)__builtin_ia32_sha256msg2((__v4si)__X, (__v4si)__Y); } # 358 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/fxsrintrin.h" 1 3 # 29 "/opt/toolchain/target/lib/clang/9.0.0/include/fxsrintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fxsr"))) _fxsave(void *__p) { __builtin_ia32_fxsave(__p); } # 47 "/opt/toolchain/target/lib/clang/9.0.0/include/fxsrintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fxsr"))) _fxrstor(void *__p) { __builtin_ia32_fxrstor(__p); } # 64 "/opt/toolchain/target/lib/clang/9.0.0/include/fxsrintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fxsr"))) _fxsave64(void *__p) { __builtin_ia32_fxsave64(__p); } # 82 "/opt/toolchain/target/lib/clang/9.0.0/include/fxsrintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fxsr"))) _fxrstor64(void *__p) { __builtin_ia32_fxrstor64(__p); } # 362 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xsaveintrin.h" 1 3 # 24 "/opt/toolchain/target/lib/clang/9.0.0/include/xsaveintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsave"))) _xsave(void *__p, unsigned long long __m) { __builtin_ia32_xsave(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsave"))) _xrstor(void *__p, unsigned long long __m) { __builtin_ia32_xrstor(__p, __m); } # 49 "/opt/toolchain/target/lib/clang/9.0.0/include/xsaveintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsave"))) _xsave64(void *__p, unsigned long long __m) { __builtin_ia32_xsave64(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsave"))) _xrstor64(void *__p, unsigned long long __m) { __builtin_ia32_xrstor64(__p, __m); } # 366 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xsaveoptintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/xsaveoptintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsaveopt"))) _xsaveopt(void *__p, unsigned long long __m) { __builtin_ia32_xsaveopt(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsaveopt"))) _xsaveopt64(void *__p, unsigned long long __m) { __builtin_ia32_xsaveopt64(__p, __m); } # 369 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xsavecintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/xsavecintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsavec"))) _xsavec(void *__p, unsigned long long __m) { __builtin_ia32_xsavec(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsavec"))) _xsavec64(void *__p, unsigned long long __m) { __builtin_ia32_xsavec64(__p, __m); } # 373 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/xsavesintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/xsavesintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsaves"))) _xsaves(void *__p, unsigned long long __m) { __builtin_ia32_xsaves(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsaves"))) _xrstors(void *__p, unsigned long long __m) { __builtin_ia32_xrstors(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsaves"))) _xrstors64(void *__p, unsigned long long __m) { __builtin_ia32_xrstors64(__p, __m); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("xsaves"))) _xsaves64(void *__p, unsigned long long __m) { __builtin_ia32_xsaves64(__p, __m); } # 377 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/cetintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/cetintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _incsspd(int __a) { __builtin_ia32_incsspd(__a); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _incsspq(unsigned long long __a) { __builtin_ia32_incsspq(__a); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _inc_ssp(unsigned int __a) { __builtin_ia32_incsspq(__a); } static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _rdsspd(unsigned int __a) { return __builtin_ia32_rdsspd(__a); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _rdsspq(unsigned long long __a) { return __builtin_ia32_rdsspq(__a); } static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _get_ssp(void) { return __builtin_ia32_rdsspq(0); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _saveprevssp() { __builtin_ia32_saveprevssp(); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _rstorssp(void * __p) { __builtin_ia32_rstorssp(__p); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _wrssd(unsigned int __a, void * __p) { __builtin_ia32_wrssd(__a, __p); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _wrssq(unsigned long long __a, void * __p) { __builtin_ia32_wrssq(__a, __p); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _wrussd(unsigned int __a, void * __p) { __builtin_ia32_wrussd(__a, __p); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _wrussq(unsigned long long __a, void * __p) { __builtin_ia32_wrussq(__a, __p); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _setssbsy() { __builtin_ia32_setssbsy(); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("shstk"))) _clrssbsy(void * __p) { __builtin_ia32_clrssbsy(__p); } # 381 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/adxintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/adxintrin.h" 3 static __inline unsigned char __attribute__((__always_inline__, __nodebug__, __target__("adx"))) _addcarryx_u32(unsigned char __cf, unsigned int __x, unsigned int __y, unsigned int *__p) { return __builtin_ia32_addcarryx_u32(__cf, __x, __y, __p); } static __inline unsigned char __attribute__((__always_inline__, __nodebug__, __target__("adx"))) _addcarryx_u64(unsigned char __cf, unsigned long long __x, unsigned long long __y, unsigned long long *__p) { return __builtin_ia32_addcarryx_u64(__cf, __x, __y, __p); } static __inline unsigned char __attribute__((__always_inline__, __nodebug__)) _addcarry_u32(unsigned char __cf, unsigned int __x, unsigned int __y, unsigned int *__p) { return __builtin_ia32_addcarryx_u32(__cf, __x, __y, __p); } static __inline unsigned char __attribute__((__always_inline__, __nodebug__)) _addcarry_u64(unsigned char __cf, unsigned long long __x, unsigned long long __y, unsigned long long *__p) { return __builtin_ia32_addcarryx_u64(__cf, __x, __y, __p); } static __inline unsigned char __attribute__((__always_inline__, __nodebug__)) _subborrow_u32(unsigned char __cf, unsigned int __x, unsigned int __y, unsigned int *__p) { return __builtin_ia32_subborrow_u32(__cf, __x, __y, __p); } static __inline unsigned char __attribute__((__always_inline__, __nodebug__)) _subborrow_u64(unsigned char __cf, unsigned long long __x, unsigned long long __y, unsigned long long *__p) { return __builtin_ia32_subborrow_u64(__cf, __x, __y, __p); } # 386 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/rdseedintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/rdseedintrin.h" 3 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdseed"))) _rdseed16_step(unsigned short *__p) { return __builtin_ia32_rdseed16_step(__p); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdseed"))) _rdseed32_step(unsigned int *__p) { return __builtin_ia32_rdseed32_step(__p); } static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdseed"))) _rdseed64_step(unsigned long long *__p) { return __builtin_ia32_rdseed64_step(__p); } # 389 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/wbnoinvdintrin.h" 1 3 # 17 "/opt/toolchain/target/lib/clang/9.0.0/include/wbnoinvdintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("wbnoinvd"))) _wbnoinvd (void) { __builtin_ia32_wbnoinvd (); } # 393 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/cldemoteintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/cldemoteintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("cldemote"))) _cldemote(const void * __P) { __builtin_ia32_cldemote(__P); } # 397 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/waitpkgintrin.h" 1 3 # 20 "/opt/toolchain/target/lib/clang/9.0.0/include/waitpkgintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("waitpkg"))) _umonitor (void * __address) { __builtin_ia32_umonitor (__address); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("waitpkg"))) _umwait (unsigned int __control, unsigned long long __counter) { return __builtin_ia32_umwait (__control, (unsigned int)(__counter >> 32), (unsigned int)__counter); } static __inline__ unsigned char __attribute__((__always_inline__, __nodebug__, __target__("waitpkg"))) _tpause (unsigned int __control, unsigned long long __counter) { return __builtin_ia32_tpause (__control, (unsigned int)(__counter >> 32), (unsigned int)__counter); } # 401 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/movdirintrin.h" 1 3 # 17 "/opt/toolchain/target/lib/clang/9.0.0/include/movdirintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movdiri"))) _directstoreu_u32 (void *__dst, unsigned int __value) { __builtin_ia32_directstore_u32((unsigned int *)__dst, (unsigned int)__value); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movdiri"))) _directstoreu_u64 (void *__dst, unsigned long __value) { __builtin_ia32_directstore_u64((unsigned long *)__dst, __value); } # 42 "/opt/toolchain/target/lib/clang/9.0.0/include/movdirintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movdir64b"))) _movdir64b (void *__dst __attribute__((align_value(64))), const void *__src) { __builtin_ia32_movdir64b(__dst, __src); } # 406 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/pconfigintrin.h" 1 3 # 25 "/opt/toolchain/target/lib/clang/9.0.0/include/pconfigintrin.h" 3 static __inline unsigned int __attribute__((__always_inline__, __nodebug__, __target__("pconfig"))) _pconfig_u32(unsigned int __leaf, long unsigned int __d[]) { unsigned int __result; __asm__ ("pconfig" : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) : "cc"); return __result; } # 410 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/sgxintrin.h" 1 3 # 23 "/opt/toolchain/target/lib/clang/9.0.0/include/sgxintrin.h" 3 static __inline unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sgx"))) _enclu_u32(unsigned int __leaf, long unsigned int __d[]) { unsigned int __result; __asm__ ("enclu" : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) : "cc"); return __result; } static __inline unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sgx"))) _encls_u32(unsigned int __leaf, long unsigned int __d[]) { unsigned int __result; __asm__ ("encls" : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) : "cc"); return __result; } static __inline unsigned int __attribute__((__always_inline__, __nodebug__, __target__("sgx"))) _enclv_u32(unsigned int __leaf, long unsigned int __d[]) { unsigned int __result; __asm__ ("enclv" : "=a" (__result), "=b" (__d[0]), "=c" (__d[1]), "=d" (__d[2]) : "a" (__leaf), "b" (__d[0]), "c" (__d[1]), "d" (__d[2]) : "cc"); return __result; } # 414 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/ptwriteintrin.h" 1 3 # 21 "/opt/toolchain/target/lib/clang/9.0.0/include/ptwriteintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("ptwrite"))) _ptwrite32(unsigned int __value) { __builtin_ia32_ptwrite32(__value); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("ptwrite"))) _ptwrite64(unsigned long long __value) { __builtin_ia32_ptwrite64(__value); } # 418 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/invpcidintrin.h" 1 3 # 17 "/opt/toolchain/target/lib/clang/9.0.0/include/invpcidintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("invpcid"))) _invpcid(unsigned int __type, void *__descriptor) { __builtin_ia32_invpcid(__type, __descriptor); } # 422 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vp2intersectintrin.h" 1 3 # 50 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vp2intersectintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vp2intersect"), __min_vector_width__(512))) _mm512_2intersect_epi32(__m512i __a, __m512i __b, __mmask16 *__m0, __mmask16 *__m1) { } # 70 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vp2intersectintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vp2intersect"), __min_vector_width__(512))) _mm512_2intersect_epi64(__m512i __a, __m512i __b, __mmask8 *__m0, __mmask8 *__m1) { } # 427 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h" 1 3 # 53 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vp2intersect"), __min_vector_width__(256))) _mm256_2intersect_epi32(__m256i __a, __m256i __b, __mmask8 *__m0, __mmask8 *__m1) { return __a; } # 73 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vp2intersect"), __min_vector_width__(256))) _mm256_2intersect_epi64(__m256i __a, __m256i __b, __mmask8 *__m0, __mmask8 *__m1) { } # 93 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vp2intersect"), __min_vector_width__(128))) _mm_2intersect_epi32(__m128i __a, __m128i __b, __mmask8 *__m0, __mmask8 *__m1) { } # 113 "/opt/toolchain/target/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h" 3 static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512vp2intersect"), __min_vector_width__(128))) _mm_2intersect_epi64(__m128i __a, __m128i __b, __mmask8 *__m0, __mmask8 *__m1) { } # 432 "/opt/toolchain/target/lib/clang/9.0.0/include/immintrin.h" 2 3 # 14 "/work/libint/3rdparty/libcxx/include/experimental/simd" 2 # 1 "/usr/include/assert.h" 1 3 4 # 17 "/work/libint/3rdparty/libcxx/include/experimental/simd" 2 # 657 "/work/libint/3rdparty/libcxx/include/experimental/simd" # 1 "/opt/toolchain/target/bin/../include/c++/v1/experimental/__config" 1 3 # 17 "/opt/toolchain/target/bin/../include/c++/v1/experimental/__config" 3 # 658 "/work/libint/3rdparty/libcxx/include/experimental/simd" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 1 3 # 639 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/initializer_list" 1 3 # 50 "/opt/toolchain/target/bin/../include/c++/v1/initializer_list" 3 namespace std { template<class _Ep> class __attribute__ ((__type_visibility__("default"))) initializer_list { const _Ep* __begin_; size_t __size_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr initializer_list(const _Ep* __b, size_t __s) noexcept : __begin_(__b), __size_(__s) {} public: typedef _Ep value_type; typedef const _Ep& reference; typedef const _Ep& const_reference; typedef size_t size_type; typedef const _Ep* iterator; typedef const _Ep* const_iterator; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr initializer_list() noexcept : __begin_(nullptr), __size_(0) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t size() const noexcept {return __size_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* begin() const noexcept {return __begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* end() const noexcept {return __begin_ + __size_;} }; template<class _Ep> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* begin(initializer_list<_Ep> __il) noexcept { return __il.begin(); } template<class _Ep> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* end(initializer_list<_Ep> __il) noexcept { return __il.end(); } } # 640 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cstring" 1 3 # 64 "/opt/toolchain/target/bin/../include/c++/v1/cstring" 3 namespace std { inline namespace __1 { using ::size_t; using ::memcpy; using ::memmove; using ::strcpy; using ::strncpy; using ::strcat; using ::strncat; using ::memcmp; using ::strcmp; using ::strncmp; using ::strcoll; using ::strxfrm; using ::memchr; using ::strchr; using ::strcspn; using ::strpbrk; using ::strrchr; using ::strspn; using ::strstr; using ::strtok; using ::memset; using ::strerror; using ::strlen; } } # 642 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/utility" 1 3 # 199 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__tuple" 1 3 # 19 "/opt/toolchain/target/bin/../include/c++/v1/__tuple" 3 namespace std { inline namespace __1 { template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_size; template <class _Tp, class...> using __enable_if_tuple_size_imp = _Tp; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_size<__enable_if_tuple_size_imp< const _Tp, typename enable_if<!is_volatile<_Tp>::value>::type, integral_constant<size_t, sizeof(tuple_size<_Tp>)>>> : public integral_constant<size_t, tuple_size<_Tp>::value> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_size<__enable_if_tuple_size_imp< volatile _Tp, typename enable_if<!is_const<_Tp>::value>::type, integral_constant<size_t, sizeof(tuple_size<_Tp>)>>> : public integral_constant<size_t, tuple_size<_Tp>::value> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_size<__enable_if_tuple_size_imp< const volatile _Tp, integral_constant<size_t, sizeof(tuple_size<_Tp>)>>> : public integral_constant<size_t, tuple_size<_Tp>::value> {}; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_element; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, const _Tp> { typedef typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type; }; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, volatile _Tp> { typedef typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type; }; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, const volatile _Tp> { typedef typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type; }; template <class _Tp> struct __tuple_like : false_type {}; template <class _Tp> struct __tuple_like<const _Tp> : public __tuple_like<_Tp> {}; template <class _Tp> struct __tuple_like<volatile _Tp> : public __tuple_like<_Tp> {}; template <class _Tp> struct __tuple_like<const volatile _Tp> : public __tuple_like<_Tp> {}; template <size_t...> struct __tuple_indices {}; template <class _IdxType, _IdxType... _Values> struct __integer_sequence { template <template <class _OIdxType, _OIdxType...> class _ToIndexSeq, class _ToIndexType> using __convert = _ToIndexSeq<_ToIndexType, _Values...>; template <size_t _Sp> using __to_tuple_indices = __tuple_indices<(_Values + _Sp)...>; }; # 140 "/opt/toolchain/target/bin/../include/c++/v1/__tuple" 3 template <size_t _Ep, size_t _Sp> using __make_indices_imp = typename __make_integer_seq<__integer_sequence, size_t, _Ep - _Sp>::template __to_tuple_indices<_Sp>; template <size_t _Ep, size_t _Sp = 0> struct __make_tuple_indices { static_assert(_Sp <= _Ep, "__make_tuple_indices input error"); typedef __make_indices_imp<_Ep, _Sp> type; }; template <class ..._Tp> class __attribute__ ((__type_visibility__("default"))) tuple; template <class... _Tp> struct __tuple_like<tuple<_Tp...> > : true_type {}; template <class ..._Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_size<tuple<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> { }; template <size_t _Ip, class ..._Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, tuple<_Tp...> >::type& get(tuple<_Tp...>&) noexcept; template <size_t _Ip, class ..._Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, tuple<_Tp...> >::type& get(const tuple<_Tp...>&) noexcept; template <size_t _Ip, class ..._Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, tuple<_Tp...> >::type&& get(tuple<_Tp...>&&) noexcept; template <size_t _Ip, class ..._Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, tuple<_Tp...> >::type&& get(const tuple<_Tp...>&&) noexcept; template <class _T1, class _T2> struct __tuple_like<pair<_T1, _T2> > : true_type {}; template <size_t _Ip, class _T1, class _T2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type& get(pair<_T1, _T2>&) noexcept; template <size_t _Ip, class _T1, class _T2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type& get(const pair<_T1, _T2>&) noexcept; template <size_t _Ip, class _T1, class _T2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type&& get(pair<_T1, _T2>&&) noexcept; template <size_t _Ip, class _T1, class _T2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type&& get(const pair<_T1, _T2>&&) noexcept; template <class _Tp, size_t _Size> struct __attribute__ ((__type_visibility__("default"))) array; template <class _Tp, size_t _Size> struct __tuple_like<array<_Tp, _Size> > : true_type {}; template <size_t _Ip, class _Tp, size_t _Size> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp& get(array<_Tp, _Size>&) noexcept; template <size_t _Ip, class _Tp, size_t _Size> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& get(const array<_Tp, _Size>&) noexcept; template <size_t _Ip, class _Tp, size_t _Size> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp&& get(array<_Tp, _Size>&&) noexcept; template <size_t _Ip, class _Tp, size_t _Size> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp&& get(const array<_Tp, _Size>&&) noexcept; template <class ..._Tp> struct __tuple_types {}; # 280 "/opt/toolchain/target/bin/../include/c++/v1/__tuple" 3 template <size_t _Ip, class ..._Types> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, __tuple_types<_Types...>> { static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range"); typedef __type_pack_element<_Ip, _Types...> type; }; template <class ..._Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_size<__tuple_types<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> { }; template <class... _Tp> struct __tuple_like<__tuple_types<_Tp...> > : true_type {}; template <bool _ApplyLV, bool _ApplyConst, bool _ApplyVolatile> struct __apply_cv_mf; template <> struct __apply_cv_mf<false, false, false> { template <class _Tp> using __apply = _Tp; }; template <> struct __apply_cv_mf<false, true, false> { template <class _Tp> using __apply = const _Tp; }; template <> struct __apply_cv_mf<false, false, true> { template <class _Tp> using __apply = volatile _Tp; }; template <> struct __apply_cv_mf<false, true, true> { template <class _Tp> using __apply = const volatile _Tp; }; template <> struct __apply_cv_mf<true, false, false> { template <class _Tp> using __apply = _Tp&; }; template <> struct __apply_cv_mf<true, true, false> { template <class _Tp> using __apply = const _Tp&; }; template <> struct __apply_cv_mf<true, false, true> { template <class _Tp> using __apply = volatile _Tp&; }; template <> struct __apply_cv_mf<true, true, true> { template <class _Tp> using __apply = const volatile _Tp&; }; template <class _Tp, class _RawTp = typename remove_reference<_Tp>::type> using __apply_cv_t = __apply_cv_mf< is_lvalue_reference<_Tp>::value, is_const<_RawTp>::value, is_volatile<_RawTp>::value>; # 343 "/opt/toolchain/target/bin/../include/c++/v1/__tuple" 3 template <class _TupleTypes, class _TupleIndices> struct __make_tuple_types_flat; template <template <class...> class _Tuple, class ..._Types, size_t ..._Idx> struct __make_tuple_types_flat<_Tuple<_Types...>, __tuple_indices<_Idx...>> { template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>> using __apply_quals = __tuple_types< typename _ApplyFn::template __apply<__type_pack_element<_Idx, _Types...>>... >; }; template <class _Vt, size_t _Np, size_t ..._Idx> struct __make_tuple_types_flat<array<_Vt, _Np>, __tuple_indices<_Idx...>> { template <size_t> using __value_type = _Vt; template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>> using __apply_quals = __tuple_types< typename _ApplyFn::template __apply<__value_type<_Idx>>... >; }; template <class _Tp, size_t _Ep = tuple_size<typename remove_reference<_Tp>::type>::value, size_t _Sp = 0, bool _SameSize = (_Ep == tuple_size<typename remove_reference<_Tp>::type>::value)> struct __make_tuple_types { static_assert(_Sp <= _Ep, "__make_tuple_types input error"); using _RawTp = typename remove_cv<typename remove_reference<_Tp>::type>::type; using _Maker = __make_tuple_types_flat<_RawTp, typename __make_tuple_indices<_Ep, _Sp>::type>; using type = typename _Maker::template __apply_quals<_Tp>; }; template <class ..._Types, size_t _Ep> struct __make_tuple_types<tuple<_Types...>, _Ep, 0, true> { typedef __tuple_types<_Types...> type; }; template <class ..._Types, size_t _Ep> struct __make_tuple_types<__tuple_types<_Types...>, _Ep, 0, true> { typedef __tuple_types<_Types...> type; }; template <bool ..._Preds> struct __all_dummy; template <bool ..._Pred> using __all = is_same<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>>; struct __tuple_sfinae_base { template <template <class, class...> class _Trait, class ..._LArgs, class ..._RArgs> static auto __do_test(__tuple_types<_LArgs...>, __tuple_types<_RArgs...>) -> __all<typename enable_if<_Trait<_LArgs, _RArgs>::value, bool>::type{true}...>; template <template <class...> class> static auto __do_test(...) -> false_type; template <class _FromArgs, class _ToArgs> using __constructible = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{})); template <class _FromArgs, class _ToArgs> using __convertible = decltype(__do_test<is_convertible>(_FromArgs{}, _ToArgs{})); template <class _FromArgs, class _ToArgs> using __assignable = decltype(__do_test<is_assignable>(_ToArgs{}, _FromArgs{})); }; template <class _Tp, class _Up, bool = __tuple_like<typename remove_reference<_Tp>::type>::value, bool = __tuple_like<_Up>::value> struct __tuple_convertible : public false_type {}; template <class _Tp, class _Up> struct __tuple_convertible<_Tp, _Up, true, true> : public __tuple_sfinae_base::__convertible< typename __make_tuple_types<_Tp>::type , typename __make_tuple_types<_Up>::type > {}; template <class _Tp, class _Up, bool = __tuple_like<typename remove_reference<_Tp>::type>::value, bool = __tuple_like<_Up>::value> struct __tuple_constructible : public false_type {}; template <class _Tp, class _Up> struct __tuple_constructible<_Tp, _Up, true, true> : public __tuple_sfinae_base::__constructible< typename __make_tuple_types<_Tp>::type , typename __make_tuple_types<_Up>::type > {}; template <class _Tp, class _Up, bool = __tuple_like<typename remove_reference<_Tp>::type>::value, bool = __tuple_like<_Up>::value> struct __tuple_assignable : public false_type {}; template <class _Tp, class _Up> struct __tuple_assignable<_Tp, _Up, true, true> : public __tuple_sfinae_base::__assignable< typename __make_tuple_types<_Tp>::type , typename __make_tuple_types<_Up&>::type > {}; template <size_t _Ip, class ..._Tp> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, tuple<_Tp...> > { typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type; }; template <size_t _Ip, class ..._Tp> using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type; template <bool _IsTuple, class _SizeTrait, size_t _Expected> struct __tuple_like_with_size_imp : false_type {}; template <class _SizeTrait, size_t _Expected> struct __tuple_like_with_size_imp<true, _SizeTrait, _Expected> : integral_constant<bool, _SizeTrait::value == _Expected> {}; template <class _Tuple, size_t _ExpectedSize, class _RawTuple = typename __uncvref<_Tuple>::type> using __tuple_like_with_size = __tuple_like_with_size_imp< __tuple_like<_RawTuple>::value, tuple_size<_RawTuple>, _ExpectedSize >; struct __attribute__ ((__visibility__("default"))) __check_tuple_constructor_fail { template <class ...> static constexpr bool __enable_default() { return false; } template <class ...> static constexpr bool __enable_explicit() { return false; } template <class ...> static constexpr bool __enable_implicit() { return false; } template <class ...> static constexpr bool __enable_assign() { return false; } }; template <bool _CanCopy, bool _CanMove> struct __sfinae_ctor_base {}; template <> struct __sfinae_ctor_base<false, false> { __sfinae_ctor_base() = default; __sfinae_ctor_base(__sfinae_ctor_base const&) = delete; __sfinae_ctor_base(__sfinae_ctor_base &&) = delete; __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; }; template <> struct __sfinae_ctor_base<true, false> { __sfinae_ctor_base() = default; __sfinae_ctor_base(__sfinae_ctor_base const&) = default; __sfinae_ctor_base(__sfinae_ctor_base &&) = delete; __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; }; template <> struct __sfinae_ctor_base<false, true> { __sfinae_ctor_base() = default; __sfinae_ctor_base(__sfinae_ctor_base const&) = delete; __sfinae_ctor_base(__sfinae_ctor_base &&) = default; __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default; __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default; }; template <bool _CanCopy, bool _CanMove> struct __sfinae_assign_base {}; template <> struct __sfinae_assign_base<false, false> { __sfinae_assign_base() = default; __sfinae_assign_base(__sfinae_assign_base const&) = default; __sfinae_assign_base(__sfinae_assign_base &&) = default; __sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete; __sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete; }; template <> struct __sfinae_assign_base<true, false> { __sfinae_assign_base() = default; __sfinae_assign_base(__sfinae_assign_base const&) = default; __sfinae_assign_base(__sfinae_assign_base &&) = default; __sfinae_assign_base& operator=(__sfinae_assign_base const&) = default; __sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete; }; template <> struct __sfinae_assign_base<false, true> { __sfinae_assign_base() = default; __sfinae_assign_base(__sfinae_assign_base const&) = default; __sfinae_assign_base(__sfinae_assign_base &&) = default; __sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete; __sfinae_assign_base& operator=(__sfinae_assign_base&&) = default; }; } } # 200 "/opt/toolchain/target/bin/../include/c++/v1/utility" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cstdint" 1 3 # 148 "/opt/toolchain/target/bin/../include/c++/v1/cstdint" 3 namespace std { inline namespace __1 { using::int8_t; using::int16_t; using::int32_t; using::int64_t; using::uint8_t; using::uint16_t; using::uint32_t; using::uint64_t; using::int_least8_t; using::int_least16_t; using::int_least32_t; using::int_least64_t; using::uint_least8_t; using::uint_least16_t; using::uint_least32_t; using::uint_least64_t; using::int_fast8_t; using::int_fast16_t; using::int_fast32_t; using::int_fast64_t; using::uint_fast8_t; using::uint_fast16_t; using::uint_fast32_t; using::uint_fast64_t; using::intptr_t; using::uintptr_t; using::intmax_t; using::uintmax_t; } } # 205 "/opt/toolchain/target/bin/../include/c++/v1/utility" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__debug" 1 3 # 14 "/opt/toolchain/target/bin/../include/c++/v1/__debug" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/iosfwd" 1 3 # 95 "/opt/toolchain/target/bin/../include/c++/v1/iosfwd" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/wchar.h" 1 3 # 112 "/opt/toolchain/target/bin/../include/c++/v1/wchar.h" 3 # 1 "/usr/include/wchar.h" 1 3 4 # 27 "/usr/include/wchar.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/libc-header-start.h" 1 3 4 # 28 "/usr/include/wchar.h" 2 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 36 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" 1 3 4 # 20 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h" 3 4 typedef unsigned int wint_t; # 42 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h" 1 3 4 typedef __mbstate_t mbstate_t; # 43 "/usr/include/wchar.h" 2 3 4 # 79 "/usr/include/wchar.h" 3 4 extern "C" { struct tm; extern wchar_t *wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern wchar_t *wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern wchar_t *wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw () __attribute__ ((__nonnull__ (1, 2))); extern wchar_t *wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw (); extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) throw (); extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2, locale_t __loc) throw (); extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2, size_t __n, locale_t __loc) throw (); extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw (); extern size_t wcsxfrm (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw (); extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2, locale_t __loc) throw (); extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2, size_t __n, locale_t __loc) throw (); extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__)); extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcschr") __attribute__ ((__pure__)); extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcschr") __attribute__ ((__pure__)); extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcsrchr") __attribute__ ((__pure__)); extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc) throw () __asm ("wcsrchr") __attribute__ ((__pure__)); # 181 "/usr/include/wchar.h" 3 4 extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc) throw () __attribute__ ((__pure__)); extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject) throw () __attribute__ ((__pure__)); extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept) throw () __asm ("wcspbrk") __attribute__ ((__pure__)); extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept) throw () __asm ("wcspbrk") __attribute__ ((__pure__)); extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle) throw () __asm ("wcsstr") __attribute__ ((__pure__)); extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack, const wchar_t *__needle) throw () __asm ("wcsstr") __attribute__ ((__pure__)); extern wchar_t *wcstok (wchar_t *__restrict __s, const wchar_t *__restrict __delim, wchar_t **__restrict __ptr) throw (); extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle) throw () __asm ("wcswcs") __attribute__ ((__pure__)); extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack, const wchar_t *__needle) throw () __asm ("wcswcs") __attribute__ ((__pure__)); # 240 "/usr/include/wchar.h" 3 4 extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen) throw () __attribute__ ((__pure__)); extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm ("wmemchr") __attribute__ ((__pure__)); extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n) throw () __asm ("wmemchr") __attribute__ ((__pure__)); extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n) throw () __attribute__ ((__pure__)); extern wchar_t *wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw (); extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n) throw (); extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); extern wchar_t *wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2, size_t __n) throw (); extern wint_t btowc (int __c) throw (); extern int wctob (wint_t __c) throw (); extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__)); extern size_t mbrtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n, mbstate_t *__restrict __p) throw (); extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, mbstate_t *__restrict __ps) throw (); extern size_t __mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern size_t mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw (); extern wint_t __btowc_alias (int __c) __asm ("btowc"); extern __inline __attribute__ ((__gnu_inline__)) wint_t btowc (int __c) throw () { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' ? (wint_t) __c : __btowc_alias (__c)); } extern int __wctob_alias (wint_t __c) __asm ("wctob"); extern __inline __attribute__ ((__gnu_inline__)) int wctob (wint_t __wc) throw () { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' ? (int) __wc : __wctob_alias (__wc)); } extern __inline __attribute__ ((__gnu_inline__)) size_t mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () { return (__ps != __null ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } extern size_t mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw (); extern size_t wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw (); extern int wcwidth (wchar_t __c) throw (); extern int wcswidth (const wchar_t *__s, size_t __n) throw (); extern double wcstod (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern float wcstof (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern long double wcstold (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); # 396 "/usr/include/wchar.h" 3 4 extern _Float32 wcstof32 (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern _Float64 wcstof64 (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); # 411 "/usr/include/wchar.h" 3 4 extern _Float32x wcstof32x (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); extern _Float64x wcstof64x (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw (); # 428 "/usr/include/wchar.h" 3 4 extern long int wcstol (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern unsigned long int wcstoul (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoll (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern long long int wcstoq (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); __extension__ extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw (); extern long int wcstol_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) throw (); extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) throw (); __extension__ extern long long int wcstoll_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) throw (); __extension__ extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base, locale_t __loc) throw (); extern double wcstod_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); extern float wcstof_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); extern long double wcstold_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); # 511 "/usr/include/wchar.h" 3 4 extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); # 529 "/usr/include/wchar.h" 3 4 extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, locale_t __loc) throw (); # 551 "/usr/include/wchar.h" 3 4 extern wchar_t *wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src) throw (); extern wchar_t *wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src, size_t __n) throw (); # 567 "/usr/include/wchar.h" 3 4 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); extern int fwide (__FILE *__fp, int __mode) throw (); extern int fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) ; extern int wprintf (const wchar_t *__restrict __format, ...) ; extern int swprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __format, ...) throw () ; extern int vfwprintf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwprintf (const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswprintf (wchar_t *__restrict __s, size_t __n, const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) ; extern int wscanf (const wchar_t *__restrict __format, ...) ; extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) throw () ; # 673 "/usr/include/wchar.h" 3 4 extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) ; extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) throw () ; # 727 "/usr/include/wchar.h" 3 4 extern wint_t fgetwc (__FILE *__stream); extern wint_t getwc (__FILE *__stream); extern wint_t getwchar (void); extern wint_t fputwc (wchar_t __wc, __FILE *__stream); extern wint_t putwc (wchar_t __wc, __FILE *__stream); extern wint_t putwchar (wchar_t __wc); extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws (const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern wint_t ungetwc (wint_t __wc, __FILE *__stream); # 782 "/usr/include/wchar.h" 3 4 extern wint_t getwc_unlocked (__FILE *__stream); extern wint_t getwchar_unlocked (void); extern wint_t fgetwc_unlocked (__FILE *__stream); extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); # 808 "/usr/include/wchar.h" 3 4 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); extern wint_t putwchar_unlocked (wchar_t __wc); # 818 "/usr/include/wchar.h" 3 4 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, __FILE *__restrict __stream); extern int fputws_unlocked (const wchar_t *__restrict __ws, __FILE *__restrict __stream); extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, const wchar_t *__restrict __format, const struct tm *__restrict __tp) throw (); extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, const wchar_t *__restrict __format, const struct tm *__restrict __tp, locale_t __loc) throw (); # 857 "/usr/include/wchar.h" 3 4 } # 119 "/opt/toolchain/target/bin/../include/c++/v1/wchar.h" 2 3 # 96 "/opt/toolchain/target/bin/../include/c++/v1/iosfwd" 2 3 # 99 "/opt/toolchain/target/bin/../include/c++/v1/iosfwd" 3 namespace std { inline namespace __1 { class __attribute__ ((__visibility__("default"))) ios_base; template<class _CharT> struct __attribute__ ((__type_visibility__("default"))) char_traits; template<> struct char_traits<char>; template<> struct char_traits<char16_t>; template<> struct char_traits<char32_t>; template<> struct char_traits<wchar_t>; template<class _Tp> class __attribute__ ((__type_visibility__("default"))) allocator; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_ios; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_streambuf; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_istream; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_ostream; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_iostream; template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_stringbuf; template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_istringstream; template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_ostringstream; template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_stringstream; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_filebuf; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_ifstream; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_ofstream; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_fstream; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) istreambuf_iterator; template <class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) ostreambuf_iterator; typedef basic_ios<char> ios; typedef basic_ios<wchar_t> wios; typedef basic_streambuf<char> streambuf; typedef basic_istream<char> istream; typedef basic_ostream<char> ostream; typedef basic_iostream<char> iostream; typedef basic_stringbuf<char> stringbuf; typedef basic_istringstream<char> istringstream; typedef basic_ostringstream<char> ostringstream; typedef basic_stringstream<char> stringstream; typedef basic_filebuf<char> filebuf; typedef basic_ifstream<char> ifstream; typedef basic_ofstream<char> ofstream; typedef basic_fstream<char> fstream; typedef basic_streambuf<wchar_t> wstreambuf; typedef basic_istream<wchar_t> wistream; typedef basic_ostream<wchar_t> wostream; typedef basic_iostream<wchar_t> wiostream; typedef basic_stringbuf<wchar_t> wstringbuf; typedef basic_istringstream<wchar_t> wistringstream; typedef basic_ostringstream<wchar_t> wostringstream; typedef basic_stringstream<wchar_t> wstringstream; typedef basic_filebuf<wchar_t> wfilebuf; typedef basic_ifstream<wchar_t> wifstream; typedef basic_ofstream<wchar_t> wofstream; typedef basic_fstream<wchar_t> wfstream; template <class _State> class __attribute__ ((__type_visibility__("default"))) fpos; typedef fpos<mbstate_t> streampos; typedef fpos<mbstate_t> wstreampos; typedef fpos<mbstate_t> u16streampos; typedef fpos<mbstate_t> u32streampos; typedef long long streamoff; template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_string; typedef basic_string<char, char_traits<char>, allocator<char> > string; typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring; template <class _Tp, class _Alloc = allocator<_Tp> > class __attribute__ ((__type_visibility__("default"))) vector; } } # 15 "/opt/toolchain/target/bin/../include/c++/v1/__debug" 2 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/__debug" 3 # 52 "/opt/toolchain/target/bin/../include/c++/v1/__debug" 3 namespace std { inline namespace __1 { struct __attribute__ ((__type_visibility__("default"))) __libcpp_debug_info { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __libcpp_debug_info() : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __libcpp_debug_info(const char* __f, int __l, const char* __p, const char* __m) : __file_(__f), __line_(__l), __pred_(__p), __msg_(__m) {} __attribute__ ((__visibility__("default"))) std::string what() const; const char* __file_; int __line_; const char* __pred_; const char* __msg_; }; typedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&); extern __attribute__((__visibility__("default"))) __libcpp_debug_function_type __libcpp_debug_function; [[noreturn]] __attribute__ ((__visibility__("default"))) void __libcpp_abort_debug_function(__libcpp_debug_info const&); __attribute__ ((__visibility__("default"))) bool __libcpp_set_debug_function(__libcpp_debug_function_type __func); # 276 "/opt/toolchain/target/bin/../include/c++/v1/__debug" 3 } } # 207 "/opt/toolchain/target/bin/../include/c++/v1/utility" 2 3 # 210 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 namespace std { inline namespace __1 { namespace rel_ops { template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const _Tp& __x, const _Tp& __y) { return !(__x == __y); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (const _Tp& __x, const _Tp& __y) { return __y < __x; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const _Tp& __x, const _Tp& __y) { return !(__y < __x); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const _Tp& __x, const _Tp& __y) { return !(__x < __y); } } template <class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator2 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) { for(; __first1 != __last1; ++__first1, (void) ++__first2) swap(*__first1, *__first2); return __first2; } template<class _Tp, size_t _Np> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if< __is_swappable<_Tp>::value >::type swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value) { std::__1::swap_ranges(__a, __a + _Np, __b); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename conditional < !is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value, const _Tp&, _Tp&& >::type move_if_noexcept(_Tp& __x) noexcept { return std::__1::move(__x); } template <class _Tp> constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { return __t; } template <class _Tp> void as_const(const _Tp&&) = delete; struct __attribute__ ((__type_visibility__("default"))) piecewise_construct_t { }; constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); # 314 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) pair { typedef _T1 first_type; typedef _T2 second_type; _T1 first; _T2 second; pair(pair const&) = default; pair(pair&&) = default; # 351 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 template <bool _Val> using _EnableB = typename enable_if<_Val, bool>::type; struct _CheckArgs { template <class _U1, class _U2> static constexpr bool __enable_default() { return is_default_constructible<_U1>::value && is_default_constructible<_U2>::value; } template <class _U1, class _U2> static constexpr bool __enable_explicit() { return is_constructible<first_type, _U1>::value && is_constructible<second_type, _U2>::value && (!is_convertible<_U1, first_type>::value || !is_convertible<_U2, second_type>::value); } template <class _U1, class _U2> static constexpr bool __enable_implicit() { return is_constructible<first_type, _U1>::value && is_constructible<second_type, _U2>::value && is_convertible<_U1, first_type>::value && is_convertible<_U2, second_type>::value; } }; template <bool _MaybeEnable> using _CheckArgsDep = typename conditional< _MaybeEnable, _CheckArgs, __check_tuple_constructor_fail>::type; struct _CheckTupleLikeConstructor { template <class _Tuple> static constexpr bool __enable_implicit() { return __tuple_convertible<_Tuple, pair>::value; } template <class _Tuple> static constexpr bool __enable_explicit() { return __tuple_constructible<_Tuple, pair>::value && !__tuple_convertible<_Tuple, pair>::value; } template <class _Tuple> static constexpr bool __enable_assign() { return __tuple_assignable<_Tuple, pair>::value; } }; template <class _Tuple> using _CheckTLC = typename conditional< __tuple_like_with_size<_Tuple, 2>::value && !is_same<typename decay<_Tuple>::type, pair>::value, _CheckTupleLikeConstructor, __check_tuple_constructor_fail >::type; template<bool _Dummy = true, _EnableB< _CheckArgsDep<_Dummy>::template __enable_default<_T1, _T2>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair() noexcept(is_nothrow_default_constructible<first_type>::value && is_nothrow_default_constructible<second_type>::value) : first(), second() {} template <bool _Dummy = true, _EnableB< _CheckArgsDep<_Dummy>::template __enable_explicit<_T1 const&, _T2 const&>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit pair(_T1 const& __t1, _T2 const& __t2) noexcept(is_nothrow_copy_constructible<first_type>::value && is_nothrow_copy_constructible<second_type>::value) : first(__t1), second(__t2) {} template<bool _Dummy = true, _EnableB< _CheckArgsDep<_Dummy>::template __enable_implicit<_T1 const&, _T2 const&>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair(_T1 const& __t1, _T2 const& __t2) noexcept(is_nothrow_copy_constructible<first_type>::value && is_nothrow_copy_constructible<second_type>::value) : first(__t1), second(__t2) {} template<class _U1, class _U2, _EnableB< _CheckArgs::template __enable_explicit<_U1, _U2>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit pair(_U1&& __u1, _U2&& __u2) noexcept((is_nothrow_constructible<first_type, _U1>::value && is_nothrow_constructible<second_type, _U2>::value)) : first(std::__1::forward<_U1>(__u1)), second(std::__1::forward<_U2>(__u2)) {} template<class _U1, class _U2, _EnableB< _CheckArgs::template __enable_implicit<_U1, _U2>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair(_U1&& __u1, _U2&& __u2) noexcept((is_nothrow_constructible<first_type, _U1>::value && is_nothrow_constructible<second_type, _U2>::value)) : first(std::__1::forward<_U1>(__u1)), second(std::__1::forward<_U2>(__u2)) {} template<class _U1, class _U2, _EnableB< _CheckArgs::template __enable_explicit<_U1 const&, _U2 const&>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit pair(pair<_U1, _U2> const& __p) noexcept((is_nothrow_constructible<first_type, _U1 const&>::value && is_nothrow_constructible<second_type, _U2 const&>::value)) : first(__p.first), second(__p.second) {} template<class _U1, class _U2, _EnableB< _CheckArgs::template __enable_implicit<_U1 const&, _U2 const&>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair(pair<_U1, _U2> const& __p) noexcept((is_nothrow_constructible<first_type, _U1 const&>::value && is_nothrow_constructible<second_type, _U2 const&>::value)) : first(__p.first), second(__p.second) {} template<class _U1, class _U2, _EnableB< _CheckArgs::template __enable_explicit<_U1, _U2>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit pair(pair<_U1, _U2>&&__p) noexcept((is_nothrow_constructible<first_type, _U1&&>::value && is_nothrow_constructible<second_type, _U2&&>::value)) : first(std::__1::forward<_U1>(__p.first)), second(std::__1::forward<_U2>(__p.second)) {} template<class _U1, class _U2, _EnableB< _CheckArgs::template __enable_implicit<_U1, _U2>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair(pair<_U1, _U2>&& __p) noexcept((is_nothrow_constructible<first_type, _U1&&>::value && is_nothrow_constructible<second_type, _U2&&>::value)) : first(std::__1::forward<_U1>(__p.first)), second(std::__1::forward<_U2>(__p.second)) {} template<class _Tuple, _EnableB< _CheckTLC<_Tuple>::template __enable_explicit<_Tuple>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit pair(_Tuple&& __p) : first(std::__1::get<0>(std::__1::forward<_Tuple>(__p))), second(std::__1::get<1>(std::__1::forward<_Tuple>(__p))) {} template<class _Tuple, _EnableB< _CheckTLC<_Tuple>::template __enable_implicit<_Tuple>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair(_Tuple&& __p) : first(std::__1::get<0>(std::__1::forward<_Tuple>(__p))), second(std::__1::get<1>(std::__1::forward<_Tuple>(__p))) {} template <class... _Args1, class... _Args2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args, tuple<_Args2...> __second_args) noexcept((is_nothrow_constructible<first_type, _Args1...>::value && is_nothrow_constructible<second_type, _Args2...>::value)) : pair(__pc, __first_args, __second_args, typename __make_tuple_indices<sizeof...(_Args1)>::type(), typename __make_tuple_indices<sizeof...(_Args2) >::type()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair& operator=(typename conditional< is_copy_assignable<first_type>::value && is_copy_assignable<second_type>::value, pair, __nat>::type const& __p) noexcept(is_nothrow_copy_assignable<first_type>::value && is_nothrow_copy_assignable<second_type>::value) { first = __p.first; second = __p.second; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair& operator=(typename conditional< is_move_assignable<first_type>::value && is_move_assignable<second_type>::value, pair, __nat>::type&& __p) noexcept(is_nothrow_move_assignable<first_type>::value && is_nothrow_move_assignable<second_type>::value) { first = std::__1::forward<first_type>(__p.first); second = std::__1::forward<second_type>(__p.second); return *this; } template <class _Tuple, _EnableB< _CheckTLC<_Tuple>::template __enable_assign<_Tuple>() > = false> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair& operator=(_Tuple&& __p) { first = std::__1::get<0>(std::__1::forward<_Tuple>(__p)); second = std::__1::get<1>(std::__1::forward<_Tuple>(__p)); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(pair& __p) noexcept(__is_nothrow_swappable<first_type>::value && __is_nothrow_swappable<second_type>::value) { using std::__1::swap; swap(first, __p.first); swap(second, __p.second); } private: template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair(piecewise_construct_t, tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args, __tuple_indices<_I1...>, __tuple_indices<_I2...>); }; template<class _T1, class _T2> pair(_T1, _T2) -> pair<_T1, _T2>; template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) { return !(__x == __y); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) { return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator> (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) { return __y < __x; } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) { return !(__x < __y); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y) { return !(__y < __x); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < __is_swappable<_T1>::value && __is_swappable<_T2>::value, void >::type swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) noexcept((__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value)) { __x.swap(__y); } template <class _Tp> struct __unwrap_reference { typedef _Tp type; }; template <class _Tp> struct __unwrap_reference<reference_wrapper<_Tp> > { typedef _Tp& type; }; # 653 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 template <class _Tp> struct __unwrap_ref_decay : __unwrap_reference<typename decay<_Tp>::type> { }; template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type> make_pair(_T1&& __t1, _T2&& __t2) { return pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type> (std::__1::forward<_T1>(__t1), std::__1::forward<_T2>(__t2)); } # 685 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) tuple_size<pair<_T1, _T2> > : public integral_constant<size_t, 2> {}; template <size_t _Ip, class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, pair<_T1, _T2> > { static_assert(_Ip < 2, "Index out of bounds in std::tuple_element<std::pair<T1, T2>>"); }; template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) tuple_element<0, pair<_T1, _T2> > { typedef _T1 type; }; template <class _T1, class _T2> struct __attribute__ ((__type_visibility__("default"))) tuple_element<1, pair<_T1, _T2> > { typedef _T2 type; }; template <size_t _Ip> struct __get_pair; template <> struct __get_pair<0> { template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1& get(pair<_T1, _T2>& __p) noexcept {return __p.first;} template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _T1& get(const pair<_T1, _T2>& __p) noexcept {return __p.first;} template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1&& get(pair<_T1, _T2>&& __p) noexcept {return std::__1::forward<_T1>(__p.first);} template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _T1&& get(const pair<_T1, _T2>&& __p) noexcept {return std::__1::forward<const _T1>(__p.first);} }; template <> struct __get_pair<1> { template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T2& get(pair<_T1, _T2>& __p) noexcept {return __p.second;} template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _T2& get(const pair<_T1, _T2>& __p) noexcept {return __p.second;} template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T2&& get(pair<_T1, _T2>&& __p) noexcept {return std::__1::forward<_T2>(__p.second);} template <class _T1, class _T2> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _T2&& get(const pair<_T1, _T2>&& __p) noexcept {return std::__1::forward<const _T2>(__p.second);} }; template <size_t _Ip, class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type& get(pair<_T1, _T2>& __p) noexcept { return __get_pair<_Ip>::get(__p); } template <size_t _Ip, class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type& get(const pair<_T1, _T2>& __p) noexcept { return __get_pair<_Ip>::get(__p); } template <size_t _Ip, class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type&& get(pair<_T1, _T2>&& __p) noexcept { return __get_pair<_Ip>::get(std::__1::move(__p)); } template <size_t _Ip, class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type&& get(const pair<_T1, _T2>&& __p) noexcept { return __get_pair<_Ip>::get(std::__1::move(__p)); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 & get(pair<_T1, _T2>& __p) noexcept { return __get_pair<0>::get(__p); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 const & get(pair<_T1, _T2> const& __p) noexcept { return __get_pair<0>::get(__p); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 && get(pair<_T1, _T2>&& __p) noexcept { return __get_pair<0>::get(std::__1::move(__p)); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 const && get(pair<_T1, _T2> const&& __p) noexcept { return __get_pair<0>::get(std::__1::move(__p)); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 & get(pair<_T2, _T1>& __p) noexcept { return __get_pair<1>::get(__p); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 const & get(pair<_T2, _T1> const& __p) noexcept { return __get_pair<1>::get(__p); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 && get(pair<_T2, _T1>&& __p) noexcept { return __get_pair<1>::get(std::__1::move(__p)); } template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 const && get(pair<_T2, _T1> const&& __p) noexcept { return __get_pair<1>::get(std::__1::move(__p)); } template<class _Tp, _Tp... _Ip> struct __attribute__ ((__type_visibility__("default"))) integer_sequence { typedef _Tp value_type; static_assert( is_integral<_Tp>::value, "std::integer_sequence can only be instantiated with an integral type" ); static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t size() noexcept { return sizeof...(_Ip); } }; template<size_t... _Ip> using index_sequence = integer_sequence<size_t, _Ip...>; template <class _Tp, _Tp _Ep> using __make_integer_sequence = __make_integer_seq<integer_sequence, _Tp, _Ep>; # 906 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 template<class _Tp, _Tp _Np> using make_integer_sequence = __make_integer_sequence<_Tp, _Np>; template<size_t _Np> using make_index_sequence = make_integer_sequence<size_t, _Np>; template<class... _Tp> using index_sequence_for = make_index_sequence<sizeof...(_Tp)>; template<class _T1, class _T2 = _T1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _T1 exchange(_T1& __obj, _T2 && __new_value) { _T1 __old_value = std::__1::move(__obj); __obj = std::__1::forward<_T2>(__new_value); return __old_value; } struct __attribute__ ((__visibility__("default"))) in_place_t { explicit in_place_t() = default; }; inline constexpr in_place_t in_place{}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) in_place_type_t { explicit in_place_type_t() = default; }; template <class _Tp> inline constexpr in_place_type_t<_Tp> in_place_type{}; template <size_t _Idx> struct __attribute__ ((__visibility__("default"))) in_place_index_t { explicit in_place_index_t() = default; }; template <size_t _Idx> inline constexpr in_place_index_t<_Idx> in_place_index{}; template <class _Tp> struct __is_inplace_type_imp : false_type {}; template <class _Tp> struct __is_inplace_type_imp<in_place_type_t<_Tp>> : true_type {}; template <class _Tp> using __is_inplace_type = __is_inplace_type_imp<__uncvref_t<_Tp>>; template <class _Tp> struct __is_inplace_index_imp : false_type {}; template <size_t _Idx> struct __is_inplace_index_imp<in_place_index_t<_Idx>> : true_type {}; template <class _Tp> using __is_inplace_index = __is_inplace_index_imp<__uncvref_t<_Tp>>; template <class _Arg, class _Result> struct __attribute__ ((__type_visibility__("default"))) unary_function { typedef _Arg argument_type; typedef _Result result_type; }; template <class _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Size __loadword(const void* __p) { _Size __r; std::memcpy(&__r, __p, sizeof(__r)); return __r; } template <class _Size, size_t = sizeof(_Size)*8> struct __murmur2_or_cityhash; template <class _Size> struct __murmur2_or_cityhash<_Size, 32> { inline _Size operator()(const void* __key, _Size __len) __attribute__((__no_sanitize__("unsigned-integer-overflow"))); }; template <class _Size> _Size __murmur2_or_cityhash<_Size, 32>::operator()(const void* __key, _Size __len) { const _Size __m = 0x5bd1e995; const _Size __r = 24; _Size __h = __len; const unsigned char* __data = static_cast<const unsigned char*>(__key); for (; __len >= 4; __data += 4, __len -= 4) { _Size __k = __loadword<_Size>(__data); __k *= __m; __k ^= __k >> __r; __k *= __m; __h *= __m; __h ^= __k; } switch (__len) { case 3: __h ^= __data[2] << 16; [[fallthrough]]; case 2: __h ^= __data[1] << 8; [[fallthrough]]; case 1: __h ^= __data[0]; __h *= __m; } __h ^= __h >> 13; __h *= __m; __h ^= __h >> 15; return __h; } template <class _Size> struct __murmur2_or_cityhash<_Size, 64> { inline _Size operator()(const void* __key, _Size __len) __attribute__((__no_sanitize__("unsigned-integer-overflow"))); private: static const _Size __k0 = 0xc3a5c85c97cb3127ULL; static const _Size __k1 = 0xb492b66fbe98f273ULL; static const _Size __k2 = 0x9ae16a3b2f90404fULL; static const _Size __k3 = 0xc949d7c7509e6557ULL; static _Size __rotate(_Size __val, int __shift) { return __shift == 0 ? __val : ((__val >> __shift) | (__val << (64 - __shift))); } static _Size __rotate_by_at_least_1(_Size __val, int __shift) { return (__val >> __shift) | (__val << (64 - __shift)); } static _Size __shift_mix(_Size __val) { return __val ^ (__val >> 47); } static _Size __hash_len_16(_Size __u, _Size __v) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { const _Size __mul = 0x9ddfea08eb382d69ULL; _Size __a = (__u ^ __v) * __mul; __a ^= (__a >> 47); _Size __b = (__v ^ __a) * __mul; __b ^= (__b >> 47); __b *= __mul; return __b; } static _Size __hash_len_0_to_16(const char* __s, _Size __len) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { if (__len > 8) { const _Size __a = __loadword<_Size>(__s); const _Size __b = __loadword<_Size>(__s + __len - 8); return __hash_len_16(__a, __rotate_by_at_least_1(__b + __len, __len)) ^ __b; } if (__len >= 4) { const uint32_t __a = __loadword<uint32_t>(__s); const uint32_t __b = __loadword<uint32_t>(__s + __len - 4); return __hash_len_16(__len + (__a << 3), __b); } if (__len > 0) { const unsigned char __a = __s[0]; const unsigned char __b = __s[__len >> 1]; const unsigned char __c = __s[__len - 1]; const uint32_t __y = static_cast<uint32_t>(__a) + (static_cast<uint32_t>(__b) << 8); const uint32_t __z = __len + (static_cast<uint32_t>(__c) << 2); return __shift_mix(__y * __k2 ^ __z * __k3) * __k2; } return __k2; } static _Size __hash_len_17_to_32(const char *__s, _Size __len) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { const _Size __a = __loadword<_Size>(__s) * __k1; const _Size __b = __loadword<_Size>(__s + 8); const _Size __c = __loadword<_Size>(__s + __len - 8) * __k2; const _Size __d = __loadword<_Size>(__s + __len - 16) * __k0; return __hash_len_16(__rotate(__a - __b, 43) + __rotate(__c, 30) + __d, __a + __rotate(__b ^ __k3, 20) - __c + __len); } static pair<_Size, _Size> __weak_hash_len_32_with_seeds( _Size __w, _Size __x, _Size __y, _Size __z, _Size __a, _Size __b) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { __a += __w; __b = __rotate(__b + __a + __z, 21); const _Size __c = __a; __a += __x; __a += __y; __b += __rotate(__a, 44); return pair<_Size, _Size>(__a + __z, __b + __c); } static pair<_Size, _Size> __weak_hash_len_32_with_seeds( const char* __s, _Size __a, _Size __b) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { return __weak_hash_len_32_with_seeds(__loadword<_Size>(__s), __loadword<_Size>(__s + 8), __loadword<_Size>(__s + 16), __loadword<_Size>(__s + 24), __a, __b); } static _Size __hash_len_33_to_64(const char *__s, size_t __len) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { _Size __z = __loadword<_Size>(__s + 24); _Size __a = __loadword<_Size>(__s) + (__len + __loadword<_Size>(__s + __len - 16)) * __k0; _Size __b = __rotate(__a + __z, 52); _Size __c = __rotate(__a, 37); __a += __loadword<_Size>(__s + 8); __c += __rotate(__a, 7); __a += __loadword<_Size>(__s + 16); _Size __vf = __a + __z; _Size __vs = __b + __rotate(__a, 31) + __c; __a = __loadword<_Size>(__s + 16) + __loadword<_Size>(__s + __len - 32); __z += __loadword<_Size>(__s + __len - 8); __b = __rotate(__a + __z, 52); __c = __rotate(__a, 37); __a += __loadword<_Size>(__s + __len - 24); __c += __rotate(__a, 7); __a += __loadword<_Size>(__s + __len - 16); _Size __wf = __a + __z; _Size __ws = __b + __rotate(__a, 31) + __c; _Size __r = __shift_mix((__vf + __ws) * __k2 + (__wf + __vs) * __k0); return __shift_mix(__r * __k0 + __vs) * __k2; } }; template <class _Size> _Size __murmur2_or_cityhash<_Size, 64>::operator()(const void* __key, _Size __len) { const char* __s = static_cast<const char*>(__key); if (__len <= 32) { if (__len <= 16) { return __hash_len_0_to_16(__s, __len); } else { return __hash_len_17_to_32(__s, __len); } } else if (__len <= 64) { return __hash_len_33_to_64(__s, __len); } _Size __x = __loadword<_Size>(__s + __len - 40); _Size __y = __loadword<_Size>(__s + __len - 16) + __loadword<_Size>(__s + __len - 56); _Size __z = __hash_len_16(__loadword<_Size>(__s + __len - 48) + __len, __loadword<_Size>(__s + __len - 24)); pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64, __len, __z); pair<_Size, _Size> __w = __weak_hash_len_32_with_seeds(__s + __len - 32, __y + __k1, __x); __x = __x * __k1 + __loadword<_Size>(__s); __len = (__len - 1) & ~static_cast<_Size>(63); do { __x = __rotate(__x + __y + __v.first + __loadword<_Size>(__s + 8), 37) * __k1; __y = __rotate(__y + __v.second + __loadword<_Size>(__s + 48), 42) * __k1; __x ^= __w.second; __y += __v.first + __loadword<_Size>(__s + 40); __z = __rotate(__z + __w.first, 33) * __k1; __v = __weak_hash_len_32_with_seeds(__s, __v.second * __k1, __x + __w.first); __w = __weak_hash_len_32_with_seeds(__s + 32, __z + __w.second, __y + __loadword<_Size>(__s + 16)); std::swap(__z, __x); __s += 64; __len -= 64; } while (__len != 0); return __hash_len_16( __hash_len_16(__v.first, __w.first) + __shift_mix(__y) * __k1 + __z, __hash_len_16(__v.second, __w.second) + __x); } template <class _Tp, size_t = sizeof(_Tp) / sizeof(size_t)> struct __scalar_hash; template <class _Tp> struct __scalar_hash<_Tp, 0> : public unary_function<_Tp, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept { union { _Tp __t; size_t __a; } __u; __u.__a = 0; __u.__t = __v; return __u.__a; } }; template <class _Tp> struct __scalar_hash<_Tp, 1> : public unary_function<_Tp, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept { union { _Tp __t; size_t __a; } __u; __u.__t = __v; return __u.__a; } }; template <class _Tp> struct __scalar_hash<_Tp, 2> : public unary_function<_Tp, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept { union { _Tp __t; struct { size_t __a; size_t __b; } __s; } __u; __u.__t = __v; return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); } }; template <class _Tp> struct __scalar_hash<_Tp, 3> : public unary_function<_Tp, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept { union { _Tp __t; struct { size_t __a; size_t __b; size_t __c; } __s; } __u; __u.__t = __v; return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); } }; template <class _Tp> struct __scalar_hash<_Tp, 4> : public unary_function<_Tp, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept { union { _Tp __t; struct { size_t __a; size_t __b; size_t __c; size_t __d; } __s; } __u; __u.__t = __v; return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); } }; struct _PairT { size_t first; size_t second; }; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline size_t __hash_combine(size_t __lhs, size_t __rhs) noexcept { typedef __scalar_hash<_PairT> _HashT; const _PairT __p = {__lhs, __rhs}; return _HashT()(__p); } template<class _Tp> struct __attribute__ ((__type_visibility__("default"))) hash<_Tp*> : public unary_function<_Tp*, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp* __v) const noexcept { union { _Tp* __t; size_t __a; } __u; __u.__t = __v; return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u)); } }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<bool> : public unary_function<bool, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(bool __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<char> : public unary_function<char, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(char __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<signed char> : public unary_function<signed char, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(signed char __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<unsigned char> : public unary_function<unsigned char, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned char __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<char16_t> : public unary_function<char16_t, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(char16_t __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<char32_t> : public unary_function<char32_t, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(char32_t __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<wchar_t> : public unary_function<wchar_t, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(wchar_t __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<short> : public unary_function<short, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(short __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<unsigned short> : public unary_function<unsigned short, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned short __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<int> : public unary_function<int, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(int __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<unsigned int> : public unary_function<unsigned int, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned int __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<long> : public unary_function<long, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(long __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<unsigned long> : public unary_function<unsigned long, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned long __v) const noexcept {return static_cast<size_t>(__v);} }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<long long> : public __scalar_hash<long long> { }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<unsigned long long> : public __scalar_hash<unsigned long long> { }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<__int128_t> : public __scalar_hash<__int128_t> { }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<__uint128_t> : public __scalar_hash<__uint128_t> { }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<float> : public __scalar_hash<float> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(float __v) const noexcept { if (__v == 0.0) return 0; return __scalar_hash<float>::operator()(__v); } }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<double> : public __scalar_hash<double> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(double __v) const noexcept { if (__v == 0.0) return 0; return __scalar_hash<double>::operator()(__v); } }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<long double> : public __scalar_hash<long double> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(long double __v) const noexcept { if (__v == 0.0) return 0; # 1533 "/opt/toolchain/target/bin/../include/c++/v1/utility" 3 union { long double __t; struct { size_t __a; size_t __b; } __s; } __u; __u.__s.__a = 0; __u.__s.__b = 0; __u.__t = __v; return __u.__s.__a ^ __u.__s.__b; } }; template <class _Tp, bool = is_enum<_Tp>::value> struct __attribute__ ((__type_visibility__("default"))) __enum_hash : public unary_function<_Tp, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept { typedef typename underlying_type<_Tp>::type type; return hash<type>{}(static_cast<type>(__v)); } }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) __enum_hash<_Tp, false> { __enum_hash() = delete; __enum_hash(__enum_hash const&) = delete; __enum_hash& operator=(__enum_hash const&) = delete; }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) hash : public __enum_hash<_Tp> { }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<nullptr_t> : public unary_function<nullptr_t, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(nullptr_t) const noexcept { return 662607004ull; } }; template <class _Key, class _Hash> using __check_hash_requirements = integral_constant<bool, is_copy_constructible<_Hash>::value && is_move_constructible<_Hash>::value && __invokable_r<size_t, _Hash, _Key const&>::value >; template <class _Key, class _Hash = std::hash<_Key> > using __has_enabled_hash = integral_constant<bool, __check_hash_requirements<_Key, _Hash>::value && is_default_constructible<_Hash>::value >; template <class _Type, class> using __enable_hash_helper_imp = _Type; template <class _Type, class ..._Keys> using __enable_hash_helper = __enable_hash_helper_imp<_Type, typename enable_if<__all<__has_enabled_hash<_Keys>::value...>::value>::type >; } } # 643 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/memory" 1 3 # 653 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/typeinfo" 1 3 # 60 "/opt/toolchain/target/bin/../include/c++/v1/typeinfo" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/exception" 1 3 # 81 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cstdlib" 1 3 # 85 "/opt/toolchain/target/bin/../include/c++/v1/cstdlib" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 86 "/opt/toolchain/target/bin/../include/c++/v1/cstdlib" 2 3 # 89 "/opt/toolchain/target/bin/../include/c++/v1/cstdlib" 3 namespace std { inline namespace __1 { using ::size_t; using ::div_t; using ::ldiv_t; using ::lldiv_t; using ::atof; using ::atoi; using ::atol; using ::atoll; using ::strtod; using ::strtof; using ::strtold; using ::strtol; using ::strtoll; using ::strtoul; using ::strtoull; using ::rand; using ::srand; using ::calloc; using ::free; using ::malloc; using ::realloc; using ::abort; using ::atexit; using ::exit; using ::_Exit; using ::getenv; using ::system; using ::bsearch; using ::qsort; using ::abs; using ::labs; using ::llabs; using ::div; using ::ldiv; using ::lldiv; using ::mblen; using ::mbtowc; using ::wctomb; using ::mbstowcs; using ::wcstombs; using ::at_quick_exit; using ::quick_exit; using ::aligned_alloc; } } # 82 "/opt/toolchain/target/bin/../include/c++/v1/exception" 2 3 # 91 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 namespace std { class __attribute__ ((__visibility__("default"))) exception { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) exception() noexcept {} virtual ~exception() noexcept; virtual const char* what() const noexcept; }; class __attribute__ ((__visibility__("default"))) bad_exception : public exception { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bad_exception() noexcept {} virtual ~bad_exception() noexcept; virtual const char* what() const noexcept; }; # 124 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 typedef void (*terminate_handler)(); __attribute__ ((__visibility__("default"))) terminate_handler set_terminate(terminate_handler) noexcept; __attribute__ ((__visibility__("default"))) terminate_handler get_terminate() noexcept; [[noreturn]] __attribute__ ((__visibility__("default"))) void terminate() noexcept; __attribute__ ((__visibility__("default"))) bool uncaught_exception() noexcept; __attribute__ ((__visibility__("default"))) int uncaught_exceptions() noexcept; class __attribute__ ((__visibility__("default"))) exception_ptr; __attribute__ ((__visibility__("default"))) exception_ptr current_exception() noexcept; [[noreturn]] __attribute__ ((__visibility__("default"))) void rethrow_exception(exception_ptr); class __attribute__ ((__visibility__("default"))) exception_ptr { void* __ptr_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) exception_ptr() noexcept : __ptr_() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) exception_ptr(nullptr_t) noexcept : __ptr_() {} exception_ptr(const exception_ptr&) noexcept; exception_ptr& operator=(const exception_ptr&) noexcept; ~exception_ptr() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept {return __ptr_ != nullptr;} friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const exception_ptr& __x, const exception_ptr& __y) noexcept {return __x.__ptr_ == __y.__ptr_;} friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const exception_ptr& __x, const exception_ptr& __y) noexcept {return !(__x == __y);} friend __attribute__ ((__visibility__("default"))) exception_ptr current_exception() noexcept; friend __attribute__ ((__visibility__("default"))) void rethrow_exception(exception_ptr); }; template<class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) exception_ptr make_exception_ptr(_Ep __e) noexcept { # 179 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 ((void)__e); std::__1::abort(); } # 234 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 class __attribute__ ((__visibility__("default"))) nested_exception { exception_ptr __ptr_; public: nested_exception() noexcept; virtual ~nested_exception() noexcept; [[noreturn]] void rethrow_nested() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) exception_ptr nested_ptr() const noexcept {return __ptr_;} }; template <class _Tp> struct __nested : public _Tp, public nested_exception { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __nested(const _Tp& __t) : _Tp(__t) {} }; # 287 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 template <class _Tp> [[noreturn]] void throw_with_nested(_Tp&& __t) { # 305 "/opt/toolchain/target/bin/../include/c++/v1/exception" 3 ((void)__t); } template <class _From, class _To> struct __can_dynamic_cast : public bool_constant<(is_polymorphic<_From>::value && (!is_base_of<_To, _From>::value || is_convertible<const _From*, const _To*>::value))> {}; template <class _Ep> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void rethrow_if_nested(const _Ep& __e, typename enable_if< __can_dynamic_cast<_Ep, nested_exception>::value>::type* = 0) { const nested_exception* __nep = dynamic_cast<const nested_exception*>(std::__1::addressof(__e)); if (__nep) __nep->rethrow_nested(); } template <class _Ep> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void rethrow_if_nested(const _Ep&, typename enable_if<!__can_dynamic_cast<_Ep, nested_exception>::value>::type* = 0) { } } # 61 "/opt/toolchain/target/bin/../include/c++/v1/typeinfo" 2 3 # 69 "/opt/toolchain/target/bin/../include/c++/v1/typeinfo" 3 namespace std { # 159 "/opt/toolchain/target/bin/../include/c++/v1/typeinfo" 3 struct __type_info_implementations { struct __string_impl_base { typedef const char* __type_name_t; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) constexpr static const char* __type_name_to_string(__type_name_t __v) noexcept { return __v; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) constexpr static __type_name_t __string_to_type_name(const char* __v) noexcept { return __v; } }; struct __unique_impl : __string_impl_base { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static size_t __hash(__type_name_t __v) noexcept { return reinterpret_cast<size_t>(__v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static bool __eq(__type_name_t __lhs, __type_name_t __rhs) noexcept { return __lhs == __rhs; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static bool __lt(__type_name_t __lhs, __type_name_t __rhs) noexcept { return __lhs < __rhs; } }; struct __non_unique_impl : __string_impl_base { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static size_t __hash(__type_name_t __ptr) noexcept { size_t __hash = 5381; while (unsigned char __c = static_cast<unsigned char>(*__ptr++)) __hash = (__hash * 33) ^ __c; return __hash; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static bool __eq(__type_name_t __lhs, __type_name_t __rhs) noexcept { return __lhs == __rhs || __builtin_strcmp(__lhs, __rhs) == 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static bool __lt(__type_name_t __lhs, __type_name_t __rhs) noexcept { return __builtin_strcmp(__lhs, __rhs) < 0; } }; struct __non_unique_arm_rtti_bit_impl { typedef uintptr_t __type_name_t; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static const char* __type_name_to_string(__type_name_t __v) noexcept { return reinterpret_cast<const char*>(__v & ~__non_unique_rtti_bit::value); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static __type_name_t __string_to_type_name(const char* __v) noexcept { return reinterpret_cast<__type_name_t>(__v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static size_t __hash(__type_name_t __v) noexcept { if (__is_type_name_unique(__v)) return reinterpret_cast<size_t>(__v); return __non_unique_impl::__hash(__type_name_to_string(__v)); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static bool __eq(__type_name_t __lhs, __type_name_t __rhs) noexcept { if (__lhs == __rhs) return true; if (__is_type_name_unique(__lhs, __rhs)) return false; return __builtin_strcmp(__type_name_to_string(__lhs), __type_name_to_string(__rhs)) == 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) static bool __lt(__type_name_t __lhs, __type_name_t __rhs) noexcept { if (__is_type_name_unique(__lhs, __rhs)) return __lhs < __rhs; return __builtin_strcmp(__type_name_to_string(__lhs), __type_name_to_string(__rhs)) < 0; } private: typedef std::integral_constant<__type_name_t, (1ULL << ((8 * sizeof(__type_name_t)) - 1))> __non_unique_rtti_bit; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static bool __is_type_name_unique(__type_name_t __lhs) noexcept { return !(__lhs & __non_unique_rtti_bit::value); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static bool __is_type_name_unique(__type_name_t __lhs, __type_name_t __rhs) noexcept { return !((__lhs & __rhs) & __non_unique_rtti_bit::value); } }; typedef __unique_impl __impl; }; class __attribute__ ((__visibility__("default"))) type_info { type_info& operator=(const type_info&); type_info(const type_info&); protected: typedef __type_info_implementations::__impl __impl; __impl::__type_name_t __type_name; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit type_info(const char* __n) : __type_name(__impl::__string_to_type_name(__n)) {} public: virtual ~type_info(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char* name() const noexcept { return __impl::__type_name_to_string(__type_name); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool before(const type_info& __arg) const noexcept { return __impl::__lt(__type_name, __arg.__type_name); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t hash_code() const noexcept { return __impl::__hash(__type_name); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const type_info& __arg) const noexcept { return __impl::__eq(__type_name, __arg.__type_name); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const type_info& __arg) const noexcept { return !operator==(__arg); } }; class __attribute__ ((__visibility__("default"))) bad_cast : public exception { public: bad_cast() noexcept; virtual ~bad_cast() noexcept; virtual const char* what() const noexcept; }; class __attribute__ ((__visibility__("default"))) bad_typeid : public exception { public: bad_typeid() noexcept; virtual ~bad_typeid() noexcept; virtual const char* what() const noexcept; }; } namespace std { inline namespace __1 { [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_bad_cast() { std::__1::abort(); } } } # 654 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/new" 1 3 # 104 "/opt/toolchain/target/bin/../include/c++/v1/new" 3 # 125 "/opt/toolchain/target/bin/../include/c++/v1/new" 3 namespace std { struct __attribute__ ((__visibility__("default"))) nothrow_t {}; extern __attribute__ ((__visibility__("default"))) const nothrow_t nothrow; class __attribute__ ((__visibility__("default"))) bad_alloc : public exception { public: bad_alloc() noexcept; virtual ~bad_alloc() noexcept; virtual const char* what() const noexcept; }; class __attribute__ ((__visibility__("default"))) bad_array_new_length : public bad_alloc { public: bad_array_new_length() noexcept; virtual ~bad_array_new_length() noexcept; virtual const char* what() const noexcept; }; typedef void (*new_handler)(); __attribute__ ((__visibility__("default"))) new_handler set_new_handler(new_handler) noexcept; __attribute__ ((__visibility__("default"))) new_handler get_new_handler() noexcept; [[noreturn]] __attribute__ ((__visibility__("default"))) void __throw_bad_alloc(); enum class __attribute__ ((__type_visibility__("default"))) align_val_t : size_t { }; # 176 "/opt/toolchain/target/bin/../include/c++/v1/new" 3 } # 186 "/opt/toolchain/target/bin/../include/c++/v1/new" 3 __attribute__ ((__visibility__("default"))) void* operator new(std::size_t __sz) ; __attribute__ ((__visibility__("default"))) void* operator new(std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__)); __attribute__ ((__visibility__("default"))) void operator delete(void* __p) noexcept; __attribute__ ((__visibility__("default"))) void operator delete(void* __p, const std::nothrow_t&) noexcept; __attribute__ ((__visibility__("default"))) void operator delete(void* __p, std::size_t __sz) noexcept; __attribute__ ((__visibility__("default"))) void* operator new[](std::size_t __sz) ; __attribute__ ((__visibility__("default"))) void* operator new[](std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__)); __attribute__ ((__visibility__("default"))) void operator delete[](void* __p) noexcept; __attribute__ ((__visibility__("default"))) void operator delete[](void* __p, const std::nothrow_t&) noexcept; __attribute__ ((__visibility__("default"))) void operator delete[](void* __p, std::size_t __sz) noexcept; __attribute__ ((__visibility__("default"))) void* operator new(std::size_t __sz, std::align_val_t) ; __attribute__ ((__visibility__("default"))) void* operator new(std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__)); __attribute__ ((__visibility__("default"))) void operator delete(void* __p, std::align_val_t) noexcept; __attribute__ ((__visibility__("default"))) void operator delete(void* __p, std::align_val_t, const std::nothrow_t&) noexcept; __attribute__ ((__visibility__("default"))) void operator delete(void* __p, std::size_t __sz, std::align_val_t) noexcept; __attribute__ ((__visibility__("default"))) void* operator new[](std::size_t __sz, std::align_val_t) ; __attribute__ ((__visibility__("default"))) void* operator new[](std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__)); __attribute__ ((__visibility__("default"))) void operator delete[](void* __p, std::align_val_t) noexcept; __attribute__ ((__visibility__("default"))) void operator delete[](void* __p, std::align_val_t, const std::nothrow_t&) noexcept; __attribute__ ((__visibility__("default"))) void operator delete[](void* __p, std::size_t __sz, std::align_val_t) noexcept; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void* operator new (std::size_t, void* __p) noexcept {return __p;} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void* operator new[](std::size_t, void* __p) noexcept {return __p;} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator delete (void*, void*) noexcept {} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator delete[](void*, void*) noexcept {} namespace std { inline namespace __1 { constexpr inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __is_overaligned_for_new(size_t __align) noexcept { return __align > 16UL; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void *__libcpp_allocate(size_t __size, size_t __align) { if (__is_overaligned_for_new(__align)) { const align_val_t __align_val = static_cast<align_val_t>(__align); return __builtin_operator_new(__size, __align_val); } return __builtin_operator_new(__size); } struct _DeallocateCaller { static inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __do_deallocate_handle_size_align(void *__ptr, size_t __size, size_t __align) { if (__is_overaligned_for_new(__align)) { const align_val_t __align_val = static_cast<align_val_t>(__align); return __do_deallocate_handle_size(__ptr, __size, __align_val); } else { return __do_deallocate_handle_size(__ptr, __size); } } static inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __do_deallocate_handle_align(void *__ptr, size_t __align) { if (__is_overaligned_for_new(__align)) { const align_val_t __align_val = static_cast<align_val_t>(__align); return __do_call(__ptr, __align_val); } else { return __do_call(__ptr); } } private: static inline void __do_deallocate_handle_size(void *__ptr, size_t __size) { ((void)__size); return __do_call(__ptr); } static inline void __do_deallocate_handle_size(void *__ptr, size_t __size, align_val_t __align) { ((void)__size); return __do_call(__ptr, __align); } private: template <class _A1, class _A2> static inline void __do_call(void *__ptr, _A1 __a1, _A2 __a2) { return __builtin_operator_delete(__ptr, __a1, __a2); } template <class _A1> static inline void __do_call(void *__ptr, _A1 __a1) { return __builtin_operator_delete(__ptr, __a1); } static inline void __do_call(void *__ptr) { return __builtin_operator_delete(__ptr); } }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __libcpp_deallocate(void* __ptr, size_t __size, size_t __align) { _DeallocateCaller::__do_deallocate_handle_size_align(__ptr, __size, __align); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __libcpp_deallocate_unsized(void* __ptr, size_t __align) { _DeallocateCaller::__do_deallocate_handle_align(__ptr, __align); } template <class _Tp> inline constexpr _Tp* __launder(_Tp* __p) noexcept { static_assert (!(is_function<_Tp>::value), "can't launder functions" ); static_assert (!(is_same<void, typename remove_cv<_Tp>::type>::value), "can't launder cv-void" ); return __builtin_launder(__p); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp* launder(_Tp* __p) noexcept { return std::__1::__launder(__p); } } } # 657 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 1 3 # 421 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__functional_base" 1 3 # 22 "/opt/toolchain/target/bin/../include/c++/v1/__functional_base" 3 namespace std { inline namespace __1 { template <class _Arg1, class _Arg2, class _Result> struct __attribute__ ((__type_visibility__("default"))) binary_function { typedef _Arg1 first_argument_type; typedef _Arg2 second_argument_type; typedef _Result result_type; }; template <class _Tp> struct __has_result_type { private: struct __two {char __lx; char __lxx;}; template <class _Up> static __two __test(...); template <class _Up> static char __test(typename _Up::result_type* = 0); public: static const bool value = sizeof(__test<_Tp>(0)) == 1; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) less : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x < __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) less<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) < std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) < std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) < std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp> struct __derives_from_unary_function { private: struct __two {char __lx; char __lxx;}; static __two __test(...); template <class _Ap, class _Rp> static unary_function<_Ap, _Rp> __test(const volatile unary_function<_Ap, _Rp>*); public: static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value; typedef decltype(__test((_Tp*)0)) type; }; template <class _Tp> struct __derives_from_binary_function { private: struct __two {char __lx; char __lxx;}; static __two __test(...); template <class _A1, class _A2, class _Rp> static binary_function<_A1, _A2, _Rp> __test(const volatile binary_function<_A1, _A2, _Rp>*); public: static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value; typedef decltype(__test((_Tp*)0)) type; }; template <class _Tp, bool = __derives_from_unary_function<_Tp>::value> struct __maybe_derive_from_unary_function : public __derives_from_unary_function<_Tp>::type { }; template <class _Tp> struct __maybe_derive_from_unary_function<_Tp, false> { }; template <class _Tp, bool = __derives_from_binary_function<_Tp>::value> struct __maybe_derive_from_binary_function : public __derives_from_binary_function<_Tp>::type { }; template <class _Tp> struct __maybe_derive_from_binary_function<_Tp, false> { }; template <class _Tp, bool = __has_result_type<_Tp>::value> struct __weak_result_type_imp : public __maybe_derive_from_unary_function<_Tp>, public __maybe_derive_from_binary_function<_Tp> { typedef typename _Tp::result_type result_type; }; template <class _Tp> struct __weak_result_type_imp<_Tp, false> : public __maybe_derive_from_unary_function<_Tp>, public __maybe_derive_from_binary_function<_Tp> { }; template <class _Tp> struct __weak_result_type : public __weak_result_type_imp<_Tp> { }; template <class _Rp> struct __weak_result_type<_Rp ()> { typedef _Rp result_type; }; template <class _Rp> struct __weak_result_type<_Rp (&)()> { typedef _Rp result_type; }; template <class _Rp> struct __weak_result_type<_Rp (*)()> { typedef _Rp result_type; }; template <class _Rp, class _A1> struct __weak_result_type<_Rp (_A1)> : public unary_function<_A1, _Rp> { }; template <class _Rp, class _A1> struct __weak_result_type<_Rp (&)(_A1)> : public unary_function<_A1, _Rp> { }; template <class _Rp, class _A1> struct __weak_result_type<_Rp (*)(_A1)> : public unary_function<_A1, _Rp> { }; template <class _Rp, class _Cp> struct __weak_result_type<_Rp (_Cp::*)()> : public unary_function<_Cp*, _Rp> { }; template <class _Rp, class _Cp> struct __weak_result_type<_Rp (_Cp::*)() const> : public unary_function<const _Cp*, _Rp> { }; template <class _Rp, class _Cp> struct __weak_result_type<_Rp (_Cp::*)() volatile> : public unary_function<volatile _Cp*, _Rp> { }; template <class _Rp, class _Cp> struct __weak_result_type<_Rp (_Cp::*)() const volatile> : public unary_function<const volatile _Cp*, _Rp> { }; template <class _Rp, class _A1, class _A2> struct __weak_result_type<_Rp (_A1, _A2)> : public binary_function<_A1, _A2, _Rp> { }; template <class _Rp, class _A1, class _A2> struct __weak_result_type<_Rp (*)(_A1, _A2)> : public binary_function<_A1, _A2, _Rp> { }; template <class _Rp, class _A1, class _A2> struct __weak_result_type<_Rp (&)(_A1, _A2)> : public binary_function<_A1, _A2, _Rp> { }; template <class _Rp, class _Cp, class _A1> struct __weak_result_type<_Rp (_Cp::*)(_A1)> : public binary_function<_Cp*, _A1, _Rp> { }; template <class _Rp, class _Cp, class _A1> struct __weak_result_type<_Rp (_Cp::*)(_A1) const> : public binary_function<const _Cp*, _A1, _Rp> { }; template <class _Rp, class _Cp, class _A1> struct __weak_result_type<_Rp (_Cp::*)(_A1) volatile> : public binary_function<volatile _Cp*, _A1, _Rp> { }; template <class _Rp, class _Cp, class _A1> struct __weak_result_type<_Rp (_Cp::*)(_A1) const volatile> : public binary_function<const volatile _Cp*, _A1, _Rp> { }; template <class _Rp, class _A1, class _A2, class _A3, class ..._A4> struct __weak_result_type<_Rp (_A1, _A2, _A3, _A4...)> { typedef _Rp result_type; }; template <class _Rp, class _A1, class _A2, class _A3, class ..._A4> struct __weak_result_type<_Rp (&)(_A1, _A2, _A3, _A4...)> { typedef _Rp result_type; }; template <class _Rp, class _A1, class _A2, class _A3, class ..._A4> struct __weak_result_type<_Rp (*)(_A1, _A2, _A3, _A4...)> { typedef _Rp result_type; }; template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3> struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...)> { typedef _Rp result_type; }; template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3> struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const> { typedef _Rp result_type; }; template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3> struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) volatile> { typedef _Rp result_type; }; template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3> struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile> { typedef _Rp result_type; }; template <class _Tp, class ..._Args> struct __invoke_return { typedef decltype(__invoke(std::__1::declval<_Tp>(), std::__1::declval<_Args>()...)) type; }; # 311 "/opt/toolchain/target/bin/../include/c++/v1/__functional_base" 3 template <class _Ret> struct __invoke_void_return_wrapper { template <class ..._Args> static _Ret __call(_Args&&... __args) { return __invoke(std::__1::forward<_Args>(__args)...); } # 340 "/opt/toolchain/target/bin/../include/c++/v1/__functional_base" 3 }; template <> struct __invoke_void_return_wrapper<void> { template <class ..._Args> static void __call(_Args&&... __args) { __invoke(std::__1::forward<_Args>(__args)...); } # 371 "/opt/toolchain/target/bin/../include/c++/v1/__functional_base" 3 }; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) reference_wrapper : public __weak_result_type<_Tp> { public: typedef _Tp type; private: type* __f_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference_wrapper(type& __f) noexcept : __f_(std::__1::addressof(__f)) {} private: reference_wrapper(type&&); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator type& () const noexcept {return *__f_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) type& get() const noexcept {return *__f_;} template <class... _ArgTypes> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __invoke_of<type&, _ArgTypes...>::type operator() (_ArgTypes&&... __args) const { return __invoke(get(), std::__1::forward<_ArgTypes>(__args)...); } # 509 "/opt/toolchain/target/bin/../include/c++/v1/__functional_base" 3 }; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference_wrapper<_Tp> ref(_Tp& __t) noexcept { return reference_wrapper<_Tp>(__t); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference_wrapper<_Tp> ref(reference_wrapper<_Tp> __t) noexcept { return ref(__t.get()); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference_wrapper<const _Tp> cref(const _Tp& __t) noexcept { return reference_wrapper<const _Tp>(__t); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference_wrapper<const _Tp> cref(reference_wrapper<_Tp> __t) noexcept { return cref(__t.get()); } template <class _Tp> void ref(const _Tp&&) = delete; template <class _Tp> void cref(const _Tp&&) = delete; template <class _Tp, class, class = void> struct __is_transparent : false_type {}; template <class _Tp, class _Up> struct __is_transparent<_Tp, _Up, typename __void_t<typename _Tp::is_transparent>::type> : true_type {}; struct __attribute__ ((__type_visibility__("default"))) allocator_arg_t { }; constexpr allocator_arg_t allocator_arg = allocator_arg_t(); template <class _Tp> struct __has_allocator_type { private: struct __two {char __lx; char __lxx;}; template <class _Up> static __two __test(...); template <class _Up> static char __test(typename _Up::allocator_type* = 0); public: static const bool value = sizeof(__test<_Tp>(0)) == 1; }; template <class _Tp, class _Alloc, bool = __has_allocator_type<_Tp>::value> struct __uses_allocator : public integral_constant<bool, is_convertible<_Alloc, typename _Tp::allocator_type>::value> { }; template <class _Tp, class _Alloc> struct __uses_allocator<_Tp, _Alloc, false> : public false_type { }; template <class _Tp, class _Alloc> struct __attribute__ ((__type_visibility__("default"))) uses_allocator : public __uses_allocator<_Tp, _Alloc> { }; template <class _Tp, class _Alloc> inline constexpr size_t uses_allocator_v = uses_allocator<_Tp, _Alloc>::value; template <class _Tp, class _Alloc, class ..._Args> struct __uses_alloc_ctor_imp { typedef typename __uncvref<_Alloc>::type _RawAlloc; static const bool __ua = uses_allocator<_Tp, _RawAlloc>::value; static const bool __ic = is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value; static const int value = __ua ? 2 - __ic : 0; }; template <class _Tp, class _Alloc, class ..._Args> struct __uses_alloc_ctor : integral_constant<int, __uses_alloc_ctor_imp<_Tp, _Alloc, _Args...>::value> {}; template <class _Tp, class _Allocator, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __user_alloc_construct_impl (integral_constant<int, 0>, _Tp *__storage, const _Allocator &, _Args &&... __args ) { new (__storage) _Tp (std::__1::forward<_Args>(__args)...); } template <class _Tp, class _Allocator, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __user_alloc_construct_impl (integral_constant<int, 1>, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) { new (__storage) _Tp (allocator_arg, __a, std::__1::forward<_Args>(__args)...); } template <class _Tp, class _Allocator, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __user_alloc_construct_impl (integral_constant<int, 2>, _Tp *__storage, const _Allocator &__a, _Args &&... __args ) { new (__storage) _Tp (std::__1::forward<_Args>(__args)..., __a); } } } # 422 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 2 3 # 434 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 namespace std { inline namespace __1 { struct __attribute__ ((__type_visibility__("default"))) input_iterator_tag {}; struct __attribute__ ((__type_visibility__("default"))) output_iterator_tag {}; struct __attribute__ ((__type_visibility__("default"))) forward_iterator_tag : public input_iterator_tag {}; struct __attribute__ ((__type_visibility__("default"))) bidirectional_iterator_tag : public forward_iterator_tag {}; struct __attribute__ ((__type_visibility__("default"))) random_access_iterator_tag : public bidirectional_iterator_tag {}; template <class _Tp> struct __has_iterator_typedefs { private: struct __two {char __lx; char __lxx;}; template <class _Up> static __two __test(...); template <class _Up> static char __test(typename std::__void_t<typename _Up::iterator_category>::type* = 0, typename std::__void_t<typename _Up::difference_type>::type* = 0, typename std::__void_t<typename _Up::value_type>::type* = 0, typename std::__void_t<typename _Up::reference>::type* = 0, typename std::__void_t<typename _Up::pointer>::type* = 0 ); public: static const bool value = sizeof(__test<_Tp>(0,0,0,0,0)) == 1; }; template <class _Tp> struct __has_iterator_category { private: struct __two {char __lx; char __lxx;}; template <class _Up> static __two __test(...); template <class _Up> static char __test(typename _Up::iterator_category* = 0); public: static const bool value = sizeof(__test<_Tp>(0)) == 1; }; template <class _Iter, bool> struct __iterator_traits_impl {}; template <class _Iter> struct __iterator_traits_impl<_Iter, true> { typedef typename _Iter::difference_type difference_type; typedef typename _Iter::value_type value_type; typedef typename _Iter::pointer pointer; typedef typename _Iter::reference reference; typedef typename _Iter::iterator_category iterator_category; }; template <class _Iter, bool> struct __iterator_traits {}; template <class _Iter> struct __iterator_traits<_Iter, true> : __iterator_traits_impl < _Iter, is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value || is_convertible<typename _Iter::iterator_category, output_iterator_tag>::value > {}; template <class _Iter> struct __attribute__ ((__type_visibility__("default"))) iterator_traits : __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> {}; template<class _Tp> struct __attribute__ ((__type_visibility__("default"))) iterator_traits<_Tp*> { typedef ptrdiff_t difference_type; typedef typename remove_cv<_Tp>::type value_type; typedef _Tp* pointer; typedef _Tp& reference; typedef random_access_iterator_tag iterator_category; }; template <class _Tp, class _Up, bool = __has_iterator_category<iterator_traits<_Tp> >::value> struct __has_iterator_category_convertible_to : public integral_constant<bool, is_convertible<typename iterator_traits<_Tp>::iterator_category, _Up>::value> {}; template <class _Tp, class _Up> struct __has_iterator_category_convertible_to<_Tp, _Up, false> : public false_type {}; template <class _Tp> struct __is_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {}; template <class _Tp> struct __is_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {}; template <class _Tp> struct __is_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {}; template <class _Tp> struct __is_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {}; template <class _Tp> struct __is_exactly_input_iterator : public integral_constant<bool, __has_iterator_category_convertible_to<_Tp, input_iterator_tag>::value && !__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value> {}; template<class _Category, class _Tp, class _Distance = ptrdiff_t, class _Pointer = _Tp*, class _Reference = _Tp&> struct __attribute__ ((__type_visibility__("default"))) iterator { typedef _Tp value_type; typedef _Distance difference_type; typedef _Pointer pointer; typedef _Reference reference; typedef _Category iterator_category; }; template <class _InputIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr void __advance(_InputIter& __i, typename iterator_traits<_InputIter>::difference_type __n, input_iterator_tag) { for (; __n > 0; --__n) ++__i; } template <class _BiDirIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr void __advance(_BiDirIter& __i, typename iterator_traits<_BiDirIter>::difference_type __n, bidirectional_iterator_tag) { if (__n >= 0) for (; __n > 0; --__n) ++__i; else for (; __n < 0; ++__n) --__i; } template <class _RandIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr void __advance(_RandIter& __i, typename iterator_traits<_RandIter>::difference_type __n, random_access_iterator_tag) { __i += __n; } template <class _InputIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr void advance(_InputIter& __i, typename iterator_traits<_InputIter>::difference_type __n) { ((void)0); __advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category()); } template <class _InputIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename iterator_traits<_InputIter>::difference_type __distance(_InputIter __first, _InputIter __last, input_iterator_tag) { typename iterator_traits<_InputIter>::difference_type __r(0); for (; __first != __last; ++__first) ++__r; return __r; } template <class _RandIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename iterator_traits<_RandIter>::difference_type __distance(_RandIter __first, _RandIter __last, random_access_iterator_tag) { return __last - __first; } template <class _InputIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename iterator_traits<_InputIter>::difference_type distance(_InputIter __first, _InputIter __last) { return __distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category()); } template <class _InputIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_input_iterator<_InputIter>::value, _InputIter >::type next(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) { ((void)0); std::__1::advance(__x, __n); return __x; } template <class _InputIter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_input_iterator<_InputIter>::value, _InputIter >::type prev(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) { ((void)0); std::__1::advance(__x, -__n); return __x; } template <class _Tp, class = void> struct __is_stashing_iterator : false_type {}; template <class _Tp> struct __is_stashing_iterator<_Tp, typename __void_t<typename _Tp::__stashing_iterator_tag>::type> : true_type {}; template <class _Iter> class __attribute__ ((__type_visibility__("default"))) reverse_iterator : public iterator<typename iterator_traits<_Iter>::iterator_category, typename iterator_traits<_Iter>::value_type, typename iterator_traits<_Iter>::difference_type, typename iterator_traits<_Iter>::pointer, typename iterator_traits<_Iter>::reference> { private: _Iter __t; static_assert(!__is_stashing_iterator<_Iter>::value, "The specified iterator type cannot be used with reverse_iterator; " "Using stashing iterators with reverse_iterator causes undefined behavior"); protected: _Iter current; public: typedef _Iter iterator_type; typedef typename iterator_traits<_Iter>::difference_type difference_type; typedef typename iterator_traits<_Iter>::reference reference; typedef typename iterator_traits<_Iter>::pointer pointer; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator() : __t(), current() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit reverse_iterator(_Iter __x) : __t(__x), current(__x) {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator(const reverse_iterator<_Up>& __u) : __t(__u.base()), current(__u.base()) {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator=(const reverse_iterator<_Up>& __u) { __t = current = __u.base(); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Iter base() const {return current;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator*() const {_Iter __tmp = current; return *--__tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pointer operator->() const {return std::__1::addressof(operator*());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator++() {--current; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator++(int) {reverse_iterator __tmp(*this); --current; return __tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator--() {++current; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator--(int) {reverse_iterator __tmp(*this); ++current; return __tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator+ (difference_type __n) const {return reverse_iterator(current - __n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator+=(difference_type __n) {current -= __n; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator- (difference_type __n) const {return reverse_iterator(current + __n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator-=(difference_type __n) {current += __n; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator[](difference_type __n) const {return *(*this + __n);} }; template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) { return __x.base() == __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) { return __x.base() > __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) { return __x.base() != __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) { return __x.base() < __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) { return __x.base() <= __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) { return __x.base() >= __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) -> decltype(__y.base() - __x.base()) { return __y.base() - __x.base(); } # 787 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 template <class _Iter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<_Iter> operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x) { return reverse_iterator<_Iter>(__x.base() - __n); } template <class _Iter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<_Iter> make_reverse_iterator(_Iter __i) { return reverse_iterator<_Iter>(__i); } template <class _Container> class __attribute__ ((__type_visibility__("default"))) back_insert_iterator : public iterator<output_iterator_tag, void, void, void, void> { protected: _Container* container; public: typedef _Container container_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit back_insert_iterator(_Container& __x) : container(std::__1::addressof(__x)) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) back_insert_iterator& operator=(const typename _Container::value_type& __value_) {container->push_back(__value_); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) back_insert_iterator& operator=(typename _Container::value_type&& __value_) {container->push_back(std::__1::move(__value_)); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) back_insert_iterator& operator*() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) back_insert_iterator& operator++() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) back_insert_iterator operator++(int) {return *this;} }; template <class _Container> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) back_insert_iterator<_Container> back_inserter(_Container& __x) { return back_insert_iterator<_Container>(__x); } template <class _Container> class __attribute__ ((__type_visibility__("default"))) front_insert_iterator : public iterator<output_iterator_tag, void, void, void, void> { protected: _Container* container; public: typedef _Container container_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit front_insert_iterator(_Container& __x) : container(std::__1::addressof(__x)) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) front_insert_iterator& operator=(const typename _Container::value_type& __value_) {container->push_front(__value_); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) front_insert_iterator& operator=(typename _Container::value_type&& __value_) {container->push_front(std::__1::move(__value_)); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) front_insert_iterator& operator*() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) front_insert_iterator& operator++() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) front_insert_iterator operator++(int) {return *this;} }; template <class _Container> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) front_insert_iterator<_Container> front_inserter(_Container& __x) { return front_insert_iterator<_Container>(__x); } template <class _Container> class __attribute__ ((__type_visibility__("default"))) insert_iterator : public iterator<output_iterator_tag, void, void, void, void> { protected: _Container* container; typename _Container::iterator iter; public: typedef _Container container_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator(_Container& __x, typename _Container::iterator __i) : container(std::__1::addressof(__x)), iter(__i) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator& operator=(const typename _Container::value_type& __value_) {iter = container->insert(iter, __value_); ++iter; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator& operator=(typename _Container::value_type&& __value_) {iter = container->insert(iter, std::__1::move(__value_)); ++iter; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator& operator*() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator& operator++() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator& operator++(int) {return *this;} }; template <class _Container> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) insert_iterator<_Container> inserter(_Container& __x, typename _Container::iterator __i) { return insert_iterator<_Container>(__x, __i); } template <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT>, class _Distance = ptrdiff_t> class __attribute__ ((__type_visibility__("default"))) istream_iterator : public iterator<input_iterator_tag, _Tp, _Distance, const _Tp*, const _Tp&> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_istream<_CharT,_Traits> istream_type; private: istream_type* __in_stream_; _Tp __value_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr istream_iterator() : __in_stream_(0), __value_() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istream_iterator(istream_type& __s) : __in_stream_(std::__1::addressof(__s)) { if (!(*__in_stream_ >> __value_)) __in_stream_ = 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Tp& operator*() const {return __value_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Tp* operator->() const {return std::__1::addressof((operator*()));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istream_iterator& operator++() { if (!(*__in_stream_ >> __value_)) __in_stream_ = 0; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istream_iterator operator++(int) {istream_iterator __t(*this); ++(*this); return __t;} template <class _Up, class _CharU, class _TraitsU, class _DistanceU> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const istream_iterator<_Up, _CharU, _TraitsU, _DistanceU>& __x, const istream_iterator<_Up, _CharU, _TraitsU, _DistanceU>& __y); template <class _Up, class _CharU, class _TraitsU, class _DistanceU> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const istream_iterator<_Up, _CharU, _TraitsU, _DistanceU>& __x, const istream_iterator<_Up, _CharU, _TraitsU, _DistanceU>& __y); }; template <class _Tp, class _CharT, class _Traits, class _Distance> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __x, const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __y) { return __x.__in_stream_ == __y.__in_stream_; } template <class _Tp, class _CharT, class _Traits, class _Distance> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __x, const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __y) { return !(__x == __y); } template <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) ostream_iterator : public iterator<output_iterator_tag, void, void, void, void> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_ostream<_CharT,_Traits> ostream_type; private: ostream_type* __out_stream_; const char_type* __delim_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostream_iterator(ostream_type& __s) noexcept : __out_stream_(std::__1::addressof(__s)), __delim_(0) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostream_iterator(ostream_type& __s, const _CharT* __delimiter) noexcept : __out_stream_(std::__1::addressof(__s)), __delim_(__delimiter) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostream_iterator& operator=(const _Tp& __value_) { *__out_stream_ << __value_; if (__delim_) *__out_stream_ << __delim_; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostream_iterator& operator*() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostream_iterator& operator++() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostream_iterator& operator++(int) {return *this;} }; template<class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) istreambuf_iterator : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type, _CharT*, _CharT> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename _Traits::int_type int_type; typedef basic_streambuf<_CharT,_Traits> streambuf_type; typedef basic_istream<_CharT,_Traits> istream_type; private: mutable streambuf_type* __sbuf_; class __proxy { char_type __keep_; streambuf_type* __sbuf_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __proxy(char_type __c, streambuf_type* __s) : __keep_(__c), __sbuf_(__s) {} friend class istreambuf_iterator; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type operator*() const {return __keep_;} }; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __test_for_eof() const { if (__sbuf_ && traits_type::eq_int_type(__sbuf_->sgetc(), traits_type::eof())) __sbuf_ = 0; return __sbuf_ == 0; } public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr istreambuf_iterator() noexcept : __sbuf_(0) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istreambuf_iterator(istream_type& __s) noexcept : __sbuf_(__s.rdbuf()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istreambuf_iterator(streambuf_type* __s) noexcept : __sbuf_(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istreambuf_iterator(const __proxy& __p) noexcept : __sbuf_(__p.__sbuf_) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type operator*() const {return static_cast<char_type>(__sbuf_->sgetc());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) istreambuf_iterator& operator++() { __sbuf_->sbumpc(); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __proxy operator++(int) { return __proxy(__sbuf_->sbumpc(), __sbuf_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool equal(const istreambuf_iterator& __b) const {return __test_for_eof() == __b.__test_for_eof();} }; template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const istreambuf_iterator<_CharT,_Traits>& __a, const istreambuf_iterator<_CharT,_Traits>& __b) {return __a.equal(__b);} template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const istreambuf_iterator<_CharT,_Traits>& __a, const istreambuf_iterator<_CharT,_Traits>& __b) {return !__a.equal(__b);} template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) ostreambuf_iterator : public iterator<output_iterator_tag, void, void, void, void> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef basic_streambuf<_CharT,_Traits> streambuf_type; typedef basic_ostream<_CharT,_Traits> ostream_type; private: streambuf_type* __sbuf_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostreambuf_iterator(ostream_type& __s) noexcept : __sbuf_(__s.rdbuf()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostreambuf_iterator(streambuf_type* __s) noexcept : __sbuf_(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostreambuf_iterator& operator=(_CharT __c) { if (__sbuf_ && traits_type::eq_int_type(__sbuf_->sputc(__c), traits_type::eof())) __sbuf_ = 0; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostreambuf_iterator& operator*() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostreambuf_iterator& operator++() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ostreambuf_iterator& operator++(int) {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool failed() const noexcept {return __sbuf_ == 0;} template <class _Ch, class _Tr> friend __attribute__ ((__visibility__("hidden"))) ostreambuf_iterator<_Ch, _Tr> __pad_and_output(ostreambuf_iterator<_Ch, _Tr> __s, const _Ch* __ob, const _Ch* __op, const _Ch* __oe, ios_base& __iob, _Ch __fl); }; template <class _Iter> class __attribute__ ((__type_visibility__("default"))) move_iterator { private: _Iter __i; public: typedef _Iter iterator_type; typedef typename iterator_traits<iterator_type>::iterator_category iterator_category; typedef typename iterator_traits<iterator_type>::value_type value_type; typedef typename iterator_traits<iterator_type>::difference_type difference_type; typedef iterator_type pointer; typedef typename iterator_traits<iterator_type>::reference __reference; typedef typename conditional< is_reference<__reference>::value, typename remove_reference<__reference>::type&&, __reference >::type reference; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator() : __i() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit move_iterator(_Iter __x) : __i(__x) {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator(const move_iterator<_Up>& __u) : __i(__u.base()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Iter base() const {return __i;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator*() const { return static_cast<reference>(*__i); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pointer operator->() const { return __i;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator& operator++() {++__i; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator operator++(int) {move_iterator __tmp(*this); ++__i; return __tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator& operator--() {--__i; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator operator--(int) {move_iterator __tmp(*this); --__i; return __tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator operator+ (difference_type __n) const {return move_iterator(__i + __n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator& operator+=(difference_type __n) {__i += __n; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator operator- (difference_type __n) const {return move_iterator(__i - __n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator& operator-=(difference_type __n) {__i -= __n; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator[](difference_type __n) const { return static_cast<reference>(__i[__n]); } }; template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) { return __x.base() == __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) { return __x.base() < __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) { return __x.base() != __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) { return __x.base() > __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) { return __x.base() >= __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) { return __x.base() <= __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto operator-(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y) -> decltype(__x.base() - __y.base()) { return __x.base() - __y.base(); } # 1223 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 template <class _Iter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator<_Iter> operator+(typename move_iterator<_Iter>::difference_type __n, const move_iterator<_Iter>& __x) { return move_iterator<_Iter>(__x.base() + __n); } template <class _Iter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr move_iterator<_Iter> make_move_iterator(_Iter __i) { return move_iterator<_Iter>(__i); } template <class _Iter> class __wrap_iter; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept -> decltype(__x.base() - __y.base()); template <class _Iter> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter<_Iter> operator+(typename __wrap_iter<_Iter>::difference_type, __wrap_iter<_Iter>) noexcept; template <class _Ip, class _Op> _Op __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) copy(_Ip, _Ip, _Op); template <class _B1, class _B2> _B2 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) copy_backward(_B1, _B1, _B2); template <class _Ip, class _Op> _Op __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) move(_Ip, _Ip, _Op); template <class _B1, class _B2> _B2 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) move_backward(_B1, _B1, _B2); template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < is_trivially_copy_assignable<_Tp>::value, _Tp* >::type __unwrap_iter(__wrap_iter<_Tp*>); # 1320 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 template <class _Iter> class __wrap_iter { public: typedef _Iter iterator_type; typedef typename iterator_traits<iterator_type>::iterator_category iterator_category; typedef typename iterator_traits<iterator_type>::value_type value_type; typedef typename iterator_traits<iterator_type>::difference_type difference_type; typedef typename iterator_traits<iterator_type>::pointer pointer; typedef typename iterator_traits<iterator_type>::reference reference; private: iterator_type __i; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter() noexcept : __i{} { } template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter(const __wrap_iter<_Up>& __u, typename enable_if<is_convertible<_Up, iterator_type>::value>::type* = 0) noexcept : __i(__u.base()) { } # 1374 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator*() const noexcept { return *__i; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pointer operator->() const noexcept { return (pointer)std::__1::addressof(*__i); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter& operator++() noexcept { ++__i; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter operator++(int) noexcept {__wrap_iter __tmp(*this); ++(*this); return __tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter& operator--() noexcept { --__i; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter operator--(int) noexcept {__wrap_iter __tmp(*this); --(*this); return __tmp;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter operator+ (difference_type __n) const noexcept {__wrap_iter __w(*this); __w += __n; return __w;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter& operator+=(difference_type __n) noexcept { __i += __n; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter operator- (difference_type __n) const noexcept {return *this + (-__n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter& operator-=(difference_type __n) noexcept {*this += -__n; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator[](difference_type __n) const noexcept { return __i[__n]; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr iterator_type base() const noexcept {return __i;} private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter(iterator_type __x) noexcept : __i(__x) {} template <class _Up> friend class __wrap_iter; template <class _CharT, class _Traits, class _Alloc> friend class basic_string; template <class _Tp, class _Alloc> friend class __attribute__ ((__type_visibility__("default"))) vector; template <class _Tp, size_t> friend class __attribute__ ((__type_visibility__("default"))) span; template <class _Iter1, class _Iter2> constexpr friend bool operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> constexpr friend bool operator<(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> constexpr friend bool operator!=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> constexpr friend bool operator>(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> constexpr friend bool operator>=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> constexpr friend bool operator<=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) noexcept; template <class _Iter1, class _Iter2> constexpr friend auto operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept -> decltype(__x.base() - __y.base()); template <class _Iter1> constexpr friend __wrap_iter<_Iter1> operator+(typename __wrap_iter<_Iter1>::difference_type, __wrap_iter<_Iter1>) noexcept; template <class _Ip, class _Op> friend _Op copy(_Ip, _Ip, _Op); template <class _B1, class _B2> friend _B2 copy_backward(_B1, _B1, _B2); template <class _Ip, class _Op> friend _Op move(_Ip, _Ip, _Op); template <class _B1, class _B2> friend _B2 move_backward(_B1, _B1, _B2); template <class _Tp> constexpr friend typename enable_if < is_trivially_copy_assignable<_Tp>::value, _Tp* >::type __unwrap_iter(__wrap_iter<_Tp*>); # 1526 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 }; template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept { return __x.base() == __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept { return __x.base() < __y.base(); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept { return !(__x == __y); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept { return __y < __x; } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept { return !(__x < __y); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept { return !(__y < __x); } template <class _Iter1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) noexcept { return !(__x == __y); } template <class _Iter1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) noexcept { return __y < __x; } template <class _Iter1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) noexcept { return !(__x < __y); } template <class _Iter1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) noexcept { return !(__y < __x); } template <class _Iter1, class _Iter2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) noexcept -> decltype(__x.base() - __y.base()) { return __x.base() - __y.base(); } # 1639 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 template <class _Iter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __wrap_iter<_Iter> operator+(typename __wrap_iter<_Iter>::difference_type __n, __wrap_iter<_Iter> __x) noexcept { __x += __n; return __x; } template <class _Iter> struct __libcpp_is_trivial_iterator : public bool_constant<(is_pointer<_Iter>::value)> {}; template <class _Iter> struct __libcpp_is_trivial_iterator<move_iterator<_Iter> > : public bool_constant<(__libcpp_is_trivial_iterator<_Iter>::value)> {}; template <class _Iter> struct __libcpp_is_trivial_iterator<reverse_iterator<_Iter> > : public bool_constant<(__libcpp_is_trivial_iterator<_Iter>::value)> {}; template <class _Iter> struct __libcpp_is_trivial_iterator<__wrap_iter<_Iter> > : public bool_constant<(__libcpp_is_trivial_iterator<_Iter>::value)> {}; template <class _Tp, size_t _Np> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp* begin(_Tp (&__array)[_Np]) { return __array; } template <class _Tp, size_t _Np> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp* end(_Tp (&__array)[_Np]) { return __array + _Np; } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto begin(_Cp& __c) -> decltype(__c.begin()) { return __c.begin(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto begin(const _Cp& __c) -> decltype(__c.begin()) { return __c.begin(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto end(_Cp& __c) -> decltype(__c.end()) { return __c.end(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto end(const _Cp& __c) -> decltype(__c.end()) { return __c.end(); } template <class _Tp, size_t _Np> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<_Tp*> rbegin(_Tp (&__array)[_Np]) { return reverse_iterator<_Tp*>(__array + _Np); } template <class _Tp, size_t _Np> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<_Tp*> rend(_Tp (&__array)[_Np]) { return reverse_iterator<_Tp*>(__array); } template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<const _Ep*> rbegin(initializer_list<_Ep> __il) { return reverse_iterator<const _Ep*>(__il.end()); } template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<const _Ep*> rend(initializer_list<_Ep> __il) { return reverse_iterator<const _Ep*>(__il.begin()); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto cbegin(const _Cp& __c) -> decltype(std::__1::begin(__c)) { return std::__1::begin(__c); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto cend(const _Cp& __c) -> decltype(std::__1::end(__c)) { return std::__1::end(__c); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto rbegin(_Cp& __c) -> decltype(__c.rbegin()) { return __c.rbegin(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto rbegin(const _Cp& __c) -> decltype(__c.rbegin()) { return __c.rbegin(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto rend(_Cp& __c) -> decltype(__c.rend()) { return __c.rend(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto rend(const _Cp& __c) -> decltype(__c.rend()) { return __c.rend(); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto crbegin(const _Cp& __c) -> decltype(std::__1::rbegin(__c)) { return std::__1::rbegin(__c); } template <class _Cp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto crend(const _Cp& __c) -> decltype(std::__1::rend(__c)) { return std::__1::rend(__c); } # 1857 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 template <class _Cont> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto size(const _Cont& __c) noexcept(noexcept(__c.size())) -> decltype (__c.size()) { return __c.size(); } template <class _Tp, size_t _Sz> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t size(const _Tp (&)[_Sz]) noexcept { return _Sz; } # 1881 "/opt/toolchain/target/bin/../include/c++/v1/iterator" 3 template <class _Cont> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto empty(const _Cont& __c) noexcept(noexcept(__c.empty())) -> decltype (__c.empty()) { return __c.empty(); } template <class _Tp, size_t _Sz> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool empty(const _Tp (&)[_Sz]) noexcept { return false; } template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool empty(initializer_list<_Ep> __il) noexcept { return __il.size() == 0; } template <class _Cont> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto data(_Cont& __c) noexcept(noexcept(__c.data())) -> decltype (__c.data()) { return __c.data(); } template <class _Cont> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto data(const _Cont& __c) noexcept(noexcept(__c.data())) -> decltype (__c.data()) { return __c.data(); } template <class _Tp, size_t _Sz> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp* data(_Tp (&__array)[_Sz]) noexcept { return __array; } template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Ep* data(initializer_list<_Ep> __il) noexcept { return __il.begin(); } } } # 660 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/tuple" 1 3 # 147 "/opt/toolchain/target/bin/../include/c++/v1/tuple" 3 namespace std { inline namespace __1 { template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value && !__libcpp_is_final<_Hp>::value > class __tuple_leaf; template <size_t _Ip, class _Hp, bool _Ep> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__tuple_leaf<_Ip, _Hp, _Ep>& __x, __tuple_leaf<_Ip, _Hp, _Ep>& __y) noexcept(__is_nothrow_swappable<_Hp>::value) { swap(__x.get(), __y.get()); } template <size_t _Ip, class _Hp, bool> class __tuple_leaf { _Hp __value_; template <class _Tp> static constexpr bool __can_bind_reference() { return !__reference_binds_to_temporary(_Hp, _Tp); } __tuple_leaf& operator=(const __tuple_leaf&); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __tuple_leaf() noexcept(is_nothrow_default_constructible<_Hp>::value) : __value_() {static_assert(!is_reference<_Hp>::value, "Attempted to default construct a reference element in a tuple");} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf(integral_constant<int, 0>, const _Alloc&) : __value_() {static_assert(!is_reference<_Hp>::value, "Attempted to default construct a reference element in a tuple");} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a) : __value_(allocator_arg_t(), __a) {static_assert(!is_reference<_Hp>::value, "Attempted to default construct a reference element in a tuple");} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a) : __value_(__a) {static_assert(!is_reference<_Hp>::value, "Attempted to default construct a reference element in a tuple");} template <class _Tp, class = typename enable_if< __lazy_and< __lazy_not<is_same<typename __uncvref<_Tp>::type, __tuple_leaf>> , is_constructible<_Hp, _Tp> >::value >::type > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __tuple_leaf(_Tp&& __t) noexcept((is_nothrow_constructible<_Hp, _Tp>::value)) : __value_(std::__1::forward<_Tp>(__t)) {static_assert(__can_bind_reference<_Tp&&>(), "Attempted construction of reference element binds to a temporary whose lifetime has ended");} template <class _Tp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t) : __value_(std::__1::forward<_Tp>(__t)) {static_assert(__can_bind_reference<_Tp&&>(), "Attempted construction of reference element binds to a temporary whose lifetime has ended");} template <class _Tp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t) : __value_(allocator_arg_t(), __a, std::__1::forward<_Tp>(__t)) {static_assert(!is_reference<_Hp>::value, "Attempted to uses-allocator construct a reference element in a tuple");} template <class _Tp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t) : __value_(std::__1::forward<_Tp>(__t), __a) {static_assert(!is_reference<_Hp>::value, "Attempted to uses-allocator construct a reference element in a tuple");} __tuple_leaf(const __tuple_leaf& __t) = default; __tuple_leaf(__tuple_leaf&& __t) = default; template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf& operator=(_Tp&& __t) noexcept((is_nothrow_assignable<_Hp&, _Tp>::value)) { __value_ = std::__1::forward<_Tp>(__t); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int swap(__tuple_leaf& __t) noexcept(__is_nothrow_swappable<__tuple_leaf>::value) { std::__1::swap(*this, __t); return 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Hp& get() noexcept {return __value_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Hp& get() const noexcept {return __value_;} }; template <size_t _Ip, class _Hp> class __tuple_leaf<_Ip, _Hp, true> : private _Hp { __tuple_leaf& operator=(const __tuple_leaf&); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __tuple_leaf() noexcept(is_nothrow_default_constructible<_Hp>::value) {} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf(integral_constant<int, 0>, const _Alloc&) {} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a) : _Hp(allocator_arg_t(), __a) {} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a) : _Hp(__a) {} template <class _Tp, class = typename enable_if< __lazy_and< __lazy_not<is_same<typename __uncvref<_Tp>::type, __tuple_leaf>> , is_constructible<_Hp, _Tp> >::value >::type > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __tuple_leaf(_Tp&& __t) noexcept((is_nothrow_constructible<_Hp, _Tp>::value)) : _Hp(std::__1::forward<_Tp>(__t)) {} template <class _Tp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t) : _Hp(std::__1::forward<_Tp>(__t)) {} template <class _Tp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t) : _Hp(allocator_arg_t(), __a, std::__1::forward<_Tp>(__t)) {} template <class _Tp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t) : _Hp(std::__1::forward<_Tp>(__t), __a) {} __tuple_leaf(__tuple_leaf const &) = default; __tuple_leaf(__tuple_leaf &&) = default; template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_leaf& operator=(_Tp&& __t) noexcept((is_nothrow_assignable<_Hp&, _Tp>::value)) { _Hp::operator=(std::__1::forward<_Tp>(__t)); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int swap(__tuple_leaf& __t) noexcept(__is_nothrow_swappable<__tuple_leaf>::value) { std::__1::swap(*this, __t); return 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Hp& get() noexcept {return static_cast<_Hp&>(*this);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Hp& get() const noexcept {return static_cast<const _Hp&>(*this);} }; template <class ..._Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __swallow(_Tp&&...) noexcept {} template <class ..._Tp> struct __lazy_all : __all<_Tp::value...> {}; template <class _Tp> struct __all_default_constructible; template <class ..._Tp> struct __all_default_constructible<__tuple_types<_Tp...>> : __all<is_default_constructible<_Tp>::value...> { }; template<class _Indx, class ..._Tp> struct __tuple_impl; template<size_t ..._Indx, class ..._Tp> struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...> : public __tuple_leaf<_Indx, _Tp>... { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __tuple_impl() noexcept(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {} template <size_t ..._Uf, class ..._Tf, size_t ..._Ul, class ..._Tl, class ..._Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __tuple_impl(__tuple_indices<_Uf...>, __tuple_types<_Tf...>, __tuple_indices<_Ul...>, __tuple_types<_Tl...>, _Up&&... __u) noexcept((__all<is_nothrow_constructible<_Tf, _Up>::value...>::value && __all<is_nothrow_default_constructible<_Tl>::value...>::value)) : __tuple_leaf<_Uf, _Tf>(std::__1::forward<_Up>(__u))..., __tuple_leaf<_Ul, _Tl>()... {} template <class _Alloc, size_t ..._Uf, class ..._Tf, size_t ..._Ul, class ..._Tl, class ..._Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __tuple_impl(allocator_arg_t, const _Alloc& __a, __tuple_indices<_Uf...>, __tuple_types<_Tf...>, __tuple_indices<_Ul...>, __tuple_types<_Tl...>, _Up&&... __u) : __tuple_leaf<_Uf, _Tf>(__uses_alloc_ctor<_Tf, _Alloc, _Up>(), __a, std::__1::forward<_Up>(__u))..., __tuple_leaf<_Ul, _Tl>(__uses_alloc_ctor<_Tl, _Alloc>(), __a)... {} template <class _Tuple, class = typename enable_if < __tuple_constructible<_Tuple, tuple<_Tp...> >::value >::type > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __tuple_impl(_Tuple&& __t) noexcept((__all<is_nothrow_constructible<_Tp, typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>::value...>::value)) : __tuple_leaf<_Indx, _Tp>(std::__1::forward<typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>(std::__1::get<_Indx>(__t)))... {} template <class _Alloc, class _Tuple, class = typename enable_if < __tuple_constructible<_Tuple, tuple<_Tp...> >::value >::type > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_impl(allocator_arg_t, const _Alloc& __a, _Tuple&& __t) : __tuple_leaf<_Indx, _Tp>(__uses_alloc_ctor<_Tp, _Alloc, typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>(), __a, std::__1::forward<typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>(std::__1::get<_Indx>(__t)))... {} template <class _Tuple> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < __tuple_assignable<_Tuple, tuple<_Tp...> >::value, __tuple_impl& >::type operator=(_Tuple&& __t) noexcept((__all<is_nothrow_assignable<_Tp&, typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>::value...>::value)) { __swallow(__tuple_leaf<_Indx, _Tp>::operator=(std::__1::forward<typename tuple_element<_Indx, typename __make_tuple_types<_Tuple>::type>::type>(std::__1::get<_Indx>(__t)))...); return *this; } __tuple_impl(const __tuple_impl&) = default; __tuple_impl(__tuple_impl&&) = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_impl& operator=(const __tuple_impl& __t) noexcept((__all<is_nothrow_copy_assignable<_Tp>::value...>::value)) { __swallow(__tuple_leaf<_Indx, _Tp>::operator=(static_cast<const __tuple_leaf<_Indx, _Tp>&>(__t).get())...); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __tuple_impl& operator=(__tuple_impl&& __t) noexcept((__all<is_nothrow_move_assignable<_Tp>::value...>::value)) { __swallow(__tuple_leaf<_Indx, _Tp>::operator=(std::__1::forward<_Tp>(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t).get()))...); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__tuple_impl& __t) noexcept(__all<__is_nothrow_swappable<_Tp>::value...>::value) { __swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t))...); } }; template <class ..._Tp> class __attribute__ ((__type_visibility__("default"))) tuple { typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> _BaseT; _BaseT __base_; static constexpr bool _EnableImplicitReducedArityExtension = false; template <class ..._Args> struct _PackExpandsToThisTuple : false_type {}; template <class _Arg> struct _PackExpandsToThisTuple<_Arg> : is_same<typename __uncvref<_Arg>::type, tuple> {}; template <bool _MaybeEnable, class _Dummy = void> struct _CheckArgsConstructor : __check_tuple_constructor_fail {}; template <class _Dummy> struct _CheckArgsConstructor<true, _Dummy> { template <class ..._Args> static constexpr bool __enable_default() { return __all<is_default_constructible<_Args>::value...>::value; } template <class ..._Args> static constexpr bool __enable_explicit() { return __tuple_constructible< tuple<_Args...>, typename __make_tuple_types<tuple, sizeof...(_Args) < sizeof...(_Tp) ? sizeof...(_Args) : sizeof...(_Tp)>::type >::value && !__tuple_convertible< tuple<_Args...>, typename __make_tuple_types<tuple, sizeof...(_Args) < sizeof...(_Tp) ? sizeof...(_Args) : sizeof...(_Tp)>::type >::value && __all_default_constructible< typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Args) < sizeof...(_Tp) ? sizeof...(_Args) : sizeof...(_Tp)>::type >::value; } template <class ..._Args> static constexpr bool __enable_implicit() { return __tuple_convertible< tuple<_Args...>, typename __make_tuple_types<tuple, sizeof...(_Args) < sizeof...(_Tp) ? sizeof...(_Args) : sizeof...(_Tp)>::type >::value && __all_default_constructible< typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Args) < sizeof...(_Tp) ? sizeof...(_Args) : sizeof...(_Tp)>::type >::value; } }; template <bool _MaybeEnable, bool = sizeof...(_Tp) == 1, class _Dummy = void> struct _CheckTupleLikeConstructor : __check_tuple_constructor_fail {}; template <class _Dummy> struct _CheckTupleLikeConstructor<true, false, _Dummy> { template <class _Tuple> static constexpr bool __enable_implicit() { return __tuple_convertible<_Tuple, tuple>::value; } template <class _Tuple> static constexpr bool __enable_explicit() { return __tuple_constructible<_Tuple, tuple>::value && !__tuple_convertible<_Tuple, tuple>::value; } }; template <class _Dummy> struct _CheckTupleLikeConstructor<true, true, _Dummy> { template <class _Tuple> using _PreferTupleLikeConstructor = __lazy_or< is_same<typename __uncvref<_Tuple>::type, tuple>, __lazy_and< __lazy_not<is_constructible<_Tp..., _Tuple>>, __lazy_not<is_convertible<_Tuple, _Tp...>> > >; template <class _Tuple> static constexpr bool __enable_implicit() { return __lazy_and< __tuple_convertible<_Tuple, tuple>, _PreferTupleLikeConstructor<_Tuple> >::value; } template <class _Tuple> static constexpr bool __enable_explicit() { return __lazy_and< __tuple_constructible<_Tuple, tuple>, _PreferTupleLikeConstructor<_Tuple>, __lazy_not<__tuple_convertible<_Tuple, tuple>> >::value; } }; template <size_t _Jp, class ..._Up> friend constexpr typename tuple_element<_Jp, tuple<_Up...> >::type& get(tuple<_Up...>&) noexcept; template <size_t _Jp, class ..._Up> friend constexpr const typename tuple_element<_Jp, tuple<_Up...> >::type& get(const tuple<_Up...>&) noexcept; template <size_t _Jp, class ..._Up> friend constexpr typename tuple_element<_Jp, tuple<_Up...> >::type&& get(tuple<_Up...>&&) noexcept; template <size_t _Jp, class ..._Up> friend constexpr const typename tuple_element<_Jp, tuple<_Up...> >::type&& get(const tuple<_Up...>&&) noexcept; public: template <bool _Dummy = true, class = typename enable_if< _CheckArgsConstructor<_Dummy>::template __enable_default<_Tp...>() >::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple() noexcept(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {} tuple(tuple const&) = default; tuple(tuple&&) = default; template <class _AllocArgT, class _Alloc, bool _Dummy = true, class = typename enable_if< __lazy_and< is_same<allocator_arg_t, _AllocArgT>, __lazy_all<__dependent_type<is_default_constructible<_Tp>, _Dummy>...> >::value >::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(_AllocArgT, _Alloc const& __a) : __base_(allocator_arg_t(), __a, __tuple_indices<>(), __tuple_types<>(), typename __make_tuple_indices<sizeof...(_Tp), 0>::type(), __tuple_types<_Tp...>()) {} template <bool _Dummy = true, typename enable_if < _CheckArgsConstructor< _Dummy >::template __enable_implicit<_Tp const&...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple(const _Tp& ... __t) noexcept((__all<is_nothrow_copy_constructible<_Tp>::value...>::value)) : __base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), typename __make_tuple_indices<0>::type(), typename __make_tuple_types<tuple, 0>::type(), __t... ) {} template <bool _Dummy = true, typename enable_if < _CheckArgsConstructor< _Dummy >::template __enable_explicit<_Tp const&...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit tuple(const _Tp& ... __t) noexcept((__all<is_nothrow_copy_constructible<_Tp>::value...>::value)) : __base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), typename __make_tuple_indices<0>::type(), typename __make_tuple_types<tuple, 0>::type(), __t... ) {} template <class _Alloc, bool _Dummy = true, typename enable_if < _CheckArgsConstructor< _Dummy >::template __enable_implicit<_Tp const&...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t) : __base_(allocator_arg_t(), __a, typename __make_tuple_indices<sizeof...(_Tp)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), typename __make_tuple_indices<0>::type(), typename __make_tuple_types<tuple, 0>::type(), __t... ) {} template <class _Alloc, bool _Dummy = true, typename enable_if < _CheckArgsConstructor< _Dummy >::template __enable_explicit<_Tp const&...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t) : __base_(allocator_arg_t(), __a, typename __make_tuple_indices<sizeof...(_Tp)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(), typename __make_tuple_indices<0>::type(), typename __make_tuple_types<tuple, 0>::type(), __t... ) {} template <class ..._Up, bool _PackIsTuple = _PackExpandsToThisTuple<_Up...>::value, typename enable_if < _CheckArgsConstructor< sizeof...(_Up) == sizeof...(_Tp) && !_PackIsTuple >::template __enable_implicit<_Up...>() || _CheckArgsConstructor< _EnableImplicitReducedArityExtension && sizeof...(_Up) < sizeof...(_Tp) && !_PackIsTuple >::template __enable_implicit<_Up...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple(_Up&&... __u) noexcept(( is_nothrow_constructible<_BaseT, typename __make_tuple_indices<sizeof...(_Up)>::type, typename __make_tuple_types<tuple, sizeof...(_Up)>::type, typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type, typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type, _Up... >::value )) # 733 "/opt/toolchain/target/bin/../include/c++/v1/tuple" 3 : __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), std::__1::forward<_Up>(__u)...) {} template <class ..._Up, typename enable_if < _CheckArgsConstructor< sizeof...(_Up) <= sizeof...(_Tp) && !_PackExpandsToThisTuple<_Up...>::value >::template __enable_explicit<_Up...>() || _CheckArgsConstructor< !_EnableImplicitReducedArityExtension && sizeof...(_Up) < sizeof...(_Tp) && !_PackExpandsToThisTuple<_Up...>::value >::template __enable_implicit<_Up...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit tuple(_Up&&... __u) noexcept(( is_nothrow_constructible<_BaseT, typename __make_tuple_indices<sizeof...(_Up)>::type, typename __make_tuple_types<tuple, sizeof...(_Up)>::type, typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type, typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type, _Up... >::value )) # 766 "/opt/toolchain/target/bin/../include/c++/v1/tuple" 3 : __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), std::__1::forward<_Up>(__u)...) {} template <class _Alloc, class ..._Up, typename enable_if < _CheckArgsConstructor< sizeof...(_Up) == sizeof...(_Tp) && !_PackExpandsToThisTuple<_Up...>::value >::template __enable_implicit<_Up...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u) : __base_(allocator_arg_t(), __a, typename __make_tuple_indices<sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), std::__1::forward<_Up>(__u)...) {} template <class _Alloc, class ..._Up, typename enable_if < _CheckArgsConstructor< sizeof...(_Up) == sizeof...(_Tp) && !_PackExpandsToThisTuple<_Up...>::value >::template __enable_explicit<_Up...>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u) : __base_(allocator_arg_t(), __a, typename __make_tuple_indices<sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Up)>::type(), typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(), typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(), std::__1::forward<_Up>(__u)...) {} template <class _Tuple, typename enable_if < _CheckTupleLikeConstructor< __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value && !_PackExpandsToThisTuple<_Tuple>::value >::template __enable_implicit<_Tuple>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple(_Tuple&& __t) noexcept((is_nothrow_constructible<_BaseT, _Tuple>::value)) : __base_(std::__1::forward<_Tuple>(__t)) {} template <class _Tuple, typename enable_if < _CheckTupleLikeConstructor< __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value && !_PackExpandsToThisTuple<_Tuple>::value >::template __enable_explicit<_Tuple>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit tuple(_Tuple&& __t) noexcept((is_nothrow_constructible<_BaseT, _Tuple>::value)) : __base_(std::__1::forward<_Tuple>(__t)) {} template <class _Alloc, class _Tuple, typename enable_if < _CheckTupleLikeConstructor< __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value >::template __enable_implicit<_Tuple>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(allocator_arg_t, const _Alloc& __a, _Tuple&& __t) : __base_(allocator_arg_t(), __a, std::__1::forward<_Tuple>(__t)) {} template <class _Alloc, class _Tuple, typename enable_if < _CheckTupleLikeConstructor< __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value >::template __enable_explicit<_Tuple>(), bool >::type = false > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit tuple(allocator_arg_t, const _Alloc& __a, _Tuple&& __t) : __base_(allocator_arg_t(), __a, std::__1::forward<_Tuple>(__t)) {} using _CanCopyAssign = __all<is_copy_assignable<_Tp>::value...>; using _CanMoveAssign = __all<is_move_assignable<_Tp>::value...>; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple& operator=(typename conditional<_CanCopyAssign::value, tuple, __nat>::type const& __t) noexcept((__all<is_nothrow_copy_assignable<_Tp>::value...>::value)) { __base_.operator=(__t.__base_); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple& operator=(typename conditional<_CanMoveAssign::value, tuple, __nat>::type&& __t) noexcept((__all<is_nothrow_move_assignable<_Tp>::value...>::value)) { __base_.operator=(static_cast<_BaseT&&>(__t.__base_)); return *this; } template <class _Tuple, class = typename enable_if < __tuple_assignable<_Tuple, tuple>::value >::type > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple& operator=(_Tuple&& __t) noexcept((is_nothrow_assignable<_BaseT&, _Tuple>::value)) { __base_.operator=(std::__1::forward<_Tuple>(__t)); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(tuple& __t) noexcept(__all<__is_nothrow_swappable<_Tp>::value...>::value) {__base_.swap(__t.__base_);} }; template <> class __attribute__ ((__type_visibility__("default"))) tuple<> { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple() noexcept {} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(allocator_arg_t, const _Alloc&) noexcept {} template <class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(array<_Up, 0>) noexcept {} template <class _Alloc, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) tuple(allocator_arg_t, const _Alloc&, array<_Up, 0>) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(tuple&) noexcept {} }; template <class _Alloc, class ..._Args> tuple(allocator_arg_t, const _Alloc&, tuple<_Args...> const&) -> tuple<_Args...>; template <class _Alloc, class ..._Args> tuple(allocator_arg_t, const _Alloc&, tuple<_Args...>&&) -> tuple<_Args...>; template <class ..._Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < __all<__is_swappable<_Tp>::value...>::value, void >::type swap(tuple<_Tp...>& __t, tuple<_Tp...>& __u) noexcept(__all<__is_nothrow_swappable<_Tp>::value...>::value) {__t.swap(__u);} template <size_t _Ip, class ..._Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, tuple<_Tp...> >::type& get(tuple<_Tp...>& __t) noexcept { typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type; return static_cast<__tuple_leaf<_Ip, type>&>(__t.__base_).get(); } template <size_t _Ip, class ..._Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, tuple<_Tp...> >::type& get(const tuple<_Tp...>& __t) noexcept { typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type; return static_cast<const __tuple_leaf<_Ip, type>&>(__t.__base_).get(); } template <size_t _Ip, class ..._Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, tuple<_Tp...> >::type&& get(tuple<_Tp...>&& __t) noexcept { typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type; return static_cast<type&&>( static_cast<__tuple_leaf<_Ip, type>&&>(__t.__base_).get()); } template <size_t _Ip, class ..._Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, tuple<_Tp...> >::type&& get(const tuple<_Tp...>&& __t) noexcept { typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type; return static_cast<const type&&>( static_cast<const __tuple_leaf<_Ip, type>&&>(__t.__base_).get()); } namespace __find_detail { static constexpr size_t __not_found = -1; static constexpr size_t __ambiguous = __not_found - 1; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t __find_idx_return(size_t __curr_i, size_t __res, bool __matches) { return !__matches ? __res : (__res == __not_found ? __curr_i : __ambiguous); } template <size_t _Nx> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t __find_idx(size_t __i, const bool (&__matches)[_Nx]) { return __i == _Nx ? __not_found : __find_idx_return(__i, __find_idx(__i + 1, __matches), __matches[__i]); } template <class _T1, class ..._Args> struct __find_exactly_one_checked { static constexpr bool __matches[sizeof...(_Args)] = {is_same<_T1, _Args>::value...}; static constexpr size_t value = __find_detail::__find_idx(0, __matches); static_assert(value != __not_found, "type not found in type list" ); static_assert(value != __ambiguous, "type occurs more than once in type list"); }; template <class _T1> struct __find_exactly_one_checked<_T1> { static_assert(!is_same<_T1, _T1>::value, "type not in empty type list"); }; } template <typename _T1, typename... _Args> struct __find_exactly_one_t : public __find_detail::__find_exactly_one_checked<_T1, _Args...> { }; template <class _T1, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1& get(tuple<_Args...>& __tup) noexcept { return std::__1::get<__find_exactly_one_t<_T1, _Args...>::value>(__tup); } template <class _T1, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 const& get(tuple<_Args...> const& __tup) noexcept { return std::__1::get<__find_exactly_one_t<_T1, _Args...>::value>(__tup); } template <class _T1, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1&& get(tuple<_Args...>&& __tup) noexcept { return std::__1::get<__find_exactly_one_t<_T1, _Args...>::value>(std::__1::move(__tup)); } template <class _T1, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _T1 const&& get(tuple<_Args...> const&& __tup) noexcept { return std::__1::get<__find_exactly_one_t<_T1, _Args...>::value>(std::__1::move(__tup)); } template <class ..._Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple<_Tp&...> tie(_Tp&... __t) noexcept { return tuple<_Tp&...>(__t...); } template <class _Up> struct __ignore_t { template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const __ignore_t& operator=(_Tp&&) const {return *this;} }; namespace { inline constexpr __ignore_t<unsigned char> ignore = __ignore_t<unsigned char>(); } template <class... _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple<typename __unwrap_ref_decay<_Tp>::type...> make_tuple(_Tp&&... __t) { return tuple<typename __unwrap_ref_decay<_Tp>::type...>(std::__1::forward<_Tp>(__t)...); } template <class... _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple<_Tp&&...> forward_as_tuple(_Tp&&... __t) noexcept { return tuple<_Tp&&...>(std::__1::forward<_Tp>(__t)...); } template <size_t _Ip> struct __tuple_equal { template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _Tp& __x, const _Up& __y) { return __tuple_equal<_Ip - 1>()(__x, __y) && std::__1::get<_Ip-1>(__x) == std::__1::get<_Ip-1>(__y); } }; template <> struct __tuple_equal<0> { template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _Tp&, const _Up&) { return true; } }; template <class ..._Tp, class ..._Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) { static_assert (sizeof...(_Tp) == sizeof...(_Up), "Can't compare tuples of different sizes"); return __tuple_equal<sizeof...(_Tp)>()(__x, __y); } template <class ..._Tp, class ..._Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) { return !(__x == __y); } template <size_t _Ip> struct __tuple_less { template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _Tp& __x, const _Up& __y) { const size_t __idx = tuple_size<_Tp>::value - _Ip; if (std::__1::get<__idx>(__x) < std::__1::get<__idx>(__y)) return true; if (std::__1::get<__idx>(__y) < std::__1::get<__idx>(__x)) return false; return __tuple_less<_Ip-1>()(__x, __y); } }; template <> struct __tuple_less<0> { template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _Tp&, const _Up&) { return false; } }; template <class ..._Tp, class ..._Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) { static_assert (sizeof...(_Tp) == sizeof...(_Up), "Can't compare tuples of different sizes"); return __tuple_less<sizeof...(_Tp)>()(__x, __y); } template <class ..._Tp, class ..._Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) { return __y < __x; } template <class ..._Tp, class ..._Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) { return !(__x < __y); } template <class ..._Tp, class ..._Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y) { return !(__y < __x); } template <class _Tp, class _Up> struct __tuple_cat_type; template <class ..._Ttypes, class ..._Utypes> struct __tuple_cat_type<tuple<_Ttypes...>, __tuple_types<_Utypes...> > { typedef tuple<_Ttypes..., _Utypes...> type; }; template <class _ResultTuple, bool _Is_Tuple0TupleLike, class ..._Tuples> struct __tuple_cat_return_1 { }; template <class ..._Types, class _Tuple0> struct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0> { typedef typename __tuple_cat_type<tuple<_Types...>, typename __make_tuple_types<typename __uncvref<_Tuple0>::type>::type>::type type; }; template <class ..._Types, class _Tuple0, class _Tuple1, class ..._Tuples> struct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0, _Tuple1, _Tuples...> : public __tuple_cat_return_1< typename __tuple_cat_type< tuple<_Types...>, typename __make_tuple_types<typename __uncvref<_Tuple0>::type>::type >::type, __tuple_like<typename remove_reference<_Tuple1>::type>::value, _Tuple1, _Tuples...> { }; template <class ..._Tuples> struct __tuple_cat_return; template <class _Tuple0, class ..._Tuples> struct __tuple_cat_return<_Tuple0, _Tuples...> : public __tuple_cat_return_1<tuple<>, __tuple_like<typename remove_reference<_Tuple0>::type>::value, _Tuple0, _Tuples...> { }; template <> struct __tuple_cat_return<> { typedef tuple<> type; }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr tuple<> tuple_cat() { return tuple<>(); } template <class _Rp, class _Indices, class _Tuple0, class ..._Tuples> struct __tuple_cat_return_ref_imp; template <class ..._Types, size_t ..._I0, class _Tuple0> struct __tuple_cat_return_ref_imp<tuple<_Types...>, __tuple_indices<_I0...>, _Tuple0> { typedef typename remove_reference<_Tuple0>::type _T0; typedef tuple<_Types..., typename __apply_cv<_Tuple0, typename tuple_element<_I0, _T0>::type>::type&&...> type; }; template <class ..._Types, size_t ..._I0, class _Tuple0, class _Tuple1, class ..._Tuples> struct __tuple_cat_return_ref_imp<tuple<_Types...>, __tuple_indices<_I0...>, _Tuple0, _Tuple1, _Tuples...> : public __tuple_cat_return_ref_imp< tuple<_Types..., typename __apply_cv<_Tuple0, typename tuple_element<_I0, typename remove_reference<_Tuple0>::type>::type>::type&&...>, typename __make_tuple_indices<tuple_size<typename remove_reference<_Tuple1>::type>::value>::type, _Tuple1, _Tuples...> { }; template <class _Tuple0, class ..._Tuples> struct __tuple_cat_return_ref : public __tuple_cat_return_ref_imp<tuple<>, typename __make_tuple_indices< tuple_size<typename remove_reference<_Tuple0>::type>::value >::type, _Tuple0, _Tuples...> { }; template <class _Types, class _I0, class _J0> struct __tuple_cat; template <class ..._Types, size_t ..._I0, size_t ..._J0> struct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J0...> > { template <class _Tuple0> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&>::type operator()(tuple<_Types...> __t, _Tuple0&& __t0) { return forward_as_tuple(std::__1::forward<_Types>(std::__1::get<_I0>(__t))..., std::__1::get<_J0>(std::__1::forward<_Tuple0>(__t0))...); } template <class _Tuple0, class _Tuple1, class ..._Tuples> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&, _Tuple1&&, _Tuples&&...>::type operator()(tuple<_Types...> __t, _Tuple0&& __t0, _Tuple1&& __t1, _Tuples&& ...__tpls) { typedef typename remove_reference<_Tuple0>::type _T0; typedef typename remove_reference<_Tuple1>::type _T1; return __tuple_cat< tuple<_Types..., typename __apply_cv<_Tuple0, typename tuple_element<_J0, _T0>::type>::type&&...>, typename __make_tuple_indices<sizeof ...(_Types) + tuple_size<_T0>::value>::type, typename __make_tuple_indices<tuple_size<_T1>::value>::type>() (forward_as_tuple( std::__1::forward<_Types>(std::__1::get<_I0>(__t))..., std::__1::get<_J0>(std::__1::forward<_Tuple0>(__t0))... ), std::__1::forward<_Tuple1>(__t1), std::__1::forward<_Tuples>(__tpls)...); } }; template <class _Tuple0, class... _Tuples> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename __tuple_cat_return<_Tuple0, _Tuples...>::type tuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls) { typedef typename remove_reference<_Tuple0>::type _T0; return __tuple_cat<tuple<>, __tuple_indices<>, typename __make_tuple_indices<tuple_size<_T0>::value>::type>() (tuple<>(), std::__1::forward<_Tuple0>(__t0), std::__1::forward<_Tuples>(__tpls)...); } template <class ..._Tp, class _Alloc> struct __attribute__ ((__type_visibility__("default"))) uses_allocator<tuple<_Tp...>, _Alloc> : true_type {}; template <class _T1, class _T2> template <class... _Args1, class... _Args2, size_t ..._I1, size_t ..._I2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_T1, _T2>::pair(piecewise_construct_t, tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args, __tuple_indices<_I1...>, __tuple_indices<_I2...>) : first(std::__1::forward<_Args1>(std::__1::get<_I1>( __first_args))...), second(std::__1::forward<_Args2>(std::__1::get<_I2>(__second_args))...) { } template <class _Tp> inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value; template <class _Fn, class _Tuple, size_t ..._Id> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) __apply_tuple_impl(_Fn && __f, _Tuple && __t, __tuple_indices<_Id...>) noexcept(noexcept(std::__1::__invoke_constexpr( std::__1::forward<_Fn>(__f), std::__1::get<_Id>(std::__1::forward<_Tuple>(__t))...))) { return std::__1::__invoke_constexpr( std::__1::forward<_Fn>(__f), std::__1::get<_Id>(std::__1::forward<_Tuple>(__t))...); } template <class _Fn, class _Tuple> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) apply(_Fn && __f, _Tuple && __t) noexcept(noexcept(std::__1::__apply_tuple_impl( std::__1::forward<_Fn>(__f), std::__1::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}))) { return std::__1::__apply_tuple_impl( std::__1::forward<_Fn>(__f), std::__1::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}); } template <class _Tp, class _Tuple, size_t... _Idx> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp __make_from_tuple_impl(_Tuple&& __t, __tuple_indices<_Idx...>) noexcept(noexcept(_Tp(std::__1::get<_Idx>(std::__1::forward<_Tuple>(__t))...))) { return _Tp(std::__1::get<_Idx>(std::__1::forward<_Tuple>(__t))...); } template <class _Tp, class _Tuple> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp make_from_tuple(_Tuple&& __t) noexcept(noexcept(std::__1::__make_from_tuple_impl<_Tp>(std::__1::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}))) { return std::__1::__make_from_tuple_impl<_Tp>(std::__1::forward<_Tuple>(__t), typename __make_tuple_indices<tuple_size_v<remove_reference_t<_Tuple>>>::type{}); } # 1394 "/opt/toolchain/target/bin/../include/c++/v1/tuple" 3 } } # 663 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdexcept" 1 3 # 53 "/opt/toolchain/target/bin/../include/c++/v1/stdexcept" 3 namespace std { inline namespace __1 { class __attribute__ ((__visibility__("hidden"))) __libcpp_refstring { const char* __imp_; bool __uses_refcount() const; public: explicit __libcpp_refstring(const char* __msg); __libcpp_refstring(const __libcpp_refstring& __s) noexcept; __libcpp_refstring& operator=(const __libcpp_refstring& __s) noexcept; ~__libcpp_refstring(); const char* c_str() const noexcept {return __imp_;} }; } } namespace std { class __attribute__ ((__visibility__("default"))) logic_error : public exception { private: std::__1::__libcpp_refstring __imp_; public: explicit logic_error(const string&); explicit logic_error(const char*); logic_error(const logic_error&) noexcept; logic_error& operator=(const logic_error&) noexcept; virtual ~logic_error() noexcept; virtual const char* what() const noexcept; }; class __attribute__ ((__visibility__("default"))) runtime_error : public exception { private: std::__1::__libcpp_refstring __imp_; public: explicit runtime_error(const string&); explicit runtime_error(const char*); runtime_error(const runtime_error&) noexcept; runtime_error& operator=(const runtime_error&) noexcept; virtual ~runtime_error() noexcept; virtual const char* what() const noexcept; }; class __attribute__ ((__visibility__("default"))) domain_error : public logic_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit domain_error(const string& __s) : logic_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit domain_error(const char* __s) : logic_error(__s) {} virtual ~domain_error() noexcept; }; class __attribute__ ((__visibility__("default"))) invalid_argument : public logic_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit invalid_argument(const string& __s) : logic_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit invalid_argument(const char* __s) : logic_error(__s) {} virtual ~invalid_argument() noexcept; }; class __attribute__ ((__visibility__("default"))) length_error : public logic_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit length_error(const string& __s) : logic_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit length_error(const char* __s) : logic_error(__s) {} virtual ~length_error() noexcept; }; class __attribute__ ((__visibility__("default"))) out_of_range : public logic_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit out_of_range(const string& __s) : logic_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit out_of_range(const char* __s) : logic_error(__s) {} virtual ~out_of_range() noexcept; }; class __attribute__ ((__visibility__("default"))) range_error : public runtime_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit range_error(const string& __s) : runtime_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit range_error(const char* __s) : runtime_error(__s) {} virtual ~range_error() noexcept; }; class __attribute__ ((__visibility__("default"))) overflow_error : public runtime_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit overflow_error(const string& __s) : runtime_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit overflow_error(const char* __s) : runtime_error(__s) {} virtual ~overflow_error() noexcept; }; class __attribute__ ((__visibility__("default"))) underflow_error : public runtime_error { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit underflow_error(const string& __s) : runtime_error(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit underflow_error(const char* __s) : runtime_error(__s) {} virtual ~underflow_error() noexcept; }; } namespace std { inline namespace __1 { [[noreturn]] __attribute__ ((__visibility__("default"))) void __throw_runtime_error(const char*); [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_logic_error(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_domain_error(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_invalid_argument(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_length_error(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_out_of_range(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_range_error(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_overflow_error(const char*__msg) { ((void)__msg); std::__1::abort(); } [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_underflow_error(const char*__msg) { ((void)__msg); std::__1::abort(); } } } # 664 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 1 3 # 20 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 21 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 2 3 # 24 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 3 # 666 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/atomic" 1 3 # 557 "/opt/toolchain/target/bin/../include/c++/v1/atomic" 3 # 585 "/opt/toolchain/target/bin/../include/c++/v1/atomic" 3 namespace std { inline namespace __1 { enum __legacy_memory_order { __mo_relaxed, __mo_consume, __mo_acquire, __mo_release, __mo_acq_rel, __mo_seq_cst }; typedef underlying_type<__legacy_memory_order>::type __memory_order_underlying_t; # 621 "/opt/toolchain/target/bin/../include/c++/v1/atomic" 3 typedef enum memory_order { memory_order_relaxed = __mo_relaxed, memory_order_consume = __mo_consume, memory_order_acquire = __mo_acquire, memory_order_release = __mo_release, memory_order_acq_rel = __mo_acq_rel, memory_order_seq_cst = __mo_seq_cst, } memory_order; static_assert((is_same<underlying_type<memory_order>::type, __memory_order_underlying_t>::value), "unexpected underlying type for std::memory_order"); # 912 "/opt/toolchain/target/bin/../include/c++/v1/atomic" 3 template <typename _Tp> struct __cxx_atomic_base_impl { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __cxx_atomic_base_impl() noexcept = default; constexpr explicit __cxx_atomic_base_impl(_Tp value) noexcept : __a_value(value) {} _Atomic(_Tp) __a_value; }; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline void __cxx_atomic_thread_fence(memory_order __order) { __c11_atomic_thread_fence(static_cast<__memory_order_underlying_t>(__order)); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline void __cxx_atomic_signal_fence(memory_order __order) { __c11_atomic_signal_fence(static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __cxx_atomic_init(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __val) { __c11_atomic_init(&__a->__a_value, __val); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __cxx_atomic_init(__cxx_atomic_base_impl<_Tp> * __a, _Tp __val) { __c11_atomic_init(&__a->__a_value, __val); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __cxx_atomic_store(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __val, memory_order __order) { __c11_atomic_store(&__a->__a_value, __val, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __cxx_atomic_store(__cxx_atomic_base_impl<_Tp> * __a, _Tp __val, memory_order __order) { __c11_atomic_store(&__a->__a_value, __val, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_load(__cxx_atomic_base_impl<_Tp> const volatile* __a, memory_order __order) { using __ptr_type = typename remove_const<decltype(__a->__a_value)>::type*; return __c11_atomic_load(const_cast<__ptr_type>(&__a->__a_value), static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_load(__cxx_atomic_base_impl<_Tp> const* __a, memory_order __order) { using __ptr_type = typename remove_const<decltype(__a->__a_value)>::type*; return __c11_atomic_load(const_cast<__ptr_type>(&__a->__a_value), static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_exchange(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __value, memory_order __order) { return __c11_atomic_exchange(&__a->__a_value, __value, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_exchange(__cxx_atomic_base_impl<_Tp> * __a, _Tp __value, memory_order __order) { return __c11_atomic_exchange(&__a->__a_value, __value, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __cxx_atomic_compare_exchange_strong(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) { return __c11_atomic_compare_exchange_strong(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __cxx_atomic_compare_exchange_strong(__cxx_atomic_base_impl<_Tp> * __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) { return __c11_atomic_compare_exchange_strong(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __cxx_atomic_compare_exchange_weak(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) { return __c11_atomic_compare_exchange_weak(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __cxx_atomic_compare_exchange_weak(__cxx_atomic_base_impl<_Tp> * __a, _Tp* __expected, _Tp __value, memory_order __success, memory_order __failure) { return __c11_atomic_compare_exchange_weak(&__a->__a_value, __expected, __value, static_cast<__memory_order_underlying_t>(__success), static_cast<__memory_order_underlying_t>(__failure)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __delta, memory_order __order) { return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp> * __a, _Tp __delta, memory_order __order) { return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp*> volatile* __a, ptrdiff_t __delta, memory_order __order) { return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* __cxx_atomic_fetch_add(__cxx_atomic_base_impl<_Tp*> * __a, ptrdiff_t __delta, memory_order __order) { return __c11_atomic_fetch_add(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __delta, memory_order __order) { return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp> * __a, _Tp __delta, memory_order __order) { return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp*> volatile* __a, ptrdiff_t __delta, memory_order __order) { return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* __cxx_atomic_fetch_sub(__cxx_atomic_base_impl<_Tp*> * __a, ptrdiff_t __delta, memory_order __order) { return __c11_atomic_fetch_sub(&__a->__a_value, __delta, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_and(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __pattern, memory_order __order) { return __c11_atomic_fetch_and(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_and(__cxx_atomic_base_impl<_Tp> * __a, _Tp __pattern, memory_order __order) { return __c11_atomic_fetch_and(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_or(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __pattern, memory_order __order) { return __c11_atomic_fetch_or(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_or(__cxx_atomic_base_impl<_Tp> * __a, _Tp __pattern, memory_order __order) { return __c11_atomic_fetch_or(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_xor(__cxx_atomic_base_impl<_Tp> volatile* __a, _Tp __pattern, memory_order __order) { return __c11_atomic_fetch_xor(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); } template<class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __cxx_atomic_fetch_xor(__cxx_atomic_base_impl<_Tp> * __a, _Tp __pattern, memory_order __order) { return __c11_atomic_fetch_xor(&__a->__a_value, __pattern, static_cast<__memory_order_underlying_t>(__order)); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp kill_dependency(_Tp __y) noexcept { return __y; } # 1440 "/opt/toolchain/target/bin/../include/c++/v1/atomic" 3 template <typename _Tp, typename _Base = __cxx_atomic_base_impl<_Tp> > struct __cxx_atomic_impl : public _Base { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __cxx_atomic_impl() noexcept = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __cxx_atomic_impl(_Tp value) noexcept : _Base(value) {} }; template <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value> struct __atomic_base { mutable __cxx_atomic_impl<_Tp> __a_; static constexpr bool is_always_lock_free = __atomic_always_lock_free(sizeof(__a_), 0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_lock_free() const volatile noexcept {return __c11_atomic_is_lock_free(sizeof(_Tp));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_lock_free() const noexcept {return static_cast<__atomic_base const volatile*>(this)->is_lock_free();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void store(_Tp __d, memory_order __m = memory_order_seq_cst) volatile noexcept __attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {__cxx_atomic_store(&__a_, __d, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void store(_Tp __d, memory_order __m = memory_order_seq_cst) noexcept __attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {__cxx_atomic_store(&__a_, __d, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp load(memory_order __m = memory_order_seq_cst) const volatile noexcept __attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {return __cxx_atomic_load(&__a_, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp load(memory_order __m = memory_order_seq_cst) const noexcept __attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {return __cxx_atomic_load(&__a_, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator _Tp() const volatile noexcept {return load();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator _Tp() const noexcept {return load();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_exchange(&__a_, __d, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_exchange(&__a_, __d, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_weak(_Tp& __e, _Tp __d, memory_order __s, memory_order __f) volatile noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_weak(_Tp& __e, _Tp __d, memory_order __s, memory_order __f) noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_strong(_Tp& __e, _Tp __d, memory_order __s, memory_order __f) volatile noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_strong(_Tp& __e, _Tp __d, memory_order __s, memory_order __f) noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) {return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_weak(_Tp& __e, _Tp __d, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_weak(_Tp& __e, _Tp __d, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_strong(_Tp& __e, _Tp __d, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool compare_exchange_strong(_Tp& __e, _Tp __d, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __atomic_base() noexcept = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __atomic_base(_Tp __d) noexcept : __a_(__d) {} __atomic_base(const __atomic_base&) = delete; __atomic_base& operator=(const __atomic_base&) = delete; __atomic_base& operator=(const __atomic_base&) volatile = delete; }; template <class _Tp, bool __b> constexpr bool __atomic_base<_Tp, __b>::is_always_lock_free; template <class _Tp> struct __atomic_base<_Tp, true> : public __atomic_base<_Tp, false> { typedef __atomic_base<_Tp, false> __base; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __atomic_base() noexcept = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __atomic_base(_Tp __d) noexcept : __base(__d) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_and(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_and(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_or(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_or(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_xor(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_xor(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator++(int) volatile noexcept {return fetch_add(_Tp(1));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator++(int) noexcept {return fetch_add(_Tp(1));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator--(int) volatile noexcept {return fetch_sub(_Tp(1));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator--(int) noexcept {return fetch_sub(_Tp(1));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator++() volatile noexcept {return fetch_add(_Tp(1)) + _Tp(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator++() noexcept {return fetch_add(_Tp(1)) + _Tp(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator--() volatile noexcept {return fetch_sub(_Tp(1)) - _Tp(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator--() noexcept {return fetch_sub(_Tp(1)) - _Tp(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator+=(_Tp __op) volatile noexcept {return fetch_add(__op) + __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator+=(_Tp __op) noexcept {return fetch_add(__op) + __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator-=(_Tp __op) volatile noexcept {return fetch_sub(__op) - __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator-=(_Tp __op) noexcept {return fetch_sub(__op) - __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator&=(_Tp __op) volatile noexcept {return fetch_and(__op) & __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator&=(_Tp __op) noexcept {return fetch_and(__op) & __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator|=(_Tp __op) volatile noexcept {return fetch_or(__op) | __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator|=(_Tp __op) noexcept {return fetch_or(__op) | __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator^=(_Tp __op) volatile noexcept {return fetch_xor(__op) ^ __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator^=(_Tp __op) noexcept {return fetch_xor(__op) ^ __op;} }; template <class _Tp> struct atomic : public __atomic_base<_Tp> { typedef __atomic_base<_Tp> __base; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) atomic() noexcept = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr atomic(_Tp __d) noexcept : __base(__d) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator=(_Tp __d) volatile noexcept {__base::store(__d); return __d;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator=(_Tp __d) noexcept {__base::store(__d); return __d;} }; template <class _Tp> struct atomic<_Tp*> : public __atomic_base<_Tp*> { typedef __atomic_base<_Tp*> __base; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) atomic() noexcept = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr atomic(_Tp* __d) noexcept : __base(__d) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator=(_Tp* __d) volatile noexcept {__base::store(__d); return __d;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator=(_Tp* __d) noexcept {__base::store(__d); return __d;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_add(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_fetch_sub(&this->__a_, __op, __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator++(int) volatile noexcept {return fetch_add(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator++(int) noexcept {return fetch_add(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator--(int) volatile noexcept {return fetch_sub(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator--(int) noexcept {return fetch_sub(1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator++() volatile noexcept {return fetch_add(1) + 1;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator++() noexcept {return fetch_add(1) + 1;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator--() volatile noexcept {return fetch_sub(1) - 1;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator--() noexcept {return fetch_sub(1) - 1;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator+=(ptrdiff_t __op) volatile noexcept {return fetch_add(__op) + __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator+=(ptrdiff_t __op) noexcept {return fetch_add(__op) + __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator-=(ptrdiff_t __op) volatile noexcept {return fetch_sub(__op) - __op;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* operator-=(ptrdiff_t __op) noexcept {return fetch_sub(__op) - __op;} }; template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_is_lock_free(const volatile atomic<_Tp>* __o) noexcept { return __o->is_lock_free(); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_is_lock_free(const atomic<_Tp>* __o) noexcept { return __o->is_lock_free(); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_init(volatile atomic<_Tp>* __o, _Tp __d) noexcept { __cxx_atomic_init(&__o->__a_, __d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_init(atomic<_Tp>* __o, _Tp __d) noexcept { __cxx_atomic_init(&__o->__a_, __d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_store(volatile atomic<_Tp>* __o, _Tp __d) noexcept { __o->store(__d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_store(atomic<_Tp>* __o, _Tp __d) noexcept { __o->store(__d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_store_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) noexcept __attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { __o->store(__d, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_store_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) noexcept __attribute__((diagnose_if(__m == memory_order_consume || __m == memory_order_acquire || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { __o->store(__d, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_load(const volatile atomic<_Tp>* __o) noexcept { return __o->load(); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_load(const atomic<_Tp>* __o) noexcept { return __o->load(); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) noexcept __attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { return __o->load(__m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) noexcept __attribute__((diagnose_if(__m == memory_order_release || __m == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { return __o->load(__m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_exchange(volatile atomic<_Tp>* __o, _Tp __d) noexcept { return __o->exchange(__d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_exchange(atomic<_Tp>* __o, _Tp __d) noexcept { return __o->exchange(__d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_exchange_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) noexcept { return __o->exchange(__d, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp atomic_exchange_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) noexcept { return __o->exchange(__d, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) noexcept { return __o->compare_exchange_weak(*__e, __d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_weak(atomic<_Tp>* __o, _Tp* __e, _Tp __d) noexcept { return __o->compare_exchange_weak(*__e, __d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) noexcept { return __o->compare_exchange_strong(*__e, __d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_strong(atomic<_Tp>* __o, _Tp* __e, _Tp __d) noexcept { return __o->compare_exchange_strong(*__e, __d); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d, memory_order __s, memory_order __f) noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { return __o->compare_exchange_weak(*__e, __d, __s, __f); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d, memory_order __s, memory_order __f) noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { return __o->compare_exchange_weak(*__e, __d, __s, __f); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d, memory_order __s, memory_order __f) noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { return __o->compare_exchange_strong(*__e, __d, __s, __f); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d, memory_order __s, memory_order __f) noexcept __attribute__((diagnose_if(__f == memory_order_release || __f == memory_order_acq_rel, "memory order argument to atomic operation is invalid", "warning"))) { return __o->compare_exchange_strong(*__e, __d, __s, __f); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_add(volatile atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_add(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_add(atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_add(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_add(volatile atomic<_Tp*>* __o, ptrdiff_t __op) noexcept { return __o->fetch_add(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_add(atomic<_Tp*>* __o, ptrdiff_t __op) noexcept { return __o->fetch_add(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_add(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_add_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_add(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) noexcept { return __o->fetch_add(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_add_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) noexcept { return __o->fetch_add(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_sub(volatile atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_sub(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_sub(atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_sub(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_sub(volatile atomic<_Tp*>* __o, ptrdiff_t __op) noexcept { return __o->fetch_sub(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_sub(atomic<_Tp*>* __o, ptrdiff_t __op) noexcept { return __o->fetch_sub(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_sub(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_sub_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_sub(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) noexcept { return __o->fetch_sub(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* atomic_fetch_sub_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) noexcept { return __o->fetch_sub(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_and(volatile atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_and(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_and(atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_and(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_and(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_and_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_and(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_or(volatile atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_or(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_or(atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_or(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_or(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_or_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_or(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_xor(volatile atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_xor(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_xor(atomic<_Tp>* __o, _Tp __op) noexcept { return __o->fetch_xor(__op); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_xor(__op, __m); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_integral<_Tp>::value && !is_same<_Tp, bool>::value, _Tp >::type atomic_fetch_xor_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) noexcept { return __o->fetch_xor(__op, __m); } typedef struct atomic_flag { __cxx_atomic_impl<bool> __a_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept {return __cxx_atomic_exchange(&__a_, bool(true), __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool test_and_set(memory_order __m = memory_order_seq_cst) noexcept {return __cxx_atomic_exchange(&__a_, bool(true), __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear(memory_order __m = memory_order_seq_cst) volatile noexcept {__cxx_atomic_store(&__a_, bool(false), __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear(memory_order __m = memory_order_seq_cst) noexcept {__cxx_atomic_store(&__a_, bool(false), __m);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) atomic_flag() noexcept = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr atomic_flag(bool __b) noexcept : __a_(__b) {} atomic_flag(const atomic_flag&) = delete; atomic_flag& operator=(const atomic_flag&) = delete; atomic_flag& operator=(const atomic_flag&) volatile = delete; } atomic_flag; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_flag_test_and_set(volatile atomic_flag* __o) noexcept { return __o->test_and_set(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_flag_test_and_set(atomic_flag* __o) noexcept { return __o->test_and_set(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_flag_test_and_set_explicit(volatile atomic_flag* __o, memory_order __m) noexcept { return __o->test_and_set(__m); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_flag_test_and_set_explicit(atomic_flag* __o, memory_order __m) noexcept { return __o->test_and_set(__m); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_flag_clear(volatile atomic_flag* __o) noexcept { __o->clear(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_flag_clear(atomic_flag* __o) noexcept { __o->clear(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_flag_clear_explicit(volatile atomic_flag* __o, memory_order __m) noexcept { __o->clear(__m); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_flag_clear_explicit(atomic_flag* __o, memory_order __m) noexcept { __o->clear(__m); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_thread_fence(memory_order __m) noexcept { __cxx_atomic_thread_fence(__m); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_signal_fence(memory_order __m) noexcept { __cxx_atomic_signal_fence(__m); } typedef atomic<bool> atomic_bool; typedef atomic<char> atomic_char; typedef atomic<signed char> atomic_schar; typedef atomic<unsigned char> atomic_uchar; typedef atomic<short> atomic_short; typedef atomic<unsigned short> atomic_ushort; typedef atomic<int> atomic_int; typedef atomic<unsigned int> atomic_uint; typedef atomic<long> atomic_long; typedef atomic<unsigned long> atomic_ulong; typedef atomic<long long> atomic_llong; typedef atomic<unsigned long long> atomic_ullong; typedef atomic<char16_t> atomic_char16_t; typedef atomic<char32_t> atomic_char32_t; typedef atomic<wchar_t> atomic_wchar_t; typedef atomic<int_least8_t> atomic_int_least8_t; typedef atomic<uint_least8_t> atomic_uint_least8_t; typedef atomic<int_least16_t> atomic_int_least16_t; typedef atomic<uint_least16_t> atomic_uint_least16_t; typedef atomic<int_least32_t> atomic_int_least32_t; typedef atomic<uint_least32_t> atomic_uint_least32_t; typedef atomic<int_least64_t> atomic_int_least64_t; typedef atomic<uint_least64_t> atomic_uint_least64_t; typedef atomic<int_fast8_t> atomic_int_fast8_t; typedef atomic<uint_fast8_t> atomic_uint_fast8_t; typedef atomic<int_fast16_t> atomic_int_fast16_t; typedef atomic<uint_fast16_t> atomic_uint_fast16_t; typedef atomic<int_fast32_t> atomic_int_fast32_t; typedef atomic<uint_fast32_t> atomic_uint_fast32_t; typedef atomic<int_fast64_t> atomic_int_fast64_t; typedef atomic<uint_fast64_t> atomic_uint_fast64_t; typedef atomic< int8_t> atomic_int8_t; typedef atomic<uint8_t> atomic_uint8_t; typedef atomic< int16_t> atomic_int16_t; typedef atomic<uint16_t> atomic_uint16_t; typedef atomic< int32_t> atomic_int32_t; typedef atomic<uint32_t> atomic_uint32_t; typedef atomic< int64_t> atomic_int64_t; typedef atomic<uint64_t> atomic_uint64_t; typedef atomic<intptr_t> atomic_intptr_t; typedef atomic<uintptr_t> atomic_uintptr_t; typedef atomic<size_t> atomic_size_t; typedef atomic<ptrdiff_t> atomic_ptrdiff_t; typedef atomic<intmax_t> atomic_intmax_t; typedef atomic<uintmax_t> atomic_uintmax_t; } } # 668 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 # 673 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 677 "/opt/toolchain/target/bin/../include/c++/v1/memory" 2 3 namespace std { inline namespace __1 { template <class _ValueType> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ValueType __libcpp_relaxed_load(_ValueType const* __value) { return __atomic_load_n(__value, 0); } template <class _ValueType> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ValueType __libcpp_acquire_load(_ValueType const* __value) { return __atomic_load_n(__value, 2); } template <class _Tp> class allocator; template <> class __attribute__ ((__type_visibility__("default"))) allocator<void> { public: typedef void* pointer; typedef const void* const_pointer; typedef void value_type; template <class _Up> struct rebind {typedef allocator<_Up> other;}; }; template <> class __attribute__ ((__type_visibility__("default"))) allocator<const void> { public: typedef const void* pointer; typedef const void* const_pointer; typedef const void value_type; template <class _Up> struct rebind {typedef allocator<_Up> other;}; }; template <class _Tp, class = void> struct __has_element_type : false_type {}; template <class _Tp> struct __has_element_type<_Tp, typename __void_t<typename _Tp::element_type>::type> : true_type {}; template <class _Ptr, bool = __has_element_type<_Ptr>::value> struct __pointer_traits_element_type; template <class _Ptr> struct __pointer_traits_element_type<_Ptr, true> { typedef typename _Ptr::element_type type; }; template <template <class, class...> class _Sp, class _Tp, class ..._Args> struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, true> { typedef typename _Sp<_Tp, _Args...>::element_type type; }; template <template <class, class...> class _Sp, class _Tp, class ..._Args> struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, false> { typedef _Tp type; }; # 817 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Tp, class = void> struct __has_difference_type : false_type {}; template <class _Tp> struct __has_difference_type<_Tp, typename __void_t<typename _Tp::difference_type>::type> : true_type {}; template <class _Ptr, bool = __has_difference_type<_Ptr>::value> struct __pointer_traits_difference_type { typedef ptrdiff_t type; }; template <class _Ptr> struct __pointer_traits_difference_type<_Ptr, true> { typedef typename _Ptr::difference_type type; }; template <class _Tp, class _Up> struct __has_rebind { private: struct __two {char __lx; char __lxx;}; template <class _Xp> static __two __test(...); template <class _Xp> static char __test(typename _Xp::template rebind<_Up>* = 0); public: static const bool value = sizeof(__test<_Tp>(0)) == 1; }; template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value> struct __pointer_traits_rebind { typedef typename _Tp::template rebind<_Up> type; }; template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up> struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, true> { typedef typename _Sp<_Tp, _Args...>::template rebind<_Up> type; }; template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up> struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, false> { typedef _Sp<_Up, _Args...> type; }; # 947 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Ptr> struct __attribute__ ((__type_visibility__("default"))) pointer_traits { typedef _Ptr pointer; typedef typename __pointer_traits_element_type<pointer>::type element_type; typedef typename __pointer_traits_difference_type<pointer>::type difference_type; template <class _Up> using rebind = typename __pointer_traits_rebind<pointer, _Up>::type; private: struct __nat {}; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static pointer pointer_to(typename conditional<is_void<element_type>::value, __nat, element_type>::type& __r) {return pointer::pointer_to(__r);} }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) pointer_traits<_Tp*> { typedef _Tp* pointer; typedef _Tp element_type; typedef ptrdiff_t difference_type; template <class _Up> using rebind = _Up*; private: struct __nat {}; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static pointer pointer_to(typename conditional<is_void<element_type>::value, __nat, element_type>::type& __r) noexcept {return std::__1::addressof(__r);} }; template <class _From, class _To> struct __rebind_pointer { typedef typename pointer_traits<_From>::template rebind<_To> type; }; template <class _Tp, class = void> struct __has_pointer_type : false_type {}; template <class _Tp> struct __has_pointer_type<_Tp, typename __void_t<typename _Tp::pointer>::type> : true_type {}; namespace __pointer_type_imp { template <class _Tp, class _Dp, bool = __has_pointer_type<_Dp>::value> struct __pointer_type { typedef typename _Dp::pointer type; }; template <class _Tp, class _Dp> struct __pointer_type<_Tp, _Dp, false> { typedef _Tp* type; }; } template <class _Tp, class _Dp> struct __pointer_type { typedef typename __pointer_type_imp::__pointer_type<_Tp, typename remove_reference<_Dp>::type>::type type; }; template <class _Tp, class = void> struct __has_const_pointer : false_type {}; template <class _Tp> struct __has_const_pointer<_Tp, typename __void_t<typename _Tp::const_pointer>::type> : true_type {}; template <class _Tp, class _Ptr, class _Alloc, bool = __has_const_pointer<_Alloc>::value> struct __const_pointer { typedef typename _Alloc::const_pointer type; }; template <class _Tp, class _Ptr, class _Alloc> struct __const_pointer<_Tp, _Ptr, _Alloc, false> { typedef typename pointer_traits<_Ptr>::template rebind<const _Tp> type; }; template <class _Tp, class = void> struct __has_void_pointer : false_type {}; template <class _Tp> struct __has_void_pointer<_Tp, typename __void_t<typename _Tp::void_pointer>::type> : true_type {}; template <class _Ptr, class _Alloc, bool = __has_void_pointer<_Alloc>::value> struct __void_pointer { typedef typename _Alloc::void_pointer type; }; template <class _Ptr, class _Alloc> struct __void_pointer<_Ptr, _Alloc, false> { typedef typename pointer_traits<_Ptr>::template rebind<void> type; }; template <class _Tp, class = void> struct __has_const_void_pointer : false_type {}; template <class _Tp> struct __has_const_void_pointer<_Tp, typename __void_t<typename _Tp::const_void_pointer>::type> : true_type {}; template <class _Ptr, class _Alloc, bool = __has_const_void_pointer<_Alloc>::value> struct __const_void_pointer { typedef typename _Alloc::const_void_pointer type; }; template <class _Ptr, class _Alloc> struct __const_void_pointer<_Ptr, _Alloc, false> { typedef typename pointer_traits<_Ptr>::template rebind<const void> type; }; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp* __to_raw_pointer(_Tp* __p) noexcept { return __p; } template <class _Pointer> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename pointer_traits<_Pointer>::element_type* __to_raw_pointer(_Pointer __p) noexcept { return std::__1::__to_raw_pointer(__p.operator->()); } # 1154 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Tp, class = void> struct __has_size_type : false_type {}; template <class _Tp> struct __has_size_type<_Tp, typename __void_t<typename _Tp::size_type>::type> : true_type {}; template <class _Alloc, class _DiffType, bool = __has_size_type<_Alloc>::value> struct __size_type { typedef typename make_unsigned<_DiffType>::type type; }; template <class _Alloc, class _DiffType> struct __size_type<_Alloc, _DiffType, true> { typedef typename _Alloc::size_type type; }; template <class _Tp, class = void> struct __has_propagate_on_container_copy_assignment : false_type {}; template <class _Tp> struct __has_propagate_on_container_copy_assignment<_Tp, typename __void_t<typename _Tp::propagate_on_container_copy_assignment>::type> : true_type {}; template <class _Alloc, bool = __has_propagate_on_container_copy_assignment<_Alloc>::value> struct __propagate_on_container_copy_assignment { typedef false_type type; }; template <class _Alloc> struct __propagate_on_container_copy_assignment<_Alloc, true> { typedef typename _Alloc::propagate_on_container_copy_assignment type; }; template <class _Tp, class = void> struct __has_propagate_on_container_move_assignment : false_type {}; template <class _Tp> struct __has_propagate_on_container_move_assignment<_Tp, typename __void_t<typename _Tp::propagate_on_container_move_assignment>::type> : true_type {}; template <class _Alloc, bool = __has_propagate_on_container_move_assignment<_Alloc>::value> struct __propagate_on_container_move_assignment { typedef false_type type; }; template <class _Alloc> struct __propagate_on_container_move_assignment<_Alloc, true> { typedef typename _Alloc::propagate_on_container_move_assignment type; }; template <class _Tp, class = void> struct __has_propagate_on_container_swap : false_type {}; template <class _Tp> struct __has_propagate_on_container_swap<_Tp, typename __void_t<typename _Tp::propagate_on_container_swap>::type> : true_type {}; template <class _Alloc, bool = __has_propagate_on_container_swap<_Alloc>::value> struct __propagate_on_container_swap { typedef false_type type; }; template <class _Alloc> struct __propagate_on_container_swap<_Alloc, true> { typedef typename _Alloc::propagate_on_container_swap type; }; template <class _Tp, class = void> struct __has_is_always_equal : false_type {}; template <class _Tp> struct __has_is_always_equal<_Tp, typename __void_t<typename _Tp::is_always_equal>::type> : true_type {}; template <class _Alloc, bool = __has_is_always_equal<_Alloc>::value> struct __is_always_equal { typedef typename std::__1::is_empty<_Alloc>::type type; }; template <class _Alloc> struct __is_always_equal<_Alloc, true> { typedef typename _Alloc::is_always_equal type; }; template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value> struct __has_rebind_other { private: struct __two {char __lx; char __lxx;}; template <class _Xp> static __two __test(...); template <class _Xp> static char __test(typename _Xp::template rebind<_Up>::other* = 0); public: static const bool value = sizeof(__test<_Tp>(0)) == 1; }; template <class _Tp, class _Up> struct __has_rebind_other<_Tp, _Up, false> { static const bool value = false; }; template <class _Tp, class _Up, bool = __has_rebind_other<_Tp, _Up>::value> struct __allocator_traits_rebind { typedef typename _Tp::template rebind<_Up>::other type; }; template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up> struct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, true> { typedef typename _Alloc<_Tp, _Args...>::template rebind<_Up>::other type; }; template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up> struct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, false> { typedef _Alloc<_Up, _Args...> type; }; # 1348 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Alloc, class _SizeType, class _ConstVoidPtr> auto __has_allocate_hint_test(_Alloc&& __a, _SizeType&& __sz, _ConstVoidPtr&& __p) -> decltype((void)__a.allocate(__sz, __p), true_type()); template <class _Alloc, class _SizeType, class _ConstVoidPtr> auto __has_allocate_hint_test(const _Alloc& __a, _SizeType&& __sz, _ConstVoidPtr&& __p) -> false_type; template <class _Alloc, class _SizeType, class _ConstVoidPtr> struct __has_allocate_hint : integral_constant<bool, is_same< decltype(std::__1::__has_allocate_hint_test(declval<_Alloc>(), declval<_SizeType>(), declval<_ConstVoidPtr>())), true_type>::value> { }; # 1381 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Alloc, class _Tp, class ..._Args> decltype(std::__1::declval<_Alloc>().construct(std::__1::declval<_Tp*>(), std::__1::declval<_Args>()...), true_type()) __has_construct_test(_Alloc&& __a, _Tp* __p, _Args&& ...__args); template <class _Alloc, class _Pointer, class ..._Args> false_type __has_construct_test(const _Alloc& __a, _Pointer&& __p, _Args&& ...__args); template <class _Alloc, class _Pointer, class ..._Args> struct __has_construct : integral_constant<bool, is_same< decltype(std::__1::__has_construct_test(declval<_Alloc>(), declval<_Pointer>(), declval<_Args>()...)), true_type>::value> { }; template <class _Alloc, class _Pointer> auto __has_destroy_test(_Alloc&& __a, _Pointer&& __p) -> decltype(__a.destroy(__p), true_type()); template <class _Alloc, class _Pointer> auto __has_destroy_test(const _Alloc& __a, _Pointer&& __p) -> false_type; template <class _Alloc, class _Pointer> struct __has_destroy : integral_constant<bool, is_same< decltype(std::__1::__has_destroy_test(declval<_Alloc>(), declval<_Pointer>())), true_type>::value> { }; template <class _Alloc> auto __has_max_size_test(_Alloc&& __a) -> decltype(__a.max_size(), true_type()); template <class _Alloc> auto __has_max_size_test(const volatile _Alloc& __a) -> false_type; template <class _Alloc> struct __has_max_size : integral_constant<bool, is_same< decltype(std::__1::__has_max_size_test(declval<_Alloc&>())), true_type>::value> { }; template <class _Alloc> auto __has_select_on_container_copy_construction_test(_Alloc&& __a) -> decltype(__a.select_on_container_copy_construction(), true_type()); template <class _Alloc> auto __has_select_on_container_copy_construction_test(const volatile _Alloc& __a) -> false_type; template <class _Alloc> struct __has_select_on_container_copy_construction : integral_constant<bool, is_same< decltype(std::__1::__has_select_on_container_copy_construction_test(declval<_Alloc&>())), true_type>::value> { }; # 1492 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Alloc, class _Ptr, bool = __has_difference_type<_Alloc>::value> struct __alloc_traits_difference_type { typedef typename pointer_traits<_Ptr>::difference_type type; }; template <class _Alloc, class _Ptr> struct __alloc_traits_difference_type<_Alloc, _Ptr, true> { typedef typename _Alloc::difference_type type; }; template <class _Tp> struct __is_default_allocator : false_type {}; template <class _Tp> struct __is_default_allocator<std::__1::allocator<_Tp> > : true_type {}; template <class _Alloc> struct __attribute__ ((__type_visibility__("default"))) allocator_traits { typedef _Alloc allocator_type; typedef typename allocator_type::value_type value_type; typedef typename __pointer_type<value_type, allocator_type>::type pointer; typedef typename __const_pointer<value_type, pointer, allocator_type>::type const_pointer; typedef typename __void_pointer<pointer, allocator_type>::type void_pointer; typedef typename __const_void_pointer<pointer, allocator_type>::type const_void_pointer; typedef typename __alloc_traits_difference_type<allocator_type, pointer>::type difference_type; typedef typename __size_type<allocator_type, difference_type>::type size_type; typedef typename __propagate_on_container_copy_assignment<allocator_type>::type propagate_on_container_copy_assignment; typedef typename __propagate_on_container_move_assignment<allocator_type>::type propagate_on_container_move_assignment; typedef typename __propagate_on_container_swap<allocator_type>::type propagate_on_container_swap; typedef typename __is_always_equal<allocator_type>::type is_always_equal; template <class _Tp> using rebind_alloc = typename __allocator_traits_rebind<allocator_type, _Tp>::type; template <class _Tp> using rebind_traits = allocator_traits<rebind_alloc<_Tp>>; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static pointer allocate(allocator_type& __a, size_type __n) {return __a.allocate(__n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static pointer allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) {return __allocate(__a, __n, __hint, __has_allocate_hint<allocator_type, size_type, const_void_pointer>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void deallocate(allocator_type& __a, pointer __p, size_type __n) noexcept {__a.deallocate(__p, __n);} template <class _Tp, class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void construct(allocator_type& __a, _Tp* __p, _Args&&... __args) {__construct(__has_construct<allocator_type, _Tp*, _Args...>(), __a, __p, std::__1::forward<_Args>(__args)...);} # 1592 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void destroy(allocator_type& __a, _Tp* __p) {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static size_type max_size(const allocator_type& __a) noexcept {return __max_size(__has_max_size<const allocator_type>(), __a);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static allocator_type select_on_container_copy_construction(const allocator_type& __a) {return __select_on_container_copy_construction( __has_select_on_container_copy_construction<const allocator_type>(), __a);} template <class _Ptr> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __construct_forward(allocator_type& __a, _Ptr __begin1, _Ptr __end1, _Ptr& __begin2) { for (; __begin1 != __end1; ++__begin1, (void) ++__begin2) construct(__a, std::__1::__to_raw_pointer(__begin2), std::__1::move_if_noexcept(*__begin1)); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static typename enable_if < (__is_default_allocator<allocator_type>::value || !__has_construct<allocator_type, _Tp*, _Tp>::value) && is_trivially_move_constructible<_Tp>::value, void >::type __construct_forward(allocator_type&, _Tp* __begin1, _Tp* __end1, _Tp*& __begin2) { ptrdiff_t _Np = __end1 - __begin1; if (_Np > 0) { std::__1::memcpy(__begin2, __begin1, _Np * sizeof(_Tp)); __begin2 += _Np; } } template <class _Iter, class _Ptr> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __construct_range_forward(allocator_type& __a, _Iter __begin1, _Iter __end1, _Ptr& __begin2) { for (; __begin1 != __end1; ++__begin1, (void) ++__begin2) construct(__a, std::__1::__to_raw_pointer(__begin2), *__begin1); } template <class _SourceTp, class _DestTp, class _RawSourceTp = typename remove_const<_SourceTp>::type, class _RawDestTp = typename remove_const<_DestTp>::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static typename enable_if < is_trivially_move_constructible<_DestTp>::value && is_same<_RawSourceTp, _RawDestTp>::value && (__is_default_allocator<allocator_type>::value || !__has_construct<allocator_type, _DestTp*, _SourceTp&>::value), void >::type __construct_range_forward(allocator_type&, _SourceTp* __begin1, _SourceTp* __end1, _DestTp*& __begin2) { ptrdiff_t _Np = __end1 - __begin1; if (_Np > 0) { std::__1::memcpy(const_cast<_RawDestTp*>(__begin2), __begin1, _Np * sizeof(_DestTp)); __begin2 += _Np; } } template <class _Ptr> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __construct_backward(allocator_type& __a, _Ptr __begin1, _Ptr __end1, _Ptr& __end2) { while (__end1 != __begin1) { construct(__a, std::__1::__to_raw_pointer(__end2-1), std::__1::move_if_noexcept(*--__end1)); --__end2; } } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static typename enable_if < (__is_default_allocator<allocator_type>::value || !__has_construct<allocator_type, _Tp*, _Tp>::value) && is_trivially_move_constructible<_Tp>::value, void >::type __construct_backward(allocator_type&, _Tp* __begin1, _Tp* __end1, _Tp*& __end2) { ptrdiff_t _Np = __end1 - __begin1; __end2 -= _Np; if (_Np > 0) std::__1::memcpy(__end2, __begin1, _Np * sizeof(_Tp)); } private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static pointer __allocate(allocator_type& __a, size_type __n, const_void_pointer __hint, true_type) {return __a.allocate(__n, __hint);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static pointer __allocate(allocator_type& __a, size_type __n, const_void_pointer, false_type) {return __a.allocate(__n);} template <class _Tp, class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __construct(true_type, allocator_type& __a, _Tp* __p, _Args&&... __args) {__a.construct(__p, std::__1::forward<_Args>(__args)...);} template <class _Tp, class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __construct(false_type, allocator_type&, _Tp* __p, _Args&&... __args) { ::new ((void*)__p) _Tp(std::__1::forward<_Args>(__args)...); } # 1739 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __destroy(true_type, allocator_type& __a, _Tp* __p) {__a.destroy(__p);} template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __destroy(false_type, allocator_type&, _Tp* __p) { __p->~_Tp(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static size_type __max_size(true_type, const allocator_type& __a) noexcept {return __a.max_size();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static size_type __max_size(false_type, const allocator_type&) noexcept {return numeric_limits<size_type>::max() / sizeof(value_type);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static allocator_type __select_on_container_copy_construction(true_type, const allocator_type& __a) {return __a.select_on_container_copy_construction();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static allocator_type __select_on_container_copy_construction(false_type, const allocator_type& __a) {return __a;} }; template <class _Traits, class _Tp> struct __rebind_alloc_helper { typedef typename _Traits::template rebind_alloc<_Tp> type; }; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; typedef true_type propagate_on_container_move_assignment; typedef true_type is_always_equal; template <class _Up> struct rebind {typedef allocator<_Up> other;}; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator() noexcept {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator(const allocator<_Up>&) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer address(reference __x) const noexcept {return std::__1::addressof(__x);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_pointer address(const_reference __x) const noexcept {return std::__1::addressof(__x);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer allocate(size_type __n, allocator<void>::const_pointer = 0) { if (__n > max_size()) __throw_length_error("allocator<T>::allocate(size_t n)" " 'n' exceeds maximum supported size"); return static_cast<pointer>(std::__1::__libcpp_allocate(__n * sizeof(_Tp), alignof(_Tp))); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void deallocate(pointer __p, size_type __n) noexcept {std::__1::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), alignof(_Tp));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type max_size() const noexcept {return size_type(~0) / sizeof(_Tp);} template <class _Up, class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void construct(_Up* __p, _Args&&... __args) { ::new((void*)__p) _Up(std::__1::forward<_Args>(__args)...); } # 1880 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void destroy(pointer __p) {__p->~_Tp();} }; template <class _Tp> class __attribute__ ((__type_visibility__("default"))) allocator<const _Tp> { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef const _Tp* pointer; typedef const _Tp* const_pointer; typedef const _Tp& reference; typedef const _Tp& const_reference; typedef const _Tp value_type; typedef true_type propagate_on_container_move_assignment; typedef true_type is_always_equal; template <class _Up> struct rebind {typedef allocator<_Up> other;}; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator() noexcept {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator(const allocator<_Up>&) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_pointer address(const_reference __x) const noexcept {return std::__1::addressof(__x);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer allocate(size_type __n, allocator<void>::const_pointer = 0) { if (__n > max_size()) __throw_length_error("allocator<const T>::allocate(size_t n)" " 'n' exceeds maximum supported size"); return static_cast<pointer>(std::__1::__libcpp_allocate(__n * sizeof(_Tp), alignof(_Tp))); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void deallocate(pointer __p, size_type __n) noexcept {std::__1::__libcpp_deallocate((void*) const_cast<_Tp *>(__p), __n * sizeof(_Tp), alignof(_Tp));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type max_size() const noexcept {return size_type(~0) / sizeof(_Tp);} template <class _Up, class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void construct(_Up* __p, _Args&&... __args) { ::new((void*)__p) _Up(std::__1::forward<_Args>(__args)...); } # 1981 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void destroy(pointer __p) {__p->~_Tp();} }; template <class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const allocator<_Tp>&, const allocator<_Up>&) noexcept {return true;} template <class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const allocator<_Tp>&, const allocator<_Up>&) noexcept {return false;} template <class _OutputIterator, class _Tp> class __attribute__ ((__type_visibility__("default"))) raw_storage_iterator : public iterator<output_iterator_tag, _Tp, ptrdiff_t, _Tp*, raw_storage_iterator<_OutputIterator, _Tp>&> { private: _OutputIterator __x_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit raw_storage_iterator(_OutputIterator __x) : __x_(__x) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) raw_storage_iterator& operator*() {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) raw_storage_iterator& operator=(const _Tp& __element) {::new(std::__1::addressof(*__x_)) _Tp(__element); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) raw_storage_iterator& operator=(_Tp&& __element) {::new(std::__1::addressof(*__x_)) _Tp(std::__1::move(__element)); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) raw_storage_iterator& operator++() {++__x_; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) raw_storage_iterator operator++(int) {raw_storage_iterator __t(*this); ++__x_; return __t;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator base() const { return __x_; } }; template <class _Tp> __attribute__((__no_sanitize__("cfi"))) pair<_Tp*, ptrdiff_t> get_temporary_buffer(ptrdiff_t __n) noexcept { pair<_Tp*, ptrdiff_t> __r(0, 0); const ptrdiff_t __m = (~ptrdiff_t(0) ^ ptrdiff_t(ptrdiff_t(1) << (sizeof(ptrdiff_t) * 8 - 1))) / sizeof(_Tp); if (__n > __m) __n = __m; while (__n > 0) { if (__is_overaligned_for_new(alignof(_Tp))) { std::align_val_t __al = std::align_val_t(std::alignment_of<_Tp>::value); __r.first = static_cast<_Tp*>(::operator new( __n * sizeof(_Tp), __al, nothrow)); } else { __r.first = static_cast<_Tp*>(::operator new( __n * sizeof(_Tp), nothrow)); } # 2054 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 if (__r.first) { __r.second = __n; break; } __n /= 2; } return __r; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void return_temporary_buffer(_Tp* __p) noexcept { std::__1::__libcpp_deallocate_unsized((void*)__p, alignof(_Tp)); } # 2130 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Tp, int _Idx, bool _CanBeEmptyBase = is_empty<_Tp>::value && !__libcpp_is_final<_Tp>::value> struct __compressed_pair_elem { typedef _Tp _ParamT; typedef _Tp& reference; typedef const _Tp& const_reference; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair_elem() : __value_() {} template <class _Up, class = typename enable_if< !is_same<__compressed_pair_elem, typename decay<_Up>::type>::value >::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __compressed_pair_elem(_Up&& __u) : __value_(std::__1::forward<_Up>(__u)) { } template <class... _Args, size_t... _Indexes> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indexes...>) : __value_(std::__1::forward<_Args>(std::__1::get<_Indexes>(__args))...) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference __get() noexcept { return __value_; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference __get() const noexcept { return __value_; } private: _Tp __value_; }; template <class _Tp, int _Idx> struct __compressed_pair_elem<_Tp, _Idx, true> : private _Tp { typedef _Tp _ParamT; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp __value_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair_elem() = default; template <class _Up, class = typename enable_if< !is_same<__compressed_pair_elem, typename decay<_Up>::type>::value >::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __compressed_pair_elem(_Up&& __u) : __value_type(std::__1::forward<_Up>(__u)) {} template <class... _Args, size_t... _Indexes> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indexes...>) : __value_type(std::__1::forward<_Args>(std::__1::get<_Indexes>(__args))...) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference __get() noexcept { return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference __get() const noexcept { return *this; } }; struct __second_tag {}; template <class _T1, class _T2> class __compressed_pair : private __compressed_pair_elem<_T1, 0>, private __compressed_pair_elem<_T2, 1> { typedef __compressed_pair_elem<_T1, 0> _Base1; typedef __compressed_pair_elem<_T2, 1> _Base2; static_assert((!is_same<_T1, _T2>::value), "__compressed_pair cannot be instantated when T1 and T2 are the same type; " "The current implementation is NOT ABI-compatible with the previous " "implementation for this configuration"); public: template <bool _Dummy = true, class = typename enable_if< __dependent_type<is_default_constructible<_T1>, _Dummy>::value && __dependent_type<is_default_constructible<_T2>, _Dummy>::value >::type > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair() {} template <class _Tp, typename enable_if<!is_same<typename decay<_Tp>::type, __compressed_pair>::value, bool>::type = true> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit __compressed_pair(_Tp&& __t) : _Base1(std::forward<_Tp>(__t)), _Base2() {} template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair(__second_tag, _Tp&& __t) : _Base1(), _Base2(std::forward<_Tp>(__t)) {} template <class _U1, class _U2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair(_U1&& __t1, _U2&& __t2) : _Base1(std::forward<_U1>(__t1)), _Base2(std::forward<_U2>(__t2)) {} template <class... _Args1, class... _Args2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __compressed_pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args, tuple<_Args2...> __second_args) : _Base1(__pc, std::__1::move(__first_args), typename __make_tuple_indices<sizeof...(_Args1)>::type()), _Base2(__pc, std::__1::move(__second_args), typename __make_tuple_indices<sizeof...(_Args2)>::type()) {} # 2277 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename _Base1::reference first() noexcept { return static_cast<_Base1&>(*this).__get(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename _Base1::const_reference first() const noexcept { return static_cast<_Base1 const&>(*this).__get(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename _Base2::reference second() noexcept { return static_cast<_Base2&>(*this).__get(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename _Base2::const_reference second() const noexcept { return static_cast<_Base2 const&>(*this).__get(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__compressed_pair& __x) noexcept(__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value) { using std::swap; swap(first(), __x.first()); swap(second(), __x.second()); } }; template <class _T1, class _T2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__compressed_pair<_T1, _T2>& __x, __compressed_pair<_T1, _T2>& __y) noexcept(__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value) { __x.swap(__y); } template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) default_delete { static_assert(!is_function<_Tp>::value, "default_delete cannot be instantiated for function types"); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr default_delete() noexcept = default; template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) default_delete(const default_delete<_Up>&, typename enable_if<is_convertible<_Up*, _Tp*>::value>::type* = 0) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator()(_Tp* __ptr) const noexcept { static_assert(sizeof(_Tp) > 0, "default_delete can not delete incomplete type"); static_assert(!is_void<_Tp>::value, "default_delete can not delete incomplete type"); delete __ptr; } }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) default_delete<_Tp[]> { private: template <class _Up> struct _EnableIfConvertible : enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value> {}; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr default_delete() noexcept = default; template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) default_delete(const default_delete<_Up[]>&, typename _EnableIfConvertible<_Up>::type* = 0) noexcept {} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename _EnableIfConvertible<_Up>::type operator()(_Up* __ptr) const noexcept { static_assert(sizeof(_Tp) > 0, "default_delete can not delete incomplete type"); static_assert(!is_void<_Tp>::value, "default_delete can not delete void type"); delete[] __ptr; } }; template <class _Deleter> struct __unique_ptr_deleter_sfinae { static_assert(!is_reference<_Deleter>::value, "incorrect specialization"); typedef const _Deleter& __lval_ref_type; typedef _Deleter&& __good_rval_ref_type; typedef true_type __enable_rval_overload; }; template <class _Deleter> struct __unique_ptr_deleter_sfinae<_Deleter const&> { typedef const _Deleter& __lval_ref_type; typedef const _Deleter&& __bad_rval_ref_type; typedef false_type __enable_rval_overload; }; template <class _Deleter> struct __unique_ptr_deleter_sfinae<_Deleter&> { typedef _Deleter& __lval_ref_type; typedef _Deleter&& __bad_rval_ref_type; typedef false_type __enable_rval_overload; }; template <class _Tp, class _Dp = default_delete<_Tp> > class __attribute__ ((__type_visibility__("default"))) unique_ptr { public: typedef _Tp element_type; typedef _Dp deleter_type; typedef typename __pointer_type<_Tp, deleter_type>::type pointer; static_assert(!is_rvalue_reference<deleter_type>::value, "the specified deleter type cannot be an rvalue reference"); private: __compressed_pair<pointer, deleter_type> __ptr_; struct __nat { int __for_bool_; }; typedef __unique_ptr_deleter_sfinae<_Dp> _DeleterSFINAE; template <bool _Dummy> using _LValRefType = typename __dependent_type<_DeleterSFINAE, _Dummy>::__lval_ref_type; template <bool _Dummy> using _GoodRValRefType = typename __dependent_type<_DeleterSFINAE, _Dummy>::__good_rval_ref_type; template <bool _Dummy> using _BadRValRefType = typename __dependent_type<_DeleterSFINAE, _Dummy>::__bad_rval_ref_type; template <bool _Dummy, class _Deleter = typename __dependent_type< __identity<deleter_type>, _Dummy>::type> using _EnableIfDeleterDefaultConstructible = typename enable_if<is_default_constructible<_Deleter>::value && !is_pointer<_Deleter>::value>::type; template <class _ArgType> using _EnableIfDeleterConstructible = typename enable_if<is_constructible<deleter_type, _ArgType>::value>::type; template <class _UPtr, class _Up> using _EnableIfMoveConvertible = typename enable_if< is_convertible<typename _UPtr::pointer, pointer>::value && !is_array<_Up>::value >::type; template <class _UDel> using _EnableIfDeleterConvertible = typename enable_if< (is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) || (!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value) >::type; template <class _UDel> using _EnableIfDeleterAssignable = typename enable_if< is_assignable<_Dp&, _UDel&&>::value >::type; public: template <bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unique_ptr() noexcept : __ptr_(pointer()) {} template <bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unique_ptr(nullptr_t) noexcept : __ptr_(pointer()) {} template <bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit unique_ptr(pointer __p) noexcept : __ptr_(__p) {} template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_LValRefType<_Dummy>>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(pointer __p, _LValRefType<_Dummy> __d) noexcept : __ptr_(__p, __d) {} template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy>>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(pointer __p, _GoodRValRefType<_Dummy> __d) noexcept : __ptr_(__p, std::__1::move(__d)) { static_assert(!is_reference<deleter_type>::value, "rvalue deleter bound to reference"); } template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_BadRValRefType<_Dummy>>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(pointer __p, _BadRValRefType<_Dummy> __d) = delete; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(unique_ptr&& __u) noexcept : __ptr_(__u.release(), std::__1::forward<deleter_type>(__u.get_deleter())) { } template <class _Up, class _Ep, class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, class = _EnableIfDeleterConvertible<_Ep> > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept : __ptr_(__u.release(), std::__1::forward<_Ep>(__u.get_deleter())) {} # 2515 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr& operator=(unique_ptr&& __u) noexcept { reset(__u.release()); __ptr_.second() = std::__1::forward<deleter_type>(__u.get_deleter()); return *this; } template <class _Up, class _Ep, class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, class = _EnableIfDeleterAssignable<_Ep> > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr& operator=(unique_ptr<_Up, _Ep>&& __u) noexcept { reset(__u.release()); __ptr_.second() = std::__1::forward<_Ep>(__u.get_deleter()); return *this; } # 2604 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~unique_ptr() { reset(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr& operator=(nullptr_t) noexcept { reset(); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename add_lvalue_reference<_Tp>::type operator*() const { return *__ptr_.first(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer operator->() const noexcept { return __ptr_.first(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer get() const noexcept { return __ptr_.first(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) deleter_type& get_deleter() noexcept { return __ptr_.second(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const deleter_type& get_deleter() const noexcept { return __ptr_.second(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept { return __ptr_.first() != nullptr; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer release() noexcept { pointer __t = __ptr_.first(); __ptr_.first() = pointer(); return __t; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void reset(pointer __p = pointer()) noexcept { pointer __tmp = __ptr_.first(); __ptr_.first() = __p; if (__tmp) __ptr_.second()(__tmp); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(unique_ptr& __u) noexcept { __ptr_.swap(__u.__ptr_); } }; template <class _Tp, class _Dp> class __attribute__ ((__type_visibility__("default"))) unique_ptr<_Tp[], _Dp> { public: typedef _Tp element_type; typedef _Dp deleter_type; typedef typename __pointer_type<_Tp, deleter_type>::type pointer; private: __compressed_pair<pointer, deleter_type> __ptr_; template <class _From> struct _CheckArrayPointerConversion : is_same<_From, pointer> {}; template <class _FromElem> struct _CheckArrayPointerConversion<_FromElem*> : integral_constant<bool, is_same<_FromElem*, pointer>::value || (is_same<pointer, element_type*>::value && is_convertible<_FromElem(*)[], element_type(*)[]>::value) > {}; typedef __unique_ptr_deleter_sfinae<_Dp> _DeleterSFINAE; template <bool _Dummy> using _LValRefType = typename __dependent_type<_DeleterSFINAE, _Dummy>::__lval_ref_type; template <bool _Dummy> using _GoodRValRefType = typename __dependent_type<_DeleterSFINAE, _Dummy>::__good_rval_ref_type; template <bool _Dummy> using _BadRValRefType = typename __dependent_type<_DeleterSFINAE, _Dummy>::__bad_rval_ref_type; template <bool _Dummy, class _Deleter = typename __dependent_type< __identity<deleter_type>, _Dummy>::type> using _EnableIfDeleterDefaultConstructible = typename enable_if<is_default_constructible<_Deleter>::value && !is_pointer<_Deleter>::value>::type; template <class _ArgType> using _EnableIfDeleterConstructible = typename enable_if<is_constructible<deleter_type, _ArgType>::value>::type; template <class _Pp> using _EnableIfPointerConvertible = typename enable_if< _CheckArrayPointerConversion<_Pp>::value >::type; template <class _UPtr, class _Up, class _ElemT = typename _UPtr::element_type> using _EnableIfMoveConvertible = typename enable_if< is_array<_Up>::value && is_same<pointer, element_type*>::value && is_same<typename _UPtr::pointer, _ElemT*>::value && is_convertible<_ElemT(*)[], element_type(*)[]>::value >::type; template <class _UDel> using _EnableIfDeleterConvertible = typename enable_if< (is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) || (!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value) >::type; template <class _UDel> using _EnableIfDeleterAssignable = typename enable_if< is_assignable<_Dp&, _UDel&&>::value >::type; public: template <bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unique_ptr() noexcept : __ptr_(pointer()) {} template <bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr unique_ptr(nullptr_t) noexcept : __ptr_(pointer()) {} template <class _Pp, bool _Dummy = true, class = _EnableIfDeleterDefaultConstructible<_Dummy>, class = _EnableIfPointerConvertible<_Pp>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit unique_ptr(_Pp __p) noexcept : __ptr_(__p) {} template <class _Pp, bool _Dummy = true, class = _EnableIfDeleterConstructible<_LValRefType<_Dummy>>, class = _EnableIfPointerConvertible<_Pp>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(_Pp __p, _LValRefType<_Dummy> __d) noexcept : __ptr_(__p, __d) {} template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_LValRefType<_Dummy>>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(nullptr_t, _LValRefType<_Dummy> __d) noexcept : __ptr_(nullptr, __d) {} template <class _Pp, bool _Dummy = true, class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy>>, class = _EnableIfPointerConvertible<_Pp>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(_Pp __p, _GoodRValRefType<_Dummy> __d) noexcept : __ptr_(__p, std::__1::move(__d)) { static_assert(!is_reference<deleter_type>::value, "rvalue deleter bound to reference"); } template <bool _Dummy = true, class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy>>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(nullptr_t, _GoodRValRefType<_Dummy> __d) noexcept : __ptr_(nullptr, std::__1::move(__d)) { static_assert(!is_reference<deleter_type>::value, "rvalue deleter bound to reference"); } template <class _Pp, bool _Dummy = true, class = _EnableIfDeleterConstructible<_BadRValRefType<_Dummy>>, class = _EnableIfPointerConvertible<_Pp>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(_Pp __p, _BadRValRefType<_Dummy> __d) = delete; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(unique_ptr&& __u) noexcept : __ptr_(__u.release(), std::__1::forward<deleter_type>(__u.get_deleter())) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr& operator=(unique_ptr&& __u) noexcept { reset(__u.release()); __ptr_.second() = std::__1::forward<deleter_type>(__u.get_deleter()); return *this; } template <class _Up, class _Ep, class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, class = _EnableIfDeleterConvertible<_Ep> > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept : __ptr_(__u.release(), std::__1::forward<_Ep>(__u.get_deleter())) { } template <class _Up, class _Ep, class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>, class = _EnableIfDeleterAssignable<_Ep> > __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr& operator=(unique_ptr<_Up, _Ep>&& __u) noexcept { reset(__u.release()); __ptr_.second() = std::__1::forward<_Ep>(__u.get_deleter()); return *this; } # 2884 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~unique_ptr() { reset(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_ptr& operator=(nullptr_t) noexcept { reset(); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename add_lvalue_reference<_Tp>::type operator[](size_t __i) const { return __ptr_.first()[__i]; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer get() const noexcept { return __ptr_.first(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) deleter_type& get_deleter() noexcept { return __ptr_.second(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const deleter_type& get_deleter() const noexcept { return __ptr_.second(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept { return __ptr_.first() != nullptr; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer release() noexcept { pointer __t = __ptr_.first(); __ptr_.first() = pointer(); return __t; } template <class _Pp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if< _CheckArrayPointerConversion<_Pp>::value >::type reset(_Pp __p) noexcept { pointer __tmp = __ptr_.first(); __ptr_.first() = __p; if (__tmp) __ptr_.second()(__tmp); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void reset(nullptr_t = nullptr) noexcept { pointer __tmp = __ptr_.first(); __ptr_.first() = nullptr; if (__tmp) __ptr_.second()(__tmp); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(unique_ptr& __u) noexcept { __ptr_.swap(__u.__ptr_); } }; template <class _Tp, class _Dp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if< __is_swappable<_Dp>::value, void >::type swap(unique_ptr<_Tp, _Dp>& __x, unique_ptr<_Tp, _Dp>& __y) noexcept {__x.swap(__y);} template <class _T1, class _D1, class _T2, class _D2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return __x.get() == __y.get();} template <class _T1, class _D1, class _T2, class _D2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x == __y);} template <class _T1, class _D1, class _T2, class _D2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator< (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) { typedef typename unique_ptr<_T1, _D1>::pointer _P1; typedef typename unique_ptr<_T2, _D2>::pointer _P2; typedef typename common_type<_P1, _P2>::type _Vp; return less<_Vp>()(__x.get(), __y.get()); } template <class _T1, class _D1, class _T2, class _D2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return __y < __x;} template <class _T1, class _D1, class _T2, class _D2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__y < __x);} template <class _T1, class _D1, class _T2, class _D2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x < __y);} template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const unique_ptr<_T1, _D1>& __x, nullptr_t) noexcept { return !__x; } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(nullptr_t, const unique_ptr<_T1, _D1>& __x) noexcept { return !__x; } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const unique_ptr<_T1, _D1>& __x, nullptr_t) noexcept { return static_cast<bool>(__x); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(nullptr_t, const unique_ptr<_T1, _D1>& __x) noexcept { return static_cast<bool>(__x); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(const unique_ptr<_T1, _D1>& __x, nullptr_t) { typedef typename unique_ptr<_T1, _D1>::pointer _P1; return less<_P1>()(__x.get(), nullptr); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(nullptr_t, const unique_ptr<_T1, _D1>& __x) { typedef typename unique_ptr<_T1, _D1>::pointer _P1; return less<_P1>()(nullptr, __x.get()); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(const unique_ptr<_T1, _D1>& __x, nullptr_t) { return nullptr < __x; } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(nullptr_t, const unique_ptr<_T1, _D1>& __x) { return __x < nullptr; } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const unique_ptr<_T1, _D1>& __x, nullptr_t) { return !(nullptr < __x); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(nullptr_t, const unique_ptr<_T1, _D1>& __x) { return !(__x < nullptr); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const unique_ptr<_T1, _D1>& __x, nullptr_t) { return !(__x < nullptr); } template <class _T1, class _D1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(nullptr_t, const unique_ptr<_T1, _D1>& __x) { return !(nullptr < __x); } # 3108 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template<class _Tp> struct __unique_if { typedef unique_ptr<_Tp> __unique_single; }; template<class _Tp> struct __unique_if<_Tp[]> { typedef unique_ptr<_Tp[]> __unique_array_unknown_bound; }; template<class _Tp, size_t _Np> struct __unique_if<_Tp[_Np]> { typedef void __unique_array_known_bound; }; template<class _Tp, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __unique_if<_Tp>::__unique_single make_unique(_Args&&... __args) { return unique_ptr<_Tp>(new _Tp(std::__1::forward<_Args>(__args)...)); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __unique_if<_Tp>::__unique_array_unknown_bound make_unique(size_t __n) { typedef typename remove_extent<_Tp>::type _Up; return unique_ptr<_Tp>(new _Up[__n]()); } template<class _Tp, class... _Args> typename __unique_if<_Tp>::__unique_array_known_bound make_unique(_Args&&...) = delete; template <class _Tp, class _Dp> struct __attribute__ ((__type_visibility__("default"))) hash<__enable_hash_helper< unique_ptr<_Tp, _Dp>, typename unique_ptr<_Tp, _Dp>::pointer>> { typedef unique_ptr<_Tp, _Dp> argument_type; typedef size_t result_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result_type operator()(const argument_type& __ptr) const { typedef typename argument_type::pointer pointer; return hash<pointer>()(__ptr.get()); } }; struct __destruct_n { private: size_t __size_; template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __process(_Tp* __p, false_type) noexcept {for (size_t __i = 0; __i < __size_; ++__i, ++__p) __p->~_Tp();} template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __process(_Tp*, true_type) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __incr(false_type) noexcept {++__size_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __incr(true_type) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set(size_t __s, false_type) noexcept {__size_ = __s;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set(size_t, true_type) noexcept {} public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __destruct_n(size_t __s) noexcept : __size_(__s) {} template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __incr(_Tp*) noexcept {__incr(integral_constant<bool, is_trivially_destructible<_Tp>::value>());} template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set(size_t __s, _Tp*) noexcept {__set(__s, integral_constant<bool, is_trivially_destructible<_Tp>::value>());} template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator()(_Tp* __p) noexcept {__process(__p, integral_constant<bool, is_trivially_destructible<_Tp>::value>());} }; template <class _Alloc> class __allocator_destructor { typedef allocator_traits<_Alloc> __alloc_traits; public: typedef typename __alloc_traits::pointer pointer; typedef typename __alloc_traits::size_type size_type; private: _Alloc& __alloc_; size_type __s_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __allocator_destructor(_Alloc& __a, size_type __s) noexcept : __alloc_(__a), __s_(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator()(pointer __p) noexcept {__alloc_traits::deallocate(__alloc_, __p, __s_);} }; template <class _InputIterator, class _ForwardIterator> _ForwardIterator uninitialized_copy(_InputIterator __f, _InputIterator __l, _ForwardIterator __r) { typedef typename iterator_traits<_ForwardIterator>::value_type value_type; for (; __f != __l; ++__f, (void) ++__r) ::new (static_cast<void*>(std::__1::addressof(*__r))) value_type(*__f); # 3246 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 return __r; } template <class _InputIterator, class _Size, class _ForwardIterator> _ForwardIterator uninitialized_copy_n(_InputIterator __f, _Size __n, _ForwardIterator __r) { typedef typename iterator_traits<_ForwardIterator>::value_type value_type; for (; __n > 0; ++__f, (void) ++__r, (void) --__n) ::new (static_cast<void*>(std::__1::addressof(*__r))) value_type(*__f); # 3270 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 return __r; } template <class _ForwardIterator, class _Tp> void uninitialized_fill(_ForwardIterator __f, _ForwardIterator __l, const _Tp& __x) { typedef typename iterator_traits<_ForwardIterator>::value_type value_type; for (; __f != __l; ++__f) ::new (static_cast<void*>(std::__1::addressof(*__f))) value_type(__x); # 3294 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 } template <class _ForwardIterator, class _Size, class _Tp> _ForwardIterator uninitialized_fill_n(_ForwardIterator __f, _Size __n, const _Tp& __x) { typedef typename iterator_traits<_ForwardIterator>::value_type value_type; for (; __n > 0; ++__f, (void) --__n) ::new (static_cast<void*>(std::__1::addressof(*__f))) value_type(__x); # 3317 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 return __f; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void destroy_at(_Tp* __loc) { ((void)0); __loc->~_Tp(); } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void destroy(_ForwardIterator __first, _ForwardIterator __last) { for (; __first != __last; ++__first) std::__1::destroy_at(std::__1::addressof(*__first)); } template <class _ForwardIterator, class _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator destroy_n(_ForwardIterator __first, _Size __n) { for (; __n > 0; (void)++__first, --__n) std::__1::destroy_at(std::__1::addressof(*__first)); return __first; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void uninitialized_default_construct(_ForwardIterator __first, _ForwardIterator __last) { using _Vt = typename iterator_traits<_ForwardIterator>::value_type; auto __idx = __first; for (; __idx != __last; ++__idx) ::new((void*)std::__1::addressof(*__idx)) _Vt; } template <class _ForwardIterator, class _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator uninitialized_default_construct_n(_ForwardIterator __first, _Size __n) { using _Vt = typename iterator_traits<_ForwardIterator>::value_type; auto __idx = __first; for (; __n > 0; (void)++__idx, --__n) ::new((void*)std::__1::addressof(*__idx)) _Vt; return __idx; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void uninitialized_value_construct(_ForwardIterator __first, _ForwardIterator __last) { using _Vt = typename iterator_traits<_ForwardIterator>::value_type; auto __idx = __first; for (; __idx != __last; ++__idx) ::new((void*)std::__1::addressof(*__idx)) _Vt(); } template <class _ForwardIterator, class _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator uninitialized_value_construct_n(_ForwardIterator __first, _Size __n) { using _Vt = typename iterator_traits<_ForwardIterator>::value_type; auto __idx = __first; for (; __n > 0; (void)++__idx, --__n) ::new((void*)std::__1::addressof(*__idx)) _Vt(); return __idx; } template <class _InputIt, class _ForwardIt> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIt uninitialized_move(_InputIt __first, _InputIt __last, _ForwardIt __first_res) { using _Vt = typename iterator_traits<_ForwardIt>::value_type; auto __idx = __first_res; for (; __first != __last; (void)++__idx, ++__first) ::new((void*)std::__1::addressof(*__idx)) _Vt(std::move(*__first)); return __idx; } template <class _InputIt, class _Size, class _ForwardIt> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_InputIt, _ForwardIt> uninitialized_move_n(_InputIt __first, _Size __n, _ForwardIt __first_res) { using _Vt = typename iterator_traits<_ForwardIt>::value_type; auto __idx = __first_res; for (; __n > 0; ++__idx, (void)++__first, --__n) ::new((void*)std::__1::addressof(*__idx)) _Vt(std::move(*__first)); return {__first, __idx}; } # 3473 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __libcpp_atomic_refcount_increment(_Tp& __t) noexcept { return __atomic_add_fetch(&__t, 1, 0); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __libcpp_atomic_refcount_decrement(_Tp& __t) noexcept { return __atomic_add_fetch(&__t, -1, 4); } class __attribute__ ((__visibility__("default"))) bad_weak_ptr : public std::exception { public: virtual ~bad_weak_ptr() noexcept; virtual const char* what() const noexcept; }; [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_bad_weak_ptr() { std::__1::abort(); } template<class _Tp> class __attribute__ ((__type_visibility__("default"))) weak_ptr; class __attribute__ ((__visibility__("default"))) __shared_count { __shared_count(const __shared_count&); __shared_count& operator=(const __shared_count&); protected: long __shared_owners_; virtual ~__shared_count(); private: virtual void __on_zero_shared() noexcept = 0; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __shared_count(long __refs = 0) noexcept : __shared_owners_(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __add_shared() noexcept { __libcpp_atomic_refcount_increment(__shared_owners_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __release_shared() noexcept { if (__libcpp_atomic_refcount_decrement(__shared_owners_) == -1) { __on_zero_shared(); return true; } return false; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long use_count() const noexcept { return __libcpp_relaxed_load(&__shared_owners_) + 1; } }; class __attribute__ ((__visibility__("default"))) __shared_weak_count : private __shared_count { long __shared_weak_owners_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __shared_weak_count(long __refs = 0) noexcept : __shared_count(__refs), __shared_weak_owners_(__refs) {} protected: virtual ~__shared_weak_count(); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __add_shared() noexcept { __shared_count::__add_shared(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __add_weak() noexcept { __libcpp_atomic_refcount_increment(__shared_weak_owners_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __release_shared() noexcept { if (__shared_count::__release_shared()) __release_weak(); } void __release_weak() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long use_count() const noexcept {return __shared_count::use_count();} __shared_weak_count* lock() noexcept; virtual const void* __get_deleter(const type_info&) const noexcept; private: virtual void __on_zero_shared_weak() noexcept = 0; }; template <class _Tp, class _Dp, class _Alloc> class __shared_ptr_pointer : public __shared_weak_count { __compressed_pair<__compressed_pair<_Tp, _Dp>, _Alloc> __data_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __shared_ptr_pointer(_Tp __p, _Dp __d, _Alloc __a) : __data_(__compressed_pair<_Tp, _Dp>(__p, std::__1::move(__d)), std::__1::move(__a)) {} virtual const void* __get_deleter(const type_info&) const noexcept; private: virtual void __on_zero_shared() noexcept; virtual void __on_zero_shared_weak() noexcept; }; template <class _Tp, class _Dp, class _Alloc> const void* __shared_ptr_pointer<_Tp, _Dp, _Alloc>::__get_deleter(const type_info& __t) const noexcept { return __t == typeid(_Dp) ? std::__1::addressof(__data_.first().second()) : nullptr; } template <class _Tp, class _Dp, class _Alloc> void __shared_ptr_pointer<_Tp, _Dp, _Alloc>::__on_zero_shared() noexcept { __data_.first().second()(__data_.first().first()); __data_.first().second().~_Dp(); } template <class _Tp, class _Dp, class _Alloc> void __shared_ptr_pointer<_Tp, _Dp, _Alloc>::__on_zero_shared_weak() noexcept { typedef typename __allocator_traits_rebind<_Alloc, __shared_ptr_pointer>::type _Al; typedef allocator_traits<_Al> _ATraits; typedef pointer_traits<typename _ATraits::pointer> _PTraits; _Al __a(__data_.second()); __data_.second().~_Alloc(); __a.deallocate(_PTraits::pointer_to(*this), 1); } template <class _Tp, class _Alloc> class __shared_ptr_emplace : public __shared_weak_count { __compressed_pair<_Alloc, _Tp> __data_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __shared_ptr_emplace(_Alloc __a) : __data_(std::__1::move(__a)) {} template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __shared_ptr_emplace(_Alloc __a, _Args&& ...__args) : __data_(piecewise_construct, std::__1::forward_as_tuple(__a), std::__1::forward_as_tuple(std::__1::forward<_Args>(__args)...)) {} # 3697 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 private: virtual void __on_zero_shared() noexcept; virtual void __on_zero_shared_weak() noexcept; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* get() noexcept {return std::__1::addressof(__data_.second());} }; template <class _Tp, class _Alloc> void __shared_ptr_emplace<_Tp, _Alloc>::__on_zero_shared() noexcept { __data_.second().~_Tp(); } template <class _Tp, class _Alloc> void __shared_ptr_emplace<_Tp, _Alloc>::__on_zero_shared_weak() noexcept { typedef typename __allocator_traits_rebind<_Alloc, __shared_ptr_emplace>::type _Al; typedef allocator_traits<_Al> _ATraits; typedef pointer_traits<typename _ATraits::pointer> _PTraits; _Al __a(__data_.first()); __data_.first().~_Alloc(); __a.deallocate(_PTraits::pointer_to(*this), 1); } struct __shared_ptr_dummy_rebind_allocator_type; template <> class __attribute__ ((__type_visibility__("default"))) allocator<__shared_ptr_dummy_rebind_allocator_type> { public: template <class _Other> struct rebind { typedef allocator<_Other> other; }; }; template<class _Tp> class __attribute__ ((__type_visibility__("default"))) enable_shared_from_this; template<class _Tp> class __attribute__ ((__type_visibility__("default"))) shared_ptr { public: typedef _Tp element_type; typedef weak_ptr<_Tp> weak_type; private: element_type* __ptr_; __shared_weak_count* __cntrl_; struct __nat {int __for_bool_;}; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr shared_ptr() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr shared_ptr(nullptr_t) noexcept; template<class _Yp> explicit shared_ptr(_Yp* __p, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat()); template<class _Yp, class _Dp> shared_ptr(_Yp* __p, _Dp __d, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat()); template<class _Yp, class _Dp, class _Alloc> shared_ptr(_Yp* __p, _Dp __d, _Alloc __a, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat()); template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d); template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a); template<class _Yp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr(const shared_ptr& __r) noexcept; template<class _Yp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr(const shared_ptr<_Yp>& __r, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat()) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr(shared_ptr&& __r) noexcept; template<class _Yp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr(shared_ptr<_Yp>&& __r, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat()) noexcept; template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type= __nat()); # 3797 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Yp, class _Dp> shared_ptr(unique_ptr<_Yp, _Dp>&&, typename enable_if < !is_lvalue_reference<_Dp>::value && !is_array<_Yp>::value && is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value, __nat >::type = __nat()); template <class _Yp, class _Dp> shared_ptr(unique_ptr<_Yp, _Dp>&&, typename enable_if < is_lvalue_reference<_Dp>::value && !is_array<_Yp>::value && is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value, __nat >::type = __nat()); # 3836 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 ~shared_ptr(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr& operator=(const shared_ptr& __r) noexcept; template<class _Yp> typename enable_if < is_convertible<_Yp*, element_type*>::value, shared_ptr& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator=(const shared_ptr<_Yp>& __r) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr& operator=(shared_ptr&& __r) noexcept; template<class _Yp> typename enable_if < is_convertible<_Yp*, element_type*>::value, shared_ptr<_Tp>& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator=(shared_ptr<_Yp>&& __r); # 3883 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template <class _Yp, class _Dp> typename enable_if < !is_array<_Yp>::value && is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value, shared_ptr& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator=(unique_ptr<_Yp, _Dp>&& __r); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(shared_ptr& __r) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void reset() noexcept; template<class _Yp> typename enable_if < is_convertible<_Yp*, element_type*>::value, void >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reset(_Yp* __p); template<class _Yp, class _Dp> typename enable_if < is_convertible<_Yp*, element_type*>::value, void >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reset(_Yp* __p, _Dp __d); template<class _Yp, class _Dp, class _Alloc> typename enable_if < is_convertible<_Yp*, element_type*>::value, void >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reset(_Yp* __p, _Dp __d, _Alloc __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) element_type* get() const noexcept {return __ptr_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename add_lvalue_reference<element_type>::type operator*() const noexcept {return *__ptr_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) element_type* operator->() const noexcept {return __ptr_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long use_count() const noexcept {return __cntrl_ ? __cntrl_->use_count() : 0;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool unique() const noexcept {return use_count() == 1;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept {return get() != 0;} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool owner_before(shared_ptr<_Up> const& __p) const noexcept {return __cntrl_ < __p.__cntrl_;} template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool owner_before(weak_ptr<_Up> const& __p) const noexcept {return __cntrl_ < __p.__cntrl_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __owner_equivalent(const shared_ptr& __p) const {return __cntrl_ == __p.__cntrl_;} template <class _Dp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Dp* __get_deleter() const noexcept {return static_cast<_Dp*>(__cntrl_ ? const_cast<void *>(__cntrl_->__get_deleter(typeid(_Dp))) : nullptr);} template<class ..._Args> static shared_ptr<_Tp> make_shared(_Args&& ...__args); template<class _Alloc, class ..._Args> static shared_ptr<_Tp> allocate_shared(const _Alloc& __a, _Args&& ...__args); # 4005 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 private: template <class _Yp, bool = is_function<_Yp>::value> struct __shared_ptr_default_allocator { typedef allocator<_Yp> type; }; template <class _Yp> struct __shared_ptr_default_allocator<_Yp, true> { typedef allocator<__shared_ptr_dummy_rebind_allocator_type> type; }; template <class _Yp, class _OrigPtr> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if<is_convertible<_OrigPtr*, const enable_shared_from_this<_Yp>* >::value, void>::type __enable_weak_this(const enable_shared_from_this<_Yp>* __e, _OrigPtr* __ptr) noexcept { typedef typename remove_cv<_Yp>::type _RawYp; if (__e && __e->__weak_this_.expired()) { __e->__weak_this_ = shared_ptr<_RawYp>(*this, const_cast<_RawYp*>(static_cast<const _Yp*>(__ptr))); } } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __enable_weak_this(...) noexcept {} template <class _Up> friend class __attribute__ ((__type_visibility__("default"))) shared_ptr; template <class _Up> friend class __attribute__ ((__type_visibility__("default"))) weak_ptr; }; template<class _Tp> inline constexpr shared_ptr<_Tp>::shared_ptr() noexcept : __ptr_(0), __cntrl_(0) { } template<class _Tp> inline constexpr shared_ptr<_Tp>::shared_ptr(nullptr_t) noexcept : __ptr_(0), __cntrl_(0) { } template<class _Tp> template<class _Yp> shared_ptr<_Tp>::shared_ptr(_Yp* __p, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type) : __ptr_(__p) { unique_ptr<_Yp> __hold(__p); typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT; typedef __shared_ptr_pointer<_Yp*, default_delete<_Yp>, _AllocT > _CntrlBlk; __cntrl_ = new _CntrlBlk(__p, default_delete<_Yp>(), _AllocT()); __hold.release(); __enable_weak_this(__p, __p); } template<class _Tp> template<class _Yp, class _Dp> shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type) : __ptr_(__p) { typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT; typedef __shared_ptr_pointer<_Yp*, _Dp, _AllocT > _CntrlBlk; __cntrl_ = new _CntrlBlk(__p, __d, _AllocT()); __enable_weak_this(__p, __p); # 4096 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 } template<class _Tp> template<class _Dp> shared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d) : __ptr_(0) { typedef typename __shared_ptr_default_allocator<_Tp>::type _AllocT; typedef __shared_ptr_pointer<nullptr_t, _Dp, _AllocT > _CntrlBlk; __cntrl_ = new _CntrlBlk(__p, __d, _AllocT()); # 4118 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 } template<class _Tp> template<class _Yp, class _Dp, class _Alloc> shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d, _Alloc __a, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type) : __ptr_(__p) { typedef __shared_ptr_pointer<_Yp*, _Dp, _Alloc> _CntrlBlk; typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _A2; typedef __allocator_destructor<_A2> _D2; _A2 __a2(__a); unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1)); ::new(static_cast<void*>(std::__1::addressof(*__hold2.get()))) _CntrlBlk(__p, __d, __a); __cntrl_ = std::__1::addressof(*__hold2.release()); __enable_weak_this(__p, __p); # 4147 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 } template<class _Tp> template<class _Dp, class _Alloc> shared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a) : __ptr_(0) { typedef __shared_ptr_pointer<nullptr_t, _Dp, _Alloc> _CntrlBlk; typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _A2; typedef __allocator_destructor<_A2> _D2; _A2 __a2(__a); unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1)); ::new(static_cast<void*>(std::__1::addressof(*__hold2.get()))) _CntrlBlk(__p, __d, __a); __cntrl_ = std::__1::addressof(*__hold2.release()); # 4174 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 } template<class _Tp> template<class _Yp> inline shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, element_type *__p) noexcept : __ptr_(__p), __cntrl_(__r.__cntrl_) { if (__cntrl_) __cntrl_->__add_shared(); } template<class _Tp> inline shared_ptr<_Tp>::shared_ptr(const shared_ptr& __r) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { if (__cntrl_) __cntrl_->__add_shared(); } template<class _Tp> template<class _Yp> inline shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { if (__cntrl_) __cntrl_->__add_shared(); } template<class _Tp> inline shared_ptr<_Tp>::shared_ptr(shared_ptr&& __r) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { __r.__ptr_ = 0; __r.__cntrl_ = 0; } template<class _Tp> template<class _Yp> inline shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { __r.__ptr_ = 0; __r.__cntrl_ = 0; } # 4255 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template<class _Tp> template <class _Yp, class _Dp> shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r, typename enable_if < !is_lvalue_reference<_Dp>::value && !is_array<_Yp>::value && is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value, __nat >::type) : __ptr_(__r.get()) { if (__ptr_ == nullptr) __cntrl_ = nullptr; else { typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT; typedef __shared_ptr_pointer<_Yp*, _Dp, _AllocT > _CntrlBlk; __cntrl_ = new _CntrlBlk(__r.get(), __r.get_deleter(), _AllocT()); __enable_weak_this(__r.get(), __r.get()); } __r.release(); } template<class _Tp> template <class _Yp, class _Dp> shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r, typename enable_if < is_lvalue_reference<_Dp>::value && !is_array<_Yp>::value && is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value, __nat >::type) : __ptr_(__r.get()) { if (__ptr_ == nullptr) __cntrl_ = nullptr; else { typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT; typedef __shared_ptr_pointer<_Yp*, reference_wrapper<typename remove_reference<_Dp>::type>, _AllocT > _CntrlBlk; __cntrl_ = new _CntrlBlk(__r.get(), ref(__r.get_deleter()), _AllocT()); __enable_weak_this(__r.get(), __r.get()); } __r.release(); } template<class _Tp> template<class ..._Args> shared_ptr<_Tp> shared_ptr<_Tp>::make_shared(_Args&& ...__args) { static_assert( is_constructible<_Tp, _Args...>::value, "Can't construct object in make_shared" ); typedef __shared_ptr_emplace<_Tp, allocator<_Tp> > _CntrlBlk; typedef allocator<_CntrlBlk> _A2; typedef __allocator_destructor<_A2> _D2; _A2 __a2; unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1)); ::new(__hold2.get()) _CntrlBlk(__a2, std::__1::forward<_Args>(__args)...); shared_ptr<_Tp> __r; __r.__ptr_ = __hold2.get()->get(); __r.__cntrl_ = __hold2.release(); __r.__enable_weak_this(__r.__ptr_, __r.__ptr_); return __r; } template<class _Tp> template<class _Alloc, class ..._Args> shared_ptr<_Tp> shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args) { static_assert( is_constructible<_Tp, _Args...>::value, "Can't construct object in allocate_shared" ); typedef __shared_ptr_emplace<_Tp, _Alloc> _CntrlBlk; typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _A2; typedef __allocator_destructor<_A2> _D2; _A2 __a2(__a); unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1)); ::new(static_cast<void*>(std::__1::addressof(*__hold2.get()))) _CntrlBlk(__a, std::__1::forward<_Args>(__args)...); shared_ptr<_Tp> __r; __r.__ptr_ = __hold2.get()->get(); __r.__cntrl_ = std::__1::addressof(*__hold2.release()); __r.__enable_weak_this(__r.__ptr_, __r.__ptr_); return __r; } # 4517 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template<class _Tp> shared_ptr<_Tp>::~shared_ptr() { if (__cntrl_) __cntrl_->__release_shared(); } template<class _Tp> inline shared_ptr<_Tp>& shared_ptr<_Tp>::operator=(const shared_ptr& __r) noexcept { shared_ptr(__r).swap(*this); return *this; } template<class _Tp> template<class _Yp> inline typename enable_if < is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(const shared_ptr<_Yp>& __r) noexcept { shared_ptr(__r).swap(*this); return *this; } template<class _Tp> inline shared_ptr<_Tp>& shared_ptr<_Tp>::operator=(shared_ptr&& __r) noexcept { shared_ptr(std::__1::move(__r)).swap(*this); return *this; } template<class _Tp> template<class _Yp> inline typename enable_if < is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(shared_ptr<_Yp>&& __r) { shared_ptr(std::__1::move(__r)).swap(*this); return *this; } # 4589 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template<class _Tp> template <class _Yp, class _Dp> inline typename enable_if < !is_array<_Yp>::value && is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, typename shared_ptr<_Tp>::element_type*>::value, shared_ptr<_Tp>& >::type shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp>&& __r) { shared_ptr(std::__1::move(__r)).swap(*this); return *this; } # 4642 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template<class _Tp> inline void shared_ptr<_Tp>::swap(shared_ptr& __r) noexcept { std::__1::swap(__ptr_, __r.__ptr_); std::__1::swap(__cntrl_, __r.__cntrl_); } template<class _Tp> inline void shared_ptr<_Tp>::reset() noexcept { shared_ptr().swap(*this); } template<class _Tp> template<class _Yp> inline typename enable_if < is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, void >::type shared_ptr<_Tp>::reset(_Yp* __p) { shared_ptr(__p).swap(*this); } template<class _Tp> template<class _Yp, class _Dp> inline typename enable_if < is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, void >::type shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d) { shared_ptr(__p, __d).swap(*this); } template<class _Tp> template<class _Yp, class _Dp, class _Alloc> inline typename enable_if < is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value, void >::type shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d, _Alloc __a) { shared_ptr(__p, __d, __a).swap(*this); } template<class _Tp, class ..._Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < !is_array<_Tp>::value, shared_ptr<_Tp> >::type make_shared(_Args&& ...__args) { return shared_ptr<_Tp>::make_shared(std::__1::forward<_Args>(__args)...); } template<class _Tp, class _Alloc, class ..._Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < !is_array<_Tp>::value, shared_ptr<_Tp> >::type allocate_shared(const _Alloc& __a, _Args&& ...__args) { return shared_ptr<_Tp>::allocate_shared(__a, std::__1::forward<_Args>(__args)...); } # 4792 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) noexcept { return __x.get() == __y.get(); } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) noexcept { return !(__x == __y); } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) noexcept { return less<>()(__x.get(), __y.get()); } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) noexcept { return __y < __x; } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) noexcept { return !(__y < __x); } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) noexcept { return !(__x < __y); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const shared_ptr<_Tp>& __x, nullptr_t) noexcept { return !__x; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(nullptr_t, const shared_ptr<_Tp>& __x) noexcept { return !__x; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const shared_ptr<_Tp>& __x, nullptr_t) noexcept { return static_cast<bool>(__x); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(nullptr_t, const shared_ptr<_Tp>& __x) noexcept { return static_cast<bool>(__x); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(const shared_ptr<_Tp>& __x, nullptr_t) noexcept { return less<_Tp*>()(__x.get(), nullptr); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(nullptr_t, const shared_ptr<_Tp>& __x) noexcept { return less<_Tp*>()(nullptr, __x.get()); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(const shared_ptr<_Tp>& __x, nullptr_t) noexcept { return nullptr < __x; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(nullptr_t, const shared_ptr<_Tp>& __x) noexcept { return __x < nullptr; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const shared_ptr<_Tp>& __x, nullptr_t) noexcept { return !(nullptr < __x); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(nullptr_t, const shared_ptr<_Tp>& __x) noexcept { return !(__x < nullptr); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const shared_ptr<_Tp>& __x, nullptr_t) noexcept { return !(__x < nullptr); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(nullptr_t, const shared_ptr<_Tp>& __x) noexcept { return !(nullptr < __x); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(shared_ptr<_Tp>& __x, shared_ptr<_Tp>& __y) noexcept { __x.swap(__y); } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < !is_array<_Tp>::value && !is_array<_Up>::value, shared_ptr<_Tp> >::type static_pointer_cast(const shared_ptr<_Up>& __r) noexcept { return shared_ptr<_Tp>(__r, static_cast<_Tp*>(__r.get())); } template<class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < !is_array<_Tp>::value && !is_array<_Up>::value, shared_ptr<_Tp> >::type dynamic_pointer_cast(const shared_ptr<_Up>& __r) noexcept { _Tp* __p = dynamic_cast<_Tp*>(__r.get()); return __p ? shared_ptr<_Tp>(__r, __p) : shared_ptr<_Tp>(); } template<class _Tp, class _Up> typename enable_if < is_array<_Tp>::value == is_array<_Up>::value, shared_ptr<_Tp> >::type const_pointer_cast(const shared_ptr<_Up>& __r) noexcept { typedef typename remove_extent<_Tp>::type _RTp; return shared_ptr<_Tp>(__r, const_cast<_RTp*>(__r.get())); } template<class _Dp, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Dp* get_deleter(const shared_ptr<_Tp>& __p) noexcept { return __p.template __get_deleter<_Dp>(); } template<class _Tp> class __attribute__ ((__type_visibility__("default"))) weak_ptr { public: typedef _Tp element_type; private: element_type* __ptr_; __shared_weak_count* __cntrl_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr weak_ptr() noexcept; template<class _Yp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr(shared_ptr<_Yp> const& __r, typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr(weak_ptr const& __r) noexcept; template<class _Yp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr(weak_ptr<_Yp> const& __r, typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr(weak_ptr&& __r) noexcept; template<class _Yp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr(weak_ptr<_Yp>&& __r, typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0) noexcept; ~weak_ptr(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr& operator=(weak_ptr const& __r) noexcept; template<class _Yp> typename enable_if < is_convertible<_Yp*, element_type*>::value, weak_ptr& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator=(weak_ptr<_Yp> const& __r) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr& operator=(weak_ptr&& __r) noexcept; template<class _Yp> typename enable_if < is_convertible<_Yp*, element_type*>::value, weak_ptr& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator=(weak_ptr<_Yp>&& __r) noexcept; template<class _Yp> typename enable_if < is_convertible<_Yp*, element_type*>::value, weak_ptr& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator=(shared_ptr<_Yp> const& __r) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(weak_ptr& __r) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void reset() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long use_count() const noexcept {return __cntrl_ ? __cntrl_->use_count() : 0;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool expired() const noexcept {return __cntrl_ == 0 || __cntrl_->use_count() == 0;} shared_ptr<_Tp> lock() const noexcept; template<class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool owner_before(const shared_ptr<_Up>& __r) const noexcept {return __cntrl_ < __r.__cntrl_;} template<class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool owner_before(const weak_ptr<_Up>& __r) const noexcept {return __cntrl_ < __r.__cntrl_;} template <class _Up> friend class __attribute__ ((__type_visibility__("default"))) weak_ptr; template <class _Up> friend class __attribute__ ((__type_visibility__("default"))) shared_ptr; }; template<class _Tp> inline constexpr weak_ptr<_Tp>::weak_ptr() noexcept : __ptr_(0), __cntrl_(0) { } template<class _Tp> inline weak_ptr<_Tp>::weak_ptr(weak_ptr const& __r) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { if (__cntrl_) __cntrl_->__add_weak(); } template<class _Tp> template<class _Yp> inline weak_ptr<_Tp>::weak_ptr(shared_ptr<_Yp> const& __r, typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { if (__cntrl_) __cntrl_->__add_weak(); } template<class _Tp> template<class _Yp> inline weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp> const& __r, typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { if (__cntrl_) __cntrl_->__add_weak(); } template<class _Tp> inline weak_ptr<_Tp>::weak_ptr(weak_ptr&& __r) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { __r.__ptr_ = 0; __r.__cntrl_ = 0; } template<class _Tp> template<class _Yp> inline weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp>&& __r, typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type) noexcept : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_) { __r.__ptr_ = 0; __r.__cntrl_ = 0; } template<class _Tp> weak_ptr<_Tp>::~weak_ptr() { if (__cntrl_) __cntrl_->__release_weak(); } template<class _Tp> inline weak_ptr<_Tp>& weak_ptr<_Tp>::operator=(weak_ptr const& __r) noexcept { weak_ptr(__r).swap(*this); return *this; } template<class _Tp> template<class _Yp> inline typename enable_if < is_convertible<_Yp*, _Tp*>::value, weak_ptr<_Tp>& >::type weak_ptr<_Tp>::operator=(weak_ptr<_Yp> const& __r) noexcept { weak_ptr(__r).swap(*this); return *this; } template<class _Tp> inline weak_ptr<_Tp>& weak_ptr<_Tp>::operator=(weak_ptr&& __r) noexcept { weak_ptr(std::__1::move(__r)).swap(*this); return *this; } template<class _Tp> template<class _Yp> inline typename enable_if < is_convertible<_Yp*, _Tp*>::value, weak_ptr<_Tp>& >::type weak_ptr<_Tp>::operator=(weak_ptr<_Yp>&& __r) noexcept { weak_ptr(std::__1::move(__r)).swap(*this); return *this; } template<class _Tp> template<class _Yp> inline typename enable_if < is_convertible<_Yp*, _Tp*>::value, weak_ptr<_Tp>& >::type weak_ptr<_Tp>::operator=(shared_ptr<_Yp> const& __r) noexcept { weak_ptr(__r).swap(*this); return *this; } template<class _Tp> inline void weak_ptr<_Tp>::swap(weak_ptr& __r) noexcept { std::__1::swap(__ptr_, __r.__ptr_); std::__1::swap(__cntrl_, __r.__cntrl_); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(weak_ptr<_Tp>& __x, weak_ptr<_Tp>& __y) noexcept { __x.swap(__y); } template<class _Tp> inline void weak_ptr<_Tp>::reset() noexcept { weak_ptr().swap(*this); } template<class _Tp> template<class _Yp> shared_ptr<_Tp>::shared_ptr(const weak_ptr<_Yp>& __r, typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type) : __ptr_(__r.__ptr_), __cntrl_(__r.__cntrl_ ? __r.__cntrl_->lock() : __r.__cntrl_) { if (__cntrl_ == 0) __throw_bad_weak_ptr(); } template<class _Tp> shared_ptr<_Tp> weak_ptr<_Tp>::lock() const noexcept { shared_ptr<_Tp> __r; __r.__cntrl_ = __cntrl_ ? __cntrl_->lock() : __cntrl_; if (__r.__cntrl_) __r.__ptr_ = __ptr_; return __r; } template <class _Tp = void> struct owner_less; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) owner_less<shared_ptr<_Tp> > : binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool> { typedef bool result_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(shared_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const noexcept {return __x.owner_before(__y);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(shared_ptr<_Tp> const& __x, weak_ptr<_Tp> const& __y) const noexcept {return __x.owner_before(__y);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const noexcept {return __x.owner_before(__y);} }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) owner_less<weak_ptr<_Tp> > : binary_function<weak_ptr<_Tp>, weak_ptr<_Tp>, bool> { typedef bool result_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( weak_ptr<_Tp> const& __x, weak_ptr<_Tp> const& __y) const noexcept {return __x.owner_before(__y);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(shared_ptr<_Tp> const& __x, weak_ptr<_Tp> const& __y) const noexcept {return __x.owner_before(__y);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const noexcept {return __x.owner_before(__y);} }; template <> struct __attribute__ ((__type_visibility__("default"))) owner_less<void> { template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const noexcept {return __x.owner_before(__y);} template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( shared_ptr<_Tp> const& __x, weak_ptr<_Up> const& __y) const noexcept {return __x.owner_before(__y);} template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const noexcept {return __x.owner_before(__y);} template <class _Tp, class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()( weak_ptr<_Tp> const& __x, weak_ptr<_Up> const& __y) const noexcept {return __x.owner_before(__y);} typedef void is_transparent; }; template<class _Tp> class __attribute__ ((__type_visibility__("default"))) enable_shared_from_this { mutable weak_ptr<_Tp> __weak_this_; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr enable_shared_from_this() noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) enable_shared_from_this(enable_shared_from_this const&) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) enable_shared_from_this& operator=(enable_shared_from_this const&) noexcept {return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~enable_shared_from_this() {} public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr<_Tp> shared_from_this() {return shared_ptr<_Tp>(__weak_this_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr<_Tp const> shared_from_this() const {return shared_ptr<const _Tp>(__weak_this_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr<_Tp> weak_from_this() noexcept { return __weak_this_; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) weak_ptr<const _Tp> weak_from_this() const noexcept { return __weak_this_; } template <class _Up> friend class shared_ptr; }; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) hash<shared_ptr<_Tp> > { typedef shared_ptr<_Tp> argument_type; typedef size_t result_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result_type operator()(const argument_type& __ptr) const noexcept { return hash<_Tp*>()(__ptr.get()); } }; template<class _CharT, class _Traits, class _Yp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p); class __attribute__ ((__visibility__("default"))) __sp_mut { void* __lx; public: void lock() noexcept; void unlock() noexcept; private: constexpr __sp_mut(void*) noexcept; __sp_mut(const __sp_mut&); __sp_mut& operator=(const __sp_mut&); friend __attribute__ ((__visibility__("default"))) __sp_mut& __get_sp_mut(const void*); }; __attribute__ ((__visibility__("default"))) __sp_mut& __get_sp_mut(const void*); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_is_lock_free(const shared_ptr<_Tp>*) { return false; } template <class _Tp> shared_ptr<_Tp> atomic_load(const shared_ptr<_Tp>* __p) { __sp_mut& __m = __get_sp_mut(__p); __m.lock(); shared_ptr<_Tp> __q = *__p; __m.unlock(); return __q; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr<_Tp> atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) { return atomic_load(__p); } template <class _Tp> void atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) { __sp_mut& __m = __get_sp_mut(__p); __m.lock(); __p->swap(__r); __m.unlock(); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) { atomic_store(__p, __r); } template <class _Tp> shared_ptr<_Tp> atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) { __sp_mut& __m = __get_sp_mut(__p); __m.lock(); __p->swap(__r); __m.unlock(); return __r; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) shared_ptr<_Tp> atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) { return atomic_exchange(__p, __r); } template <class _Tp> bool atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w) { shared_ptr<_Tp> __temp; __sp_mut& __m = __get_sp_mut(__p); __m.lock(); if (__p->__owner_equivalent(*__v)) { std::__1::swap(__temp, *__p); *__p = __w; __m.unlock(); return true; } std::__1::swap(__temp, *__v); *__v = *__p; __m.unlock(); return false; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w) { return atomic_compare_exchange_strong(__p, __v, __w); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w, memory_order, memory_order) { return atomic_compare_exchange_strong(__p, __v, __w); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w, memory_order, memory_order) { return atomic_compare_exchange_weak(__p, __v, __w); } # 5547 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 struct __attribute__ ((__visibility__("default"))) pointer_safety { enum __lx { relaxed, preferred, strict }; __lx __v_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer_safety() : __v_() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer_safety(__lx __v) : __v_(__v) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator int() const {return __v_;} }; # 5574 "/opt/toolchain/target/bin/../include/c++/v1/memory" 3 inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer_safety get_pointer_safety() noexcept { return pointer_safety::relaxed; } __attribute__ ((__visibility__("default"))) void declare_reachable(void* __p); __attribute__ ((__visibility__("default"))) void declare_no_pointers(char* __p, size_t __n); __attribute__ ((__visibility__("default"))) void undeclare_no_pointers(char* __p, size_t __n); __attribute__ ((__visibility__("default"))) void* __undeclare_reachable(void* __p); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp* undeclare_reachable(_Tp* __p) { return static_cast<_Tp*>(__undeclare_reachable(__p)); } __attribute__ ((__visibility__("default"))) void* align(size_t __align, size_t __sz, void*& __ptr, size_t& __space); template <typename _Alloc> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __swap_allocator(_Alloc & __a1, _Alloc & __a2) noexcept { __swap_allocator(__a1, __a2, integral_constant<bool, std::__1::allocator_traits<_Alloc>::propagate_on_container_swap::value>()); } template <typename _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __swap_allocator(_Alloc & __a1, _Alloc & __a2, true_type) noexcept { using std::__1::swap; swap(__a1, __a2); } template <typename _Alloc> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __swap_allocator(_Alloc &, _Alloc &, false_type) noexcept {} template <typename _Alloc, typename _Traits=allocator_traits<_Alloc> > struct __noexcept_move_assign_container : public integral_constant<bool, _Traits::propagate_on_container_move_assignment::value || _Traits::is_always_equal::value > {}; template <class _Tp, class _Alloc> struct __temp_value { typedef allocator_traits<_Alloc> _Traits; typename aligned_storage<sizeof(_Tp), alignof(_Tp)>::type __v; _Alloc &__a; _Tp *__addr() { return reinterpret_cast<_Tp *>(addressof(__v)); } _Tp & get() { return *__addr(); } template<class... _Args> __attribute__((__no_sanitize__("cfi"))) __temp_value(_Alloc &__alloc, _Args&& ... __args) : __a(__alloc) { _Traits::construct(__a, reinterpret_cast<_Tp*>(addressof(__v)), std::__1::forward<_Args>(__args)...); } ~__temp_value() { _Traits::destroy(__a, __addr()); } }; template<typename _Alloc, typename = void, typename = void> struct __is_allocator : false_type {}; template<typename _Alloc> struct __is_allocator<_Alloc, typename __void_t<typename _Alloc::value_type>::type, typename __void_t<decltype(std::__1::declval<_Alloc&>().allocate(size_t(0)))>::type > : true_type {}; } } # 644 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/functional" 1 3 # 506 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 namespace std { inline namespace __1 { template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) plus : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x + __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) plus<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) + std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) + std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) + std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) minus : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x - __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) minus<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) - std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) - std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) - std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) multiplies : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x * __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) multiplies<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) * std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) * std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) * std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) divides : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x / __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) divides<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) / std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) / std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) / std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) modulus : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x % __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) modulus<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) % std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) % std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) % std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) negate : unary_function<_Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x) const {return -__x;} }; template <> struct __attribute__ ((__type_visibility__("default"))) negate<void> { template <class _Tp> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Tp&& __x) const noexcept(noexcept(- std::__1::forward<_Tp>(__x))) -> decltype (- std::__1::forward<_Tp>(__x)) { return - std::__1::forward<_Tp>(__x); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) equal_to : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x == __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) equal_to<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) == std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) == std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) == std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) not_equal_to : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x != __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) not_equal_to<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) != std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) != std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) != std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) greater : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x > __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) greater<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) > std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) > std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) > std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) greater_equal : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x >= __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) greater_equal<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) >= std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) >= std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) >= std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) less_equal : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x <= __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) less_equal<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) <= std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) <= std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) <= std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) logical_and : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x && __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) logical_and<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) && std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) && std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) && std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) logical_or : binary_function<_Tp, _Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Tp& __y) const {return __x || __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) logical_or<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) || std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) || std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) || std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) logical_not : unary_function<_Tp, bool> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x) const {return !__x;} }; template <> struct __attribute__ ((__type_visibility__("default"))) logical_not<void> { template <class _Tp> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Tp&& __x) const noexcept(noexcept(!std::__1::forward<_Tp>(__x))) -> decltype (!std::__1::forward<_Tp>(__x)) { return !std::__1::forward<_Tp>(__x); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) bit_and : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x & __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) bit_and<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) & std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) & std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) & std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) bit_or : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x | __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) bit_or<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) | std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) | std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) | std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) bit_xor : binary_function<_Tp, _Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x ^ __y;} }; template <> struct __attribute__ ((__type_visibility__("default"))) bit_xor<void> { template <class _T1, class _T2> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const noexcept(noexcept(std::__1::forward<_T1>(__t) ^ std::__1::forward<_T2>(__u))) -> decltype (std::__1::forward<_T1>(__t) ^ std::__1::forward<_T2>(__u)) { return std::__1::forward<_T1>(__t) ^ std::__1::forward<_T2>(__u); } typedef void is_transparent; }; template <class _Tp = void> struct __attribute__ ((__type_visibility__("default"))) bit_not : unary_function<_Tp, _Tp> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp operator()(const _Tp& __x) const {return ~__x;} }; template <> struct __attribute__ ((__type_visibility__("default"))) bit_not<void> { template <class _Tp> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Tp&& __x) const noexcept(noexcept(~std::__1::forward<_Tp>(__x))) -> decltype (~std::__1::forward<_Tp>(__x)) { return ~std::__1::forward<_Tp>(__x); } typedef void is_transparent; }; template <class _Predicate> class __attribute__ ((__type_visibility__("default"))) __attribute__ ((deprecated)) unary_negate : public unary_function<typename _Predicate::argument_type, bool> { _Predicate __pred_; public: constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit unary_negate(const _Predicate& __pred) : __pred_(__pred) {} constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const typename _Predicate::argument_type& __x) const {return !__pred_(__x);} }; template <class _Predicate> __attribute__ ((deprecated)) inline constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unary_negate<_Predicate> not1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);} template <class _Predicate> class __attribute__ ((__type_visibility__("default"))) __attribute__ ((deprecated)) binary_negate : public binary_function<typename _Predicate::first_argument_type, typename _Predicate::second_argument_type, bool> { _Predicate __pred_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr binary_negate(const _Predicate& __pred) : __pred_(__pred) {} constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const typename _Predicate::first_argument_type& __x, const typename _Predicate::second_argument_type& __y) const {return !__pred_(__x, __y);} }; template <class _Predicate> __attribute__ ((deprecated)) inline constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) binary_negate<_Predicate> not2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);} # 1272 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 template <class _Tp> class __mem_fn : public __weak_result_type<_Tp> { public: typedef _Tp type; private: type __f_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __mem_fn(type __f) noexcept : __f_(__f) {} template <class... _ArgTypes> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __invoke_return<type, _ArgTypes...>::type operator() (_ArgTypes&&... __args) const { return __invoke(__f_, std::__1::forward<_ArgTypes>(__args)...); } # 1393 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 }; template<class _Rp, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __mem_fn<_Rp _Tp::*> mem_fn(_Rp _Tp::* __pm) noexcept { return __mem_fn<_Rp _Tp::*>(__pm); } class __attribute__ ((__visibility__("default"))) bad_function_call : public exception { }; [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_bad_function_call() { std::__1::abort(); } template<class _Fp> class __attribute__ ((__type_visibility__("default"))) function; namespace __function { template<class _Rp> struct __maybe_derive_from_unary_function { }; template<class _Rp, class _A1> struct __maybe_derive_from_unary_function<_Rp(_A1)> : public unary_function<_A1, _Rp> { }; template<class _Rp> struct __maybe_derive_from_binary_function { }; template<class _Rp, class _A1, class _A2> struct __maybe_derive_from_binary_function<_Rp(_A1, _A2)> : public binary_function<_A1, _A2, _Rp> { }; template <class _Fp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __not_null(_Fp const&) { return true; } template <class _Fp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __not_null(_Fp* __ptr) { return __ptr; } template <class _Ret, class _Class> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __not_null(_Ret _Class::*__ptr) { return __ptr; } template <class _Fp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __not_null(function<_Fp> const& __f) { return !!__f; } } namespace __function { template <class _Fp, class _Ap, class _FB> class __alloc_func; template <class _Fp, class _Ap, class _Rp, class... _ArgTypes> class __alloc_func<_Fp, _Ap, _Rp(_ArgTypes...)> { __compressed_pair<_Fp, _Ap> __f_; public: typedef _Fp _Target; typedef _Ap _Alloc; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Target& __target() const { return __f_.first(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Alloc& __get_allocator() const { return __f_.second(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __alloc_func(_Target&& __f) : __f_(piecewise_construct, std::__1::forward_as_tuple(std::__1::move(__f)), std::__1::forward_as_tuple()) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __alloc_func(const _Target& __f, const _Alloc& __a) : __f_(piecewise_construct, std::__1::forward_as_tuple(__f), std::__1::forward_as_tuple(__a)) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __alloc_func(const _Target& __f, _Alloc&& __a) : __f_(piecewise_construct, std::__1::forward_as_tuple(__f), std::__1::forward_as_tuple(std::__1::move(__a))) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __alloc_func(_Target&& __f, _Alloc&& __a) : __f_(piecewise_construct, std::__1::forward_as_tuple(std::__1::move(__f)), std::__1::forward_as_tuple(std::__1::move(__a))) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Rp operator()(_ArgTypes&&... __arg) { typedef __invoke_void_return_wrapper<_Rp> _Invoker; return _Invoker::__call(__f_.first(), std::__1::forward<_ArgTypes>(__arg)...); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __alloc_func* __clone() const { typedef allocator_traits<_Alloc> __alloc_traits; typedef typename __rebind_alloc_helper<__alloc_traits, __alloc_func>::type _AA; _AA __a(__f_.second()); typedef __allocator_destructor<_AA> _Dp; unique_ptr<__alloc_func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); ::new ((void*)__hold.get()) __alloc_func(__f_.first(), _Alloc(__a)); return __hold.release(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void destroy() noexcept { __f_.~__compressed_pair<_Target, _Alloc>(); } }; template<class _Fp> class __base; template<class _Rp, class ..._ArgTypes> class __base<_Rp(_ArgTypes...)> { __base(const __base&); __base& operator=(const __base&); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __base() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual ~__base() {} virtual __base* __clone() const = 0; virtual void __clone(__base*) const = 0; virtual void destroy() noexcept = 0; virtual void destroy_deallocate() noexcept = 0; virtual _Rp operator()(_ArgTypes&& ...) = 0; virtual const void* target(const type_info&) const noexcept = 0; virtual const std::type_info& target_type() const noexcept = 0; }; template<class _FD, class _Alloc, class _FB> class __func; template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> class __func<_Fp, _Alloc, _Rp(_ArgTypes...)> : public __base<_Rp(_ArgTypes...)> { __alloc_func<_Fp, _Alloc, _Rp(_ArgTypes...)> __f_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __func(_Fp&& __f) : __f_(std::__1::move(__f)) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __func(const _Fp& __f, const _Alloc& __a) : __f_(__f, __a) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __func(const _Fp& __f, _Alloc&& __a) : __f_(__f, std::__1::move(__a)) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __func(_Fp&& __f, _Alloc&& __a) : __f_(std::__1::move(__f), std::__1::move(__a)) {} virtual __base<_Rp(_ArgTypes...)>* __clone() const; virtual void __clone(__base<_Rp(_ArgTypes...)>*) const; virtual void destroy() noexcept; virtual void destroy_deallocate() noexcept; virtual _Rp operator()(_ArgTypes&&... __arg); virtual const void* target(const type_info&) const noexcept; virtual const std::type_info& target_type() const noexcept; }; template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> __base<_Rp(_ArgTypes...)>* __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__clone() const { typedef allocator_traits<_Alloc> __alloc_traits; typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; _Ap __a(__f_.__get_allocator()); typedef __allocator_destructor<_Ap> _Dp; unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1)); ::new ((void*)__hold.get()) __func(__f_.__target(), _Alloc(__a)); return __hold.release(); } template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> void __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__clone(__base<_Rp(_ArgTypes...)>* __p) const { ::new (__p) __func(__f_.__target(), __f_.__get_allocator()); } template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> void __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy() noexcept { __f_.destroy(); } template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> void __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy_deallocate() noexcept { typedef allocator_traits<_Alloc> __alloc_traits; typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap; _Ap __a(__f_.__get_allocator()); __f_.destroy(); __a.deallocate(this, 1); } template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> _Rp __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::operator()(_ArgTypes&& ... __arg) { return __f_(std::__1::forward<_ArgTypes>(__arg)...); } template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> const void* __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target(const type_info& __ti) const noexcept { if (__ti == typeid(_Fp)) return &__f_.__target(); return (const void*)0; } template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes> const std::type_info& __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target_type() const noexcept { return typeid(_Fp); } template <class _Fp> class __value_func; template <class _Rp, class... _ArgTypes> class __value_func<_Rp(_ArgTypes...)> { typename aligned_storage<3 * sizeof(void*)>::type __buf_; typedef __base<_Rp(_ArgTypes...)> __func; __func* __f_; __attribute__((__no_sanitize__("cfi"))) static __func* __as_base(void* p) { return reinterpret_cast<__func*>(p); } public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __value_func() noexcept : __f_(0) {} template <class _Fp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __value_func(_Fp&& __f, const _Alloc __a) : __f_(0) { typedef allocator_traits<_Alloc> __alloc_traits; typedef __function::__func<_Fp, _Alloc, _Rp(_ArgTypes...)> _Fun; typedef typename __rebind_alloc_helper<__alloc_traits, _Fun>::type _FunAlloc; if (__function::__not_null(__f)) { _FunAlloc __af(__a); if (sizeof(_Fun) <= sizeof(__buf_) && is_nothrow_copy_constructible<_Fp>::value && is_nothrow_copy_constructible<_FunAlloc>::value) { __f_ = ::new ((void*)&__buf_) _Fun(std::__1::move(__f), _Alloc(__af)); } else { typedef __allocator_destructor<_FunAlloc> _Dp; unique_ptr<__func, _Dp> __hold(__af.allocate(1), _Dp(__af, 1)); ::new ((void*)__hold.get()) _Fun(std::__1::move(__f), _Alloc(__a)); __f_ = __hold.release(); } } } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __value_func(const __value_func& __f) { if (__f.__f_ == 0) __f_ = 0; else if ((void*)__f.__f_ == &__f.__buf_) { __f_ = __as_base(&__buf_); __f.__f_->__clone(__f_); } else __f_ = __f.__f_->__clone(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __value_func(__value_func&& __f) noexcept { if (__f.__f_ == 0) __f_ = 0; else if ((void*)__f.__f_ == &__f.__buf_) { __f_ = __as_base(&__buf_); __f.__f_->__clone(__f_); } else { __f_ = __f.__f_; __f.__f_ = 0; } } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~__value_func() { if ((void*)__f_ == &__buf_) __f_->destroy(); else if (__f_) __f_->destroy_deallocate(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __value_func& operator=(__value_func&& __f) { *this = nullptr; if (__f.__f_ == 0) __f_ = 0; else if ((void*)__f.__f_ == &__f.__buf_) { __f_ = __as_base(&__buf_); __f.__f_->__clone(__f_); } else { __f_ = __f.__f_; __f.__f_ = 0; } return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __value_func& operator=(nullptr_t) { __func* __f = __f_; __f_ = 0; if ((void*)__f == &__buf_) __f->destroy(); else if (__f) __f->destroy_deallocate(); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Rp operator()(_ArgTypes&&... __args) const { if (__f_ == 0) __throw_bad_function_call(); return (*__f_)(std::__1::forward<_ArgTypes>(__args)...); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__value_func& __f) noexcept { if (&__f == this) return; if ((void*)__f_ == &__buf_ && (void*)__f.__f_ == &__f.__buf_) { typename aligned_storage<sizeof(__buf_)>::type __tempbuf; __func* __t = __as_base(&__tempbuf); __f_->__clone(__t); __f_->destroy(); __f_ = 0; __f.__f_->__clone(__as_base(&__buf_)); __f.__f_->destroy(); __f.__f_ = 0; __f_ = __as_base(&__buf_); __t->__clone(__as_base(&__f.__buf_)); __t->destroy(); __f.__f_ = __as_base(&__f.__buf_); } else if ((void*)__f_ == &__buf_) { __f_->__clone(__as_base(&__f.__buf_)); __f_->destroy(); __f_ = __f.__f_; __f.__f_ = __as_base(&__f.__buf_); } else if ((void*)__f.__f_ == &__f.__buf_) { __f.__f_->__clone(__as_base(&__buf_)); __f.__f_->destroy(); __f.__f_ = __f_; __f_ = __as_base(&__buf_); } else std::__1::swap(__f_, __f.__f_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept { return __f_ != 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const std::type_info& target_type() const noexcept { if (__f_ == 0) return typeid(void); return __f_->target_type(); } template <typename _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Tp* target() const noexcept { if (__f_ == 0) return 0; return (const _Tp*)__f_->target(typeid(_Tp)); } }; union __policy_storage { mutable char __small[sizeof(void*) * 2]; void* __large; }; template <typename _Fun> struct __use_small_storage : public std::__1::integral_constant< bool, sizeof(_Fun) <= sizeof(__policy_storage) && alignof(_Fun) <= alignof(__policy_storage) && std::__1::is_trivially_copy_constructible<_Fun>::value && std::__1::is_trivially_destructible<_Fun>::value> {}; struct __policy { void* (*const __clone)(const void*); void (*const __destroy)(void*); const bool __is_null; const std::type_info* const __type_info; template <typename _Fun> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static const __policy* __create() { return __choose_policy<_Fun>(__use_small_storage<_Fun>()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static const __policy* __create_empty() { static const constexpr __policy __policy_ = {nullptr, nullptr, true, &typeid(void) }; return &__policy_; } private: template <typename _Fun> static void* __large_clone(const void* __s) { const _Fun* __f = static_cast<const _Fun*>(__s); return __f->__clone(); } template <typename _Fun> static void __large_destroy(void* __s) { typedef allocator_traits<typename _Fun::_Alloc> __alloc_traits; typedef typename __rebind_alloc_helper<__alloc_traits, _Fun>::type _FunAlloc; _Fun* __f = static_cast<_Fun*>(__s); _FunAlloc __a(__f->__get_allocator()); __f->destroy(); __a.deallocate(__f, 1); } template <typename _Fun> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static const __policy* __choose_policy( false_type) { static const constexpr __policy __policy_ = { &__large_clone<_Fun>, &__large_destroy<_Fun>, false, &typeid(typename _Fun::_Target) }; return &__policy_; } template <typename _Fun> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static const __policy* __choose_policy( true_type) { static const constexpr __policy __policy_ = { nullptr, nullptr, false, &typeid(typename _Fun::_Target) }; return &__policy_; } }; template <typename _Tp> using __fast_forward = typename std::__1::conditional<std::__1::is_scalar<_Tp>::value, _Tp, _Tp&&>::type; template <class _Fp> struct __policy_invoker; template <class _Rp, class... _ArgTypes> struct __policy_invoker<_Rp(_ArgTypes...)> { typedef _Rp (*__Call)(const __policy_storage*, __fast_forward<_ArgTypes>...); __Call __call_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_invoker() : __call_(&__call_empty) {} template <typename _Fun> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static __policy_invoker __create() { return __policy_invoker(&__call_impl<_Fun>); } private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __policy_invoker(__Call __c) : __call_(__c) {} static _Rp __call_empty(const __policy_storage*, __fast_forward<_ArgTypes>...) { __throw_bad_function_call(); } template <typename _Fun> static _Rp __call_impl(const __policy_storage* __buf, __fast_forward<_ArgTypes>... __args) { _Fun* __f = reinterpret_cast<_Fun*>(__use_small_storage<_Fun>::value ? &__buf->__small : __buf->__large); return (*__f)(std::__1::forward<_ArgTypes>(__args)...); } }; template <class _Fp> class __policy_func; template <class _Rp, class... _ArgTypes> class __policy_func<_Rp(_ArgTypes...)> { __policy_storage __buf_; typedef __function::__policy_invoker<_Rp(_ArgTypes...)> __invoker; __invoker __invoker_; const __policy* __policy_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_func() : __policy_(__policy::__create_empty()) {} template <class _Fp, class _Alloc> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_func(_Fp&& __f, const _Alloc& __a) : __policy_(__policy::__create_empty()) { typedef __alloc_func<_Fp, _Alloc, _Rp(_ArgTypes...)> _Fun; typedef allocator_traits<_Alloc> __alloc_traits; typedef typename __rebind_alloc_helper<__alloc_traits, _Fun>::type _FunAlloc; if (__function::__not_null(__f)) { __invoker_ = __invoker::template __create<_Fun>(); __policy_ = __policy::__create<_Fun>(); _FunAlloc __af(__a); if (__use_small_storage<_Fun>()) { ::new ((void*)&__buf_.__small) _Fun(std::__1::move(__f), _Alloc(__af)); } else { typedef __allocator_destructor<_FunAlloc> _Dp; unique_ptr<_Fun, _Dp> __hold(__af.allocate(1), _Dp(__af, 1)); ::new ((void*)__hold.get()) _Fun(std::__1::move(__f), _Alloc(__af)); __buf_.__large = __hold.release(); } } } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_func(const __policy_func& __f) : __buf_(__f.__buf_), __invoker_(__f.__invoker_), __policy_(__f.__policy_) { if (__policy_->__clone) __buf_.__large = __policy_->__clone(__f.__buf_.__large); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_func(__policy_func&& __f) : __buf_(__f.__buf_), __invoker_(__f.__invoker_), __policy_(__f.__policy_) { if (__policy_->__destroy) { __f.__policy_ = __policy::__create_empty(); __f.__invoker_ = __invoker(); } } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~__policy_func() { if (__policy_->__destroy) __policy_->__destroy(__buf_.__large); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_func& operator=(__policy_func&& __f) { *this = nullptr; __buf_ = __f.__buf_; __invoker_ = __f.__invoker_; __policy_ = __f.__policy_; __f.__policy_ = __policy::__create_empty(); __f.__invoker_ = __invoker(); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __policy_func& operator=(nullptr_t) { const __policy* __p = __policy_; __policy_ = __policy::__create_empty(); __invoker_ = __invoker(); if (__p->__destroy) __p->__destroy(__buf_.__large); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Rp operator()(_ArgTypes&&... __args) const { return __invoker_.__call_(std::__1::addressof(__buf_), std::__1::forward<_ArgTypes>(__args)...); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__policy_func& __f) { std::__1::swap(__invoker_, __f.__invoker_); std::__1::swap(__policy_, __f.__policy_); std::__1::swap(__buf_, __f.__buf_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept { return !__policy_->__is_null; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const std::type_info& target_type() const noexcept { return *__policy_->__type_info; } template <typename _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Tp* target() const noexcept { if (__policy_->__is_null || typeid(_Tp) != *__policy_->__type_info) return nullptr; if (__policy_->__clone) return reinterpret_cast<const _Tp*>(__buf_.__large); else return reinterpret_cast<const _Tp*>(&__buf_.__small); } }; } template<class _Rp, class ..._ArgTypes> class __attribute__ ((__type_visibility__("default"))) function<_Rp(_ArgTypes...)> : public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>, public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)> { typedef __function::__value_func<_Rp(_ArgTypes...)> __func; __func __f_; template <class _Fp, bool = __lazy_and< integral_constant<bool, !is_same<__uncvref_t<_Fp>, function>::value>, __invokable<_Fp&, _ArgTypes...> >::value> struct __callable; template <class _Fp> struct __callable<_Fp, true> { static const bool value = is_same<void, _Rp>::value || is_convertible<typename __invoke_of<_Fp&, _ArgTypes...>::type, _Rp>::value; }; template <class _Fp> struct __callable<_Fp, false> { static const bool value = false; }; template <class _Fp> using _EnableIfCallable = typename enable_if<__callable<_Fp>::value>::type; public: typedef _Rp result_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) function() noexcept { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) function(nullptr_t) noexcept {} function(const function&); function(function&&) noexcept; template<class _Fp, class = _EnableIfCallable<_Fp>> function(_Fp); # 2228 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 function& operator=(const function&); function& operator=(function&&) noexcept; function& operator=(nullptr_t) noexcept; template<class _Fp, class = _EnableIfCallable<_Fp>> function& operator=(_Fp&&); ~function(); void swap(function&) noexcept; # 2247 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept { return static_cast<bool>(__f_); } template<class _R2, class... _ArgTypes2> bool operator==(const function<_R2(_ArgTypes2...)>&) const = delete; template<class _R2, class... _ArgTypes2> bool operator!=(const function<_R2(_ArgTypes2...)>&) const = delete; public: _Rp operator()(_ArgTypes...) const; const std::type_info& target_type() const noexcept; template <typename _Tp> _Tp* target() noexcept; template <typename _Tp> const _Tp* target() const noexcept; }; template<class _Rp, class ..._ArgTypes> function<_Rp(_ArgTypes...)>::function(const function& __f) : __f_(__f.__f_) {} # 2279 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 template <class _Rp, class... _ArgTypes> function<_Rp(_ArgTypes...)>::function(function&& __f) noexcept : __f_(std::__1::move(__f.__f_)) {} # 2291 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 template <class _Rp, class... _ArgTypes> template <class _Fp, class> function<_Rp(_ArgTypes...)>::function(_Fp __f) : __f_(std::__1::move(__f), allocator<_Fp>()) {} # 2304 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 template<class _Rp, class ..._ArgTypes> function<_Rp(_ArgTypes...)>& function<_Rp(_ArgTypes...)>::operator=(const function& __f) { function(__f).swap(*this); return *this; } template<class _Rp, class ..._ArgTypes> function<_Rp(_ArgTypes...)>& function<_Rp(_ArgTypes...)>::operator=(function&& __f) noexcept { __f_ = std::move(__f.__f_); return *this; } template<class _Rp, class ..._ArgTypes> function<_Rp(_ArgTypes...)>& function<_Rp(_ArgTypes...)>::operator=(nullptr_t) noexcept { __f_ = nullptr; return *this; } template<class _Rp, class ..._ArgTypes> template <class _Fp, class> function<_Rp(_ArgTypes...)>& function<_Rp(_ArgTypes...)>::operator=(_Fp&& __f) { function(std::__1::forward<_Fp>(__f)).swap(*this); return *this; } template<class _Rp, class ..._ArgTypes> function<_Rp(_ArgTypes...)>::~function() {} template<class _Rp, class ..._ArgTypes> void function<_Rp(_ArgTypes...)>::swap(function& __f) noexcept { __f_.swap(__f.__f_); } template<class _Rp, class ..._ArgTypes> _Rp function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const { return __f_(std::__1::forward<_ArgTypes>(__arg)...); } template<class _Rp, class ..._ArgTypes> const std::type_info& function<_Rp(_ArgTypes...)>::target_type() const noexcept { return __f_.target_type(); } template<class _Rp, class ..._ArgTypes> template <typename _Tp> _Tp* function<_Rp(_ArgTypes...)>::target() noexcept { return (_Tp*)(__f_.template target<_Tp>()); } template<class _Rp, class ..._ArgTypes> template <typename _Tp> const _Tp* function<_Rp(_ArgTypes...)>::target() const noexcept { return __f_.template target<_Tp>(); } template <class _Rp, class... _ArgTypes> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) noexcept {return !__f;} template <class _Rp, class... _ArgTypes> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) noexcept {return !__f;} template <class _Rp, class... _ArgTypes> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) noexcept {return (bool)__f;} template <class _Rp, class... _ArgTypes> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) noexcept {return (bool)__f;} template <class _Rp, class... _ArgTypes> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(function<_Rp(_ArgTypes...)>& __x, function<_Rp(_ArgTypes...)>& __y) noexcept {return __x.swap(__y);} # 2417 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 template<class _Tp> struct __is_bind_expression : public false_type {}; template<class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_bind_expression : public __is_bind_expression<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr size_t is_bind_expression_v = is_bind_expression<_Tp>::value; template<class _Tp> struct __is_placeholder : public integral_constant<int, 0> {}; template<class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_placeholder : public __is_placeholder<typename remove_cv<_Tp>::type> {}; template <class _Tp> inline constexpr size_t is_placeholder_v = is_placeholder<_Tp>::value; namespace placeholders { template <int _Np> struct __ph {}; # 2452 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 constexpr __ph<1> _1{}; constexpr __ph<2> _2{}; constexpr __ph<3> _3{}; constexpr __ph<4> _4{}; constexpr __ph<5> _5{}; constexpr __ph<6> _6{}; constexpr __ph<7> _7{}; constexpr __ph<8> _8{}; constexpr __ph<9> _9{}; constexpr __ph<10> _10{}; } template<int _Np> struct __is_placeholder<placeholders::__ph<_Np> > : public integral_constant<int, _Np> {}; template <class _Tp, class _Uj> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp& __mu(reference_wrapper<_Tp> __t, _Uj&) { return __t.get(); } template <class _Ti, class ..._Uj, size_t ..._Indx> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __invoke_of<_Ti&, _Uj...>::type __mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>) { return __ti(std::__1::forward<_Uj>(std::__1::get<_Indx>(__uj))...); } template <class _Ti, class ..._Uj> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __lazy_enable_if < is_bind_expression<_Ti>::value, __invoke_of<_Ti&, _Uj...> >::type __mu(_Ti& __ti, tuple<_Uj...>& __uj) { typedef typename __make_tuple_indices<sizeof...(_Uj)>::type __indices; return __mu_expand(__ti, __uj, __indices()); } template <bool IsPh, class _Ti, class _Uj> struct __mu_return2 {}; template <class _Ti, class _Uj> struct __mu_return2<true, _Ti, _Uj> { typedef typename tuple_element<is_placeholder<_Ti>::value - 1, _Uj>::type type; }; template <class _Ti, class _Uj> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < 0 < is_placeholder<_Ti>::value, typename __mu_return2<0 < is_placeholder<_Ti>::value, _Ti, _Uj>::type >::type __mu(_Ti&, _Uj& __uj) { const size_t _Indx = is_placeholder<_Ti>::value - 1; return std::__1::forward<typename tuple_element<_Indx, _Uj>::type>(std::__1::get<_Indx>(__uj)); } template <class _Ti, class _Uj> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < !is_bind_expression<_Ti>::value && is_placeholder<_Ti>::value == 0 && !__is_reference_wrapper<_Ti>::value, _Ti& >::type __mu(_Ti& __ti, _Uj&) { return __ti; } template <class _Ti, bool IsReferenceWrapper, bool IsBindEx, bool IsPh, class _TupleUj> struct __mu_return_impl; template <bool _Invokable, class _Ti, class ..._Uj> struct __mu_return_invokable { typedef __nat type; }; template <class _Ti, class ..._Uj> struct __mu_return_invokable<true, _Ti, _Uj...> { typedef typename __invoke_of<_Ti&, _Uj...>::type type; }; template <class _Ti, class ..._Uj> struct __mu_return_impl<_Ti, false, true, false, tuple<_Uj...> > : public __mu_return_invokable<__invokable<_Ti&, _Uj...>::value, _Ti, _Uj...> { }; template <class _Ti, class _TupleUj> struct __mu_return_impl<_Ti, false, false, true, _TupleUj> { typedef typename tuple_element<is_placeholder<_Ti>::value - 1, _TupleUj>::type&& type; }; template <class _Ti, class _TupleUj> struct __mu_return_impl<_Ti, true, false, false, _TupleUj> { typedef typename _Ti::type& type; }; template <class _Ti, class _TupleUj> struct __mu_return_impl<_Ti, false, false, false, _TupleUj> { typedef _Ti& type; }; template <class _Ti, class _TupleUj> struct __mu_return : public __mu_return_impl<_Ti, __is_reference_wrapper<_Ti>::value, is_bind_expression<_Ti>::value, 0 < is_placeholder<_Ti>::value && is_placeholder<_Ti>::value <= tuple_size<_TupleUj>::value, _TupleUj> { }; template <class _Fp, class _BoundArgs, class _TupleUj> struct __is_valid_bind_return { static const bool value = false; }; template <class _Fp, class ..._BoundArgs, class _TupleUj> struct __is_valid_bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj> { static const bool value = __invokable<_Fp, typename __mu_return<_BoundArgs, _TupleUj>::type...>::value; }; template <class _Fp, class ..._BoundArgs, class _TupleUj> struct __is_valid_bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj> { static const bool value = __invokable<_Fp, typename __mu_return<const _BoundArgs, _TupleUj>::type...>::value; }; template <class _Fp, class _BoundArgs, class _TupleUj, bool = __is_valid_bind_return<_Fp, _BoundArgs, _TupleUj>::value> struct __bind_return; template <class _Fp, class ..._BoundArgs, class _TupleUj> struct __bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj, true> { typedef typename __invoke_of < _Fp&, typename __mu_return < _BoundArgs, _TupleUj >::type... >::type type; }; template <class _Fp, class ..._BoundArgs, class _TupleUj> struct __bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj, true> { typedef typename __invoke_of < _Fp&, typename __mu_return < const _BoundArgs, _TupleUj >::type... >::type type; }; template <class _Fp, class _BoundArgs, size_t ..._Indx, class _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __bind_return<_Fp, _BoundArgs, _Args>::type __apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>, _Args&& __args) { return std::__1::__invoke(__f, std::__1::__mu(std::__1::get<_Indx>(__bound_args), __args)...); } template<class _Fp, class ..._BoundArgs> class __bind : public __weak_result_type<typename decay<_Fp>::type> { protected: typedef typename decay<_Fp>::type _Fd; typedef tuple<typename decay<_BoundArgs>::type...> _Td; private: _Fd __f_; _Td __bound_args_; typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices; public: template <class _Gp, class ..._BA, class = typename enable_if < is_constructible<_Fd, _Gp>::value && !is_same<typename remove_reference<_Gp>::type, __bind>::value >::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __bind(_Gp&& __f, _BA&& ...__bound_args) : __f_(std::__1::forward<_Gp>(__f)), __bound_args_(std::__1::forward<_BA>(__bound_args)...) {} template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type operator()(_Args&& ...__args) { return std::__1::__apply_functor(__f_, __bound_args_, __indices(), tuple<_Args&&...>(std::__1::forward<_Args>(__args)...)); } template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __bind_return<const _Fd, const _Td, tuple<_Args&&...> >::type operator()(_Args&& ...__args) const { return std::__1::__apply_functor(__f_, __bound_args_, __indices(), tuple<_Args&&...>(std::__1::forward<_Args>(__args)...)); } }; template<class _Fp, class ..._BoundArgs> struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {}; template<class _Rp, class _Fp, class ..._BoundArgs> class __bind_r : public __bind<_Fp, _BoundArgs...> { typedef __bind<_Fp, _BoundArgs...> base; typedef typename base::_Fd _Fd; typedef typename base::_Td _Td; public: typedef _Rp result_type; template <class _Gp, class ..._BA, class = typename enable_if < is_constructible<_Fd, _Gp>::value && !is_same<typename remove_reference<_Gp>::type, __bind_r>::value >::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __bind_r(_Gp&& __f, _BA&& ...__bound_args) : base(std::__1::forward<_Gp>(__f), std::__1::forward<_BA>(__bound_args)...) {} template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_convertible<typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type, result_type>::value || is_void<_Rp>::value, result_type >::type operator()(_Args&& ...__args) { typedef __invoke_void_return_wrapper<_Rp> _Invoker; return _Invoker::__call(static_cast<base&>(*this), std::__1::forward<_Args>(__args)...); } template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_convertible<typename __bind_return<const _Fd, const _Td, tuple<_Args&&...> >::type, result_type>::value || is_void<_Rp>::value, result_type >::type operator()(_Args&& ...__args) const { typedef __invoke_void_return_wrapper<_Rp> _Invoker; return _Invoker::__call(static_cast<base const&>(*this), std::__1::forward<_Args>(__args)...); } }; template<class _Rp, class _Fp, class ..._BoundArgs> struct __is_bind_expression<__bind_r<_Rp, _Fp, _BoundArgs...> > : public true_type {}; template<class _Fp, class ..._BoundArgs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bind<_Fp, _BoundArgs...> bind(_Fp&& __f, _BoundArgs&&... __bound_args) { typedef __bind<_Fp, _BoundArgs...> type; return type(std::__1::forward<_Fp>(__f), std::__1::forward<_BoundArgs>(__bound_args)...); } template<class _Rp, class _Fp, class ..._BoundArgs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bind_r<_Rp, _Fp, _BoundArgs...> bind(_Fp&& __f, _BoundArgs&&... __bound_args) { typedef __bind_r<_Rp, _Fp, _BoundArgs...> type; return type(std::__1::forward<_Fp>(__f), std::__1::forward<_BoundArgs>(__bound_args)...); } template <class _Fn, class ..._Args> invoke_result_t<_Fn, _Args...> invoke(_Fn&& __f, _Args&&... __args) noexcept(is_nothrow_invocable_v<_Fn, _Args...>) { return std::__1::__invoke(std::__1::forward<_Fn>(__f), std::__1::forward<_Args>(__args)...); } template <class _DecayFunc> class __attribute__ ((__type_visibility__("default"))) __not_fn_imp { _DecayFunc __fd; public: __not_fn_imp() = delete; template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Args&& ...__args) & noexcept(noexcept(!std::__1::invoke(__fd, std::__1::forward<_Args>(__args)...))) -> decltype( !std::__1::invoke(__fd, std::__1::forward<_Args>(__args)...)) { return !std::__1::invoke(__fd, std::__1::forward<_Args>(__args)...); } template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Args&& ...__args) && noexcept(noexcept(!std::__1::invoke(std::__1::move(__fd), std::__1::forward<_Args>(__args)...))) -> decltype( !std::__1::invoke(std::__1::move(__fd), std::__1::forward<_Args>(__args)...)) { return !std::__1::invoke(std::__1::move(__fd), std::__1::forward<_Args>(__args)...); } template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Args&& ...__args) const& noexcept(noexcept(!std::__1::invoke(__fd, std::__1::forward<_Args>(__args)...))) -> decltype( !std::__1::invoke(__fd, std::__1::forward<_Args>(__args)...)) { return !std::__1::invoke(__fd, std::__1::forward<_Args>(__args)...); } template <class ..._Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto operator()(_Args&& ...__args) const&& noexcept(noexcept(!std::__1::invoke(std::__1::move(__fd), std::__1::forward<_Args>(__args)...))) -> decltype( !std::__1::invoke(std::__1::move(__fd), std::__1::forward<_Args>(__args)...)) { return !std::__1::invoke(std::__1::move(__fd), std::__1::forward<_Args>(__args)...); } private: template <class _RawFunc, class = enable_if_t<!is_same<decay_t<_RawFunc>, __not_fn_imp>::value>> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __not_fn_imp(_RawFunc&& __rf) : __fd(std::__1::forward<_RawFunc>(__rf)) {} template <class _RawFunc> friend inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __not_fn_imp<decay_t<_RawFunc>> not_fn(_RawFunc&&); }; template <class _RawFunc> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __not_fn_imp<decay_t<_RawFunc>> not_fn(_RawFunc&& __fn) { return __not_fn_imp<decay_t<_RawFunc>>(std::__1::forward<_RawFunc>(__fn)); } template <class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2> pair<_ForwardIterator1, _ForwardIterator1> constexpr __search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred, forward_iterator_tag, forward_iterator_tag) { if (__first2 == __last2) return make_pair(__first1, __first1); while (true) { while (true) { if (__first1 == __last1) return make_pair(__last1, __last1); if (__pred(*__first1, *__first2)) break; ++__first1; } _ForwardIterator1 __m1 = __first1; _ForwardIterator2 __m2 = __first2; while (true) { if (++__m2 == __last2) return make_pair(__first1, __m1); if (++__m1 == __last1) return make_pair(__last1, __last1); if (!__pred(*__m1, *__m2)) { ++__first1; break; } } } } template <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2> constexpr pair<_RandomAccessIterator1, _RandomAccessIterator1> __search(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, random_access_iterator_tag, random_access_iterator_tag) { typedef typename iterator_traits<_RandomAccessIterator1>::difference_type _D1; typedef typename iterator_traits<_RandomAccessIterator2>::difference_type _D2; const _D2 __len2 = __last2 - __first2; if (__len2 == 0) return make_pair(__first1, __first1); const _D1 __len1 = __last1 - __first1; if (__len1 < __len2) return make_pair(__last1, __last1); const _RandomAccessIterator1 __s = __last1 - (__len2 - 1); while (true) { while (true) { if (__first1 == __s) return make_pair(__last1, __last1); if (__pred(*__first1, *__first2)) break; ++__first1; } _RandomAccessIterator1 __m1 = __first1; _RandomAccessIterator2 __m2 = __first2; while (true) { if (++__m2 == __last2) return make_pair(__first1, __first1 + __len2); ++__m1; if (!__pred(*__m1, *__m2)) { ++__first1; break; } } } } template<class _ForwardIterator, class _BinaryPredicate = equal_to<>> class __attribute__ ((__visibility__("default"))) default_searcher { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) default_searcher(_ForwardIterator __f, _ForwardIterator __l, _BinaryPredicate __p = _BinaryPredicate()) : __first_(__f), __last_(__l), __pred_(__p) {} template <typename _ForwardIterator2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_ForwardIterator2, _ForwardIterator2> operator () (_ForwardIterator2 __f, _ForwardIterator2 __l) const { return std::__1::__search(__f, __l, __first_, __last_, __pred_, typename std::__1::iterator_traits<_ForwardIterator>::iterator_category(), typename std::__1::iterator_traits<_ForwardIterator2>::iterator_category()); } private: _ForwardIterator __first_; _ForwardIterator __last_; _BinaryPredicate __pred_; }; # 2960 "/opt/toolchain/target/bin/../include/c++/v1/functional" 3 template <class _Container, class _Predicate> inline void __libcpp_erase_if_container( _Container& __c, _Predicate __pred) { for (typename _Container::iterator __iter = __c.begin(), __last = __c.end(); __iter != __last;) { if (__pred(*__iter)) __iter = __c.erase(__iter); else ++__iter; } } } } # 645 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/bit" 1 3 # 34 "/opt/toolchain/target/bin/../include/c++/v1/bit" 3 namespace std { inline namespace __1 { inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __ctz(unsigned __x) { return __builtin_ctz(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __ctz(unsigned long __x) { return __builtin_ctzl(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __ctz(unsigned long long __x) { return __builtin_ctzll(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __clz(unsigned __x) { return __builtin_clz(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __clz(unsigned long __x) { return __builtin_clzl(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __clz(unsigned long long __x) { return __builtin_clzll(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __popcount(unsigned __x) { return __builtin_popcount(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __popcount(unsigned long __x) { return __builtin_popcountl(__x); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __popcount(unsigned long long __x) { return __builtin_popcountll(__x); } # 155 "/opt/toolchain/target/bin/../include/c++/v1/bit" 3 } } # 648 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 # 654 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 658 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 2 3 namespace std { inline namespace __1 { template <class _T1, class _T2 = _T1> struct __equal_to { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T2& __y) const {return __x == __y;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T2& __x, const _T1& __y) const {return __x == __y;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T2& __x, const _T2& __y) const {return __x == __y;} }; template <class _T1> struct __equal_to<_T1, _T1> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} }; template <class _T1> struct __equal_to<const _T1, _T1> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} }; template <class _T1> struct __equal_to<_T1, const _T1> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;} }; template <class _T1, class _T2 = _T1> struct __less { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;} }; template <class _T1> struct __less<_T1, _T1> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} }; template <class _T1> struct __less<const _T1, _T1> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} }; template <class _T1> struct __less<_T1, const _T1> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;} }; template <class _Predicate> class __invert { private: _Predicate __p_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __invert() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __invert(_Predicate __p) : __p_(__p) {} template <class _T1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _T1& __x) {return !__p_(__x);} template <class _T1, class _T2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const _T1& __x, const _T2& __y) {return __p_(__y, __x);} }; template <typename _Integral> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < is_integral<_Integral>::value, _Integral >::type __half_positive(_Integral __value) { return static_cast<_Integral>(static_cast<typename make_unsigned<_Integral>::type>(__value) / 2); } template <typename _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < !is_integral<_Tp>::value, _Tp >::type __half_positive(_Tp __value) { return __value / 2; } # 825 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 3 template <class _Comp> struct __comp_ref_type { typedef typename add_lvalue_reference<_Comp>::type type; }; template <class _InputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { for (; __first != __last; ++__first) if (!__pred(*__first)) return false; return true; } template <class _InputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { for (; __first != __last; ++__first) if (__pred(*__first)) return true; return false; } template <class _InputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) { for (; __first != __last; ++__first) if (__pred(*__first)) return false; return true; } template <class _InputIterator, class _Function> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Function for_each(_InputIterator __first, _InputIterator __last, _Function __f) { for (; __first != __last; ++__first) __f(*__first); return __f; } template <class _InputIterator, class _Size, class _Function> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _InputIterator for_each_n(_InputIterator __first, _Size __orig_n, _Function __f) { typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; _IntegralSize __n = __orig_n; while (__n > 0) { __f(*__first); ++__first; --__n; } return __first; } template <class _InputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _InputIterator find(_InputIterator __first, _InputIterator __last, const _Tp& __value_) { for (; __first != __last; ++__first) if (*__first == __value_) break; return __first; } template <class _InputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _InputIterator find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { for (; __first != __last; ++__first) if (__pred(*__first)) break; return __first; } template<class _InputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _InputIterator find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred) { for (; __first != __last; ++__first) if (!__pred(*__first)) break; return __first; } template <class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2> _ForwardIterator1 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred, forward_iterator_tag, forward_iterator_tag) { _ForwardIterator1 __r = __last1; if (__first2 == __last2) return __r; while (true) { while (true) { if (__first1 == __last1) return __r; if (__pred(*__first1, *__first2)) break; ++__first1; } _ForwardIterator1 __m1 = __first1; _ForwardIterator2 __m2 = __first2; while (true) { if (++__m2 == __last2) { __r = __first1; ++__first1; break; } if (++__m1 == __last1) return __r; if (!__pred(*__m1, *__m2)) { ++__first1; break; } } } } template <class _BinaryPredicate, class _BidirectionalIterator1, class _BidirectionalIterator2> _BidirectionalIterator1 __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BinaryPredicate __pred, bidirectional_iterator_tag, bidirectional_iterator_tag) { if (__first2 == __last2) return __last1; _BidirectionalIterator1 __l1 = __last1; _BidirectionalIterator2 __l2 = __last2; --__l2; while (true) { while (true) { if (__first1 == __l1) return __last1; if (__pred(*--__l1, *__l2)) break; } _BidirectionalIterator1 __m1 = __l1; _BidirectionalIterator2 __m2 = __l2; while (true) { if (__m2 == __first2) return __m1; if (__m1 == __first1) return __last1; if (!__pred(*--__m1, *--__m2)) { break; } } } } template <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2> constexpr _RandomAccessIterator1 __find_end(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, random_access_iterator_tag, random_access_iterator_tag) { typename iterator_traits<_RandomAccessIterator2>::difference_type __len2 = __last2 - __first2; if (__len2 == 0) return __last1; typename iterator_traits<_RandomAccessIterator1>::difference_type __len1 = __last1 - __first1; if (__len1 < __len2) return __last1; const _RandomAccessIterator1 __s = __first1 + (__len2 - 1); _RandomAccessIterator1 __l1 = __last1; _RandomAccessIterator2 __l2 = __last2; --__l2; while (true) { while (true) { if (__s == __l1) return __last1; if (__pred(*--__l1, *__l2)) break; } _RandomAccessIterator1 __m1 = __l1; _RandomAccessIterator2 __m2 = __l2; while (true) { if (__m2 == __first2) return __m1; if (!__pred(*--__m1, *--__m2)) { break; } } } } template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) { return std::__1::__find_end<typename add_lvalue_reference<_BinaryPredicate>::type> (__first1, __last1, __first2, __last2, __pred, typename iterator_traits<_ForwardIterator1>::iterator_category(), typename iterator_traits<_ForwardIterator2>::iterator_category()); } template <class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator1 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; return std::__1::find_end(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); } template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> constexpr _ForwardIterator1 __find_first_of_ce(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) { for (; __first1 != __last1; ++__first1) for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) if (__pred(*__first1, *__j)) return __first1; return __last1; } template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator1 find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) { return std::__1::__find_first_of_ce(__first1, __last1, __first2, __last2, __pred); } template <class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator1 find_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; return std::__1::__find_first_of_ce(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); } template <class _ForwardIterator, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred) { if (__first != __last) { _ForwardIterator __i = __first; while (++__i != __last) { if (__pred(*__first, *__i)) return __first; __first = __i; } } return __last; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator adjacent_find(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type __v; return std::__1::adjacent_find(__first, __last, __equal_to<__v>()); } template <class _InputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename iterator_traits<_InputIterator>::difference_type count(_InputIterator __first, _InputIterator __last, const _Tp& __value_) { typename iterator_traits<_InputIterator>::difference_type __r(0); for (; __first != __last; ++__first) if (*__first == __value_) ++__r; return __r; } template <class _InputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename iterator_traits<_InputIterator>::difference_type count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) { typename iterator_traits<_InputIterator>::difference_type __r(0); for (; __first != __last; ++__first) if (__pred(*__first)) ++__r; return __r; } template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __pred) { for (; __first1 != __last1; ++__first1, (void) ++__first2) if (!__pred(*__first1, *__first2)) break; return pair<_InputIterator1, _InputIterator2>(__first1, __first2); } template <class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) { typedef typename iterator_traits<_InputIterator1>::value_type __v1; typedef typename iterator_traits<_InputIterator2>::value_type __v2; return std::__1::mismatch(__first1, __last1, __first2, __equal_to<__v1, __v2>()); } template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred) { for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2) if (!__pred(*__first1, *__first2)) break; return pair<_InputIterator1, _InputIterator2>(__first1, __first2); } template <class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_InputIterator1, _InputIterator2> mismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { typedef typename iterator_traits<_InputIterator1>::value_type __v1; typedef typename iterator_traits<_InputIterator2>::value_type __v2; return std::__1::mismatch(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); } template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __pred) { for (; __first1 != __last1; ++__first1, (void) ++__first2) if (!__pred(*__first1, *__first2)) return false; return true; } template <class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) { typedef typename iterator_traits<_InputIterator1>::value_type __v1; typedef typename iterator_traits<_InputIterator2>::value_type __v2; return std::__1::equal(__first1, __last1, __first2, __equal_to<__v1, __v2>()); } template <class _BinaryPredicate, class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred, input_iterator_tag, input_iterator_tag ) { for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2) if (!__pred(*__first1, *__first2)) return false; return __first1 == __last1 && __first2 == __last2; } template <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __equal(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, random_access_iterator_tag, random_access_iterator_tag ) { if ( std::__1::distance(__first1, __last1) != std::__1::distance(__first2, __last2)) return false; return std::__1::equal<_RandomAccessIterator1, _RandomAccessIterator2, typename add_lvalue_reference<_BinaryPredicate>::type> (__first1, __last1, __first2, __pred ); } template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred ) { return std::__1::__equal<typename add_lvalue_reference<_BinaryPredicate>::type> (__first1, __last1, __first2, __last2, __pred, typename iterator_traits<_InputIterator1>::iterator_category(), typename iterator_traits<_InputIterator2>::iterator_category()); } template <class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { typedef typename iterator_traits<_InputIterator1>::value_type __v1; typedef typename iterator_traits<_InputIterator2>::value_type __v2; return std::__1::__equal(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>(), typename iterator_traits<_InputIterator1>::iterator_category(), typename iterator_traits<_InputIterator2>::iterator_category()); } template<class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> bool is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _BinaryPredicate __pred) { for (; __first1 != __last1; ++__first1, (void) ++__first2) if (!__pred(*__first1, *__first2)) break; if (__first1 == __last1) return true; typedef typename iterator_traits<_ForwardIterator1>::difference_type _D1; _D1 __l1 = std::__1::distance(__first1, __last1); if (__l1 == _D1(1)) return false; _ForwardIterator2 __last2 = std::__1::next(__first2, __l1); for (_ForwardIterator1 __i = __first1; __i != __last1; ++__i) { _ForwardIterator1 __match = __first1; for (; __match != __i; ++__match) if (__pred(*__match, *__i)) break; if (__match == __i) { _D1 __c2 = 0; for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) if (__pred(*__i, *__j)) ++__c2; if (__c2 == 0) return false; _D1 __c1 = 1; for (_ForwardIterator1 __j = std::__1::next(__i); __j != __last1; ++__j) if (__pred(*__i, *__j)) ++__c1; if (__c1 != __c2) return false; } } return true; } template<class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2) { typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; return std::__1::is_permutation(__first1, __last1, __first2, __equal_to<__v1, __v2>()); } template<class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2> bool __is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred, forward_iterator_tag, forward_iterator_tag ) { for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2) if (!__pred(*__first1, *__first2)) break; if (__first1 == __last1) return __first2 == __last2; else if (__first2 == __last2) return false; typedef typename iterator_traits<_ForwardIterator1>::difference_type _D1; _D1 __l1 = std::__1::distance(__first1, __last1); typedef typename iterator_traits<_ForwardIterator2>::difference_type _D2; _D2 __l2 = std::__1::distance(__first2, __last2); if (__l1 != __l2) return false; for (_ForwardIterator1 __i = __first1; __i != __last1; ++__i) { _ForwardIterator1 __match = __first1; for (; __match != __i; ++__match) if (__pred(*__match, *__i)) break; if (__match == __i) { _D1 __c2 = 0; for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j) if (__pred(*__i, *__j)) ++__c2; if (__c2 == 0) return false; _D1 __c1 = 1; for (_ForwardIterator1 __j = std::__1::next(__i); __j != __last1; ++__j) if (__pred(*__i, *__j)) ++__c1; if (__c1 != __c2) return false; } } return true; } template<class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2> bool __is_permutation(_RandomAccessIterator1 __first1, _RandomAccessIterator2 __last1, _RandomAccessIterator1 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred, random_access_iterator_tag, random_access_iterator_tag ) { if ( std::__1::distance(__first1, __last1) != std::__1::distance(__first2, __last2)) return false; return std::__1::is_permutation<_RandomAccessIterator1, _RandomAccessIterator2, typename add_lvalue_reference<_BinaryPredicate>::type> (__first1, __last1, __first2, __pred ); } template<class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred ) { return std::__1::__is_permutation<typename add_lvalue_reference<_BinaryPredicate>::type> (__first1, __last1, __first2, __last2, __pred, typename iterator_traits<_ForwardIterator1>::iterator_category(), typename iterator_traits<_ForwardIterator2>::iterator_category()); } template<class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; return std::__1::__is_permutation(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>(), typename iterator_traits<_ForwardIterator1>::iterator_category(), typename iterator_traits<_ForwardIterator2>::iterator_category()); } template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred) { return std::__1::__search<typename add_lvalue_reference<_BinaryPredicate>::type> (__first1, __last1, __first2, __last2, __pred, typename iterator_traits<_ForwardIterator1>::iterator_category(), typename iterator_traits<_ForwardIterator2>::iterator_category()) .first; } template <class _ForwardIterator1, class _ForwardIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator1 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) { typedef typename iterator_traits<_ForwardIterator1>::value_type __v1; typedef typename iterator_traits<_ForwardIterator2>::value_type __v2; return std::__1::search(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>()); } template <class _ForwardIterator, class _Searcher> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s) { return __s(__f, __l).first; } template <class _BinaryPredicate, class _ForwardIterator, class _Size, class _Tp> _ForwardIterator __search_n(_ForwardIterator __first, _ForwardIterator __last, _Size __count, const _Tp& __value_, _BinaryPredicate __pred, forward_iterator_tag) { if (__count <= 0) return __first; while (true) { while (true) { if (__first == __last) return __last; if (__pred(*__first, __value_)) break; ++__first; } _ForwardIterator __m = __first; _Size __c(0); while (true) { if (++__c == __count) return __first; if (++__m == __last) return __last; if (!__pred(*__m, __value_)) { __first = __m; ++__first; break; } } } } template <class _BinaryPredicate, class _RandomAccessIterator, class _Size, class _Tp> _RandomAccessIterator __search_n(_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __count, const _Tp& __value_, _BinaryPredicate __pred, random_access_iterator_tag) { if (__count <= 0) return __first; _Size __len = static_cast<_Size>(__last - __first); if (__len < __count) return __last; const _RandomAccessIterator __s = __last - (__count - 1); while (true) { while (true) { if (__first >= __s) return __last; if (__pred(*__first, __value_)) break; ++__first; } _RandomAccessIterator __m = __first; _Size __c(0); while (true) { if (++__c == __count) return __first; ++__m; if (!__pred(*__m, __value_)) { __first = __m; ++__first; break; } } } } template <class _ForwardIterator, class _Size, class _Tp, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator search_n(_ForwardIterator __first, _ForwardIterator __last, _Size __count, const _Tp& __value_, _BinaryPredicate __pred) { return std::__1::__search_n<typename add_lvalue_reference<_BinaryPredicate>::type> (__first, __last, __convert_to_integral(__count), __value_, __pred, typename iterator_traits<_ForwardIterator>::iterator_category()); } template <class _ForwardIterator, class _Size, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator search_n(_ForwardIterator __first, _ForwardIterator __last, _Size __count, const _Tp& __value_) { typedef typename iterator_traits<_ForwardIterator>::value_type __v; return std::__1::search_n(__first, __last, __convert_to_integral(__count), __value_, __equal_to<__v, _Tp>()); } template <class _Iter> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Iter __unwrap_iter(_Iter __i) { return __i; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_trivially_copy_assignable<_Tp>::value, _Tp* >::type __unwrap_iter(move_iterator<_Tp*> __i) { return __i.base(); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < is_trivially_copy_assignable<_Tp>::value, _Tp* >::type __unwrap_iter(__wrap_iter<_Tp*> __i) { return __i.base(); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < is_trivially_copy_assignable<_Tp>::value, const _Tp* >::type __unwrap_iter(__wrap_iter<const _Tp*> __i) { return __i.base(); } # 1695 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 3 template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator __copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { for (; __first != __last; ++__first, (void) ++__result) *__result = *__first; return __result; } template <class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_same<typename remove_const<_Tp>::type, _Up>::value && is_trivially_copy_assignable<_Up>::value, _Up* >::type __copy(_Tp* __first, _Tp* __last, _Up* __result) { const size_t __n = static_cast<size_t>(__last - __first); if (__n > 0) std::__1::memmove(__result, __first, __n * sizeof(_Up)); return __result + __n; } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { return std::__1::__copy(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); } template <class _BidirectionalIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator __copy_backward(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result) { while (__first != __last) *--__result = *--__last; return __result; } template <class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_same<typename remove_const<_Tp>::type, _Up>::value && is_trivially_copy_assignable<_Up>::value, _Up* >::type __copy_backward(_Tp* __first, _Tp* __last, _Up* __result) { const size_t __n = static_cast<size_t>(__last - __first); if (__n > 0) { __result -= __n; std::__1::memmove(__result, __first, __n * sizeof(_Up)); } return __result; } template <class _BidirectionalIterator1, class _BidirectionalIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _BidirectionalIterator2 copy_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, _BidirectionalIterator2 __result) { return std::__1::__copy_backward(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); } template<class _InputIterator, class _OutputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) { for (; __first != __last; ++__first) { if (__pred(*__first)) { *__result = *__first; ++__result; } } return __result; } template<class _InputIterator, class _Size, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < __is_input_iterator<_InputIterator>::value && !__is_random_access_iterator<_InputIterator>::value, _OutputIterator >::type copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) { typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; _IntegralSize __n = __orig_n; if (__n > 0) { *__result = *__first; ++__result; for (--__n; __n > 0; --__n) { ++__first; *__result = *__first; ++__result; } } return __result; } template<class _InputIterator, class _Size, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < __is_random_access_iterator<_InputIterator>::value, _OutputIterator >::type copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) { typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; _IntegralSize __n = __orig_n; return std::__1::copy(__first, __first + __n, __result); } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator __move(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { for (; __first != __last; ++__first, (void) ++__result) *__result = std::__1::move(*__first); return __result; } template <class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_same<typename remove_const<_Tp>::type, _Up>::value && is_trivially_copy_assignable<_Up>::value, _Up* >::type __move(_Tp* __first, _Tp* __last, _Up* __result) { const size_t __n = static_cast<size_t>(__last - __first); if (__n > 0) std::__1::memmove(__result, __first, __n * sizeof(_Up)); return __result + __n; } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator move(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { return std::__1::__move(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator __move_backward(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { while (__first != __last) *--__result = std::__1::move(*--__last); return __result; } template <class _Tp, class _Up> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_same<typename remove_const<_Tp>::type, _Up>::value && is_trivially_copy_assignable<_Up>::value, _Up* >::type __move_backward(_Tp* __first, _Tp* __last, _Up* __result) { const size_t __n = static_cast<size_t>(__last - __first); if (__n > 0) { __result -= __n; std::__1::memmove(__result, __first, __n * sizeof(_Up)); } return __result; } template <class _BidirectionalIterator1, class _BidirectionalIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _BidirectionalIterator2 move_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, _BidirectionalIterator2 __result) { return std::__1::__move_backward(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result)); } template <class _InputIterator, class _OutputIterator, class _UnaryOperation> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op) { for (; __first != __last; ++__first, (void) ++__result) *__result = __op(*__first); return __result; } template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _BinaryOperation> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator transform(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op) { for (; __first1 != __last1; ++__first1, (void) ++__first2, ++__result) *__result = __binary_op(*__first1, *__first2); return __result; } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void replace(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __old_value, const _Tp& __new_value) { for (; __first != __last; ++__first) if (*__first == __old_value) *__first = __new_value; } template <class _ForwardIterator, class _Predicate, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void replace_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp& __new_value) { for (; __first != __last; ++__first) if (__pred(*__first)) *__first = __new_value; } template <class _InputIterator, class _OutputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator replace_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __old_value, const _Tp& __new_value) { for (; __first != __last; ++__first, (void) ++__result) if (*__first == __old_value) *__result = __new_value; else *__result = *__first; return __result; } template <class _InputIterator, class _OutputIterator, class _Predicate, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator replace_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const _Tp& __new_value) { for (; __first != __last; ++__first, (void) ++__result) if (__pred(*__first)) *__result = __new_value; else *__result = *__first; return __result; } template <class _OutputIterator, class _Size, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator __fill_n(_OutputIterator __first, _Size __n, const _Tp& __value_) { for (; __n > 0; ++__first, (void) --__n) *__first = __value_; return __first; } template <class _OutputIterator, class _Size, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator fill_n(_OutputIterator __first, _Size __n, const _Tp& __value_) { return std::__1::__fill_n(__first, __convert_to_integral(__n), __value_); } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, forward_iterator_tag) { for (; __first != __last; ++__first) *__first = __value_; } template <class _RandomAccessIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value_, random_access_iterator_tag) { std::__1::fill_n(__first, __last - __first, __value_); } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) { std::__1::__fill(__first, __last, __value_, typename iterator_traits<_ForwardIterator>::iterator_category()); } template <class _ForwardIterator, class _Generator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) { for (; __first != __last; ++__first) *__first = __gen(); } template <class _OutputIterator, class _Size, class _Generator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator generate_n(_OutputIterator __first, _Size __orig_n, _Generator __gen) { typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize; _IntegralSize __n = __orig_n; for (; __n > 0; ++__first, (void) --__n) *__first = __gen(); return __first; } template <class _ForwardIterator, class _Tp> _ForwardIterator remove(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) { __first = std::__1::find(__first, __last, __value_); if (__first != __last) { _ForwardIterator __i = __first; while (++__i != __last) { if (!(*__i == __value_)) { *__first = std::__1::move(*__i); ++__first; } } } return __first; } template <class _ForwardIterator, class _Predicate> _ForwardIterator remove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { __first = std::__1::find_if<_ForwardIterator, typename add_lvalue_reference<_Predicate>::type> (__first, __last, __pred); if (__first != __last) { _ForwardIterator __i = __first; while (++__i != __last) { if (!__pred(*__i)) { *__first = std::__1::move(*__i); ++__first; } } } return __first; } template <class _InputIterator, class _OutputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator remove_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __value_) { for (; __first != __last; ++__first) { if (!(*__first == __value_)) { *__result = *__first; ++__result; } } return __result; } template <class _InputIterator, class _OutputIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator remove_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) { for (; __first != __last; ++__first) { if (!__pred(*__first)) { *__result = *__first; ++__result; } } return __result; } template <class _ForwardIterator, class _BinaryPredicate> _ForwardIterator unique(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred) { __first = std::__1::adjacent_find<_ForwardIterator, typename add_lvalue_reference<_BinaryPredicate>::type> (__first, __last, __pred); if (__first != __last) { _ForwardIterator __i = __first; for (++__i; ++__i != __last;) if (!__pred(*__first, *__i)) *++__first = std::__1::move(*__i); ++__first; } return __first; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator unique(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type __v; return std::__1::unique(__first, __last, __equal_to<__v>()); } template <class _BinaryPredicate, class _InputIterator, class _OutputIterator> _OutputIterator __unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __pred, input_iterator_tag, output_iterator_tag) { if (__first != __last) { typename iterator_traits<_InputIterator>::value_type __t(*__first); *__result = __t; ++__result; while (++__first != __last) { if (!__pred(__t, *__first)) { __t = *__first; *__result = __t; ++__result; } } } return __result; } template <class _BinaryPredicate, class _ForwardIterator, class _OutputIterator> _OutputIterator __unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __pred, forward_iterator_tag, output_iterator_tag) { if (__first != __last) { _ForwardIterator __i = __first; *__result = *__i; ++__result; while (++__first != __last) { if (!__pred(*__i, *__first)) { *__result = *__first; ++__result; __i = __first; } } } return __result; } template <class _BinaryPredicate, class _InputIterator, class _ForwardIterator> _ForwardIterator __unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __pred, input_iterator_tag, forward_iterator_tag) { if (__first != __last) { *__result = *__first; while (++__first != __last) if (!__pred(*__result, *__first)) *++__result = *__first; ++__result; } return __result; } template <class _InputIterator, class _OutputIterator, class _BinaryPredicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __pred) { return std::__1::__unique_copy<typename add_lvalue_reference<_BinaryPredicate>::type> (__first, __last, __result, __pred, typename iterator_traits<_InputIterator>::iterator_category(), typename iterator_traits<_OutputIterator>::iterator_category()); } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator>::value_type __v; return std::__1::unique_copy(__first, __last, __result, __equal_to<__v>()); } template <class _BidirectionalIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag) { while (__first != __last) { if (__first == --__last) break; std::__1::iter_swap(__first, __last); ++__first; } } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag) { if (__first != __last) for (; __first < --__last; ++__first) std::__1::iter_swap(__first, __last); } template <class _BidirectionalIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) { std::__1::__reverse(__first, __last, typename iterator_traits<_BidirectionalIterator>::iterator_category()); } template <class _BidirectionalIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result) { for (; __first != __last; ++__result) *__result = *--__last; return __result; } template <class _ForwardIterator> _ForwardIterator __rotate_left(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type value_type; value_type __tmp = std::__1::move(*__first); _ForwardIterator __lm1 = std::__1::move(std::__1::next(__first), __last, __first); *__lm1 = std::__1::move(__tmp); return __lm1; } template <class _BidirectionalIterator> _BidirectionalIterator __rotate_right(_BidirectionalIterator __first, _BidirectionalIterator __last) { typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; _BidirectionalIterator __lm1 = std::__1::prev(__last); value_type __tmp = std::__1::move(*__lm1); _BidirectionalIterator __fp1 = std::__1::move_backward(__first, __lm1, __last); *__first = std::__1::move(__tmp); return __fp1; } template <class _ForwardIterator> _ForwardIterator __rotate_forward(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) { _ForwardIterator __i = __middle; while (true) { swap(*__first, *__i); ++__first; if (++__i == __last) break; if (__first == __middle) __middle = __i; } _ForwardIterator __r = __first; if (__first != __middle) { __i = __middle; while (true) { swap(*__first, *__i); ++__first; if (++__i == __last) { if (__first == __middle) break; __i = __middle; } else if (__first == __middle) __middle = __i; } } return __r; } template<typename _Integral> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Integral __algo_gcd(_Integral __x, _Integral __y) { do { _Integral __t = __x % __y; __x = __y; __y = __t; } while (__y); return __x; } template<typename _RandomAccessIterator> _RandomAccessIterator __rotate_gcd(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; const difference_type __m1 = __middle - __first; const difference_type __m2 = __last - __middle; if (__m1 == __m2) { std::__1::swap_ranges(__first, __middle, __middle); return __middle; } const difference_type __g = std::__1::__algo_gcd(__m1, __m2); for (_RandomAccessIterator __p = __first + __g; __p != __first;) { value_type __t(std::__1::move(*--__p)); _RandomAccessIterator __p1 = __p; _RandomAccessIterator __p2 = __p1 + __m1; do { *__p1 = std::__1::move(*__p2); __p1 = __p2; const difference_type __d = __last - __p2; if (__m1 < __d) __p2 += __m1; else __p2 = __first + (__m1 - __d); } while (__p2 != __p); *__p1 = std::__1::move(__t); } return __first + __m2; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator __rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, std::__1::forward_iterator_tag) { typedef typename std::__1::iterator_traits<_ForwardIterator>::value_type value_type; if (std::__1::is_trivially_move_assignable<value_type>::value) { if (std::__1::next(__first) == __middle) return std::__1::__rotate_left(__first, __last); } return std::__1::__rotate_forward(__first, __middle, __last); } template <class _BidirectionalIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _BidirectionalIterator __rotate(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, std::__1::bidirectional_iterator_tag) { typedef typename std::__1::iterator_traits<_BidirectionalIterator>::value_type value_type; if (std::__1::is_trivially_move_assignable<value_type>::value) { if (std::__1::next(__first) == __middle) return std::__1::__rotate_left(__first, __last); if (std::__1::next(__middle) == __last) return std::__1::__rotate_right(__first, __last); } return std::__1::__rotate_forward(__first, __middle, __last); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _RandomAccessIterator __rotate(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, std::__1::random_access_iterator_tag) { typedef typename std::__1::iterator_traits<_RandomAccessIterator>::value_type value_type; if (std::__1::is_trivially_move_assignable<value_type>::value) { if (std::__1::next(__first) == __middle) return std::__1::__rotate_left(__first, __last); if (std::__1::next(__middle) == __last) return std::__1::__rotate_right(__first, __last); return std::__1::__rotate_gcd(__first, __middle, __last); } return std::__1::__rotate_forward(__first, __middle, __last); } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last) { if (__first == __middle) return __last; if (__middle == __last) return __first; return std::__1::__rotate(__first, __middle, __last, typename std::__1::iterator_traits<_ForwardIterator>::iterator_category()); } template <class _ForwardIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result) { return std::__1::copy(__first, __middle, std::__1::copy(__middle, __last, __result)); } template <class _ForwardIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { static_assert(__is_forward_iterator<_ForwardIterator>::value, "std::min_element requires a ForwardIterator"); if (__first != __last) { _ForwardIterator __i = __first; while (++__i != __last) if (__comp(*__i, *__first)) __first = __i; } return __first; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator min_element(_ForwardIterator __first, _ForwardIterator __last) { return std::__1::min_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); } template <class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& min(const _Tp& __a, const _Tp& __b, _Compare __comp) { return __comp(__b, __a) ? __b : __a; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& min(const _Tp& __a, const _Tp& __b) { return std::__1::min(__a, __b, __less<_Tp>()); } template<class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp min(initializer_list<_Tp> __t, _Compare __comp) { return *std::__1::min_element(__t.begin(), __t.end(), __comp); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp min(initializer_list<_Tp> __t) { return *std::__1::min_element(__t.begin(), __t.end(), __less<_Tp>()); } template <class _ForwardIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { static_assert(__is_forward_iterator<_ForwardIterator>::value, "std::max_element requires a ForwardIterator"); if (__first != __last) { _ForwardIterator __i = __first; while (++__i != __last) if (__comp(*__first, *__i)) __first = __i; } return __first; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator max_element(_ForwardIterator __first, _ForwardIterator __last) { return std::__1::max_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); } template <class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& max(const _Tp& __a, const _Tp& __b, _Compare __comp) { return __comp(__a, __b) ? __b : __a; } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& max(const _Tp& __a, const _Tp& __b) { return std::__1::max(__a, __b, __less<_Tp>()); } template<class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp max(initializer_list<_Tp> __t, _Compare __comp) { return *std::__1::max_element(__t.begin(), __t.end(), __comp); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp max(initializer_list<_Tp> __t) { return *std::__1::max_element(__t.begin(), __t.end(), __less<_Tp>()); } template<class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& clamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi, _Compare __comp) { ((void)0); return __comp(__v, __lo) ? __lo : __comp(__hi, __v) ? __hi : __v; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& clamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi) { return std::__1::clamp(__v, __lo, __hi, __less<_Tp>()); } template <class _ForwardIterator, class _Compare> constexpr std::pair<_ForwardIterator, _ForwardIterator> minmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { static_assert(__is_forward_iterator<_ForwardIterator>::value, "std::minmax_element requires a ForwardIterator"); std::pair<_ForwardIterator, _ForwardIterator> __result(__first, __first); if (__first != __last) { if (++__first != __last) { if (__comp(*__first, *__result.first)) __result.first = __first; else __result.second = __first; while (++__first != __last) { _ForwardIterator __i = __first; if (++__first == __last) { if (__comp(*__i, *__result.first)) __result.first = __i; else if (!__comp(*__i, *__result.second)) __result.second = __i; break; } else { if (__comp(*__first, *__i)) { if (__comp(*__first, *__result.first)) __result.first = __first; if (!__comp(*__i, *__result.second)) __result.second = __i; } else { if (__comp(*__i, *__result.first)) __result.first = __i; if (!__comp(*__first, *__result.second)) __result.second = __first; } } } } } return __result; } template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr std::pair<_ForwardIterator, _ForwardIterator> minmax_element(_ForwardIterator __first, _ForwardIterator __last) { return std::__1::minmax_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); } template<class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair<const _Tp&, const _Tp&> minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) { return __comp(__b, __a) ? pair<const _Tp&, const _Tp&>(__b, __a) : pair<const _Tp&, const _Tp&>(__a, __b); } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair<const _Tp&, const _Tp&> minmax(const _Tp& __a, const _Tp& __b) { return std::__1::minmax(__a, __b, __less<_Tp>()); } template<class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair<_Tp, _Tp> minmax(initializer_list<_Tp> __t, _Compare __comp) { typedef typename initializer_list<_Tp>::const_iterator _Iter; _Iter __first = __t.begin(); _Iter __last = __t.end(); std::pair<_Tp, _Tp> __result(*__first, *__first); ++__first; if (__t.size() % 2 == 0) { if (__comp(*__first, __result.first)) __result.first = *__first; else __result.second = *__first; ++__first; } while (__first != __last) { _Tp __prev = *__first++; if (__comp(*__first, __prev)) { if ( __comp(*__first, __result.first)) __result.first = *__first; if (!__comp(__prev, __result.second)) __result.second = __prev; } else { if ( __comp(__prev, __result.first)) __result.first = __prev; if (!__comp(*__first, __result.second)) __result.second = *__first; } __first++; } return __result; } template<class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr pair<_Tp, _Tp> minmax(initializer_list<_Tp> __t) { return std::__1::minmax(__t, __less<_Tp>()); } template <unsigned long long _Xp, size_t _Rp> struct __log2_imp { static const size_t value = _Xp & ((unsigned long long)(1) << _Rp) ? _Rp : __log2_imp<_Xp, _Rp - 1>::value; }; template <unsigned long long _Xp> struct __log2_imp<_Xp, 0> { static const size_t value = 0; }; template <size_t _Rp> struct __log2_imp<0, _Rp> { static const size_t value = _Rp + 1; }; template <class _UIntType, _UIntType _Xp> struct __log2 { static const size_t value = __log2_imp<_Xp, sizeof(_UIntType) * 8 - 1>::value; }; template<class _Engine, class _UIntType> class __independent_bits_engine { public: typedef _UIntType result_type; private: typedef typename _Engine::result_type _Engine_result_type; typedef typename conditional < sizeof(_Engine_result_type) <= sizeof(result_type), result_type, _Engine_result_type >::type _Working_result_type; _Engine& __e_; size_t __w_; size_t __w0_; size_t __n_; size_t __n0_; _Working_result_type __y0_; _Working_result_type __y1_; _Engine_result_type __mask0_; _Engine_result_type __mask1_; static constexpr const _Working_result_type _Rp = _Engine::max() - _Engine::min() + _Working_result_type(1); static constexpr const size_t __m = __log2<_Working_result_type, _Rp>::value; static constexpr const size_t _WDt = numeric_limits<_Working_result_type>::digits; static constexpr const size_t _EDt = numeric_limits<_Engine_result_type>::digits; public: __independent_bits_engine(_Engine& __e, size_t __w); result_type operator()() {return __eval(integral_constant<bool, _Rp != 0>());} private: result_type __eval(false_type); result_type __eval(true_type); }; template<class _Engine, class _UIntType> __independent_bits_engine<_Engine, _UIntType> ::__independent_bits_engine(_Engine& __e, size_t __w) : __e_(__e), __w_(__w) { __n_ = __w_ / __m + (__w_ % __m != 0); __w0_ = __w_ / __n_; if (_Rp == 0) __y0_ = _Rp; else if (__w0_ < _WDt) __y0_ = (_Rp >> __w0_) << __w0_; else __y0_ = 0; if (_Rp - __y0_ > __y0_ / __n_) { ++__n_; __w0_ = __w_ / __n_; if (__w0_ < _WDt) __y0_ = (_Rp >> __w0_) << __w0_; else __y0_ = 0; } __n0_ = __n_ - __w_ % __n_; if (__w0_ < _WDt - 1) __y1_ = (_Rp >> (__w0_ + 1)) << (__w0_ + 1); else __y1_ = 0; __mask0_ = __w0_ > 0 ? _Engine_result_type(~0) >> (_EDt - __w0_) : _Engine_result_type(0); __mask1_ = __w0_ < _EDt - 1 ? _Engine_result_type(~0) >> (_EDt - (__w0_ + 1)) : _Engine_result_type(~0); } template<class _Engine, class _UIntType> inline _UIntType __independent_bits_engine<_Engine, _UIntType>::__eval(false_type) { return static_cast<result_type>(__e_() & __mask0_); } template<class _Engine, class _UIntType> _UIntType __independent_bits_engine<_Engine, _UIntType>::__eval(true_type) { const size_t _WRt = numeric_limits<result_type>::digits; result_type _Sp = 0; for (size_t __k = 0; __k < __n0_; ++__k) { _Engine_result_type __u; do { __u = __e_() - _Engine::min(); } while (__u >= __y0_); if (__w0_ < _WRt) _Sp <<= __w0_; else _Sp = 0; _Sp += __u & __mask0_; } for (size_t __k = __n0_; __k < __n_; ++__k) { _Engine_result_type __u; do { __u = __e_() - _Engine::min(); } while (__u >= __y1_); if (__w0_ < _WRt - 1) _Sp <<= __w0_ + 1; else _Sp = 0; _Sp += __u & __mask1_; } return _Sp; } template<class _IntType = int> class uniform_int_distribution { public: typedef _IntType result_type; class param_type { result_type __a_; result_type __b_; public: typedef uniform_int_distribution distribution_type; explicit param_type(result_type __a = 0, result_type __b = numeric_limits<result_type>::max()) : __a_(__a), __b_(__b) {} result_type a() const {return __a_;} result_type b() const {return __b_;} friend bool operator==(const param_type& __x, const param_type& __y) {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;} friend bool operator!=(const param_type& __x, const param_type& __y) {return !(__x == __y);} }; private: param_type __p_; public: explicit uniform_int_distribution(result_type __a = 0, result_type __b = numeric_limits<result_type>::max()) : __p_(param_type(__a, __b)) {} explicit uniform_int_distribution(const param_type& __p) : __p_(__p) {} void reset() {} template<class _URNG> result_type operator()(_URNG& __g) {return (*this)(__g, __p_);} template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p); result_type a() const {return __p_.a();} result_type b() const {return __p_.b();} param_type param() const {return __p_;} void param(const param_type& __p) {__p_ = __p;} result_type min() const {return a();} result_type max() const {return b();} friend bool operator==(const uniform_int_distribution& __x, const uniform_int_distribution& __y) {return __x.__p_ == __y.__p_;} friend bool operator!=(const uniform_int_distribution& __x, const uniform_int_distribution& __y) {return !(__x == __y);} }; template<class _IntType> template<class _URNG> typename uniform_int_distribution<_IntType>::result_type uniform_int_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { typedef typename conditional<sizeof(result_type) <= sizeof(uint32_t), uint32_t, uint64_t>::type _UIntType; const _UIntType _Rp = _UIntType(__p.b()) - _UIntType(__p.a()) + _UIntType(1); if (_Rp == 1) return __p.a(); const size_t _Dt = numeric_limits<_UIntType>::digits; typedef __independent_bits_engine<_URNG, _UIntType> _Eng; if (_Rp == 0) return static_cast<result_type>(_Eng(__g, _Dt)()); size_t __w = _Dt - __clz(_Rp) - 1; if ((_Rp & (std::numeric_limits<_UIntType>::max() >> (_Dt - __w))) != 0) ++__w; _Eng __e(__g, __w); _UIntType __u; do { __u = __e(); } while (__u >= _Rp); return static_cast<result_type>(__u + __p.a()); } # 3110 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 3 template <class _PopulationIterator, class _SampleIterator, class _Distance, class _UniformRandomNumberGenerator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _SampleIterator __sample(_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __output_iter, _Distance __n, _UniformRandomNumberGenerator & __g, input_iterator_tag) { _Distance __k = 0; for (; __first != __last && __k < __n; ++__first, (void)++__k) __output_iter[__k] = *__first; _Distance __sz = __k; for (; __first != __last; ++__first, (void)++__k) { _Distance __r = std::__1::uniform_int_distribution<_Distance>(0, __k)(__g); if (__r < __sz) __output_iter[__r] = *__first; } return __output_iter + std::__1::min(__n, __k); } template <class _PopulationIterator, class _SampleIterator, class _Distance, class _UniformRandomNumberGenerator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _SampleIterator __sample(_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __output_iter, _Distance __n, _UniformRandomNumberGenerator& __g, forward_iterator_tag) { _Distance __unsampled_sz = std::__1::distance(__first, __last); for (__n = std::__1::min(__n, __unsampled_sz); __n != 0; ++__first) { _Distance __r = std::__1::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g); if (__r < __n) { *__output_iter++ = *__first; --__n; } } return __output_iter; } template <class _PopulationIterator, class _SampleIterator, class _Distance, class _UniformRandomNumberGenerator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _SampleIterator __sample(_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __output_iter, _Distance __n, _UniformRandomNumberGenerator& __g) { typedef typename iterator_traits<_PopulationIterator>::iterator_category _PopCategory; typedef typename iterator_traits<_PopulationIterator>::difference_type _Difference; static_assert(__is_forward_iterator<_PopulationIterator>::value || __is_random_access_iterator<_SampleIterator>::value, "SampleIterator must meet the requirements of RandomAccessIterator"); typedef typename common_type<_Distance, _Difference>::type _CommonType; ((void)0); return std::__1::__sample( __first, __last, __output_iter, _CommonType(__n), __g, _PopCategory()); } template <class _PopulationIterator, class _SampleIterator, class _Distance, class _UniformRandomNumberGenerator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _SampleIterator sample(_PopulationIterator __first, _PopulationIterator __last, _SampleIterator __output_iter, _Distance __n, _UniformRandomNumberGenerator&& __g) { return std::__1::__sample(__first, __last, __output_iter, __n, __g); } template<class _RandomAccessIterator, class _UniformRandomNumberGenerator> void shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, _UniformRandomNumberGenerator&& __g) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; typedef uniform_int_distribution<ptrdiff_t> _Dp; typedef typename _Dp::param_type _Pp; difference_type __d = __last - __first; if (__d > 1) { _Dp __uid; for (--__last, --__d; __first < __last; ++__first, --__d) { difference_type __i = __uid(__g, _Pp(0, __d)); if (__i != difference_type(0)) swap(*__first, *(__first + __i)); } } } template <class _InputIterator, class _Predicate> bool is_partitioned(_InputIterator __first, _InputIterator __last, _Predicate __pred) { for (; __first != __last; ++__first) if (!__pred(*__first)) break; if ( __first == __last ) return true; ++__first; for (; __first != __last; ++__first) if (__pred(*__first)) return false; return true; } template <class _Predicate, class _ForwardIterator> _ForwardIterator __partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag) { while (true) { if (__first == __last) return __first; if (!__pred(*__first)) break; ++__first; } for (_ForwardIterator __p = __first; ++__p != __last;) { if (__pred(*__p)) { swap(*__first, *__p); ++__first; } } return __first; } template <class _Predicate, class _BidirectionalIterator> _BidirectionalIterator __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, bidirectional_iterator_tag) { while (true) { while (true) { if (__first == __last) return __first; if (!__pred(*__first)) break; ++__first; } do { if (__first == --__last) return __first; } while (!__pred(*__last)); swap(*__first, *__last); ++__first; } } template <class _ForwardIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { return std::__1::__partition<typename add_lvalue_reference<_Predicate>::type> (__first, __last, __pred, typename iterator_traits<_ForwardIterator>::iterator_category()); } template <class _InputIterator, class _OutputIterator1, class _OutputIterator2, class _Predicate> pair<_OutputIterator1, _OutputIterator2> partition_copy(_InputIterator __first, _InputIterator __last, _OutputIterator1 __out_true, _OutputIterator2 __out_false, _Predicate __pred) { for (; __first != __last; ++__first) { if (__pred(*__first)) { *__out_true = *__first; ++__out_true; } else { *__out_false = *__first; ++__out_false; } } return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false); } template<class _ForwardIterator, class _Predicate> _ForwardIterator partition_point(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; difference_type __len = std::__1::distance(__first, __last); while (__len != 0) { difference_type __l2 = std::__1::__half_positive(__len); _ForwardIterator __m = __first; std::__1::advance(__m, __l2); if (__pred(*__m)) { __first = ++__m; __len -= __l2 + 1; } else __len = __l2; } return __first; } template <class _Predicate, class _ForwardIterator, class _Distance, class _Pair> _ForwardIterator __stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len, _Pair __p, forward_iterator_tag __fit) { if (__len == 1) return __first; if (__len == 2) { _ForwardIterator __m = __first; if (__pred(*++__m)) { swap(*__first, *__m); return __m; } return __first; } if (__len <= __p.second) { typedef typename iterator_traits<_ForwardIterator>::value_type value_type; __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h(__p.first, __d); value_type* __t = __p.first; ::new(__t) value_type(std::__1::move(*__first)); __d.__incr((value_type*)0); ++__t; _ForwardIterator __i = __first; while (++__i != __last) { if (__pred(*__i)) { *__first = std::__1::move(*__i); ++__first; } else { ::new(__t) value_type(std::__1::move(*__i)); __d.__incr((value_type*)0); ++__t; } } __i = __first; for (value_type* __t2 = __p.first; __t2 < __t; ++__t2, ++__i) *__i = std::__1::move(*__t2); return __first; } _ForwardIterator __m = __first; _Distance __len2 = __len / 2; std::__1::advance(__m, __len2); typedef typename add_lvalue_reference<_Predicate>::type _PredRef; _ForwardIterator __first_false = __stable_partition<_PredRef>(__first, __m, __pred, __len2, __p, __fit); _ForwardIterator __m1 = __m; _ForwardIterator __second_false = __last; _Distance __len_half = __len - __len2; while (__pred(*__m1)) { if (++__m1 == __last) goto __second_half_done; --__len_half; } __second_false = __stable_partition<_PredRef>(__m1, __last, __pred, __len_half, __p, __fit); __second_half_done: return std::__1::rotate(__first_false, __m, __second_false); } struct __return_temporary_buffer { template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator()(_Tp* __p) const {std::__1::return_temporary_buffer(__p);} }; template <class _Predicate, class _ForwardIterator> _ForwardIterator __stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag) { const unsigned __alloc_limit = 3; while (true) { if (__first == __last) return __first; if (!__pred(*__first)) break; ++__first; } typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; typedef typename iterator_traits<_ForwardIterator>::value_type value_type; difference_type __len = std::__1::distance(__first, __last); pair<value_type*, ptrdiff_t> __p(0, 0); unique_ptr<value_type, __return_temporary_buffer> __h; if (__len >= __alloc_limit) { __p = std::__1::get_temporary_buffer<value_type>(__len); __h.reset(__p.first); } return __stable_partition<typename add_lvalue_reference<_Predicate>::type> (__first, __last, __pred, __len, __p, forward_iterator_tag()); } template <class _Predicate, class _BidirectionalIterator, class _Distance, class _Pair> _BidirectionalIterator __stable_partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, _Distance __len, _Pair __p, bidirectional_iterator_tag __bit) { if (__len == 2) { swap(*__first, *__last); return __last; } if (__len == 3) { _BidirectionalIterator __m = __first; if (__pred(*++__m)) { swap(*__first, *__m); swap(*__m, *__last); return __last; } swap(*__m, *__last); swap(*__first, *__m); return __m; } if (__len <= __p.second) { typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h(__p.first, __d); value_type* __t = __p.first; ::new(__t) value_type(std::__1::move(*__first)); __d.__incr((value_type*)0); ++__t; _BidirectionalIterator __i = __first; while (++__i != __last) { if (__pred(*__i)) { *__first = std::__1::move(*__i); ++__first; } else { ::new(__t) value_type(std::__1::move(*__i)); __d.__incr((value_type*)0); ++__t; } } *__first = std::__1::move(*__i); __i = ++__first; for (value_type* __t2 = __p.first; __t2 < __t; ++__t2, ++__i) *__i = std::__1::move(*__t2); return __first; } _BidirectionalIterator __m = __first; _Distance __len2 = __len / 2; std::__1::advance(__m, __len2); _BidirectionalIterator __m1 = __m; _BidirectionalIterator __first_false = __first; _Distance __len_half = __len2; while (!__pred(*--__m1)) { if (__m1 == __first) goto __first_half_done; --__len_half; } typedef typename add_lvalue_reference<_Predicate>::type _PredRef; __first_false = __stable_partition<_PredRef>(__first, __m1, __pred, __len_half, __p, __bit); __first_half_done: __m1 = __m; _BidirectionalIterator __second_false = __last; ++__second_false; __len_half = __len - __len2; while (__pred(*__m1)) { if (++__m1 == __last) goto __second_half_done; --__len_half; } __second_false = __stable_partition<_PredRef>(__m1, __last, __pred, __len_half, __p, __bit); __second_half_done: return std::__1::rotate(__first_false, __m, __second_false); } template <class _Predicate, class _BidirectionalIterator> _BidirectionalIterator __stable_partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, bidirectional_iterator_tag) { typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; const difference_type __alloc_limit = 4; while (true) { if (__first == __last) return __first; if (!__pred(*__first)) break; ++__first; } do { if (__first == --__last) return __first; } while (!__pred(*__last)); difference_type __len = std::__1::distance(__first, __last) + 1; pair<value_type*, ptrdiff_t> __p(0, 0); unique_ptr<value_type, __return_temporary_buffer> __h; if (__len >= __alloc_limit) { __p = std::__1::get_temporary_buffer<value_type>(__len); __h.reset(__p.first); } return __stable_partition<typename add_lvalue_reference<_Predicate>::type> (__first, __last, __pred, __len, __p, bidirectional_iterator_tag()); } template <class _ForwardIterator, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred) { return __stable_partition<typename add_lvalue_reference<_Predicate>::type> (__first, __last, __pred, typename iterator_traits<_ForwardIterator>::iterator_category()); } template <class _ForwardIterator, class _Compare> _ForwardIterator is_sorted_until(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { if (__first != __last) { _ForwardIterator __i = __first; while (++__i != __last) { if (__comp(*__i, *__first)) return __i; __first = __i; } } return __last; } template<class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator is_sorted_until(_ForwardIterator __first, _ForwardIterator __last) { return std::__1::is_sorted_until(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); } template <class _ForwardIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_sorted(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) { return std::__1::is_sorted_until(__first, __last, __comp) == __last; } template<class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_sorted(_ForwardIterator __first, _ForwardIterator __last) { return std::__1::is_sorted(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>()); } template <class _Compare, class _ForwardIterator> unsigned __sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c) { unsigned __r = 0; if (!__c(*__y, *__x)) { if (!__c(*__z, *__y)) return __r; swap(*__y, *__z); __r = 1; if (__c(*__y, *__x)) { swap(*__x, *__y); __r = 2; } return __r; } if (__c(*__z, *__y)) { swap(*__x, *__z); __r = 1; return __r; } swap(*__x, *__y); __r = 1; if (__c(*__z, *__y)) { swap(*__y, *__z); __r = 2; } return __r; } template <class _Compare, class _ForwardIterator> unsigned __sort4(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, _ForwardIterator __x4, _Compare __c) { unsigned __r = __sort3<_Compare>(__x1, __x2, __x3, __c); if (__c(*__x4, *__x3)) { swap(*__x3, *__x4); ++__r; if (__c(*__x3, *__x2)) { swap(*__x2, *__x3); ++__r; if (__c(*__x2, *__x1)) { swap(*__x1, *__x2); ++__r; } } } return __r; } template <class _Compare, class _ForwardIterator> __attribute__ ((__visibility__("hidden"))) unsigned __sort5(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3, _ForwardIterator __x4, _ForwardIterator __x5, _Compare __c) { unsigned __r = __sort4<_Compare>(__x1, __x2, __x3, __x4, __c); if (__c(*__x5, *__x4)) { swap(*__x4, *__x5); ++__r; if (__c(*__x4, *__x3)) { swap(*__x3, *__x4); ++__r; if (__c(*__x3, *__x2)) { swap(*__x2, *__x3); ++__r; if (__c(*__x2, *__x1)) { swap(*__x1, *__x2); ++__r; } } } } return __r; } template <class _Compare, class _BirdirectionalIterator> void __selection_sort(_BirdirectionalIterator __first, _BirdirectionalIterator __last, _Compare __comp) { _BirdirectionalIterator __lm1 = __last; for (--__lm1; __first != __lm1; ++__first) { _BirdirectionalIterator __i = std::__1::min_element<_BirdirectionalIterator, typename add_lvalue_reference<_Compare>::type> (__first, __last, __comp); if (__i != __first) swap(*__first, *__i); } } template <class _Compare, class _BirdirectionalIterator> void __insertion_sort(_BirdirectionalIterator __first, _BirdirectionalIterator __last, _Compare __comp) { typedef typename iterator_traits<_BirdirectionalIterator>::value_type value_type; if (__first != __last) { _BirdirectionalIterator __i = __first; for (++__i; __i != __last; ++__i) { _BirdirectionalIterator __j = __i; value_type __t(std::__1::move(*__j)); for (_BirdirectionalIterator __k = __i; __k != __first && __comp(__t, *--__k); --__j) *__j = std::__1::move(*__k); *__j = std::__1::move(__t); } } } template <class _Compare, class _RandomAccessIterator> void __insertion_sort_3(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; _RandomAccessIterator __j = __first+2; __sort3<_Compare>(__first, __first+1, __j, __comp); for (_RandomAccessIterator __i = __j+1; __i != __last; ++__i) { if (__comp(*__i, *__j)) { value_type __t(std::__1::move(*__i)); _RandomAccessIterator __k = __j; __j = __i; do { *__j = std::__1::move(*__k); __j = __k; } while (__j != __first && __comp(__t, *--__k)); *__j = std::__1::move(__t); } __j = __i; } } template <class _Compare, class _RandomAccessIterator> bool __insertion_sort_incomplete(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { switch (__last - __first) { case 0: case 1: return true; case 2: if (__comp(*--__last, *__first)) swap(*__first, *__last); return true; case 3: std::__1::__sort3<_Compare>(__first, __first+1, --__last, __comp); return true; case 4: std::__1::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp); return true; case 5: std::__1::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp); return true; } typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; _RandomAccessIterator __j = __first+2; __sort3<_Compare>(__first, __first+1, __j, __comp); const unsigned __limit = 8; unsigned __count = 0; for (_RandomAccessIterator __i = __j+1; __i != __last; ++__i) { if (__comp(*__i, *__j)) { value_type __t(std::__1::move(*__i)); _RandomAccessIterator __k = __j; __j = __i; do { *__j = std::__1::move(*__k); __j = __k; } while (__j != __first && __comp(__t, *--__k)); *__j = std::__1::move(__t); if (++__count == __limit) return ++__i == __last; } __j = __i; } return true; } template <class _Compare, class _BirdirectionalIterator> void __insertion_sort_move(_BirdirectionalIterator __first1, _BirdirectionalIterator __last1, typename iterator_traits<_BirdirectionalIterator>::value_type* __first2, _Compare __comp) { typedef typename iterator_traits<_BirdirectionalIterator>::value_type value_type; if (__first1 != __last1) { __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h(__first2, __d); value_type* __last2 = __first2; ::new(__last2) value_type(std::__1::move(*__first1)); __d.__incr((value_type*)0); for (++__last2; ++__first1 != __last1; ++__last2) { value_type* __j2 = __last2; value_type* __i2 = __j2; if (__comp(*__first1, *--__i2)) { ::new(__j2) value_type(std::__1::move(*__i2)); __d.__incr((value_type*)0); for (--__j2; __i2 != __first2 && __comp(*__first1, *--__i2); --__j2) *__j2 = std::__1::move(*__i2); *__j2 = std::__1::move(*__first1); } else { ::new(__j2) value_type(std::__1::move(*__first1)); __d.__incr((value_type*)0); } } __h.release(); } } template <class _Compare, class _RandomAccessIterator> void __sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; const difference_type __limit = is_trivially_copy_constructible<value_type>::value && is_trivially_copy_assignable<value_type>::value ? 30 : 6; while (true) { __restart: difference_type __len = __last - __first; switch (__len) { case 0: case 1: return; case 2: if (__comp(*--__last, *__first)) swap(*__first, *__last); return; case 3: std::__1::__sort3<_Compare>(__first, __first+1, --__last, __comp); return; case 4: std::__1::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp); return; case 5: std::__1::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp); return; } if (__len <= __limit) { std::__1::__insertion_sort_3<_Compare>(__first, __last, __comp); return; } _RandomAccessIterator __m = __first; _RandomAccessIterator __lm1 = __last; --__lm1; unsigned __n_swaps; { difference_type __delta; if (__len >= 1000) { __delta = __len/2; __m += __delta; __delta /= 2; __n_swaps = std::__1::__sort5<_Compare>(__first, __first + __delta, __m, __m+__delta, __lm1, __comp); } else { __delta = __len/2; __m += __delta; __n_swaps = std::__1::__sort3<_Compare>(__first, __m, __lm1, __comp); } } _RandomAccessIterator __i = __first; _RandomAccessIterator __j = __lm1; if (!__comp(*__i, *__m)) { while (true) { if (__i == --__j) { ++__i; __j = __last; if (!__comp(*__first, *--__j)) { while (true) { if (__i == __j) return; if (__comp(*__first, *__i)) { swap(*__i, *__j); ++__n_swaps; ++__i; break; } ++__i; } } if (__i == __j) return; while (true) { while (!__comp(*__first, *__i)) ++__i; while (__comp(*__first, *--__j)) ; if (__i >= __j) break; swap(*__i, *__j); ++__n_swaps; ++__i; } __first = __i; goto __restart; } if (__comp(*__j, *__m)) { swap(*__i, *__j); ++__n_swaps; break; } } } ++__i; if (__i < __j) { while (true) { while (__comp(*__i, *__m)) ++__i; while (!__comp(*--__j, *__m)) ; if (__i > __j) break; swap(*__i, *__j); ++__n_swaps; if (__m == __i) __m = __j; ++__i; } } if (__i != __m && __comp(*__m, *__i)) { swap(*__i, *__m); ++__n_swaps; } if (__n_swaps == 0) { bool __fs = std::__1::__insertion_sort_incomplete<_Compare>(__first, __i, __comp); if (std::__1::__insertion_sort_incomplete<_Compare>(__i+1, __last, __comp)) { if (__fs) return; __last = __i; continue; } else { if (__fs) { __first = ++__i; continue; } } } if (__i - __first < __last - __i) { std::__1::__sort<_Compare>(__first, __i, __comp); __first = ++__i; } else { std::__1::__sort<_Compare>(__i+1, __last, __comp); __last = __i; } } } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; std::__1::__sort<_Comp_ref>(__first, __last, _Comp_ref(__comp)); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { std::__1::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort(_Tp** __first, _Tp** __last) { std::__1::sort((size_t*)__first, (size_t*)__last, __less<size_t>()); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last) { std::__1::sort(__first.base(), __last.base()); } template <class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last, _Compare __comp) { typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; std::__1::sort<_Tp*, _Comp_ref>(__first.base(), __last.base(), __comp); } extern template __attribute__ ((__visibility__("default"))) void __sort<__less<char>&, char*>(char*, char*, __less<char>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<wchar_t>&, wchar_t*>(wchar_t*, wchar_t*, __less<wchar_t>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<signed char>&, signed char*>(signed char*, signed char*, __less<signed char>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, __less<unsigned char>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<short>&, short*>(short*, short*, __less<short>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, __less<unsigned short>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<int>&, int*>(int*, int*, __less<int>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<unsigned>&, unsigned*>(unsigned*, unsigned*, __less<unsigned>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<long>&, long*>(long*, long*, __less<long>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<unsigned long>&, unsigned long*>(unsigned long*, unsigned long*, __less<unsigned long>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<long long>&, long long*>(long long*, long long*, __less<long long>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<unsigned long long>&, unsigned long long*>(unsigned long long*, unsigned long long*, __less<unsigned long long>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<float>&, float*>(float*, float*, __less<float>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<double>&, double*>(double*, double*, __less<double>&); extern template __attribute__ ((__visibility__("default"))) void __sort<__less<long double>&, long double*>(long double*, long double*, __less<long double>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<char>&, char*>(char*, char*, __less<char>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<wchar_t>&, wchar_t*>(wchar_t*, wchar_t*, __less<wchar_t>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<signed char>&, signed char*>(signed char*, signed char*, __less<signed char>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, __less<unsigned char>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<short>&, short*>(short*, short*, __less<short>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, __less<unsigned short>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<int>&, int*>(int*, int*, __less<int>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<unsigned>&, unsigned*>(unsigned*, unsigned*, __less<unsigned>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<long>&, long*>(long*, long*, __less<long>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<unsigned long>&, unsigned long*>(unsigned long*, unsigned long*, __less<unsigned long>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<long long>&, long long*>(long long*, long long*, __less<long long>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<unsigned long long>&, unsigned long long*>(unsigned long long*, unsigned long long*, __less<unsigned long long>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<float>&, float*>(float*, float*, __less<float>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<double>&, double*>(double*, double*, __less<double>&); extern template __attribute__ ((__visibility__("default"))) bool __insertion_sort_incomplete<__less<long double>&, long double*>(long double*, long double*, __less<long double>&); extern template __attribute__ ((__visibility__("default"))) unsigned __sort5<__less<long double>&, long double*>(long double*, long double*, long double*, long double*, long double*, __less<long double>&); template <class _Compare, class _ForwardIterator, class _Tp> _ForwardIterator __lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; difference_type __len = std::__1::distance(__first, __last); while (__len != 0) { difference_type __l2 = std::__1::__half_positive(__len); _ForwardIterator __m = __first; std::__1::advance(__m, __l2); if (__comp(*__m, __value_)) { __first = ++__m; __len -= __l2 + 1; } else __len = __l2; } return __first; } template <class _ForwardIterator, class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; return __lower_bound<_Comp_ref>(__first, __last, __value_, __comp); } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) { return std::__1::lower_bound(__first, __last, __value_, __less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>()); } template <class _Compare, class _ForwardIterator, class _Tp> _ForwardIterator __upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; difference_type __len = std::__1::distance(__first, __last); while (__len != 0) { difference_type __l2 = std::__1::__half_positive(__len); _ForwardIterator __m = __first; std::__1::advance(__m, __l2); if (__comp(__value_, *__m)) __len = __l2; else { __first = ++__m; __len -= __l2 + 1; } } return __first; } template <class _ForwardIterator, class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename add_lvalue_reference<_Compare>::type _Comp_ref; return __upper_bound<_Comp_ref>(__first, __last, __value_, __comp); } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _ForwardIterator upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) { return std::__1::upper_bound(__first, __last, __value_, __less<_Tp, typename iterator_traits<_ForwardIterator>::value_type>()); } template <class _Compare, class _ForwardIterator, class _Tp> pair<_ForwardIterator, _ForwardIterator> __equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type; difference_type __len = std::__1::distance(__first, __last); while (__len != 0) { difference_type __l2 = std::__1::__half_positive(__len); _ForwardIterator __m = __first; std::__1::advance(__m, __l2); if (__comp(*__m, __value_)) { __first = ++__m; __len -= __l2 + 1; } else if (__comp(__value_, *__m)) { __last = __m; __len = __l2; } else { _ForwardIterator __mp1 = __m; return pair<_ForwardIterator, _ForwardIterator> ( __lower_bound<_Compare>(__first, __m, __value_, __comp), __upper_bound<_Compare>(++__mp1, __last, __value_, __comp) ); } } return pair<_ForwardIterator, _ForwardIterator>(__first, __first); } template <class _ForwardIterator, class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_ForwardIterator, _ForwardIterator> equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __equal_range<_Comp_ref>(__first, __last, __value_, __comp); } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pair<_ForwardIterator, _ForwardIterator> equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) { return std::__1::equal_range(__first, __last, __value_, __less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>()); } template <class _Compare, class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { __first = __lower_bound<_Compare>(__first, __last, __value_, __comp); return __first != __last && !__comp(__value_, *__first); } template <class _ForwardIterator, class _Tp, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __binary_search<_Comp_ref>(__first, __last, __value_, __comp); } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_) { return std::__1::binary_search(__first, __last, __value_, __less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>()); } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> _OutputIterator __merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { for (; __first1 != __last1; ++__result) { if (__first2 == __last2) return std::__1::copy(__first1, __last1, __result); if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { *__result = *__first1; ++__first1; } } return std::__1::copy(__first2, __last2, __result); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return std::__1::__merge<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { typedef typename iterator_traits<_InputIterator1>::value_type __v1; typedef typename iterator_traits<_InputIterator2>::value_type __v2; return merge(__first1, __last1, __first2, __last2, __result, __less<__v1, __v2>()); } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> void __half_inplace_merge(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { for (; __first1 != __last1; ++__result) { if (__first2 == __last2) { std::__1::move(__first1, __last1, __result); return; } if (__comp(*__first2, *__first1)) { *__result = std::__1::move(*__first2); ++__first2; } else { *__result = std::__1::move(*__first1); ++__first1; } } } template <class _Compare, class _BidirectionalIterator> void __buffered_inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp, typename iterator_traits<_BidirectionalIterator>::difference_type __len1, typename iterator_traits<_BidirectionalIterator>::difference_type __len2, typename iterator_traits<_BidirectionalIterator>::value_type* __buff) { typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h2(__buff, __d); if (__len1 <= __len2) { value_type* __p = __buff; for (_BidirectionalIterator __i = __first; __i != __middle; __d.__incr((value_type*)0), (void) ++__i, ++__p) ::new(__p) value_type(std::__1::move(*__i)); __half_inplace_merge(__buff, __p, __middle, __last, __first, __comp); } else { value_type* __p = __buff; for (_BidirectionalIterator __i = __middle; __i != __last; __d.__incr((value_type*)0), (void) ++__i, ++__p) ::new(__p) value_type(std::__1::move(*__i)); typedef reverse_iterator<_BidirectionalIterator> _RBi; typedef reverse_iterator<value_type*> _Rv; __half_inplace_merge(_Rv(__p), _Rv(__buff), _RBi(__middle), _RBi(__first), _RBi(__last), __invert<_Compare>(__comp)); } } template <class _Compare, class _BidirectionalIterator> void __inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp, typename iterator_traits<_BidirectionalIterator>::difference_type __len1, typename iterator_traits<_BidirectionalIterator>::difference_type __len2, typename iterator_traits<_BidirectionalIterator>::value_type* __buff, ptrdiff_t __buff_size) { typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; while (true) { if (__len2 == 0) return; if (__len1 <= __buff_size || __len2 <= __buff_size) return __buffered_inplace_merge<_Compare> (__first, __middle, __last, __comp, __len1, __len2, __buff); for (; true; ++__first, (void) --__len1) { if (__len1 == 0) return; if (__comp(*__middle, *__first)) break; } # 4484 "/opt/toolchain/target/bin/../include/c++/v1/algorithm" 3 _BidirectionalIterator __m1; _BidirectionalIterator __m2; difference_type __len11; difference_type __len21; if (__len1 < __len2) { __len21 = __len2 / 2; __m2 = __middle; std::__1::advance(__m2, __len21); __m1 = __upper_bound<_Compare>(__first, __middle, *__m2, __comp); __len11 = std::__1::distance(__first, __m1); } else { if (__len1 == 1) { swap(*__first, *__middle); return; } __len11 = __len1 / 2; __m1 = __first; std::__1::advance(__m1, __len11); __m2 = __lower_bound<_Compare>(__middle, __last, *__m1, __comp); __len21 = std::__1::distance(__middle, __m2); } difference_type __len12 = __len1 - __len11; difference_type __len22 = __len2 - __len21; __middle = std::__1::rotate(__m1, __middle, __m2); if (__len11 + __len21 < __len12 + __len22) { __inplace_merge<_Compare>(__first, __m1, __middle, __comp, __len11, __len21, __buff, __buff_size); __first = __middle; __middle = __m2; __len1 = __len12; __len2 = __len22; } else { __inplace_merge<_Compare>(__middle, __m2, __last, __comp, __len12, __len22, __buff, __buff_size); __last = __middle; __middle = __m1; __len1 = __len11; __len2 = __len21; } } } template <class _BidirectionalIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp) { typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type; typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type; difference_type __len1 = std::__1::distance(__first, __middle); difference_type __len2 = std::__1::distance(__middle, __last); difference_type __buf_size = std::__1::min(__len1, __len2); pair<value_type*, ptrdiff_t> __buf = std::__1::get_temporary_buffer<value_type>(__buf_size); unique_ptr<value_type, __return_temporary_buffer> __h(__buf.first); typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return std::__1::__inplace_merge<_Comp_ref>(__first, __middle, __last, __comp, __len1, __len2, __buf.first, __buf.second); } template <class _BidirectionalIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last) { std::__1::inplace_merge(__first, __middle, __last, __less<typename iterator_traits<_BidirectionalIterator>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2> void __merge_move_construct(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, typename iterator_traits<_InputIterator1>::value_type* __result, _Compare __comp) { typedef typename iterator_traits<_InputIterator1>::value_type value_type; __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h(__result, __d); for (; true; ++__result) { if (__first1 == __last1) { for (; __first2 != __last2; ++__first2, ++__result, __d.__incr((value_type*)0)) ::new (__result) value_type(std::__1::move(*__first2)); __h.release(); return; } if (__first2 == __last2) { for (; __first1 != __last1; ++__first1, ++__result, __d.__incr((value_type*)0)) ::new (__result) value_type(std::__1::move(*__first1)); __h.release(); return; } if (__comp(*__first2, *__first1)) { ::new (__result) value_type(std::__1::move(*__first2)); __d.__incr((value_type*)0); ++__first2; } else { ::new (__result) value_type(std::__1::move(*__first1)); __d.__incr((value_type*)0); ++__first1; } } } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> void __merge_move_assign(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { for (; __first1 != __last1; ++__result) { if (__first2 == __last2) { for (; __first1 != __last1; ++__first1, ++__result) *__result = std::__1::move(*__first1); return; } if (__comp(*__first2, *__first1)) { *__result = std::__1::move(*__first2); ++__first2; } else { *__result = std::__1::move(*__first1); ++__first1; } } for (; __first2 != __last2; ++__first2, ++__result) *__result = std::__1::move(*__first2); } template <class _Compare, class _RandomAccessIterator> void __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, typename iterator_traits<_RandomAccessIterator>::difference_type __len, typename iterator_traits<_RandomAccessIterator>::value_type* __buff, ptrdiff_t __buff_size); template <class _Compare, class _RandomAccessIterator> void __stable_sort_move(_RandomAccessIterator __first1, _RandomAccessIterator __last1, _Compare __comp, typename iterator_traits<_RandomAccessIterator>::difference_type __len, typename iterator_traits<_RandomAccessIterator>::value_type* __first2) { typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; switch (__len) { case 0: return; case 1: ::new(__first2) value_type(std::__1::move(*__first1)); return; case 2: __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h2(__first2, __d); if (__comp(*--__last1, *__first1)) { ::new(__first2) value_type(std::__1::move(*__last1)); __d.__incr((value_type*)0); ++__first2; ::new(__first2) value_type(std::__1::move(*__first1)); } else { ::new(__first2) value_type(std::__1::move(*__first1)); __d.__incr((value_type*)0); ++__first2; ::new(__first2) value_type(std::__1::move(*__last1)); } __h2.release(); return; } if (__len <= 8) { __insertion_sort_move<_Compare>(__first1, __last1, __first2, __comp); return; } typename iterator_traits<_RandomAccessIterator>::difference_type __l2 = __len / 2; _RandomAccessIterator __m = __first1 + __l2; __stable_sort<_Compare>(__first1, __m, __comp, __l2, __first2, __l2); __stable_sort<_Compare>(__m, __last1, __comp, __len - __l2, __first2 + __l2, __len - __l2); __merge_move_construct<_Compare>(__first1, __m, __m, __last1, __first2, __comp); } template <class _Tp> struct __stable_sort_switch { static const unsigned value = 128*is_trivially_copy_assignable<_Tp>::value; }; template <class _Compare, class _RandomAccessIterator> void __stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, typename iterator_traits<_RandomAccessIterator>::difference_type __len, typename iterator_traits<_RandomAccessIterator>::value_type* __buff, ptrdiff_t __buff_size) { typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; switch (__len) { case 0: case 1: return; case 2: if (__comp(*--__last, *__first)) swap(*__first, *__last); return; } if (__len <= static_cast<difference_type>(__stable_sort_switch<value_type>::value)) { __insertion_sort<_Compare>(__first, __last, __comp); return; } typename iterator_traits<_RandomAccessIterator>::difference_type __l2 = __len / 2; _RandomAccessIterator __m = __first + __l2; if (__len <= __buff_size) { __destruct_n __d(0); unique_ptr<value_type, __destruct_n&> __h2(__buff, __d); __stable_sort_move<_Compare>(__first, __m, __comp, __l2, __buff); __d.__set(__l2, (value_type*)0); __stable_sort_move<_Compare>(__m, __last, __comp, __len - __l2, __buff + __l2); __d.__set(__len, (value_type*)0); __merge_move_assign<_Compare>(__buff, __buff + __l2, __buff + __l2, __buff + __len, __first, __comp); return; } __stable_sort<_Compare>(__first, __m, __comp, __l2, __buff, __buff_size); __stable_sort<_Compare>(__m, __last, __comp, __len - __l2, __buff, __buff_size); __inplace_merge<_Compare>(__first, __m, __last, __comp, __l2, __len - __l2, __buff, __buff_size); } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; difference_type __len = __last - __first; pair<value_type*, ptrdiff_t> __buf(0, 0); unique_ptr<value_type, __return_temporary_buffer> __h; if (__len > static_cast<difference_type>(__stable_sort_switch<value_type>::value)) { __buf = std::__1::get_temporary_buffer<value_type>(__len); __h.reset(__buf.first); } typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __stable_sort<_Comp_ref>(__first, __last, __comp, __len, __buf.first, __buf.second); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) { std::__1::stable_sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _RandomAccessIterator, class _Compare> _RandomAccessIterator is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename std::__1::iterator_traits<_RandomAccessIterator>::difference_type difference_type; difference_type __len = __last - __first; difference_type __p = 0; difference_type __c = 1; _RandomAccessIterator __pp = __first; while (__c < __len) { _RandomAccessIterator __cp = __first + __c; if (__comp(*__pp, *__cp)) return __cp; ++__c; ++__cp; if (__c == __len) return __last; if (__comp(*__pp, *__cp)) return __cp; ++__p; ++__pp; __c = 2 * __p + 1; } return __last; } template<class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _RandomAccessIterator is_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last) { return std::__1::is_heap_until(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { return std::__1::is_heap_until(__first, __last, __comp) == __last; } template<class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { return std::__1::is_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _RandomAccessIterator> void __sift_up(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, typename iterator_traits<_RandomAccessIterator>::difference_type __len) { typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; if (__len > 1) { __len = (__len - 2) / 2; _RandomAccessIterator __ptr = __first + __len; if (__comp(*__ptr, *--__last)) { value_type __t(std::__1::move(*__last)); do { *__last = std::__1::move(*__ptr); __last = __ptr; if (__len == 0) break; __len = (__len - 1) / 2; __ptr = __first + __len; } while (__comp(*__ptr, __t)); *__last = std::__1::move(__t); } } } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __sift_up<_Comp_ref>(__first, __last, __comp, __last - __first); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { std::__1::push_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _RandomAccessIterator> void __sift_down(_RandomAccessIterator __first, _RandomAccessIterator , _Compare __comp, typename iterator_traits<_RandomAccessIterator>::difference_type __len, _RandomAccessIterator __start) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type; difference_type __child = __start - __first; if (__len < 2 || (__len - 2) / 2 < __child) return; __child = 2 * __child + 1; _RandomAccessIterator __child_i = __first + __child; if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + 1))) { ++__child_i; ++__child; } if (__comp(*__child_i, *__start)) return; value_type __top(std::__1::move(*__start)); do { *__start = std::__1::move(*__child_i); __start = __child_i; if ((__len - 2) / 2 < __child) break; __child = 2 * __child + 1; __child_i = __first + __child; if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + 1))) { ++__child_i; ++__child; } } while (!__comp(*__child_i, __top)); *__start = std::__1::move(__top); } template <class _Compare, class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp, typename iterator_traits<_RandomAccessIterator>::difference_type __len) { if (__len > 1) { swap(*__first, *--__last); __sift_down<_Compare>(__first, __last, __comp, __len - 1, __first); } } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __pop_heap<_Comp_ref>(__first, __last, __comp, __last - __first); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { std::__1::pop_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _RandomAccessIterator> void __make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; difference_type __n = __last - __first; if (__n > 1) { for (difference_type __start = (__n - 2) / 2; __start >= 0; --__start) { __sift_down<_Compare>(__first, __last, __comp, __n, __first + __start); } } } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __make_heap<_Comp_ref>(__first, __last, __comp); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { std::__1::make_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _RandomAccessIterator> void __sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; for (difference_type __n = __last - __first; __n > 1; --__last, --__n) __pop_heap<_Compare>(__first, __last, __comp, __n); } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __sort_heap<_Comp_ref>(__first, __last, __comp); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) { std::__1::sort_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _RandomAccessIterator> void __partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp) { __make_heap<_Compare>(__first, __middle, __comp); typename iterator_traits<_RandomAccessIterator>::difference_type __len = __middle - __first; for (_RandomAccessIterator __i = __middle; __i != __last; ++__i) { if (__comp(*__i, *__first)) { swap(*__i, *__first); __sift_down<_Compare>(__first, __middle, __comp, __len, __first); } } __sort_heap<_Compare>(__first, __middle, __comp); } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __partial_sort<_Comp_ref>(__first, __middle, __last, __comp); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last) { std::__1::partial_sort(__first, __middle, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _InputIterator, class _RandomAccessIterator> _RandomAccessIterator __partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp) { _RandomAccessIterator __r = __result_first; if (__r != __result_last) { for (; __first != __last && __r != __result_last; (void) ++__first, ++__r) *__r = *__first; __make_heap<_Compare>(__result_first, __r, __comp); typename iterator_traits<_RandomAccessIterator>::difference_type __len = __r - __result_first; for (; __first != __last; ++__first) if (__comp(*__first, *__result_first)) { *__result_first = *__first; __sift_down<_Compare>(__result_first, __r, __comp, __len, __result_first); } __sort_heap<_Compare>(__result_first, __r, __comp); } return __r; } template <class _InputIterator, class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _RandomAccessIterator partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __partial_sort_copy<_Comp_ref>(__first, __last, __result_first, __result_last, __comp); } template <class _InputIterator, class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _RandomAccessIterator partial_sort_copy(_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last) { return std::__1::partial_sort_copy(__first, __last, __result_first, __result_last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _RandomAccessIterator> void __nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp) { typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type; const difference_type __limit = 7; while (true) { __restart: if (__nth == __last) return; difference_type __len = __last - __first; switch (__len) { case 0: case 1: return; case 2: if (__comp(*--__last, *__first)) swap(*__first, *__last); return; case 3: { _RandomAccessIterator __m = __first; std::__1::__sort3<_Compare>(__first, ++__m, --__last, __comp); return; } } if (__len <= __limit) { __selection_sort<_Compare>(__first, __last, __comp); return; } _RandomAccessIterator __m = __first + __len/2; _RandomAccessIterator __lm1 = __last; unsigned __n_swaps = std::__1::__sort3<_Compare>(__first, __m, --__lm1, __comp); _RandomAccessIterator __i = __first; _RandomAccessIterator __j = __lm1; if (!__comp(*__i, *__m)) { while (true) { if (__i == --__j) { ++__i; __j = __last; if (!__comp(*__first, *--__j)) { while (true) { if (__i == __j) return; if (__comp(*__first, *__i)) { swap(*__i, *__j); ++__n_swaps; ++__i; break; } ++__i; } } if (__i == __j) return; while (true) { while (!__comp(*__first, *__i)) ++__i; while (__comp(*__first, *--__j)) ; if (__i >= __j) break; swap(*__i, *__j); ++__n_swaps; ++__i; } if (__nth < __i) return; __first = __i; goto __restart; } if (__comp(*__j, *__m)) { swap(*__i, *__j); ++__n_swaps; break; } } } ++__i; if (__i < __j) { while (true) { while (__comp(*__i, *__m)) ++__i; while (!__comp(*--__j, *__m)) ; if (__i >= __j) break; swap(*__i, *__j); ++__n_swaps; if (__m == __i) __m = __j; ++__i; } } if (__i != __m && __comp(*__m, *__i)) { swap(*__i, *__m); ++__n_swaps; } if (__nth == __i) return; if (__n_swaps == 0) { if (__nth < __i) { __j = __m = __first; while (++__j != __i) { if (__comp(*__j, *__m)) goto not_sorted; __m = __j; } return; } else { __j = __m = __i; while (++__j != __last) { if (__comp(*__j, *__m)) goto not_sorted; __m = __j; } return; } } not_sorted: if (__nth < __i) { __last = __i; } else { __first = ++__i; } } } template <class _RandomAccessIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; __nth_element<_Comp_ref>(__first, __nth, __last, __comp); } template <class _RandomAccessIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last) { std::__1::nth_element(__first, __nth, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2> bool __includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) { for (; __first2 != __last2; ++__first1) { if (__first1 == __last1 || __comp(*__first2, *__first1)) return false; if (!__comp(*__first1, *__first2)) ++__first2; } return true; } template <class _InputIterator1, class _InputIterator2, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __includes<_Comp_ref>(__first1, __last1, __first2, __last2, __comp); } template <class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { return std::__1::includes(__first1, __last1, __first2, __last2, __less<typename iterator_traits<_InputIterator1>::value_type, typename iterator_traits<_InputIterator2>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> _OutputIterator __set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { for (; __first1 != __last1; ++__result) { if (__first2 == __last2) return std::__1::copy(__first1, __last1, __result); if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__first2; } else { if (!__comp(*__first1, *__first2)) ++__first2; *__result = *__first1; ++__first1; } } return std::__1::copy(__first2, __last2, __result); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __set_union<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_union(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { return std::__1::set_union(__first1, __last1, __first2, __last2, __result, __less<typename iterator_traits<_InputIterator1>::value_type, typename iterator_traits<_InputIterator2>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> _OutputIterator __set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { while (__first1 != __last1 && __first2 != __last2) { if (__comp(*__first1, *__first2)) ++__first1; else { if (!__comp(*__first2, *__first1)) { *__result = *__first1; ++__result; ++__first1; } ++__first2; } } return __result; } template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __set_intersection<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { return std::__1::set_intersection(__first1, __last1, __first2, __last2, __result, __less<typename iterator_traits<_InputIterator1>::value_type, typename iterator_traits<_InputIterator2>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> _OutputIterator __set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { while (__first1 != __last1) { if (__first2 == __last2) return std::__1::copy(__first1, __last1, __result); if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__result; ++__first1; } else { if (!__comp(*__first2, *__first1)) ++__first1; ++__first2; } } return __result; } template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __set_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { return std::__1::set_difference(__first1, __last1, __first2, __last2, __result, __less<typename iterator_traits<_InputIterator1>::value_type, typename iterator_traits<_InputIterator2>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator> _OutputIterator __set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { while (__first1 != __last1) { if (__first2 == __last2) return std::__1::copy(__first1, __last1, __result); if (__comp(*__first1, *__first2)) { *__result = *__first1; ++__result; ++__first1; } else { if (__comp(*__first2, *__first1)) { *__result = *__first2; ++__result; } else ++__first1; ++__first2; } } return std::__1::copy(__first2, __last2, __result); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __set_symmetric_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp); } template <class _InputIterator1, class _InputIterator2, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result) { return std::__1::set_symmetric_difference(__first1, __last1, __first2, __last2, __result, __less<typename iterator_traits<_InputIterator1>::value_type, typename iterator_traits<_InputIterator2>::value_type>()); } template <class _Compare, class _InputIterator1, class _InputIterator2> bool __lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) { for (; __first2 != __last2; ++__first1, (void) ++__first2) { if (__first1 == __last1 || __comp(*__first1, *__first2)) return true; if (__comp(*__first2, *__first1)) return false; } return false; } template <class _InputIterator1, class _InputIterator2, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __lexicographical_compare<_Comp_ref>(__first1, __last1, __first2, __last2, __comp); } template <class _InputIterator1, class _InputIterator2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) { return std::__1::lexicographical_compare(__first1, __last1, __first2, __last2, __less<typename iterator_traits<_InputIterator1>::value_type, typename iterator_traits<_InputIterator2>::value_type>()); } template <class _Compare, class _BidirectionalIterator> bool __next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { _BidirectionalIterator __i = __last; if (__first == __last || __first == --__i) return false; while (true) { _BidirectionalIterator __ip1 = __i; if (__comp(*--__i, *__ip1)) { _BidirectionalIterator __j = __last; while (!__comp(*__i, *--__j)) ; swap(*__i, *__j); std::__1::reverse(__ip1, __last); return true; } if (__i == __first) { std::__1::reverse(__first, __last); return false; } } } template <class _BidirectionalIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __next_permutation<_Comp_ref>(__first, __last, __comp); } template <class _BidirectionalIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { return std::__1::next_permutation(__first, __last, __less<typename iterator_traits<_BidirectionalIterator>::value_type>()); } template <class _Compare, class _BidirectionalIterator> bool __prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { _BidirectionalIterator __i = __last; if (__first == __last || __first == --__i) return false; while (true) { _BidirectionalIterator __ip1 = __i; if (__comp(*__ip1, *--__i)) { _BidirectionalIterator __j = __last; while (!__comp(*--__j, *__i)) ; swap(*__i, *__j); std::__1::reverse(__ip1, __last); return true; } if (__i == __first) { std::__1::reverse(__first, __last); return false; } } } template <class _BidirectionalIterator, class _Compare> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp) { typedef typename __comp_ref_type<_Compare>::type _Comp_ref; return __prev_permutation<_Comp_ref>(__first, __last, __comp); } template <class _BidirectionalIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { return std::__1::prev_permutation(__first, __last, __less<typename iterator_traits<_BidirectionalIterator>::value_type>()); } } } # 659 "/work/libint/3rdparty/libcxx/include/experimental/simd" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/array" 1 3 # 119 "/opt/toolchain/target/bin/../include/c++/v1/array" 3 namespace std { inline namespace __1 { template <class _Tp, size_t _Size> struct __attribute__ ((__type_visibility__("default"))) array { typedef array __self; typedef _Tp value_type; typedef value_type& reference; typedef const value_type& const_reference; typedef value_type* iterator; typedef const value_type* const_iterator; typedef value_type* pointer; typedef const value_type* const_pointer; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef std::reverse_iterator<iterator> reverse_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator; _Tp __elems_[_Size]; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void fill(const value_type& __u) { std::__1::fill_n(__elems_, _Size, __u); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(array& __a) noexcept(__is_nothrow_swappable<_Tp>::value) { std::swap_ranges(__elems_, __elems_ + _Size, __a.__elems_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr iterator begin() noexcept {return iterator(data());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_iterator begin() const noexcept {return const_iterator(data());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr iterator end() noexcept {return iterator(data() + _Size);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_iterator end() const noexcept {return const_iterator(data() + _Size);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator rbegin() noexcept {return reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reverse_iterator rbegin() const noexcept {return const_reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator rend() noexcept {return reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reverse_iterator rend() const noexcept {return const_reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_iterator cbegin() const noexcept {return begin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_iterator cend() const noexcept {return end();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reverse_iterator crbegin() const noexcept {return rbegin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reverse_iterator crend() const noexcept {return rend();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_type size() const noexcept {return _Size;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_type max_size() const noexcept {return _Size;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool empty() const noexcept {return false; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference operator[](size_type __n) noexcept {return __elems_[__n];} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference operator[](size_type __n) const noexcept {return __elems_[__n];} constexpr reference at(size_type __n); constexpr const_reference at(size_type __n) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference front() noexcept {return __elems_[0];} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference front() const noexcept {return __elems_[0];} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr reference back() noexcept {return __elems_[_Size - 1];} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference back() const noexcept {return __elems_[_Size - 1];} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr value_type* data() noexcept {return __elems_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const value_type* data() const noexcept {return __elems_;} }; template <class _Tp, size_t _Size> constexpr typename array<_Tp, _Size>::reference array<_Tp, _Size>::at(size_type __n) { if (__n >= _Size) __throw_out_of_range("array::at"); return __elems_[__n]; } template <class _Tp, size_t _Size> constexpr typename array<_Tp, _Size>::const_reference array<_Tp, _Size>::at(size_type __n) const { if (__n >= _Size) __throw_out_of_range("array::at"); return __elems_[__n]; } template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) array<_Tp, 0> { typedef array __self; typedef _Tp value_type; typedef value_type& reference; typedef const value_type& const_reference; typedef value_type* iterator; typedef const value_type* const_iterator; typedef value_type* pointer; typedef const value_type* const_pointer; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef std::reverse_iterator<iterator> reverse_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator; typedef typename conditional<is_const<_Tp>::value, const char, char>::type _CharType; struct _ArrayInStructT { _Tp __data_[1]; }; alignas(_ArrayInStructT) _CharType __elems_[sizeof(_ArrayInStructT)]; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void fill(const value_type&) { static_assert(!is_const<_Tp>::value, "cannot fill zero-sized array of type 'const T'"); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(array&) noexcept { static_assert(!is_const<_Tp>::value, "cannot swap zero-sized array of type 'const T'"); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator begin() noexcept {return iterator(data());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator begin() const noexcept {return const_iterator(data());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator end() noexcept {return iterator(data());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator end() const noexcept {return const_iterator(data());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rbegin() noexcept {return reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rbegin() const noexcept {return const_reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rend() noexcept {return reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rend() const noexcept {return const_reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cbegin() const noexcept {return begin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cend() const noexcept {return end();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crbegin() const noexcept {return rbegin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crend() const noexcept {return rend();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_type size() const noexcept {return 0; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_type max_size() const noexcept {return 0;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool empty() const noexcept {return true;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator[](size_type) noexcept { ((void)0); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference operator[](size_type) const noexcept { ((void)0); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference at(size_type) { __throw_out_of_range("array<T, 0>::at"); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference at(size_type) const { __throw_out_of_range("array<T, 0>::at"); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference front() noexcept { ((void)0); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference front() const noexcept { ((void)0); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference back() noexcept { ((void)0); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference back() const noexcept { ((void)0); __builtin_unreachable(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) value_type* data() noexcept {return reinterpret_cast<value_type*>(__elems_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const value_type* data() const noexcept {return reinterpret_cast<const value_type*>(__elems_);} }; template<class _Tp, class... _Args, class = typename enable_if<(is_same_v<_Tp, _Args> && ...), void>::type > array(_Tp, _Args...) -> array<_Tp, 1 + sizeof...(_Args)>; template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { return std::__1::equal(__x.begin(), __x.end(), __y.begin()); } template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { return !(__x == __y); } template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { return std::__1::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { return __y < __x; } template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { return !(__y < __x); } template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y) { return !(__x < __y); } template <class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < _Size == 0 || __is_swappable<_Tp>::value, void >::type swap(array<_Tp, _Size>& __x, array<_Tp, _Size>& __y) noexcept(noexcept(__x.swap(__y))) { __x.swap(__y); } template <class _Tp, size_t _Size> struct __attribute__ ((__type_visibility__("default"))) tuple_size<array<_Tp, _Size> > : public integral_constant<size_t, _Size> {}; template <size_t _Ip, class _Tp, size_t _Size> struct __attribute__ ((__type_visibility__("default"))) tuple_element<_Ip, array<_Tp, _Size> > { static_assert(_Ip < _Size, "Index out of bounds in std::tuple_element<> (std::array)"); typedef _Tp type; }; template <size_t _Ip, class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp& get(array<_Tp, _Size>& __a) noexcept { static_assert(_Ip < _Size, "Index out of bounds in std::get<> (std::array)"); return __a.__elems_[_Ip]; } template <size_t _Ip, class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& get(const array<_Tp, _Size>& __a) noexcept { static_assert(_Ip < _Size, "Index out of bounds in std::get<> (const std::array)"); return __a.__elems_[_Ip]; } template <size_t _Ip, class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp&& get(array<_Tp, _Size>&& __a) noexcept { static_assert(_Ip < _Size, "Index out of bounds in std::get<> (std::array &&)"); return std::__1::move(__a.__elems_[_Ip]); } template <size_t _Ip, class _Tp, size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp&& get(const array<_Tp, _Size>&& __a) noexcept { static_assert(_Ip < _Size, "Index out of bounds in std::get<> (const std::array &&)"); return std::__1::move(__a.__elems_[_Ip]); } } } # 660 "/work/libint/3rdparty/libcxx/include/experimental/simd" 2 # 665 "/work/libint/3rdparty/libcxx/include/experimental/simd" 3 namespace std { namespace experimental { inline namespace parallelism_v2 { enum class _StorageKind { _Scalar, _Array, _VecExt, }; template <_StorageKind __kind, int _Np> struct __simd_abi { static constexpr _StorageKind kind = __kind; static constexpr int length = _Np; }; template <class _Tp, class _Abi> class __simd_storage {}; template <class _Tp, int __num_element> class __simd_storage<_Tp, __simd_abi<_StorageKind::_Array, __num_element>> { std::array<_Tp, __num_element> __storage_; template <class, class> friend struct simd; template <class, class> friend struct simd_mask; public: using __raw_type = std::array<_Tp, __num_element>; __simd_storage() = default; void __assign(__raw_type __raw) { __storage_ = __raw; } __raw_type __raw() const { return __storage_; } _Tp __get(size_t __index) const noexcept { return __storage_[__index]; }; void __set(size_t __index, _Tp __val) noexcept { __storage_[__index] = __val; } }; template <class _Tp> class __simd_storage<_Tp, __simd_abi<_StorageKind::_Scalar, 1>> { _Tp __storage_; template <class, class> friend struct simd; template <class, class> friend struct simd_mask; public: using __raw_type = _Tp; __simd_storage() = default; void __assign(__raw_type __raw) { __storage_ = __raw; } __raw_type __raw() const { return __storage_; } _Tp __get(size_t __index) const noexcept { return (&__storage_)[__index]; }; void __set(size_t __index, _Tp __val) noexcept { (&__storage_)[__index] = __val; } }; constexpr size_t __floor_pow_of_2(size_t __val) { return ((__val - 1) & __val) == 0 ? __val : __floor_pow_of_2((__val - 1) & __val); } constexpr size_t __ceil_pow_of_2(size_t __val) { return __val == 1 ? 1 : __floor_pow_of_2(__val - 1) << 1; } template <class _Tp, size_t __bytes> struct __vec_ext_traits { }; # 822 "/work/libint/3rdparty/libcxx/include/experimental/simd" 3 template <> struct __vec_ext_traits<char, sizeof(char) * 1> { using type = char __attribute__((vector_size(sizeof(char) * 1))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 2> { using type = char __attribute__((vector_size(sizeof(char) * 2))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 3> { using type = char __attribute__((vector_size(sizeof(char) * 3))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 4> { using type = char __attribute__((vector_size(sizeof(char) * 4))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 5> { using type = char __attribute__((vector_size(sizeof(char) * 5))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 6> { using type = char __attribute__((vector_size(sizeof(char) * 6))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 7> { using type = char __attribute__((vector_size(sizeof(char) * 7))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 8> { using type = char __attribute__((vector_size(sizeof(char) * 8))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 9> { using type = char __attribute__((vector_size(sizeof(char) * 9))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 10> { using type = char __attribute__((vector_size(sizeof(char) * 10))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 11> { using type = char __attribute__((vector_size(sizeof(char) * 11))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 12> { using type = char __attribute__((vector_size(sizeof(char) * 12))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 13> { using type = char __attribute__((vector_size(sizeof(char) * 13))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 14> { using type = char __attribute__((vector_size(sizeof(char) * 14))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 15> { using type = char __attribute__((vector_size(sizeof(char) * 15))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 16> { using type = char __attribute__((vector_size(sizeof(char) * 16))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 17> { using type = char __attribute__((vector_size(sizeof(char) * 17))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 18> { using type = char __attribute__((vector_size(sizeof(char) * 18))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 19> { using type = char __attribute__((vector_size(sizeof(char) * 19))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 20> { using type = char __attribute__((vector_size(sizeof(char) * 20))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 21> { using type = char __attribute__((vector_size(sizeof(char) * 21))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 22> { using type = char __attribute__((vector_size(sizeof(char) * 22))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 23> { using type = char __attribute__((vector_size(sizeof(char) * 23))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 24> { using type = char __attribute__((vector_size(sizeof(char) * 24))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 25> { using type = char __attribute__((vector_size(sizeof(char) * 25))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 26> { using type = char __attribute__((vector_size(sizeof(char) * 26))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 27> { using type = char __attribute__((vector_size(sizeof(char) * 27))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 28> { using type = char __attribute__((vector_size(sizeof(char) * 28))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 29> { using type = char __attribute__((vector_size(sizeof(char) * 29))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 30> { using type = char __attribute__((vector_size(sizeof(char) * 30))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 31> { using type = char __attribute__((vector_size(sizeof(char) * 31))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 32> { using type = char __attribute__((vector_size(sizeof(char) * 32))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 33> { using type = char __attribute__((vector_size(sizeof(char) * 33))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 34> { using type = char __attribute__((vector_size(sizeof(char) * 34))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 35> { using type = char __attribute__((vector_size(sizeof(char) * 35))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 36> { using type = char __attribute__((vector_size(sizeof(char) * 36))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 37> { using type = char __attribute__((vector_size(sizeof(char) * 37))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 38> { using type = char __attribute__((vector_size(sizeof(char) * 38))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 39> { using type = char __attribute__((vector_size(sizeof(char) * 39))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 40> { using type = char __attribute__((vector_size(sizeof(char) * 40))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 41> { using type = char __attribute__((vector_size(sizeof(char) * 41))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 42> { using type = char __attribute__((vector_size(sizeof(char) * 42))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 43> { using type = char __attribute__((vector_size(sizeof(char) * 43))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 44> { using type = char __attribute__((vector_size(sizeof(char) * 44))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 45> { using type = char __attribute__((vector_size(sizeof(char) * 45))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 46> { using type = char __attribute__((vector_size(sizeof(char) * 46))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 47> { using type = char __attribute__((vector_size(sizeof(char) * 47))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 48> { using type = char __attribute__((vector_size(sizeof(char) * 48))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 49> { using type = char __attribute__((vector_size(sizeof(char) * 49))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 50> { using type = char __attribute__((vector_size(sizeof(char) * 50))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 51> { using type = char __attribute__((vector_size(sizeof(char) * 51))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 52> { using type = char __attribute__((vector_size(sizeof(char) * 52))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 53> { using type = char __attribute__((vector_size(sizeof(char) * 53))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 54> { using type = char __attribute__((vector_size(sizeof(char) * 54))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 55> { using type = char __attribute__((vector_size(sizeof(char) * 55))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 56> { using type = char __attribute__((vector_size(sizeof(char) * 56))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 57> { using type = char __attribute__((vector_size(sizeof(char) * 57))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 58> { using type = char __attribute__((vector_size(sizeof(char) * 58))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 59> { using type = char __attribute__((vector_size(sizeof(char) * 59))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 60> { using type = char __attribute__((vector_size(sizeof(char) * 60))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 61> { using type = char __attribute__((vector_size(sizeof(char) * 61))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 62> { using type = char __attribute__((vector_size(sizeof(char) * 62))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 63> { using type = char __attribute__((vector_size(sizeof(char) * 63))); }; template <> struct __vec_ext_traits<char, sizeof(char) * 64> { using type = char __attribute__((vector_size(sizeof(char) * 64))); };; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 1> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 1))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 2> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 2))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 3> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 3))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 4> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 4))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 5> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 5))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 6> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 6))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 7> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 7))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 8> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 8))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 9> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 9))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 10> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 10))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 11> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 11))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 12> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 12))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 13> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 13))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 14> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 14))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 15> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 15))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 16> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 16))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 17> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 17))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 18> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 18))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 19> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 19))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 20> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 20))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 21> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 21))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 22> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 22))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 23> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 23))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 24> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 24))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 25> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 25))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 26> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 26))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 27> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 27))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 28> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 28))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 29> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 29))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 30> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 30))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 31> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 31))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 32> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 32))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 33> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 33))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 34> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 34))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 35> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 35))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 36> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 36))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 37> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 37))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 38> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 38))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 39> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 39))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 40> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 40))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 41> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 41))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 42> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 42))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 43> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 43))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 44> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 44))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 45> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 45))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 46> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 46))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 47> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 47))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 48> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 48))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 49> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 49))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 50> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 50))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 51> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 51))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 52> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 52))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 53> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 53))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 54> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 54))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 55> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 55))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 56> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 56))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 57> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 57))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 58> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 58))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 59> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 59))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 60> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 60))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 61> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 61))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 62> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 62))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 63> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 63))); }; template <> struct __vec_ext_traits<char16_t, sizeof(char16_t) * 64> { using type = char16_t __attribute__((vector_size(sizeof(char16_t) * 64))); };; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 1> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 1))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 2> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 2))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 3> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 3))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 4> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 4))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 5> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 5))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 6> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 6))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 7> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 7))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 8> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 8))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 9> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 9))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 10> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 10))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 11> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 11))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 12> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 12))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 13> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 13))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 14> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 14))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 15> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 15))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 16> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 16))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 17> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 17))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 18> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 18))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 19> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 19))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 20> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 20))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 21> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 21))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 22> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 22))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 23> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 23))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 24> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 24))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 25> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 25))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 26> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 26))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 27> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 27))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 28> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 28))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 29> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 29))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 30> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 30))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 31> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 31))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 32> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 32))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 33> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 33))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 34> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 34))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 35> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 35))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 36> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 36))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 37> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 37))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 38> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 38))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 39> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 39))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 40> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 40))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 41> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 41))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 42> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 42))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 43> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 43))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 44> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 44))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 45> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 45))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 46> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 46))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 47> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 47))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 48> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 48))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 49> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 49))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 50> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 50))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 51> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 51))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 52> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 52))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 53> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 53))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 54> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 54))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 55> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 55))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 56> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 56))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 57> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 57))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 58> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 58))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 59> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 59))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 60> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 60))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 61> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 61))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 62> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 62))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 63> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 63))); }; template <> struct __vec_ext_traits<char32_t, sizeof(char32_t) * 64> { using type = char32_t __attribute__((vector_size(sizeof(char32_t) * 64))); };; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 1> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 1))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 2> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 2))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 3> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 3))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 4> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 4))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 5> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 5))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 6> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 6))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 7> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 7))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 8> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 8))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 9> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 9))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 10> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 10))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 11> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 11))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 12> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 12))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 13> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 13))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 14> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 14))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 15> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 15))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 16> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 16))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 17> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 17))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 18> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 18))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 19> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 19))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 20> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 20))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 21> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 21))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 22> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 22))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 23> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 23))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 24> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 24))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 25> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 25))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 26> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 26))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 27> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 27))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 28> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 28))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 29> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 29))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 30> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 30))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 31> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 31))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 32> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 32))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 33> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 33))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 34> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 34))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 35> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 35))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 36> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 36))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 37> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 37))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 38> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 38))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 39> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 39))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 40> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 40))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 41> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 41))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 42> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 42))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 43> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 43))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 44> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 44))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 45> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 45))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 46> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 46))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 47> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 47))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 48> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 48))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 49> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 49))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 50> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 50))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 51> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 51))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 52> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 52))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 53> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 53))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 54> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 54))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 55> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 55))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 56> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 56))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 57> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 57))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 58> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 58))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 59> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 59))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 60> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 60))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 61> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 61))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 62> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 62))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 63> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 63))); }; template <> struct __vec_ext_traits<wchar_t, sizeof(wchar_t) * 64> { using type = wchar_t __attribute__((vector_size(sizeof(wchar_t) * 64))); };; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 1> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 1))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 2> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 2))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 3> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 3))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 4> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 4))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 5> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 5))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 6> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 6))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 7> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 7))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 8> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 8))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 9> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 9))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 10> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 10))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 11> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 11))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 12> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 12))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 13> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 13))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 14> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 14))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 15> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 15))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 16> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 16))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 17> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 17))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 18> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 18))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 19> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 19))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 20> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 20))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 21> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 21))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 22> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 22))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 23> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 23))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 24> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 24))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 25> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 25))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 26> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 26))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 27> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 27))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 28> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 28))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 29> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 29))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 30> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 30))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 31> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 31))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 32> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 32))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 33> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 33))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 34> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 34))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 35> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 35))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 36> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 36))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 37> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 37))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 38> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 38))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 39> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 39))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 40> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 40))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 41> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 41))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 42> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 42))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 43> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 43))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 44> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 44))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 45> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 45))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 46> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 46))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 47> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 47))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 48> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 48))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 49> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 49))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 50> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 50))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 51> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 51))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 52> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 52))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 53> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 53))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 54> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 54))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 55> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 55))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 56> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 56))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 57> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 57))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 58> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 58))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 59> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 59))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 60> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 60))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 61> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 61))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 62> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 62))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 63> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 63))); }; template <> struct __vec_ext_traits<signed char, sizeof(signed char) * 64> { using type = signed char __attribute__((vector_size(sizeof(signed char) * 64))); };; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 1> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 1))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 2> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 2))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 3> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 3))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 4> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 4))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 5> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 5))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 6> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 6))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 7> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 7))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 8> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 8))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 9> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 9))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 10> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 10))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 11> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 11))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 12> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 12))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 13> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 13))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 14> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 14))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 15> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 15))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 16> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 16))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 17> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 17))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 18> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 18))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 19> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 19))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 20> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 20))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 21> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 21))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 22> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 22))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 23> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 23))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 24> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 24))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 25> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 25))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 26> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 26))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 27> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 27))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 28> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 28))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 29> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 29))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 30> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 30))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 31> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 31))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 32> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 32))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 33> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 33))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 34> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 34))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 35> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 35))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 36> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 36))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 37> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 37))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 38> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 38))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 39> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 39))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 40> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 40))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 41> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 41))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 42> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 42))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 43> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 43))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 44> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 44))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 45> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 45))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 46> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 46))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 47> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 47))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 48> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 48))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 49> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 49))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 50> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 50))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 51> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 51))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 52> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 52))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 53> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 53))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 54> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 54))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 55> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 55))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 56> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 56))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 57> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 57))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 58> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 58))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 59> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 59))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 60> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 60))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 61> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 61))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 62> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 62))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 63> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 63))); }; template <> struct __vec_ext_traits<signed short, sizeof(signed short) * 64> { using type = signed short __attribute__((vector_size(sizeof(signed short) * 64))); };; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 1> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 1))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 2> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 2))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 3> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 3))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 4> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 4))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 5> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 5))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 6> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 6))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 7> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 7))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 8> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 8))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 9> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 9))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 10> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 10))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 11> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 11))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 12> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 12))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 13> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 13))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 14> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 14))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 15> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 15))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 16> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 16))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 17> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 17))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 18> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 18))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 19> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 19))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 20> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 20))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 21> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 21))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 22> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 22))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 23> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 23))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 24> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 24))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 25> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 25))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 26> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 26))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 27> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 27))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 28> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 28))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 29> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 29))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 30> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 30))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 31> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 31))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 32> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 32))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 33> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 33))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 34> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 34))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 35> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 35))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 36> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 36))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 37> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 37))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 38> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 38))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 39> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 39))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 40> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 40))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 41> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 41))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 42> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 42))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 43> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 43))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 44> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 44))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 45> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 45))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 46> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 46))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 47> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 47))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 48> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 48))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 49> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 49))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 50> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 50))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 51> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 51))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 52> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 52))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 53> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 53))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 54> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 54))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 55> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 55))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 56> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 56))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 57> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 57))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 58> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 58))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 59> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 59))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 60> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 60))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 61> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 61))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 62> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 62))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 63> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 63))); }; template <> struct __vec_ext_traits<signed int, sizeof(signed int) * 64> { using type = signed int __attribute__((vector_size(sizeof(signed int) * 64))); };; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 1> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 1))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 2> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 2))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 3> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 3))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 4> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 4))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 5> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 5))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 6> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 6))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 7> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 7))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 8> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 8))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 9> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 9))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 10> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 10))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 11> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 11))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 12> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 12))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 13> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 13))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 14> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 14))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 15> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 15))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 16> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 16))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 17> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 17))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 18> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 18))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 19> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 19))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 20> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 20))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 21> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 21))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 22> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 22))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 23> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 23))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 24> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 24))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 25> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 25))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 26> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 26))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 27> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 27))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 28> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 28))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 29> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 29))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 30> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 30))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 31> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 31))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 32> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 32))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 33> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 33))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 34> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 34))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 35> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 35))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 36> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 36))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 37> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 37))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 38> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 38))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 39> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 39))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 40> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 40))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 41> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 41))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 42> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 42))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 43> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 43))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 44> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 44))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 45> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 45))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 46> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 46))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 47> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 47))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 48> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 48))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 49> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 49))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 50> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 50))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 51> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 51))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 52> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 52))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 53> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 53))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 54> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 54))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 55> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 55))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 56> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 56))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 57> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 57))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 58> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 58))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 59> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 59))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 60> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 60))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 61> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 61))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 62> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 62))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 63> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 63))); }; template <> struct __vec_ext_traits<signed long, sizeof(signed long) * 64> { using type = signed long __attribute__((vector_size(sizeof(signed long) * 64))); };; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 1> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 1))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 2> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 2))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 3> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 3))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 4> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 4))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 5> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 5))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 6> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 6))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 7> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 7))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 8> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 8))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 9> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 9))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 10> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 10))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 11> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 11))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 12> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 12))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 13> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 13))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 14> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 14))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 15> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 15))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 16> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 16))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 17> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 17))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 18> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 18))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 19> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 19))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 20> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 20))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 21> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 21))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 22> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 22))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 23> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 23))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 24> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 24))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 25> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 25))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 26> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 26))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 27> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 27))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 28> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 28))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 29> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 29))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 30> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 30))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 31> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 31))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 32> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 32))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 33> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 33))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 34> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 34))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 35> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 35))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 36> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 36))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 37> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 37))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 38> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 38))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 39> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 39))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 40> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 40))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 41> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 41))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 42> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 42))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 43> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 43))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 44> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 44))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 45> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 45))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 46> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 46))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 47> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 47))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 48> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 48))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 49> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 49))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 50> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 50))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 51> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 51))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 52> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 52))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 53> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 53))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 54> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 54))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 55> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 55))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 56> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 56))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 57> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 57))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 58> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 58))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 59> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 59))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 60> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 60))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 61> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 61))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 62> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 62))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 63> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 63))); }; template <> struct __vec_ext_traits<signed long long, sizeof(signed long long) * 64> { using type = signed long long __attribute__((vector_size(sizeof(signed long long) * 64))); };; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 1> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 1))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 2> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 2))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 3> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 3))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 4> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 4))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 5> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 5))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 6> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 6))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 7> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 7))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 8> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 8))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 9> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 9))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 10> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 10))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 11> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 11))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 12> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 12))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 13> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 13))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 14> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 14))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 15> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 15))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 16> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 16))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 17> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 17))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 18> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 18))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 19> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 19))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 20> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 20))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 21> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 21))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 22> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 22))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 23> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 23))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 24> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 24))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 25> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 25))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 26> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 26))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 27> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 27))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 28> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 28))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 29> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 29))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 30> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 30))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 31> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 31))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 32> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 32))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 33> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 33))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 34> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 34))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 35> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 35))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 36> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 36))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 37> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 37))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 38> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 38))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 39> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 39))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 40> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 40))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 41> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 41))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 42> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 42))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 43> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 43))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 44> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 44))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 45> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 45))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 46> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 46))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 47> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 47))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 48> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 48))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 49> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 49))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 50> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 50))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 51> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 51))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 52> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 52))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 53> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 53))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 54> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 54))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 55> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 55))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 56> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 56))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 57> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 57))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 58> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 58))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 59> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 59))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 60> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 60))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 61> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 61))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 62> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 62))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 63> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 63))); }; template <> struct __vec_ext_traits<unsigned char, sizeof(unsigned char) * 64> { using type = unsigned char __attribute__((vector_size(sizeof(unsigned char) * 64))); };; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 1> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 1))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 2> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 2))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 3> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 3))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 4> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 4))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 5> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 5))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 6> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 6))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 7> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 7))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 8> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 8))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 9> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 9))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 10> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 10))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 11> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 11))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 12> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 12))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 13> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 13))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 14> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 14))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 15> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 15))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 16> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 16))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 17> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 17))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 18> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 18))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 19> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 19))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 20> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 20))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 21> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 21))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 22> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 22))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 23> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 23))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 24> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 24))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 25> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 25))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 26> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 26))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 27> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 27))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 28> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 28))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 29> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 29))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 30> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 30))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 31> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 31))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 32> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 32))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 33> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 33))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 34> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 34))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 35> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 35))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 36> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 36))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 37> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 37))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 38> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 38))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 39> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 39))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 40> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 40))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 41> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 41))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 42> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 42))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 43> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 43))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 44> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 44))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 45> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 45))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 46> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 46))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 47> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 47))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 48> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 48))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 49> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 49))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 50> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 50))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 51> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 51))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 52> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 52))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 53> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 53))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 54> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 54))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 55> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 55))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 56> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 56))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 57> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 57))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 58> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 58))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 59> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 59))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 60> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 60))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 61> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 61))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 62> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 62))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 63> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 63))); }; template <> struct __vec_ext_traits<unsigned short, sizeof(unsigned short) * 64> { using type = unsigned short __attribute__((vector_size(sizeof(unsigned short) * 64))); };; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 1> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 1))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 2> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 2))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 3> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 3))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 4> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 4))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 5> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 5))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 6> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 6))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 7> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 7))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 8> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 8))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 9> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 9))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 10> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 10))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 11> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 11))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 12> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 12))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 13> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 13))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 14> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 14))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 15> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 15))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 16> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 16))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 17> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 17))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 18> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 18))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 19> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 19))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 20> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 20))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 21> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 21))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 22> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 22))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 23> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 23))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 24> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 24))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 25> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 25))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 26> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 26))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 27> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 27))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 28> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 28))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 29> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 29))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 30> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 30))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 31> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 31))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 32> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 32))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 33> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 33))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 34> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 34))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 35> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 35))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 36> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 36))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 37> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 37))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 38> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 38))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 39> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 39))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 40> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 40))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 41> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 41))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 42> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 42))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 43> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 43))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 44> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 44))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 45> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 45))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 46> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 46))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 47> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 47))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 48> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 48))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 49> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 49))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 50> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 50))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 51> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 51))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 52> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 52))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 53> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 53))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 54> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 54))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 55> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 55))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 56> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 56))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 57> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 57))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 58> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 58))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 59> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 59))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 60> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 60))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 61> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 61))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 62> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 62))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 63> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 63))); }; template <> struct __vec_ext_traits<unsigned int, sizeof(unsigned int) * 64> { using type = unsigned int __attribute__((vector_size(sizeof(unsigned int) * 64))); };; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 1> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 1))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 2> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 2))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 3> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 3))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 4> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 4))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 5> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 5))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 6> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 6))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 7> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 7))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 8> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 8))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 9> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 9))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 10> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 10))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 11> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 11))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 12> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 12))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 13> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 13))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 14> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 14))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 15> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 15))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 16> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 16))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 17> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 17))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 18> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 18))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 19> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 19))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 20> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 20))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 21> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 21))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 22> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 22))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 23> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 23))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 24> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 24))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 25> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 25))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 26> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 26))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 27> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 27))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 28> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 28))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 29> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 29))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 30> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 30))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 31> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 31))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 32> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 32))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 33> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 33))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 34> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 34))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 35> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 35))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 36> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 36))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 37> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 37))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 38> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 38))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 39> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 39))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 40> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 40))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 41> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 41))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 42> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 42))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 43> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 43))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 44> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 44))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 45> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 45))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 46> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 46))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 47> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 47))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 48> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 48))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 49> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 49))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 50> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 50))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 51> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 51))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 52> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 52))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 53> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 53))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 54> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 54))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 55> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 55))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 56> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 56))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 57> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 57))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 58> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 58))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 59> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 59))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 60> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 60))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 61> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 61))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 62> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 62))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 63> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 63))); }; template <> struct __vec_ext_traits<unsigned long, sizeof(unsigned long) * 64> { using type = unsigned long __attribute__((vector_size(sizeof(unsigned long) * 64))); };; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 1> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 1))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 2> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 2))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 3> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 3))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 4> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 4))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 5> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 5))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 6> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 6))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 7> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 7))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 8> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 8))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 9> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 9))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 10> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 10))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 11> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 11))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 12> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 12))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 13> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 13))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 14> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 14))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 15> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 15))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 16> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 16))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 17> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 17))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 18> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 18))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 19> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 19))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 20> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 20))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 21> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 21))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 22> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 22))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 23> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 23))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 24> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 24))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 25> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 25))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 26> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 26))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 27> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 27))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 28> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 28))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 29> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 29))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 30> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 30))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 31> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 31))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 32> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 32))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 33> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 33))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 34> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 34))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 35> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 35))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 36> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 36))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 37> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 37))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 38> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 38))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 39> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 39))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 40> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 40))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 41> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 41))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 42> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 42))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 43> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 43))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 44> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 44))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 45> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 45))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 46> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 46))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 47> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 47))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 48> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 48))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 49> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 49))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 50> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 50))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 51> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 51))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 52> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 52))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 53> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 53))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 54> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 54))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 55> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 55))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 56> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 56))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 57> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 57))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 58> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 58))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 59> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 59))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 60> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 60))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 61> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 61))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 62> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 62))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 63> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 63))); }; template <> struct __vec_ext_traits<unsigned long long, sizeof(unsigned long long) * 64> { using type = unsigned long long __attribute__((vector_size(sizeof(unsigned long long) * 64))); };; template <> struct __vec_ext_traits<float, sizeof(float) * 1> { using type = float __attribute__((vector_size(sizeof(float) * 1))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 2> { using type = float __attribute__((vector_size(sizeof(float) * 2))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 3> { using type = float __attribute__((vector_size(sizeof(float) * 3))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 4> { using type = float __attribute__((vector_size(sizeof(float) * 4))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 5> { using type = float __attribute__((vector_size(sizeof(float) * 5))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 6> { using type = float __attribute__((vector_size(sizeof(float) * 6))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 7> { using type = float __attribute__((vector_size(sizeof(float) * 7))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 8> { using type = float __attribute__((vector_size(sizeof(float) * 8))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 9> { using type = float __attribute__((vector_size(sizeof(float) * 9))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 10> { using type = float __attribute__((vector_size(sizeof(float) * 10))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 11> { using type = float __attribute__((vector_size(sizeof(float) * 11))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 12> { using type = float __attribute__((vector_size(sizeof(float) * 12))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 13> { using type = float __attribute__((vector_size(sizeof(float) * 13))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 14> { using type = float __attribute__((vector_size(sizeof(float) * 14))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 15> { using type = float __attribute__((vector_size(sizeof(float) * 15))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 16> { using type = float __attribute__((vector_size(sizeof(float) * 16))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 17> { using type = float __attribute__((vector_size(sizeof(float) * 17))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 18> { using type = float __attribute__((vector_size(sizeof(float) * 18))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 19> { using type = float __attribute__((vector_size(sizeof(float) * 19))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 20> { using type = float __attribute__((vector_size(sizeof(float) * 20))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 21> { using type = float __attribute__((vector_size(sizeof(float) * 21))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 22> { using type = float __attribute__((vector_size(sizeof(float) * 22))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 23> { using type = float __attribute__((vector_size(sizeof(float) * 23))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 24> { using type = float __attribute__((vector_size(sizeof(float) * 24))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 25> { using type = float __attribute__((vector_size(sizeof(float) * 25))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 26> { using type = float __attribute__((vector_size(sizeof(float) * 26))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 27> { using type = float __attribute__((vector_size(sizeof(float) * 27))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 28> { using type = float __attribute__((vector_size(sizeof(float) * 28))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 29> { using type = float __attribute__((vector_size(sizeof(float) * 29))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 30> { using type = float __attribute__((vector_size(sizeof(float) * 30))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 31> { using type = float __attribute__((vector_size(sizeof(float) * 31))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 32> { using type = float __attribute__((vector_size(sizeof(float) * 32))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 33> { using type = float __attribute__((vector_size(sizeof(float) * 33))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 34> { using type = float __attribute__((vector_size(sizeof(float) * 34))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 35> { using type = float __attribute__((vector_size(sizeof(float) * 35))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 36> { using type = float __attribute__((vector_size(sizeof(float) * 36))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 37> { using type = float __attribute__((vector_size(sizeof(float) * 37))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 38> { using type = float __attribute__((vector_size(sizeof(float) * 38))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 39> { using type = float __attribute__((vector_size(sizeof(float) * 39))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 40> { using type = float __attribute__((vector_size(sizeof(float) * 40))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 41> { using type = float __attribute__((vector_size(sizeof(float) * 41))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 42> { using type = float __attribute__((vector_size(sizeof(float) * 42))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 43> { using type = float __attribute__((vector_size(sizeof(float) * 43))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 44> { using type = float __attribute__((vector_size(sizeof(float) * 44))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 45> { using type = float __attribute__((vector_size(sizeof(float) * 45))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 46> { using type = float __attribute__((vector_size(sizeof(float) * 46))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 47> { using type = float __attribute__((vector_size(sizeof(float) * 47))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 48> { using type = float __attribute__((vector_size(sizeof(float) * 48))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 49> { using type = float __attribute__((vector_size(sizeof(float) * 49))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 50> { using type = float __attribute__((vector_size(sizeof(float) * 50))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 51> { using type = float __attribute__((vector_size(sizeof(float) * 51))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 52> { using type = float __attribute__((vector_size(sizeof(float) * 52))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 53> { using type = float __attribute__((vector_size(sizeof(float) * 53))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 54> { using type = float __attribute__((vector_size(sizeof(float) * 54))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 55> { using type = float __attribute__((vector_size(sizeof(float) * 55))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 56> { using type = float __attribute__((vector_size(sizeof(float) * 56))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 57> { using type = float __attribute__((vector_size(sizeof(float) * 57))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 58> { using type = float __attribute__((vector_size(sizeof(float) * 58))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 59> { using type = float __attribute__((vector_size(sizeof(float) * 59))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 60> { using type = float __attribute__((vector_size(sizeof(float) * 60))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 61> { using type = float __attribute__((vector_size(sizeof(float) * 61))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 62> { using type = float __attribute__((vector_size(sizeof(float) * 62))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 63> { using type = float __attribute__((vector_size(sizeof(float) * 63))); }; template <> struct __vec_ext_traits<float, sizeof(float) * 64> { using type = float __attribute__((vector_size(sizeof(float) * 64))); };; template <> struct __vec_ext_traits<double, sizeof(double) * 1> { using type = double __attribute__((vector_size(sizeof(double) * 1))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 2> { using type = double __attribute__((vector_size(sizeof(double) * 2))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 3> { using type = double __attribute__((vector_size(sizeof(double) * 3))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 4> { using type = double __attribute__((vector_size(sizeof(double) * 4))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 5> { using type = double __attribute__((vector_size(sizeof(double) * 5))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 6> { using type = double __attribute__((vector_size(sizeof(double) * 6))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 7> { using type = double __attribute__((vector_size(sizeof(double) * 7))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 8> { using type = double __attribute__((vector_size(sizeof(double) * 8))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 9> { using type = double __attribute__((vector_size(sizeof(double) * 9))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 10> { using type = double __attribute__((vector_size(sizeof(double) * 10))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 11> { using type = double __attribute__((vector_size(sizeof(double) * 11))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 12> { using type = double __attribute__((vector_size(sizeof(double) * 12))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 13> { using type = double __attribute__((vector_size(sizeof(double) * 13))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 14> { using type = double __attribute__((vector_size(sizeof(double) * 14))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 15> { using type = double __attribute__((vector_size(sizeof(double) * 15))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 16> { using type = double __attribute__((vector_size(sizeof(double) * 16))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 17> { using type = double __attribute__((vector_size(sizeof(double) * 17))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 18> { using type = double __attribute__((vector_size(sizeof(double) * 18))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 19> { using type = double __attribute__((vector_size(sizeof(double) * 19))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 20> { using type = double __attribute__((vector_size(sizeof(double) * 20))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 21> { using type = double __attribute__((vector_size(sizeof(double) * 21))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 22> { using type = double __attribute__((vector_size(sizeof(double) * 22))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 23> { using type = double __attribute__((vector_size(sizeof(double) * 23))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 24> { using type = double __attribute__((vector_size(sizeof(double) * 24))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 25> { using type = double __attribute__((vector_size(sizeof(double) * 25))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 26> { using type = double __attribute__((vector_size(sizeof(double) * 26))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 27> { using type = double __attribute__((vector_size(sizeof(double) * 27))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 28> { using type = double __attribute__((vector_size(sizeof(double) * 28))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 29> { using type = double __attribute__((vector_size(sizeof(double) * 29))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 30> { using type = double __attribute__((vector_size(sizeof(double) * 30))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 31> { using type = double __attribute__((vector_size(sizeof(double) * 31))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 32> { using type = double __attribute__((vector_size(sizeof(double) * 32))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 33> { using type = double __attribute__((vector_size(sizeof(double) * 33))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 34> { using type = double __attribute__((vector_size(sizeof(double) * 34))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 35> { using type = double __attribute__((vector_size(sizeof(double) * 35))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 36> { using type = double __attribute__((vector_size(sizeof(double) * 36))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 37> { using type = double __attribute__((vector_size(sizeof(double) * 37))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 38> { using type = double __attribute__((vector_size(sizeof(double) * 38))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 39> { using type = double __attribute__((vector_size(sizeof(double) * 39))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 40> { using type = double __attribute__((vector_size(sizeof(double) * 40))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 41> { using type = double __attribute__((vector_size(sizeof(double) * 41))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 42> { using type = double __attribute__((vector_size(sizeof(double) * 42))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 43> { using type = double __attribute__((vector_size(sizeof(double) * 43))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 44> { using type = double __attribute__((vector_size(sizeof(double) * 44))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 45> { using type = double __attribute__((vector_size(sizeof(double) * 45))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 46> { using type = double __attribute__((vector_size(sizeof(double) * 46))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 47> { using type = double __attribute__((vector_size(sizeof(double) * 47))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 48> { using type = double __attribute__((vector_size(sizeof(double) * 48))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 49> { using type = double __attribute__((vector_size(sizeof(double) * 49))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 50> { using type = double __attribute__((vector_size(sizeof(double) * 50))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 51> { using type = double __attribute__((vector_size(sizeof(double) * 51))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 52> { using type = double __attribute__((vector_size(sizeof(double) * 52))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 53> { using type = double __attribute__((vector_size(sizeof(double) * 53))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 54> { using type = double __attribute__((vector_size(sizeof(double) * 54))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 55> { using type = double __attribute__((vector_size(sizeof(double) * 55))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 56> { using type = double __attribute__((vector_size(sizeof(double) * 56))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 57> { using type = double __attribute__((vector_size(sizeof(double) * 57))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 58> { using type = double __attribute__((vector_size(sizeof(double) * 58))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 59> { using type = double __attribute__((vector_size(sizeof(double) * 59))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 60> { using type = double __attribute__((vector_size(sizeof(double) * 60))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 61> { using type = double __attribute__((vector_size(sizeof(double) * 61))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 62> { using type = double __attribute__((vector_size(sizeof(double) * 62))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 63> { using type = double __attribute__((vector_size(sizeof(double) * 63))); }; template <> struct __vec_ext_traits<double, sizeof(double) * 64> { using type = double __attribute__((vector_size(sizeof(double) * 64))); };; template <> struct __vec_ext_traits<long double, sizeof(long double) * 1> { using type = long double __attribute__((vector_size(sizeof(long double) * 1))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 2> { using type = long double __attribute__((vector_size(sizeof(long double) * 2))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 3> { using type = long double __attribute__((vector_size(sizeof(long double) * 3))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 4> { using type = long double __attribute__((vector_size(sizeof(long double) * 4))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 5> { using type = long double __attribute__((vector_size(sizeof(long double) * 5))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 6> { using type = long double __attribute__((vector_size(sizeof(long double) * 6))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 7> { using type = long double __attribute__((vector_size(sizeof(long double) * 7))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 8> { using type = long double __attribute__((vector_size(sizeof(long double) * 8))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 9> { using type = long double __attribute__((vector_size(sizeof(long double) * 9))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 10> { using type = long double __attribute__((vector_size(sizeof(long double) * 10))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 11> { using type = long double __attribute__((vector_size(sizeof(long double) * 11))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 12> { using type = long double __attribute__((vector_size(sizeof(long double) * 12))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 13> { using type = long double __attribute__((vector_size(sizeof(long double) * 13))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 14> { using type = long double __attribute__((vector_size(sizeof(long double) * 14))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 15> { using type = long double __attribute__((vector_size(sizeof(long double) * 15))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 16> { using type = long double __attribute__((vector_size(sizeof(long double) * 16))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 17> { using type = long double __attribute__((vector_size(sizeof(long double) * 17))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 18> { using type = long double __attribute__((vector_size(sizeof(long double) * 18))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 19> { using type = long double __attribute__((vector_size(sizeof(long double) * 19))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 20> { using type = long double __attribute__((vector_size(sizeof(long double) * 20))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 21> { using type = long double __attribute__((vector_size(sizeof(long double) * 21))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 22> { using type = long double __attribute__((vector_size(sizeof(long double) * 22))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 23> { using type = long double __attribute__((vector_size(sizeof(long double) * 23))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 24> { using type = long double __attribute__((vector_size(sizeof(long double) * 24))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 25> { using type = long double __attribute__((vector_size(sizeof(long double) * 25))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 26> { using type = long double __attribute__((vector_size(sizeof(long double) * 26))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 27> { using type = long double __attribute__((vector_size(sizeof(long double) * 27))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 28> { using type = long double __attribute__((vector_size(sizeof(long double) * 28))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 29> { using type = long double __attribute__((vector_size(sizeof(long double) * 29))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 30> { using type = long double __attribute__((vector_size(sizeof(long double) * 30))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 31> { using type = long double __attribute__((vector_size(sizeof(long double) * 31))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 32> { using type = long double __attribute__((vector_size(sizeof(long double) * 32))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 33> { using type = long double __attribute__((vector_size(sizeof(long double) * 33))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 34> { using type = long double __attribute__((vector_size(sizeof(long double) * 34))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 35> { using type = long double __attribute__((vector_size(sizeof(long double) * 35))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 36> { using type = long double __attribute__((vector_size(sizeof(long double) * 36))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 37> { using type = long double __attribute__((vector_size(sizeof(long double) * 37))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 38> { using type = long double __attribute__((vector_size(sizeof(long double) * 38))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 39> { using type = long double __attribute__((vector_size(sizeof(long double) * 39))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 40> { using type = long double __attribute__((vector_size(sizeof(long double) * 40))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 41> { using type = long double __attribute__((vector_size(sizeof(long double) * 41))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 42> { using type = long double __attribute__((vector_size(sizeof(long double) * 42))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 43> { using type = long double __attribute__((vector_size(sizeof(long double) * 43))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 44> { using type = long double __attribute__((vector_size(sizeof(long double) * 44))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 45> { using type = long double __attribute__((vector_size(sizeof(long double) * 45))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 46> { using type = long double __attribute__((vector_size(sizeof(long double) * 46))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 47> { using type = long double __attribute__((vector_size(sizeof(long double) * 47))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 48> { using type = long double __attribute__((vector_size(sizeof(long double) * 48))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 49> { using type = long double __attribute__((vector_size(sizeof(long double) * 49))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 50> { using type = long double __attribute__((vector_size(sizeof(long double) * 50))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 51> { using type = long double __attribute__((vector_size(sizeof(long double) * 51))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 52> { using type = long double __attribute__((vector_size(sizeof(long double) * 52))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 53> { using type = long double __attribute__((vector_size(sizeof(long double) * 53))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 54> { using type = long double __attribute__((vector_size(sizeof(long double) * 54))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 55> { using type = long double __attribute__((vector_size(sizeof(long double) * 55))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 56> { using type = long double __attribute__((vector_size(sizeof(long double) * 56))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 57> { using type = long double __attribute__((vector_size(sizeof(long double) * 57))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 58> { using type = long double __attribute__((vector_size(sizeof(long double) * 58))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 59> { using type = long double __attribute__((vector_size(sizeof(long double) * 59))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 60> { using type = long double __attribute__((vector_size(sizeof(long double) * 60))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 61> { using type = long double __attribute__((vector_size(sizeof(long double) * 61))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 62> { using type = long double __attribute__((vector_size(sizeof(long double) * 62))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 63> { using type = long double __attribute__((vector_size(sizeof(long double) * 63))); }; template <> struct __vec_ext_traits<long double, sizeof(long double) * 64> { using type = long double __attribute__((vector_size(sizeof(long double) * 64))); };; template <class _Tp, int __num_element> class __simd_storage<_Tp, __simd_abi<_StorageKind::_VecExt, __num_element>> { using _StorageType = typename __vec_ext_traits<_Tp, sizeof(_Tp) * __num_element>::type; _StorageType __storage_; template <class, class> friend struct simd; template <class, class> friend struct simd_mask; public: using __raw_type = _StorageType; __simd_storage() = default; void __assign(__raw_type __raw) { __storage_ = __raw; } __raw_type __raw() const { return __storage_; } _Tp __get(size_t __index) const noexcept { return __storage_[__index]; }; void __set(size_t __index, _Tp __val) noexcept { __storage_[__index] = __val; } }; template <class _Vp, class _Tp, class _Abi> class __simd_reference { static_assert(std::is_same<_Vp, _Tp>::value || (std::is_same<_Vp, bool>::value && std::is_unsigned<_Tp>::value), ""); template <class, class> friend struct simd; template <class, class> friend struct simd_mask; template <class, class> friend class simd_mask; __simd_storage<_Tp, _Abi>* __ptr_; size_t __index_; __simd_reference(__simd_storage<_Tp, _Abi>* __ptr, size_t __index) : __ptr_(__ptr), __index_(__index) {} __simd_reference(const __simd_reference&) = default; static _Vp __to_value_type(_Tp __val) { return __val; } static _Tp __from_value_type(_Vp __val) { if (std::is_same<_Vp, bool>::value) { return __val ? -1 : 0; } return __val; } public: __simd_reference() = delete; __simd_reference& operator=(const __simd_reference&) = delete; operator _Vp() const { return __to_value_type(__ptr_->__get(__index_)); } __simd_reference operator=(_Vp __val) && { __ptr_->__set(__index_, __from_value_type(__val)); return *this; } __simd_reference operator++() && { return std::move(*this) = __ptr_->__get(__index_) + 1; } _Vp operator++(int) && { auto __val = __ptr_->__get(__index_); __ptr_->__set(__index_, __val + 1); return __to_value_type(__val); } __simd_reference operator--() && { return std::move(*this) = __ptr_->__get(__index_) - 1; } _Vp operator--(int) && { auto __val = __ptr_->__get(__index_); __ptr_->__set(__index_, __val - 1); return __to_value_type(__val); } __simd_reference operator+=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) + __from_value_type(__val); } __simd_reference operator-=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) - __from_value_type(__val); } __simd_reference operator*=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) * __from_value_type(__val); } __simd_reference operator/=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) / __from_value_type(__val); } __simd_reference operator%=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) % __from_value_type(__val); } __simd_reference operator>>=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) >> __from_value_type(__val); } __simd_reference operator<<=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) << __from_value_type(__val); } __simd_reference operator&=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) & __from_value_type(__val); } __simd_reference operator|=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) | __from_value_type(__val); } __simd_reference operator^=(_Vp __val) && { return std::move(*this) = __ptr_->__get(__index_) ^ __from_value_type(__val); } }; template <class _To, class _From> constexpr decltype(_To{std::declval<_From>()}, true) __is_non_narrowing_convertible_impl(_From) { return true; } template <class _To> constexpr bool __is_non_narrowing_convertible_impl(...) { return false; } template <class _From, class _To> constexpr typename std::enable_if<std::is_arithmetic<_To>::value && std::is_arithmetic<_From>::value, bool>::type __is_non_narrowing_arithmetic_convertible() { return __is_non_narrowing_convertible_impl<_To>(_From{}); } template <class _From, class _To> constexpr typename std::enable_if<!(std::is_arithmetic<_To>::value && std::is_arithmetic<_From>::value), bool>::type __is_non_narrowing_arithmetic_convertible() { return false; } template <class _Tp> constexpr _Tp __variadic_sum() { return _Tp{}; } template <class _Tp, class _Up, class... _Args> constexpr _Tp __variadic_sum(_Up __first, _Args... __rest) { return static_cast<_Tp>(__first) + __variadic_sum<_Tp>(__rest...); } template <class _Tp> struct __nodeduce { using type = _Tp; }; template <class _Tp> constexpr bool __vectorizable() { return std::is_arithmetic<_Tp>::value && !std::is_const<_Tp>::value && !std::is_volatile<_Tp>::value && !std::is_same<_Tp, bool>::value; } template <size_t __num_bytes> struct __unsigned_traits {}; template <> struct __unsigned_traits<1> { using type = uint8_t; }; template <> struct __unsigned_traits<2> { using type = uint16_t; }; template <> struct __unsigned_traits<4> { using type = uint32_t; }; template <> struct __unsigned_traits<8> { using type = uint64_t; }; template <> struct __unsigned_traits<16> { using type = __uint128_t; }; } } } namespace std { namespace experimental { inline namespace parallelism_v2 { namespace simd_abi { using scalar = __simd_abi<_StorageKind::_Scalar, 1>; template <int _Np> using fixed_size = __simd_abi<_StorageKind::_Array, _Np>; template <class _Tp> inline constexpr size_t max_fixed_size = 64; template <class _Tp, size_t _Np> using __compatible = fixed_size<_Np>; template <class _Tp, size_t _Np> using __native = __simd_abi<_StorageKind::_VecExt, _Np>; template <class _Tp> using compatible = __compatible<_Tp, 16 / sizeof(_Tp)>; template <class _Tp> using native = __native<_Tp, 32 / sizeof(_Tp)>; } } } } namespace std { namespace experimental { inline namespace parallelism_v2 { template <class _Tp, class _Abi = simd_abi::compatible<_Tp>> class simd; template <class _Tp, class _Abi = simd_abi::compatible<_Tp>> class simd_mask; struct element_aligned_tag {}; struct vector_aligned_tag {}; template <size_t> struct overaligned_tag {}; inline constexpr element_aligned_tag element_aligned{}; inline constexpr vector_aligned_tag vector_aligned{}; template <size_t _Np> inline constexpr overaligned_tag<_Np> overaligned{}; template <class _Tp> struct is_abi_tag : std::integral_constant<bool, false> {}; template <_StorageKind __kind, int _Np> struct is_abi_tag<__simd_abi<__kind, _Np>> : std::integral_constant<bool, true> {}; template <class _Tp> struct is_simd : std::integral_constant<bool, false> {}; template <class _Tp, class _Abi> struct is_simd<simd<_Tp, _Abi>> : std::integral_constant<bool, true> {}; template <class _Tp> struct is_simd_mask : std::integral_constant<bool, false> {}; template <class _Tp, class _Abi> struct is_simd_mask<simd_mask<_Tp, _Abi>> : std::integral_constant<bool, true> { }; template <class _Tp> struct is_simd_flag_type : std::integral_constant<bool, false> {}; template <> struct is_simd_flag_type<element_aligned_tag> : std::integral_constant<bool, true> {}; template <> struct is_simd_flag_type<vector_aligned_tag> : std::integral_constant<bool, true> {}; template <size_t _Align> struct is_simd_flag_type<overaligned_tag<_Align>> : std::integral_constant<bool, true> {}; template <class _Tp> inline constexpr bool is_abi_tag_v = is_abi_tag<_Tp>::value; template <class _Tp> inline constexpr bool is_simd_v = is_simd<_Tp>::value; template <class _Tp> inline constexpr bool is_simd_mask_v = is_simd_mask<_Tp>::value; template <class _Tp> inline constexpr bool is_simd_flag_type_v = is_simd_flag_type<_Tp>::value; template <class _Tp, size_t _Np, class... _Abis> struct abi_for_size { using type = simd_abi::fixed_size<_Np>; }; template <class _Tp, size_t _Np, _StorageKind __kind, int... __old_size> struct abi_for_size<_Tp, _Np, __simd_abi<__kind, __old_size>...> { using type = __simd_abi<__kind, _Np>; }; template <class _Tp, size_t _Np, class... _Abis> using abi_for_size_t = typename abi_for_size<_Tp, _Np, _Abis...>::type; template <class _Tp, size_t _Np, class... _Abis> using rebind_abi_t = abi_for_size_t<_Tp, _Np, _Abis...>; template <class _Tp, class _Abi = simd_abi::compatible<_Tp>> struct simd_size; template <class _Tp, _StorageKind __kind, int _Np> struct simd_size<_Tp, __simd_abi<__kind, _Np>> : std::integral_constant<size_t, _Np> { static_assert( std::is_arithmetic<_Tp>::value && !std::is_same<typename std::remove_const<_Tp>::type, bool>::value, "Element type should be vectorizable"); }; template <class _Tp, class _Up = typename _Tp::value_type> struct memory_alignment; template <class _Tp, class _Abi = simd_abi::compatible<_Tp>> inline constexpr size_t simd_size_v = simd_size<_Tp, _Abi>::value; template <class _Tp, class _Up = typename _Tp::value_type> inline constexpr size_t memory_alignment_v = memory_alignment<_Tp, _Up>::value; template <class _Tp> using native_simd = simd<_Tp, simd_abi::native<_Tp>>; template <class _Tp, int _Np> using fixed_size_simd = simd<_Tp, simd_abi::fixed_size<_Np>>; template <class _Tp> using native_simd_mask = simd_mask<_Tp, simd_abi::native<_Tp>>; template <class _Tp, int _Np> using fixed_size_simd_mask = simd_mask<_Tp, simd_abi::fixed_size<_Np>>; template <class _Tp> struct __static_simd_cast_traits { template <class _Up, class _Abi> static simd<_Tp, _Abi> __apply(const simd<_Up, _Abi>& __v) { return __static_simd_cast_traits<simd<_Tp, _Abi>>::__apply(__v); } }; template <class _Tp, class _NewAbi> struct __static_simd_cast_traits<simd<_Tp, _NewAbi>> { template <class _Up, class _Abi> static simd<_Tp, _NewAbi> __apply(const simd<_Up, _Abi>& __v) { simd<_Tp, _NewAbi> __ret; if constexpr (_Abi::kind == _StorageKind::_VecExt) { if constexpr (simd<_Up, _Abi>::size() == 16) { typedef _Tp aa __attribute__((__vector_size__(sizeof(_Tp) * 16))); __ret.__raw_storage() = __builtin_convertvector(__v.__s_.__raw(), aa); } else if constexpr (simd<_Up, _Abi>::size() == 32) { typedef _Tp aa __attribute__((__vector_size__(sizeof(_Tp) * 32))); __ret.__raw_storage() = __builtin_convertvector(__v.__s_.__raw(), aa); } else if constexpr (simd<_Up, _Abi>::size() == 64) { typedef _Tp aa __attribute__((__vector_size__(sizeof(_Tp) * 64))); __ret.__raw_storage() = __builtin_convertvector(__v.__s_.__raw(), aa); } else if constexpr (simd<_Up, _Abi>::size() == 8) { typedef _Tp aa __attribute__((__vector_size__(sizeof(_Tp) * 8))); __ret.__raw_storage() = __builtin_convertvector(__v.__s_.__raw(), aa); } else { for (size_t __i = 0; __i < __v.size(); __i++) { __ret[__i] = static_cast<_Tp>(__v[__i]); } } } else { for (size_t __i = 0; __i < __v.size(); __i++) { __ret[__i] = static_cast<_Tp>(__v[__i]); } } return __ret; } }; template <class _Tp> struct __simd_cast_traits { template <class _Up, class _Abi> static simd<_Tp, _Abi> __apply(const simd<_Up, _Abi>& __v) { return __static_simd_cast_traits<_Tp>::__apply(__v); } }; template <class _Tp, class _NewAbi> struct __simd_cast_traits<simd<_Tp, _NewAbi>> { template <class _Up, class _Abi> static simd<_Tp, _NewAbi> __apply(const simd<_Up, _Abi>& __v) { return __static_simd_cast_traits<simd<_Tp, _NewAbi>>::__apply(__v); } }; template <class _Tp, class _Up, class _Abi> auto simd_cast(const simd<_Up, _Abi>& __v) { return __simd_cast_traits<_Tp>::__apply(__v); } template <class _Tp, class _Up, class _Abi> auto static_simd_cast(const simd<_Up, _Abi>& __v) -> decltype(__static_simd_cast_traits<_Tp>::__apply(__v)) { return __static_simd_cast_traits<_Tp>::__apply(__v); } template <class _Tp, class _Abi> fixed_size_simd<_Tp, simd_size<_Tp, _Abi>::value> to_fixed_size(const simd<_Tp, _Abi>& __v) noexcept { return simd_cast<fixed_size_simd<_Tp, simd_size<_Tp, _Abi>::value>>(__v); } template <class _Tp, int _Np> simd<_Tp, simd_abi::__native<_Tp, _Np>> to_native(const fixed_size_simd<_Tp, _Np>& __v) noexcept { return simd_cast<simd<_Tp, simd_abi::__native<_Tp, _Np>>>(__v); } template <class _Tp, int _Np> simd<_Tp, simd_abi::__compatible<_Tp, _Np>> to_compatible(const fixed_size_simd<_Tp, _Np>& __v) noexcept { return simd_cast<simd<_Tp, simd_abi::__compatible<_Tp, _Np>>>(__v); } template <class _TupleType, class _Tp, size_t... __indices> _TupleType __split_tuple_impl(_Tp** __buffers, std::index_sequence<__indices...>) { return _TupleType(typename std::tuple_element<__indices, _TupleType>::type( __buffers[__indices], element_aligned_tag())...); } template <size_t... __indices, class _Tp, int __num_element> simd<_Tp, __simd_abi<_StorageKind::_VecExt, sizeof...(__indices)>> __simd_shuffle( const simd<_Tp, __simd_abi<_StorageKind::_VecExt, __num_element>>& __v, const simd<_Tp, __simd_abi<_StorageKind::_VecExt, __num_element>>& __u, std::index_sequence<__indices...> = {}) { simd<_Tp, __simd_abi<_StorageKind::_VecExt, sizeof...(__indices)>> __ret; __ret.__s_.__assign(__builtin_shufflevector(__v.__s_.__raw(), __u.__s_.__raw(), __indices...)); return __ret; } template <size_t... __indices, class _Tp, class _Abi1, class _Abi2> simd<_Tp, rebind_abi_t<_Tp, sizeof...(__indices), _Abi1, _Abi2>> __simd_shuffle(const simd<_Tp, _Abi1>& __v, const simd<_Tp, _Abi2>& __u, std::index_sequence<__indices...> = {}) { simd<_Tp, rebind_abi_t<_Tp, sizeof...(__indices), _Abi1, _Abi2>> __ret; size_t __i = 0; for (size_t __index : {__indices...}) { __ret[__i++] = __index < __v.size() ? __v[__index] : __u[__index - __v.size()]; } return __ret; } template <size_t __first_size, class _Tp, class _Abi, size_t... __indices> tuple< simd<_Tp, rebind_abi_t<_Tp, __first_size, _Abi>>, simd<_Tp, rebind_abi_t<_Tp, simd<_Tp, _Abi>::size() - __first_size, _Abi>>> __split_to_two(const simd<_Tp, _Abi>& __v, std::index_sequence<__indices...>) { static_assert(__first_size + sizeof...(__indices) == simd<_Tp, _Abi>::size(), ""); return std::make_tuple( __simd_shuffle(__v, __v, std::make_index_sequence<__first_size>()), __simd_shuffle<(__first_size + __indices)...>(__v, __v)); } template <size_t __size, class _Tp, class _Abi> std::tuple<simd<_Tp, _Abi>> __split_impl(const simd<_Tp, _Abi>& __v, std::integral_constant<size_t, __size>) { return std::make_tuple(__v); } template <size_t __first, size_t... __rest, class _Tp, class _Abi> tuple<simd<_Tp, rebind_abi_t<_Tp, __first, _Abi>>, simd<_Tp, rebind_abi_t<_Tp, __rest, _Abi>>...> __split_impl(const simd<_Tp, _Abi>& __v, std::integral_constant<size_t, __first>, std::integral_constant<size_t, __rest>...) { auto __res = __split_to_two<__first>( __v, std::make_index_sequence<simd<_Tp, _Abi>::size() - __first>()); return std::tuple_cat( std::make_tuple(std::get<0>(__res)), __split_impl(std::get<1>(__res), std::integral_constant<size_t, __rest>()...)); } template <size_t... __sizes, class _Tp, class _Abi> typename std::enable_if< __variadic_sum<size_t>(__sizes...) == simd<_Tp, _Abi>::size(), tuple<simd<_Tp, rebind_abi_t<_Tp, __sizes, _Abi>>...>>::type split(const simd<_Tp, _Abi>& __v) { return __split_impl(__v, std::integral_constant<size_t, __sizes>()...); } template <class _Tp, class _Abi, class _Abi2, size_t __array_size, size_t... __indices> void __split_by_impl(const simd<_Tp, _Abi>& __v, std::array<simd<_Tp, _Abi2>, __array_size>* __arr, std::index_sequence<__indices...>) { auto __tp = split<(__indices, simd<_Tp, _Abi2>::size())...>(__v); int __not_used[]{((*__arr)[__indices] = std::get<__indices>(__tp), 0)...}; (void)__not_used; } template <size_t __array_size, class _Tp, class _Abi> typename std::enable_if< simd_size<_Tp, _Abi>::value % __array_size == 0, array<simd<_Tp, rebind_abi_t< _Tp, simd_size<_Tp, _Abi>::value / __array_size, _Abi>>, __array_size>>::type split_by(const simd<_Tp, _Abi>& __v) { array<simd<_Tp, rebind_abi_t<_Tp, simd_size<_Tp, _Abi>::value / __array_size, _Abi>>, __array_size> __ret; __split_by_impl(__v, &__ret, std::make_index_sequence<__array_size>()); return __ret; } template <class _SimdType, class _Abi> typename std::enable_if< is_simd<_SimdType>::value && simd_size<typename _SimdType::value_type, _Abi>::value % _SimdType::size() == 0, array<_SimdType, simd_size<typename _SimdType::value_type, _Abi>::value / _SimdType::size()>>::type split(const simd<typename _SimdType::value_type, _Abi>& __v) { return split_by<simd_size<typename _SimdType::value_type, _Abi>::value / _SimdType::size()>(__v); } template <class _Tp, class _Abi> simd<_Tp, _Abi> __concat_variadic(const simd<_Tp, _Abi>& __v) { return __v; } template <class _Tp, class _Abi, class... _Abis> simd<_Tp, rebind_abi_t<_Tp, __variadic_sum<size_t>(simd_size<_Tp, _Abi>::value, simd_size<_Tp, _Abis>::value...), _Abi, _Abis...>> __concat_variadic(const simd<_Tp, _Abi>& __first, const simd<_Tp, _Abis>&... __rest) { return __simd_shuffle( __first, __concat_variadic(__rest...), std::make_index_sequence<__variadic_sum<size_t>( simd_size<_Tp, _Abi>::value, simd_size<_Tp, _Abis>::value...)>()); } template <class _Tp, class... _Abis> simd<_Tp, rebind_abi_t<_Tp, __variadic_sum<size_t>(simd_size<_Tp, _Abis>::value...), _Abis...>> concat(const simd<_Tp, _Abis>&... __vs) { return __concat_variadic(__vs...); } template <class _Tp, class _Abi, size_t _Np, size_t... __indices> simd<_Tp, rebind_abi_t<_Tp, _Np * simd<_Tp, _Abi>::size(), _Abi>> __concat_array(const std::array<simd<_Tp, _Abi>, _Np>& __arr, std::index_sequence<__indices...>) { return concat(__arr[__indices]...); } template <class _Tp, class _Abi, size_t _Np> simd<_Tp, rebind_abi_t<_Tp, _Np * simd<_Tp, _Abi>::size(), _Abi>> concat(const std::array<simd<_Tp, _Abi>, _Np>& __arr) { return __concat_array(__arr, std::make_index_sequence<_Np>()); } struct __simd_mask_friend { template <class _Tp, class _Abi> static fixed_size_simd_mask<_Tp, simd_size<_Tp, _Abi>::value> __to_fixed_size(const simd_mask<_Tp, _Abi>& __m) noexcept { return to_fixed_size(__m.__s_); } template <class _Tp, int _Np> static simd_mask<_Tp, simd_abi::__native<_Tp, _Np>> __to_native(const fixed_size_simd_mask<_Tp, _Np>& __m) noexcept { return to_native(__m.__s_); } template <class _Tp, int _Np> static simd_mask<_Tp, simd_abi::__compatible<_Tp, _Np>> __to_compatible(const fixed_size_simd_mask<_Tp, _Np>& __m) noexcept { return to_compatible(__m.__s_); } template <class _ResType, class _TupleType, size_t... __indices> static _ResType __split_impl(const _TupleType& __t, std::index_sequence<__indices...>) { return _ResType(std::get<__indices>(__t)...); } template <size_t... __sizes, class _Tp, class _Abi> static typename std::enable_if< __variadic_sum<size_t>(__sizes...) == simd<_Tp, _Abi>::size(), tuple<simd_mask<_Tp, rebind_abi_t<_Tp, __sizes, _Abi>>...>>::type __split(const simd_mask<_Tp, _Abi>& __m) { return __split_impl< tuple<simd_mask<_Tp, rebind_abi_t<_Tp, __sizes, _Abi>>...>>( split<__sizes...>(__m.__s_), std::make_index_sequence<sizeof...(__sizes)>()); } template <size_t __array_size, class _Tp, class _Abi> static typename std::enable_if< simd_size<_Tp, _Abi>::value % __array_size == 0, array<simd_mask<_Tp, rebind_abi_t< _Tp, simd_size<_Tp, _Abi>::value / __array_size, _Abi>>, __array_size>>::type __split_by(const simd_mask<_Tp, _Abi>& __m) { auto __arr = split_by<__array_size>(__m.__s_); array<simd_mask< _Tp, rebind_abi_t<_Tp, simd_size<_Tp, _Abi>::value / __array_size, _Abi>>, __array_size> __ret; for (size_t __i = 0; __i < __ret.size(); __i++) { __ret[__i] = __arr[__i]; } return __ret; } template <class _MaskType, class _Abi> static typename std::enable_if< is_simd_mask<_MaskType>::value && simd_size<typename _MaskType::value_type, _Abi>::value % _MaskType::size() == 0, array<_MaskType, simd_size<typename _MaskType::value_type, _Abi>::value / _MaskType::size()>>::type __split(const simd_mask<typename _MaskType::value_type, _Abi>& __m) { return split<typename _MaskType::simd_type>(__m.__s_); } template <class _Tp, class... _Abis> static simd_mask< _Tp, rebind_abi_t<_Tp, __variadic_sum<size_t>(simd_size<_Tp, _Abis>::value...), _Abis...>> __concat(const simd_mask<_Tp, _Abis>&... __ms) { return concat(__ms.__s_...); } template <class _Tp, class _Abi, size_t _Np> static simd_mask<_Tp, rebind_abi_t<_Tp, _Np * simd_size<_Tp, _Abi>::value, _Abi>> __concat(const std::array<simd_mask<_Tp, _Abi>, _Np>& __ms) { std::array<decltype(__ms[0].__s_), _Np> __arr; for (size_t __i = 0; __i < __ms.size(); __i++) { __arr[__i] = __ms[__i].__s_; } return concat(__arr); } }; template <class _Tp, class _Abi> fixed_size_simd_mask<_Tp, simd_size<_Tp, _Abi>::value> to_fixed_size(const simd_mask<_Tp, _Abi>& __m) noexcept { return __simd_mask_friend::__to_fixed_size(__m); } template <class _Tp, int _Np> simd_mask<_Tp, simd_abi::__native<_Tp, _Np>> to_native(const fixed_size_simd_mask<_Tp, _Np>& __m) noexcept { return __simd_mask_friend::__to_native(__m); } template <class _Tp, int _Np> simd_mask<_Tp, simd_abi::__compatible<_Tp, _Np>> to_compatible(const fixed_size_simd_mask<_Tp, _Np>& __m) noexcept { return __simd_mask_friend::__to_compatible(__m); } template <size_t... __sizes, class _Tp, class _Abi> typename std::enable_if< __variadic_sum<size_t>(__sizes...) == simd<_Tp, _Abi>::size(), tuple<simd_mask<_Tp, rebind_abi_t<_Tp, __sizes, _Abi>>...>>::type split(const simd_mask<_Tp, _Abi>& __m) { return __simd_mask_friend::__split<__sizes...>(__m); } template <size_t __array_size, class _Tp, class _Abi> static typename std::enable_if< simd_size<_Tp, _Abi>::value % __array_size == 0, array<simd_mask< _Tp, rebind_abi_t<_Tp, simd_size<_Tp, _Abi>::value / __array_size, _Abi>>, __array_size>>::type split_by(const simd_mask<_Tp, _Abi>& __m) { return __simd_mask_friend::__split_by<__array_size>(__m); } template <class _MaskType, class _Abi> static typename std::enable_if< is_simd_mask<_MaskType>::value && simd_size<typename _MaskType::value_type, _Abi>::value % _MaskType::size() == 0, array<_MaskType, simd_size<typename _MaskType::value_type, _Abi>::value / _MaskType::size()>>::type split(const simd_mask<typename _MaskType::value_type, _Abi>& __m) { return __simd_mask_friend::__split<_MaskType>(__m); } template <class _Tp, class... _Abis> simd_mask<_Tp, rebind_abi_t< _Tp, __variadic_sum<size_t>(simd_size<_Tp, _Abis>::value...), _Abis...>> concat(const simd_mask<_Tp, _Abis>&... __ms) { return __simd_mask_friend::__concat(__ms...); } template <class _Tp, class _Abi, size_t _Np> simd_mask<_Tp, rebind_abi_t<_Tp, _Np * simd_size<_Tp, _Abi>::value, _Abi>> concat(const std::array<simd_mask<_Tp, _Abi>, _Np>& __ms) { return __simd_mask_friend::__concat(__ms); } template <class _Tp, class _Abi> bool all_of(const simd_mask<_Tp, _Abi>& __m) noexcept { bool __ret = true; for (size_t __i = 0; __i < __m.size(); __i++) { __ret &= __m[__i]; } return __ret; } template <class _Tp, class _Abi> bool any_of(const simd_mask<_Tp, _Abi>& __m) noexcept { bool __ret = false; for (size_t __i = 0; __i < __m.size(); __i++) { __ret |= __m[__i]; } return __ret; } # 1671 "/work/libint/3rdparty/libcxx/include/experimental/simd" 3 template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int64_t>::value, typename std::enable_if<len == 32, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int64_t zerovec __attribute__((vector_size(32 / 4 * sizeof (int64_t)))); auto tuple = split<32 / 4, 32 / 4, 32 / 4, 32 / 4>(__m); return ((__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((std::get<0>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) + (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((std::get<1>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) + (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((std::get<2>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) + (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((std::get<3>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1)) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int64_t>::value, typename std::enable_if<len == 16, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int64_t zerovec __attribute__((vector_size(16 / 2 * sizeof (int64_t)))); auto tuple = split<16 / 2, 16 / 2>(__m); return ((__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((std::get<0>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) + (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((std::get<1>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1)) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int64_t>::value, typename std::enable_if<len == 8, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int64_t zerovec __attribute__((vector_size(8 * sizeof (int64_t)))); return (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((zerovec())), (__v8di)(__m512i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int64_t>::value, typename std::enable_if<len == 4, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int64_t zerovec __attribute__((vector_size(4 * sizeof (int64_t)))); return (__mmask8)__builtin_ia32_cmpq256_mask((__v4di)(__m256i)((zerovec())), (__v4di)(__m256i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int64_t>::value, typename std::enable_if<len == 2, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int64_t zerovec __attribute__((vector_size(2 * sizeof (int64_t)))); return (__mmask8)__builtin_ia32_cmpq128_mask((__v2di)(__m128i)((zerovec())), (__v2di)(__m128i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int32_t>::value, typename std::enable_if<len == 64, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int32_t zerovec __attribute__((vector_size(64 / 4 * sizeof (int32_t)))); auto tuple = split<64 / 4, 64 / 4, 64 / 4, 64 / 4>(__m); return ((__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((std::get<0>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) + (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((std::get<1>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) + (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((std::get<2>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) + (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((std::get<3>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1)) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int32_t>::value, typename std::enable_if<len == 32, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int32_t zerovec __attribute__((vector_size(32 / 2 * sizeof (int32_t)))); auto tuple = split<32 / 2, 32 / 2>(__m); return ((__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((std::get<0>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) + (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((std::get<1>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1)) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int32_t>::value, typename std::enable_if<len == 16, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int32_t zerovec __attribute__((vector_size(16 * sizeof (int32_t)))); return (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((zerovec())), (__v16si)(__m512i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int32_t>::value, typename std::enable_if<len == 8, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int32_t zerovec __attribute__((vector_size(8 * sizeof (int32_t)))); return (__mmask8)__builtin_ia32_cmpd256_mask((__v8si)(__m256i)((zerovec())), (__v8si)(__m256i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int32_t>::value, typename std::enable_if<len == 4, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int32_t zerovec __attribute__((vector_size(4 * sizeof (int32_t)))); return (__mmask8)__builtin_ia32_cmpd128_mask((__v4si)(__m128i)((zerovec())), (__v4si)(__m128i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int16_t>::value, typename std::enable_if<len == 64, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int16_t zerovec __attribute__((vector_size(64 / 2 * sizeof (int16_t)))); auto tuple = split<64 / 2, 64 / 2>(__m); return ((__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((zerovec())), (__v32hi)(__m512i)((std::get<0>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask32)-1) + (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((zerovec())), (__v32hi)(__m512i)((std::get<1>(tuple).__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask32)-1)) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int16_t>::value, typename std::enable_if<len == 32, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int16_t zerovec __attribute__((vector_size(32 * sizeof (int16_t)))); return (__mmask32)__builtin_ia32_cmpw512_mask((__v32hi)(__m512i)((zerovec())), (__v32hi)(__m512i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask32)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int16_t>::value, typename std::enable_if<len == 16, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int16_t zerovec __attribute__((vector_size(16 * sizeof (int16_t)))); return (__mmask16)__builtin_ia32_cmpw256_mask((__v16hi)(__m256i)((zerovec())), (__v16hi)(__m256i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int16_t>::value, typename std::enable_if<len == 8, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int16_t zerovec __attribute__((vector_size(8 * sizeof (int16_t)))); return (__mmask8)__builtin_ia32_cmpw128_mask((__v8hi)(__m128i)((zerovec())), (__v8hi)(__m128i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask8)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int8_t>::value, typename std::enable_if<len == 64, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int8_t zerovec __attribute__((vector_size(64 * sizeof (int8_t)))); return (__mmask64)__builtin_ia32_cmpb512_mask((__v64qi)(__m512i)((zerovec())), (__v64qi)(__m512i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask64)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int8_t>::value, typename std::enable_if<len == 32, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int8_t zerovec __attribute__((vector_size(32 * sizeof (int8_t)))); return (__mmask32)__builtin_ia32_cmpb256_mask((__v32qi)(__m256i)((zerovec())), (__v32qi)(__m256i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask32)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int8_t>::value, typename std::enable_if<len == 16, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int8_t zerovec __attribute__((vector_size(16 * sizeof (int8_t)))); return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)((zerovec())), (__v16qi)(__m128i)((__m.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) > 0; }; template <class _Tp, int len> constexpr typename std::enable_if<std::is_same<_Tp, int8_t>::value, typename std::enable_if<len == 8, bool>::type>::type any_of(const simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>>& __m) noexcept { typedef int8_t zerovec __attribute__((vector_size(8 * 2 * sizeof (int8_t)))); typedef simd_mask<_Tp, __simd_abi<_StorageKind::_VecExt, len>> halfvec; halfvec zext; auto extended = concat<_Tp, __simd_abi<_StorageKind::_VecExt, len>, __simd_abi<_StorageKind::_VecExt, len>>(__m, zext); return (__mmask16)__builtin_ia32_cmpb128_mask((__v16qi)(__m128i)((zerovec())), (__v16qi)(__m128i)((extended.__s_.__s_.__raw())), (int)(_MM_CMPINT_NE), (__mmask16)-1) > 0; }; template <class _Tp, class _Abi> bool none_of(const simd_mask<_Tp, _Abi>& __m) noexcept { return !any_of(__m); } template <class _Tp, class _Abi> bool some_of(const simd_mask<_Tp, _Abi>& __m) noexcept { return !all_of(__m) && !none_of(__m); } template <class _Tp, class _Abi> int popcount(const simd_mask<_Tp, _Abi>& __m) noexcept { int __ret = 0; for (size_t __i = 0; __i < __m.size(); __i++) { __ret += __m[__i]; } return __ret; } template <class _Tp, class _Abi> int find_first_set(const simd_mask<_Tp, _Abi>& __m) { for (size_t __i = 0; __i < __m.size(); __i++) { if (__m[__i]) { return __i; } } return __m.size(); } template <class _Tp, class _Abi> int find_last_set(const simd_mask<_Tp, _Abi>& __m) { for (int __i = __m.size() - 1; __i >= 0; __i--) { if (__m[__i]) { return __i; } } return __m.size(); } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, bool>::type all_of(_Tp __v) noexcept { return __v; } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, bool>::type any_of(_Tp __v) noexcept { return __v; } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, bool>::type none_of(_Tp __v) noexcept { return !__v; } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, bool>::type some_of(_Tp) noexcept { return false; } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, int>::type popcount(_Tp __v) noexcept { return __v; } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, int>::type find_first_set(_Tp) noexcept { return 0; } template <class _Tp> typename std::enable_if<std::is_same<_Tp, bool>::value, int>::type find_last_set(_Tp) noexcept { return 0; } template <class _MaskType, class _Tp> class const_where_expression; template <class _MaskType, class _Tp> class where_expression; template <class _Tp, class _Abi> where_expression<simd_mask<_Tp, _Abi>, simd<_Tp, _Abi>> where(const typename simd<_Tp, _Abi>::mask_type &__mask, simd<_Tp, _Abi> &__value) noexcept { return {__mask, __value}; } template <class _Tp, class _Abi> const_where_expression<simd_mask<_Tp, _Abi>, const simd<_Tp, _Abi>> where(const typename simd<_Tp, _Abi>::mask_type &__mask, const simd<_Tp, _Abi> &__value) noexcept { return {__mask, __value}; } template <class _Tp, class _Abi> where_expression<simd_mask<_Tp, _Abi>, simd_mask<_Tp, _Abi>> where(const typename __nodeduce<simd_mask<_Tp, _Abi>>::type &__mask, simd_mask<_Tp, _Abi> &__value) noexcept { return {__mask, __value}; } template <class _Tp, class _Abi> const_where_expression<simd_mask<_Tp, _Abi>, const simd_mask<_Tp, _Abi>> where(const typename __nodeduce<simd_mask<_Tp, _Abi>>::type &__mask, const simd_mask<_Tp, _Abi> &__value) noexcept { return {__mask, __value}; } template <class _Tp> where_expression<bool, _Tp> where(bool, _Tp&) noexcept; template <class _Tp> const_where_expression<bool, const _Tp> where(bool, const _Tp&) noexcept; template <class _Tp, class _Abi, class _BinaryOp = std::plus<_Tp>> _Tp reduce(const simd<_Tp, _Abi>& __v, _BinaryOp __op = _BinaryOp()) { _Tp __acc = __v[0]; for (size_t __i = 1; __i < __v.size(); __i++) { __acc = __op(__acc, __v[__i]); } return __acc; } template <class _MaskType, class _SimdType, class _BinaryOp> typename _SimdType::value_type reduce(const const_where_expression<_MaskType, _SimdType>&, typename _SimdType::value_type neutral_element, _BinaryOp binary_op); template <class _MaskType, class _SimdType> typename _SimdType::value_type reduce(const const_where_expression<_MaskType, _SimdType>&, plus<typename _SimdType::value_type> binary_op = {}); template <class _MaskType, class _SimdType> typename _SimdType::value_type reduce(const const_where_expression<_MaskType, _SimdType>&, multiplies<typename _SimdType::value_type> binary_op); template <class _MaskType, class _SimdType> typename _SimdType::value_type reduce(const const_where_expression<_MaskType, _SimdType>&, bit_and<typename _SimdType::value_type> binary_op); template <class _MaskType, class _SimdType> typename _SimdType::value_type reduce(const const_where_expression<_MaskType, _SimdType>&, bit_or<typename _SimdType::value_type> binary_op); template <class _MaskType, class _SimdType> typename _SimdType::value_type reduce(const const_where_expression<_MaskType, _SimdType>&, bit_xor<typename _SimdType::value_type> binary_op); template <class _Tp, class _Abi> _Tp hmin(const simd<_Tp, _Abi>& __v) { _Tp __acc = __v[0]; for (size_t __i = 1; __i < __v.size(); __i++) { __acc = __acc > __v[__i] ? __v[__i] : __acc; } return __acc; } template <class _MaskType, class _SimdType> typename _SimdType::value_type hmin(const const_where_expression<_MaskType, _SimdType>&); template <class _Tp, class _Abi> _Tp hmax(const simd<_Tp, _Abi>& __v) { _Tp __acc = __v[0]; for (size_t __i = 1; __i < __v.size(); __i++) { __acc = __acc < __v[__i] ? __v[__i] : __acc; } return __acc; } template <class _MaskType, class _SimdType> typename _SimdType::value_type hmax(const const_where_expression<_MaskType, _SimdType>&); template <class _Tp, class _Abi> simd<_Tp, _Abi> min(const simd<_Tp, _Abi>& __a, const simd<_Tp, _Abi>& __b) noexcept { simd<_Tp, _Abi> __v; for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = std::min(__a[__i], __b[__i]); } return __v; } template <class _Tp, class _Abi> simd<_Tp, _Abi> max(const simd<_Tp, _Abi>& __a, const simd<_Tp, _Abi>& __b) noexcept { simd<_Tp, _Abi> __v; for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = std::max(__a[__i], __b[__i]); } return __v; } template <class _Tp, class _Abi> std::pair<simd<_Tp, _Abi>, simd<_Tp, _Abi>> minmax(const simd<_Tp, _Abi>& __a, const simd<_Tp, _Abi>& __b) noexcept { return std::make_pair(min(__a, __b), max(__a, __b)); } template <class _Tp, class _Abi> simd<_Tp, _Abi> clamp(const simd<_Tp, _Abi>& __v, const simd<_Tp, _Abi>& __lo, const simd<_Tp, _Abi>& __hi) { return min(max(__v, __lo), __hi); } template <class _MaskType, class _Tp> class const_where_expression { protected: const _MaskType &__mask; _Tp &__value; public: const_where_expression(const const_where_expression&) = delete; const_where_expression(const _MaskType &__mask, _Tp &__value) : __mask(__mask), __value(__value) {} const_where_expression& operator=(const const_where_expression&) = delete; typename remove_const<_Tp>::type operator-() const&&; template <class _Up, class _Flags> void copy_to(_Up*, _Flags) const&&; }; template <class _MaskType, class _Tp> class where_expression : public const_where_expression<_MaskType, _Tp> { public: where_expression(const _MaskType &__mask, _Tp &__value) : const_where_expression<_MaskType, _Tp>(__mask, __value) {} where_expression(const where_expression&) = delete; where_expression& operator=(const where_expression&) = delete; template <class _Up> void operator=(_Up&&); template <class _Up> void operator+=(_Up&&); template <class _Up> void operator-=(_Up&&); template <class _Up> void operator*=(_Up&&); template <class _Up> void operator/=(_Up&&); template <class _Up> void operator%=(_Up&&); template <class _Up> void operator&=(_Up&& __op) { for (int i = 0; i < this->__value.size(); i++) if (this->__mask[i]) this->__value[i] &= __op[i]; } template <class _Up> void operator|=(_Up&& __op) { if constexpr (_Tp::abi_type::kind == _StorageKind::_VecExt) { if constexpr (_Tp::size() == 16 && sizeof(typename _Tp::value_type) == sizeof(uint64_t)) { auto v = split<8, 8>(this->__value); auto m = split<8, 8>(this->__mask.__s_); auto p = std::get<0>(m); decltype(p) hallo(0); auto op = split<8, 8>(__op); auto m1 = (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((std::get<0>(m).__raw_storage())), (__v8di)(__m512i)((hallo.__raw_storage())), (int)(_MM_CMPINT_NE), (__mmask8)-1); std::get<0>(v).__raw_storage() = _mm512_mask_or_epi64(std::get<0>(v).__raw_storage(),m1, std::get<0>(v).__raw_storage(), std::get<0>(op).__raw_storage()); auto m2 = (__mmask8)__builtin_ia32_cmpq512_mask((__v8di)(__m512i)((std::get<1>(m).__raw_storage())), (__v8di)(__m512i)((hallo.__raw_storage())), (int)(_MM_CMPINT_NE), (__mmask8)-1); std::get<1>(v).__raw_storage() = _mm512_mask_or_epi64(std::get<1>(v).__raw_storage(),m2, std::get<1>(v).__raw_storage(), std::get<1>(op).__raw_storage()); this->__value = concat(std::get<0>(v), std::get<1>(v)); return; } if constexpr (_Tp::size() == 16 && sizeof(typename _Tp::value_type) == sizeof(uint32_t)) { auto v = (this->__value); auto m = (this->__mask.__s_); auto p = (m); decltype(p) hallo(0); auto op = (__op); auto m1 = (__mmask16)__builtin_ia32_cmpd512_mask((__v16si)(__m512i)((m.__raw_storage())), (__v16si)(__m512i)((hallo.__raw_storage())), (int)(_MM_CMPINT_NE), (__mmask16)-1); v.__raw_storage() = _mm512_mask_or_epi32(v.__raw_storage(),m1, v.__raw_storage(), op.__raw_storage()); this->__value = v; return; } } for (int i = 0; i < this->__value.size(); i++) if (this->__mask[i]) this->__value[i] |= __op[i]; } template <class _Up> void operator^=(_Up&& __op) { for (int i = 0; i < this->__value.size(); i++) if (this->__mask[i]) this->__value[i] ^= __op[i]; } template <class _Up> void operator<<=(_Up&&); template <class _Up> void operator>>=(_Up&&); void operator++(); void operator++(int); void operator--(); void operator--(int); template <class _Up, class _Flags> void copy_from(const _Up*, _Flags); }; template <class _Tp, class _Abi> class simd { public: using value_type = _Tp; using reference = __simd_reference<_Tp, _Tp, _Abi>; using mask_type = simd_mask<_Tp, _Abi>; using abi_type = _Abi; simd() = default; simd(const simd&) = default; simd& operator=(const simd&) = default; static constexpr size_t size() noexcept { return simd_size<_Tp, _Abi>::value; } template <class, class> friend class simd_mask; const typename __simd_storage<_Tp, _Abi>::__raw_type &__raw_storage() const { return __s_.__storage_; } typename __simd_storage<_Tp, _Abi>::__raw_type &__raw_storage() { return __s_.__storage_; } __simd_storage<_Tp, _Abi> __s_; private: template <class _Up> static constexpr bool __can_broadcast() { return (std::is_arithmetic<_Up>::value && __is_non_narrowing_arithmetic_convertible<_Up, _Tp>()) || (!std::is_arithmetic<_Up>::value && std::is_convertible<_Up, _Tp>::value) || std::is_same<typename std::remove_const<_Up>::type, int>::value || (std::is_same<typename std::remove_const<_Up>::type, unsigned int>::value && std::is_unsigned<_Tp>::value); } template <class _Generator, size_t... __indices> static constexpr decltype( std::forward_as_tuple(std::declval<_Generator>()( std::integral_constant<size_t, __indices>())...), bool()) __can_generate(std::index_sequence<__indices...>) { return !__variadic_sum<bool>( !__can_broadcast<decltype(std::declval<_Generator>()( std::integral_constant<size_t, __indices>()))>()...); } template <class _Generator> static bool __can_generate(...) { return false; } template <class _Generator, size_t... __indices> void __generator_init(_Generator&& __g, std::index_sequence<__indices...>) { int __not_used[]{ ((*this)[__indices] = __g(std::integral_constant<size_t, __indices>()), 0)...}; (void)__not_used; } public: template <class _Up, class = typename std::enable_if< std::is_same<_Abi, simd_abi::fixed_size<size()>>::value && __is_non_narrowing_arithmetic_convertible<_Up, _Tp>()>::type> simd(const simd<_Up, simd_abi::fixed_size<size()>>& __v) { if constexpr (_Abi::kind == _StorageKind::_VecExt) this->__raw_storage() = __v.__raw_storage(); else for (size_t __i = 0; __i < size(); __i++) { (*this)[__i] = static_cast<_Tp>(__v[__i]); } } explicit simd(typename __simd_storage<_Tp, _Abi>::__raw_type storage) { __s_.__assign(storage); } template <class _Up, class = typename std::enable_if<__can_broadcast<_Up>()>::type> simd(_Up&& __rv) { auto __v = static_cast<_Tp>(__rv); for (size_t __i = 0; __i < size(); __i++) { (*this)[__i] = __v; } } template <class _Generator, int = typename std::enable_if< __can_generate<_Generator>(std::make_index_sequence<size()>()), int>::type()> explicit simd(_Generator&& __g) { __generator_init(std::forward<_Generator>(__g), std::make_index_sequence<size()>()); } template < class _Up, class _Flags, class = typename std::enable_if<__vectorizable<_Up>()>::type, class = typename std::enable_if<is_simd_flag_type<_Flags>::value>::type> simd(const _Up* __buffer, _Flags) { exit(0); for (size_t __i = 0; __i < size(); __i++) { (*this)[__i] = static_cast<_Tp>(__buffer[__i]); } } template <class _Up, class _Flags> typename std::enable_if<__vectorizable<_Up>() && is_simd_flag_type<_Flags>::value>::type copy_from(const _Up* __buffer, _Flags) { *this = simd(__buffer, _Flags()); } template <class _Up, class _Flags> typename std::enable_if<__vectorizable<_Up>() && is_simd_flag_type<_Flags>::value>::type copy_to(_Up* __buffer, _Flags) const { exit(0); for (size_t __i = 0; __i < size(); __i++) { __buffer[__i] = static_cast<_Up>((*this)[__i]); } } reference operator[](size_t __i) { return reference(&__s_, __i); } value_type operator[](size_t __i) const { return __s_.__get(__i); } simd& operator++() { *this += simd(1); return *this; } simd operator++(int) { auto __tmp = *this; ++*this; return __tmp; } simd& operator--() { *this -= simd(1); return *this; } simd operator--(int) { auto __tmp = *this; --*this; return __tmp; } mask_type operator!() const { return *this == simd(0); } simd operator~() const { simd __v; for (size_t __i = 0; __i < size(); __i++) { __v[__i] = ~(*this)[__i]; } return __v; } simd operator+() const { return *this; } simd operator-() const { return simd(0) - *this; } friend simd operator+(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() + __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] + __b[__i]; } } return __v; } friend simd operator-(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() - __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] - __b[__i]; } } return __v; } friend simd operator*(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() * __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] * __b[__i]; } } return __v; } friend simd operator/(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() / __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] / __b[__i]; } } return __v; } friend simd operator%(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() % __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] % __b[__i]; } } return __v; } friend simd operator&(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() & __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] & __b[__i]; } } return __v; } friend simd operator|(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() | __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] | __b[__i]; } } return __v; } friend simd operator^(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() ^ __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] ^ __b[__i]; } } return __v; } friend simd operator<<(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() << __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] << __b[__i]; } } return __v; } friend simd operator>>(const simd& __a, const simd& __b) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() >> __b.__raw_storage(); else { for (size_t __i = 0; __i < __v.size(); __i++) { __v[__i] = __a[__i] >> __b[__i]; } } return __v; } friend simd operator<<(const simd& __a, int __offset) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() << simd(__offset).__raw_storage(); else { __v = __a << simd(__offset); } return __v; } friend simd operator>>(const simd& __a, int __offset) { simd __v; if constexpr (_Abi::kind == _StorageKind::_VecExt) __v.__raw_storage() = __a.__raw_storage() >> simd(__offset).__raw_storage(); else { __v = __a >> simd(__offset); } return __v; } friend simd& operator+=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() + __b.__raw_storage(); return __a; } else return __a = __a + __b; } friend simd& operator-=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() - __b.__raw_storage(); return __a; } else return __a = __a - __b; } friend simd& operator*=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() * __b.__raw_storage(); return __a; } else return __a = __a * __b; } friend simd& operator/=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() / __b.__raw_storage(); return __a; } else return __a = __a / __b; } friend simd& operator%=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() % __b.__raw_storage(); return __a; } else return __a = __a % __b; } friend simd& operator&=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() & __b.__raw_storage(); return __a; } else return __a = __a & __b; } friend simd& operator|=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() | __b.__raw_storage(); return __a; } else return __a = __a | __b; } friend simd& operator^=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() ^ __b.__raw_storage(); return __a; } else return __a = __a ^ __b; } friend simd& operator<<=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() << __b.__raw_storage(); return __a; } else return __a = __a << __b; } friend simd& operator>>=(simd& __a, const simd& __b) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() >> __b.__raw_storage(); return __a; } else return __a = __a >> __b; } friend simd& operator<<=(simd& __a, int __offset) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() << simd(__offset).__raw_storage(); return __a; } else return __a = __a << __offset; } friend simd& operator>>=(simd& __a, int __offset) { if constexpr (_Abi::kind == _StorageKind::_VecExt) { __a.__raw_storage() = __a.__raw_storage() >> simd(__offset).__raw_storage(); return __a; } else return __a = __a >> __offset; } friend mask_type operator==(const simd& __a, const simd& __b) { mask_type __mask; if constexpr (_Abi::kind == _StorageKind::_VecExt) { __mask.__s_.__s_.__assign(__a.__s_.__raw() == __b.__s_.__raw()); } else { for (size_t __i = 0; __i < __a.size(); __i++) { __mask[__i] = __a[__i] == __b[__i]; } } return __mask; } friend mask_type operator!=(const simd& __a, const simd& __b) { mask_type __mask; if constexpr (_Abi::kind == _StorageKind::_VecExt) { __mask.__s_.__s_.__assign(__a.__s_.__raw() != __b.__s_.__raw()); } else { for (size_t __i = 0; __i < __a.size(); __i++) { __mask[__i] = __a[__i] != __b[__i]; } } return __mask; } friend mask_type operator>=(const simd& __a, const simd& __b) { mask_type __mask; if constexpr (_Abi::kind == _StorageKind::_VecExt) { __mask.__s_.__s_.__assign(__a.__s_.__raw() >= __b.__s_.__raw()); } else { for (size_t __i = 0; __i < __a.size(); __i++) { __mask[__i] = __a[__i] >= __b[__i]; } } return __mask; } friend mask_type operator<=(const simd& __a, const simd& __b) { mask_type __mask; if constexpr (_Abi::kind == _StorageKind::_VecExt) { __mask.__s_.__s_.__assign(__a.__s_.__raw() <= __b.__s_.__raw()); } else { for (size_t __i = 0; __i < __a.size(); __i++) { __mask[__i] = __a[__i] <= __b[__i]; } } return __mask; } friend mask_type operator>(const simd& __a, const simd& __b) { mask_type __mask; if constexpr (_Abi::kind == _StorageKind::_VecExt) { __mask.__s_.__s_.__assign(__a.__s_.__raw() > __b.__s_.__raw()); } else { for (size_t __i = 0; __i < __a.size(); __i++) { __mask[__i] = __a[__i] > __b[__i]; } } return __mask; } friend mask_type operator<(const simd& __a, const simd& __b) { mask_type __mask; if constexpr (_Abi::kind == _StorageKind::_VecExt) { __mask.__s_.__s_.__assign(__a.__s_.__raw() < __b.__s_.__raw()); } else { for (size_t __i = 0; __i < __a.size(); __i++) { __mask[__i] = __a[__i] < __b[__i]; } } return __mask; } template <size_t... __indices, class _Up, int __num_element> friend simd<_Up, __simd_abi<_StorageKind::_VecExt, sizeof...(__indices)>> __simd_shuffle( const simd<_Up, __simd_abi<_StorageKind::_VecExt, __num_element>>& __v, const simd<_Up, __simd_abi<_StorageKind::_VecExt, __num_element>>& __u, std::index_sequence<__indices...>); }; template <class _Tp, class _Abi> class simd_mask { using __element_type = typename __unsigned_traits<sizeof(_Tp)>::type; public: simd<__element_type, _Abi> __s_; simd_mask(const simd<__element_type, _Abi>& __mask) : __s_(__mask) {} friend struct __simd_mask_friend; public: using value_type = bool; using reference = __simd_reference<bool, __element_type, _Abi>; using simd_type = simd<_Tp, _Abi>; using abi_type = _Abi; static constexpr size_t size() noexcept { return simd<__element_type, _Abi>::size(); } simd_mask() = default; explicit simd_mask(value_type __value) noexcept { for (size_t __i = 0; __i < size(); __i++) { (*this)[__i] = __value; } } simd_mask(const __attribute__((__vector_size__(size() * sizeof(_Tp)))) _Tp& in) noexcept { simd<__element_type, _Abi> newVal(in); __s_ = newVal; } template < class _Up, class = typename std::enable_if< !std::is_void<_Up>::value && std::is_same<abi_type, simd_abi::fixed_size<size()>>::value>::type> simd_mask(const simd_mask<_Up, simd_abi::fixed_size<size()>>& __v) noexcept { for (size_t __i = 0; __i < size(); __i++) { (*this)[__i] = __v[__i]; } } template <class _Flags, class = typename std::enable_if< is_simd_flag_type<_Flags>::value>::type> simd_mask(const value_type* __buffer, _Flags) { for (size_t __i = 0; __i < size(); __i++) { (*this)[__i] = __buffer[__i]; } } template <class _Flags> typename std::enable_if<is_simd_flag_type<_Flags>::value>::type copy_from(const value_type* __buffer, _Flags) { *this = simd_mask(__buffer, _Flags()); } template <class _Flags> typename std::enable_if<is_simd_flag_type<_Flags>::value>::type copy_to(value_type* __buffer, _Flags) const { for (size_t __i = 0; __i < size(); __i++) { __buffer[__i] = (*this)[__i]; } } reference operator[](size_t __i) { return reference(&__s_.__s_, __i); } value_type operator[](size_t __i) const { return __s_[__i]; } simd_mask operator!() const noexcept { return simd_mask(~__s_); } friend simd_mask operator&&(const simd_mask& __a, const simd_mask& __b) noexcept { return __a & __b; } friend simd_mask operator||(const simd_mask& __a, const simd_mask& __b) noexcept { return __a | __b; } friend simd_mask operator&(const simd_mask& __a, const simd_mask& __b) noexcept { return simd_mask(__a.__s_ & __b.__s_); } friend simd_mask operator|(const simd_mask& __a, const simd_mask& __b) noexcept { return simd_mask(__a.__s_ | __b.__s_); } friend simd_mask operator^(const simd_mask& __a, const simd_mask& __b) noexcept { return simd_mask(__a.__s_ ^ __b.__s_); } friend simd_mask& operator&=(simd_mask& __a, const simd_mask& __b) noexcept { return __a = __a & __b; } friend simd_mask& operator|=(simd_mask& __a, const simd_mask& __b) noexcept { return __a = __a | __b; } friend simd_mask& operator^=(simd_mask& __a, const simd_mask& __b) noexcept { return __a = __a ^ __b; } friend simd_mask operator==(const simd_mask& __a, const simd_mask& __b) noexcept { return !(__a ^ __b); } friend simd_mask operator!=(const simd_mask& __a, const simd_mask& __b) noexcept { return __a != __b; } }; } } } # 9 "/work/libint/src/Matrix.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/iomanip" 1 3 # 46 "/opt/toolchain/target/bin/../include/c++/v1/iomanip" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__string" 1 3 # 57 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cstdio" 1 3 # 99 "/opt/toolchain/target/bin/../include/c++/v1/cstdio" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdio.h" 1 3 # 100 "/opt/toolchain/target/bin/../include/c++/v1/cstdio" 2 3 # 103 "/opt/toolchain/target/bin/../include/c++/v1/cstdio" 3 namespace std { inline namespace __1 { using ::FILE; using ::fpos_t; using ::size_t; using ::fclose; using ::fflush; using ::setbuf; using ::setvbuf; using ::fprintf; using ::fscanf; using ::snprintf; using ::sprintf; using ::sscanf; using ::vfprintf; using ::vfscanf; using ::vsscanf; using ::vsnprintf; using ::vsprintf; using ::fgetc; using ::fgets; using ::fputc; using ::fputs; using ::getc; using ::putc; using ::ungetc; using ::fread; using ::fwrite; using ::fgetpos; using ::fseek; using ::fsetpos; using ::ftell; using ::rewind; using ::clearerr; using ::feof; using ::ferror; using ::perror; using ::fopen; using ::freopen; using ::remove; using ::rename; using ::tmpfile; using ::tmpnam; using ::getchar; using ::scanf; using ::vscanf; using ::printf; using ::putchar; using ::puts; using ::vprintf; } } # 58 "/opt/toolchain/target/bin/../include/c++/v1/__string" 2 3 # 64 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 68 "/opt/toolchain/target/bin/../include/c++/v1/__string" 2 3 namespace std { inline namespace __1 { template <class _CharT> struct __attribute__ ((__type_visibility__("default"))) char_traits { typedef _CharT char_type; typedef int int_type; typedef streamoff off_type; typedef streampos pos_type; typedef mbstate_t state_type; static inline void constexpr assign(char_type& __c1, const char_type& __c2) noexcept {__c1 = __c2;} static inline constexpr bool eq(char_type __c1, char_type __c2) noexcept {return __c1 == __c2;} static inline constexpr bool lt(char_type __c1, char_type __c2) noexcept {return __c1 < __c2;} static constexpr int compare(const char_type* __s1, const char_type* __s2, size_t __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr size_t length(const char_type* __s); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr const char_type* find(const char_type* __s, size_t __n, const char_type& __a); static char_type* move(char_type* __s1, const char_type* __s2, size_t __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* assign(char_type* __s, size_t __n, char_type __a); static inline constexpr int_type not_eof(int_type __c) noexcept {return eq_int_type(__c, eof()) ? ~eof() : __c;} static inline constexpr char_type to_char_type(int_type __c) noexcept {return char_type(__c);} static inline constexpr int_type to_int_type(char_type __c) noexcept {return int_type(__c);} static inline constexpr bool eq_int_type(int_type __c1, int_type __c2) noexcept {return __c1 == __c2;} static inline constexpr int_type eof() noexcept {return int_type((-1));} }; template <class _CharT> constexpr int char_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_t __n) { for (; __n; --__n, ++__s1, ++__s2) { if (lt(*__s1, *__s2)) return -1; if (lt(*__s2, *__s1)) return 1; } return 0; } template <class _CharT> inline constexpr size_t char_traits<_CharT>::length(const char_type* __s) { size_t __len = 0; for (; !eq(*__s, char_type(0)); ++__s) ++__len; return __len; } template <class _CharT> inline constexpr const _CharT* char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a) { for (; __n; --__n) { if (eq(*__s, __a)) return __s; ++__s; } return 0; } template <class _CharT> _CharT* char_traits<_CharT>::move(char_type* __s1, const char_type* __s2, size_t __n) { char_type* __r = __s1; if (__s1 < __s2) { for (; __n; --__n, ++__s1, ++__s2) assign(*__s1, *__s2); } else if (__s2 < __s1) { __s1 += __n; __s2 += __n; for (; __n; --__n) assign(*--__s1, *--__s2); } return __r; } template <class _CharT> inline _CharT* char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n) { ((void)0); char_type* __r = __s1; for (; __n; --__n, ++__s1, ++__s2) assign(*__s1, *__s2); return __r; } template <class _CharT> inline _CharT* char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a) { char_type* __r = __s; for (; __n; --__n, ++__s) assign(*__s, __a); return __r; } template <> struct __attribute__ ((__type_visibility__("default"))) char_traits<char> { typedef char char_type; typedef int int_type; typedef streamoff off_type; typedef streampos pos_type; typedef mbstate_t state_type; static inline constexpr void assign(char_type& __c1, const char_type& __c2) noexcept {__c1 = __c2;} static inline constexpr bool eq(char_type __c1, char_type __c2) noexcept {return __c1 == __c2;} static inline constexpr bool lt(char_type __c1, char_type __c2) noexcept {return (unsigned char)__c1 < (unsigned char)__c2;} static constexpr int compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept; static inline size_t constexpr length(const char_type* __s) noexcept {return __builtin_strlen(__s);} static constexpr const char_type* find(const char_type* __s, size_t __n, const char_type& __a) noexcept; static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) noexcept {return __n == 0 ? __s1 : (char_type*) memmove(__s1, __s2, __n);} static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) noexcept { ((void)0); return __n == 0 ? __s1 : (char_type*)memcpy(__s1, __s2, __n); } static inline char_type* assign(char_type* __s, size_t __n, char_type __a) noexcept {return __n == 0 ? __s : (char_type*)memset(__s, to_int_type(__a), __n);} static inline constexpr int_type not_eof(int_type __c) noexcept {return eq_int_type(__c, eof()) ? ~eof() : __c;} static inline constexpr char_type to_char_type(int_type __c) noexcept {return char_type(__c);} static inline constexpr int_type to_int_type(char_type __c) noexcept {return int_type((unsigned char)__c);} static inline constexpr bool eq_int_type(int_type __c1, int_type __c2) noexcept {return __c1 == __c2;} static inline constexpr int_type eof() noexcept {return int_type((-1));} }; inline constexpr int char_traits<char>::compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept { if (__n == 0) return 0; return __builtin_memcmp(__s1, __s2, __n); # 262 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 } inline constexpr const char* char_traits<char>::find(const char_type* __s, size_t __n, const char_type& __a) noexcept { if (__n == 0) return nullptr; return __builtin_char_memchr(__s, to_int_type(__a), __n); # 283 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 } template <> struct __attribute__ ((__type_visibility__("default"))) char_traits<wchar_t> { typedef wchar_t char_type; typedef wint_t int_type; typedef streamoff off_type; typedef streampos pos_type; typedef mbstate_t state_type; static inline constexpr void assign(char_type& __c1, const char_type& __c2) noexcept {__c1 = __c2;} static inline constexpr bool eq(char_type __c1, char_type __c2) noexcept {return __c1 == __c2;} static inline constexpr bool lt(char_type __c1, char_type __c2) noexcept {return __c1 < __c2;} static constexpr int compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept; static constexpr size_t length(const char_type* __s) noexcept; static constexpr const char_type* find(const char_type* __s, size_t __n, const char_type& __a) noexcept; static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) noexcept {return __n == 0 ? __s1 : (char_type*)wmemmove(__s1, __s2, __n);} static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) noexcept { ((void)0); return __n == 0 ? __s1 : (char_type*)wmemcpy(__s1, __s2, __n); } static inline char_type* assign(char_type* __s, size_t __n, char_type __a) noexcept {return __n == 0 ? __s : (char_type*)wmemset(__s, __a, __n);} static inline constexpr int_type not_eof(int_type __c) noexcept {return eq_int_type(__c, eof()) ? ~eof() : __c;} static inline constexpr char_type to_char_type(int_type __c) noexcept {return char_type(__c);} static inline constexpr int_type to_int_type(char_type __c) noexcept {return int_type(__c);} static inline constexpr bool eq_int_type(int_type __c1, int_type __c2) noexcept {return __c1 == __c2;} static inline constexpr int_type eof() noexcept {return int_type((0xffffffffu));} }; inline constexpr int char_traits<wchar_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept { if (__n == 0) return 0; return __builtin_wmemcmp(__s1, __s2, __n); # 352 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 } inline constexpr size_t char_traits<wchar_t>::length(const char_type* __s) noexcept { return __builtin_wcslen(__s); # 368 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 } inline constexpr const wchar_t* char_traits<wchar_t>::find(const char_type* __s, size_t __n, const char_type& __a) noexcept { if (__n == 0) return nullptr; return __builtin_wmemchr(__s, __a, __n); # 389 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 } # 490 "/opt/toolchain/target/bin/../include/c++/v1/__string" 3 template <> struct __attribute__ ((__type_visibility__("default"))) char_traits<char16_t> { typedef char16_t char_type; typedef uint_least16_t int_type; typedef streamoff off_type; typedef u16streampos pos_type; typedef mbstate_t state_type; static inline constexpr void assign(char_type& __c1, const char_type& __c2) noexcept {__c1 = __c2;} static inline constexpr bool eq(char_type __c1, char_type __c2) noexcept {return __c1 == __c2;} static inline constexpr bool lt(char_type __c1, char_type __c2) noexcept {return __c1 < __c2;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr int compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr size_t length(const char_type* __s) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr const char_type* find(const char_type* __s, size_t __n, const char_type& __a) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* assign(char_type* __s, size_t __n, char_type __a) noexcept; static inline constexpr int_type not_eof(int_type __c) noexcept {return eq_int_type(__c, eof()) ? ~eof() : __c;} static inline constexpr char_type to_char_type(int_type __c) noexcept {return char_type(__c);} static inline constexpr int_type to_int_type(char_type __c) noexcept {return int_type(__c);} static inline constexpr bool eq_int_type(int_type __c1, int_type __c2) noexcept {return __c1 == __c2;} static inline constexpr int_type eof() noexcept {return int_type(0xFFFF);} }; inline constexpr int char_traits<char16_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept { for (; __n; --__n, ++__s1, ++__s2) { if (lt(*__s1, *__s2)) return -1; if (lt(*__s2, *__s1)) return 1; } return 0; } inline constexpr size_t char_traits<char16_t>::length(const char_type* __s) noexcept { size_t __len = 0; for (; !eq(*__s, char_type(0)); ++__s) ++__len; return __len; } inline constexpr const char16_t* char_traits<char16_t>::find(const char_type* __s, size_t __n, const char_type& __a) noexcept { for (; __n; --__n) { if (eq(*__s, __a)) return __s; ++__s; } return 0; } inline char16_t* char_traits<char16_t>::move(char_type* __s1, const char_type* __s2, size_t __n) noexcept { char_type* __r = __s1; if (__s1 < __s2) { for (; __n; --__n, ++__s1, ++__s2) assign(*__s1, *__s2); } else if (__s2 < __s1) { __s1 += __n; __s2 += __n; for (; __n; --__n) assign(*--__s1, *--__s2); } return __r; } inline char16_t* char_traits<char16_t>::copy(char_type* __s1, const char_type* __s2, size_t __n) noexcept { ((void)0); char_type* __r = __s1; for (; __n; --__n, ++__s1, ++__s2) assign(*__s1, *__s2); return __r; } inline char16_t* char_traits<char16_t>::assign(char_type* __s, size_t __n, char_type __a) noexcept { char_type* __r = __s; for (; __n; --__n, ++__s) assign(*__s, __a); return __r; } template <> struct __attribute__ ((__type_visibility__("default"))) char_traits<char32_t> { typedef char32_t char_type; typedef uint_least32_t int_type; typedef streamoff off_type; typedef u32streampos pos_type; typedef mbstate_t state_type; static inline constexpr void assign(char_type& __c1, const char_type& __c2) noexcept {__c1 = __c2;} static inline constexpr bool eq(char_type __c1, char_type __c2) noexcept {return __c1 == __c2;} static inline constexpr bool lt(char_type __c1, char_type __c2) noexcept {return __c1 < __c2;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr int compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr size_t length(const char_type* __s) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr const char_type* find(const char_type* __s, size_t __n, const char_type& __a) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* move(char_type* __s1, const char_type* __s2, size_t __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static char_type* assign(char_type* __s, size_t __n, char_type __a) noexcept; static inline constexpr int_type not_eof(int_type __c) noexcept {return eq_int_type(__c, eof()) ? ~eof() : __c;} static inline constexpr char_type to_char_type(int_type __c) noexcept {return char_type(__c);} static inline constexpr int_type to_int_type(char_type __c) noexcept {return int_type(__c);} static inline constexpr bool eq_int_type(int_type __c1, int_type __c2) noexcept {return __c1 == __c2;} static inline constexpr int_type eof() noexcept {return int_type(0xFFFFFFFF);} }; inline constexpr int char_traits<char32_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n) noexcept { for (; __n; --__n, ++__s1, ++__s2) { if (lt(*__s1, *__s2)) return -1; if (lt(*__s2, *__s1)) return 1; } return 0; } inline constexpr size_t char_traits<char32_t>::length(const char_type* __s) noexcept { size_t __len = 0; for (; !eq(*__s, char_type(0)); ++__s) ++__len; return __len; } inline constexpr const char32_t* char_traits<char32_t>::find(const char_type* __s, size_t __n, const char_type& __a) noexcept { for (; __n; --__n) { if (eq(*__s, __a)) return __s; ++__s; } return 0; } inline char32_t* char_traits<char32_t>::move(char_type* __s1, const char_type* __s2, size_t __n) noexcept { char_type* __r = __s1; if (__s1 < __s2) { for (; __n; --__n, ++__s1, ++__s2) assign(*__s1, *__s2); } else if (__s2 < __s1) { __s1 += __n; __s2 += __n; for (; __n; --__n) assign(*--__s1, *--__s2); } return __r; } inline char32_t* char_traits<char32_t>::copy(char_type* __s1, const char_type* __s2, size_t __n) noexcept { ((void)0); char_type* __r = __s1; for (; __n; --__n, ++__s1, ++__s2) assign(*__s1, *__s2); return __r; } inline char32_t* char_traits<char32_t>::assign(char_type* __s, size_t __n, char_type __a) noexcept { char_type* __r = __s; for (; __n; --__n, ++__s) assign(*__s, __a); return __r; } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) noexcept { if (__pos >= __sz) return __npos; const _CharT* __r = _Traits::find(__p + __pos, __sz - __pos, __c); if (__r == 0) return __npos; return static_cast<_SizeT>(__r - __p); } template <class _CharT, class _Traits> inline constexpr const _CharT * __search_substring(const _CharT *__first1, const _CharT *__last1, const _CharT *__first2, const _CharT *__last2) { const ptrdiff_t __len2 = __last2 - __first2; if (__len2 == 0) return __first1; ptrdiff_t __len1 = __last1 - __first1; if (__len1 < __len2) return __last1; _CharT __f2 = *__first2; while (true) { __len1 = __last1 - __first1; if (__len1 < __len2) return __last1; __first1 = _Traits::find(__first1, __len1 - __len2 + 1, __f2); if (__first1 == 0) return __last1; if (_Traits::compare(__first1, __first2, __len2) == 0) return __first1; ++__first1; } } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) noexcept { if (__pos > __sz) return __npos; if (__n == 0) return __pos; const _CharT *__r = __search_substring<_CharT, _Traits>( __p + __pos, __p + __sz, __s, __s + __n); if (__r == __p + __sz) return __npos; return static_cast<_SizeT>(__r - __p); } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_rfind(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) noexcept { if (__sz < 1) return __npos; if (__pos < __sz) ++__pos; else __pos = __sz; for (const _CharT* __ps = __p + __pos; __ps != __p;) { if (_Traits::eq(*--__ps, __c)) return static_cast<_SizeT>(__ps - __p); } return __npos; } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_rfind(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) noexcept { __pos = std::__1::min(__pos, __sz); if (__n < __sz - __pos) __pos += __n; else __pos = __sz; const _CharT* __r = std::__1::__find_end( __p, __p + __pos, __s, __s + __n, _Traits::eq, random_access_iterator_tag(), random_access_iterator_tag()); if (__n > 0 && __r == __p + __pos) return __npos; return static_cast<_SizeT>(__r - __p); } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find_first_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) noexcept { if (__pos >= __sz || __n == 0) return __npos; const _CharT* __r = std::__1::__find_first_of_ce (__p + __pos, __p + __sz, __s, __s + __n, _Traits::eq ); if (__r == __p + __sz) return __npos; return static_cast<_SizeT>(__r - __p); } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find_last_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) noexcept { if (__n != 0) { if (__pos < __sz) ++__pos; else __pos = __sz; for (const _CharT* __ps = __p + __pos; __ps != __p;) { const _CharT* __r = _Traits::find(__s, __n, *--__ps); if (__r) return static_cast<_SizeT>(__ps - __p); } } return __npos; } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find_first_not_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) noexcept { if (__pos < __sz) { const _CharT* __pe = __p + __sz; for (const _CharT* __ps = __p + __pos; __ps != __pe; ++__ps) if (_Traits::find(__s, __n, *__ps) == 0) return static_cast<_SizeT>(__ps - __p); } return __npos; } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find_first_not_of(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) noexcept { if (__pos < __sz) { const _CharT* __pe = __p + __sz; for (const _CharT* __ps = __p + __pos; __ps != __pe; ++__ps) if (!_Traits::eq(*__ps, __c)) return static_cast<_SizeT>(__ps - __p); } return __npos; } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find_last_not_of(const _CharT *__p, _SizeT __sz, const _CharT* __s, _SizeT __pos, _SizeT __n) noexcept { if (__pos < __sz) ++__pos; else __pos = __sz; for (const _CharT* __ps = __p + __pos; __ps != __p;) if (_Traits::find(__s, __n, *--__ps) == 0) return static_cast<_SizeT>(__ps - __p); return __npos; } template<class _CharT, class _SizeT, class _Traits, _SizeT __npos> inline _SizeT constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __str_find_last_not_of(const _CharT *__p, _SizeT __sz, _CharT __c, _SizeT __pos) noexcept { if (__pos < __sz) ++__pos; else __pos = __sz; for (const _CharT* __ps = __p + __pos; __ps != __p;) if (!_Traits::eq(*--__ps, __c)) return static_cast<_SizeT>(__ps - __p); return __npos; } template<class _Ptr> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __do_string_hash(_Ptr __p, _Ptr __e) { typedef typename iterator_traits<_Ptr>::value_type value_type; return __murmur2_or_cityhash<size_t>()(__p, (__e-__p)*sizeof(value_type)); } template <class _CharT, class _Iter, class _Traits=char_traits<_CharT> > struct __quoted_output_proxy { _Iter __first; _Iter __last; _CharT __delim; _CharT __escape; __quoted_output_proxy(_Iter __f, _Iter __l, _CharT __d, _CharT __e) : __first(__f), __last(__l), __delim(__d), __escape(__e) {} }; } } # 47 "/opt/toolchain/target/bin/../include/c++/v1/iomanip" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/istream" 1 3 # 163 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 1 3 # 137 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/ios" 1 3 # 215 "/opt/toolchain/target/bin/../include/c++/v1/ios" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 1 3 # 14 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/string" 1 3 # 504 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/string_view" 1 3 # 185 "/opt/toolchain/target/bin/../include/c++/v1/string_view" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 189 "/opt/toolchain/target/bin/../include/c++/v1/string_view" 2 3 namespace std { inline namespace __1 { template<class _CharT, class _Traits = char_traits<_CharT> > class __attribute__ ((__type_visibility__("default"))) basic_string_view { public: typedef _Traits traits_type; typedef _CharT value_type; typedef _CharT* pointer; typedef const _CharT* const_pointer; typedef _CharT& reference; typedef const _CharT& const_reference; typedef const_pointer const_iterator; typedef const_iterator iterator; typedef std::__1::reverse_iterator<const_iterator> const_reverse_iterator; typedef const_reverse_iterator reverse_iterator; typedef size_t size_type; typedef ptrdiff_t difference_type; static constexpr const size_type npos = -1; static_assert((!is_array<value_type>::value), "Character type of basic_string_view must not be an array"); static_assert(( is_standard_layout<value_type>::value), "Character type of basic_string_view must be standard-layout"); static_assert(( is_trivial<value_type>::value), "Character type of basic_string_view must be trivial"); static_assert((is_same<_CharT, typename traits_type::char_type>::value), "traits_type::char_type must be the same type as CharT"); constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string_view() noexcept : __data (nullptr), __size(0) {} constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string_view(const basic_string_view&) noexcept = default; constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string_view& operator=(const basic_string_view&) noexcept = default; constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string_view(const _CharT* __s, size_type __len) noexcept : __data(__s), __size(__len) { ((void)0); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string_view(const _CharT* __s) : __data(__s), __size(_Traits::length(__s)) {} constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator begin() const noexcept { return cbegin(); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator end() const noexcept { return cend(); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cbegin() const noexcept { return __data; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cend() const noexcept { return __data + __size; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(cend()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rend() const noexcept { return const_reverse_iterator(cbegin()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(cend()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crend() const noexcept { return const_reverse_iterator(cbegin()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type size() const noexcept { return __size; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type length() const noexcept { return __size; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type max_size() const noexcept { return numeric_limits<size_type>::max(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool empty() const noexcept { return __size == 0; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference operator[](size_type __pos) const noexcept { return __data[__pos]; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference at(size_type __pos) const { return __pos >= size() ? (__throw_out_of_range("string_view::at"), __data[0]) : __data[__pos]; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference front() const noexcept { return ((void)0), __data[0]; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference back() const noexcept { return ((void)0), __data[__size-1]; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_pointer data() const noexcept { return __data; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void remove_prefix(size_type __n) noexcept { ((void)0); __data += __n; __size -= __n; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void remove_suffix(size_type __n) noexcept { ((void)0); __size -= __n; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_string_view& __other) noexcept { const value_type *__p = __data; __data = __other.__data; __other.__data = __p; size_type __sz = __size; __size = __other.__size; __other.__size = __sz; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const { if (__pos > size()) __throw_out_of_range("string_view::copy"); size_type __rlen = std::__1::min(__n, size() - __pos); _Traits::copy(__s, data() + __pos, __rlen); return __rlen; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string_view substr(size_type __pos = 0, size_type __n = npos) const { return __pos > size() ? (__throw_out_of_range("string_view::substr"), basic_string_view()) : basic_string_view(data() + __pos, std::__1::min(__n, size() - __pos)); } constexpr int compare(basic_string_view __sv) const noexcept { size_type __rlen = std::__1::min( size(), __sv.size()); int __retval = _Traits::compare(data(), __sv.data(), __rlen); if ( __retval == 0 ) __retval = size() == __sv.size() ? 0 : ( size() < __sv.size() ? -1 : 1 ); return __retval; } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(size_type __pos1, size_type __n1, basic_string_view __sv) const { return substr(__pos1, __n1).compare(__sv); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare( size_type __pos1, size_type __n1, basic_string_view __sv, size_type __pos2, size_type __n2) const { return substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(const _CharT* __s) const noexcept { return compare(basic_string_view(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(size_type __pos1, size_type __n1, const _CharT* __s) const { return substr(__pos1, __n1).compare(basic_string_view(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) const { return substr(__pos1, __n1).compare(basic_string_view(__s, __n2)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find(basic_string_view __s, size_type __pos = 0) const noexcept { ((void)0); return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __s.data(), __pos, __s.size()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find(_CharT __c, size_type __pos = 0) const noexcept { return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find(const _CharT* __s, size_type __pos, size_type __n) const { ((void)0); return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find(const _CharT* __s, size_type __pos = 0) const { ((void)0); return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type rfind(basic_string_view __s, size_type __pos = npos) const noexcept { ((void)0); return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __s.data(), __pos, __s.size()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type rfind(_CharT __c, size_type __pos = npos) const noexcept { return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const { ((void)0); return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type rfind(const _CharT* __s, size_type __pos=npos) const { ((void)0); return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(basic_string_view __s, size_type __pos = 0) const noexcept { ((void)0); return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __s.data(), __pos, __s.size()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(_CharT __c, size_type __pos = 0) const noexcept { return find(__c, __pos); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const { ((void)0); return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(const _CharT* __s, size_type __pos=0) const { ((void)0); return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(basic_string_view __s, size_type __pos=npos) const noexcept { ((void)0); return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __s.data(), __pos, __s.size()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(_CharT __c, size_type __pos = npos) const noexcept { return rfind(__c, __pos); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const { ((void)0); return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(const _CharT* __s, size_type __pos=npos) const { ((void)0); return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(basic_string_view __s, size_type __pos=0) const noexcept { ((void)0); return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s.data(), __pos, __s.size()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(_CharT __c, size_type __pos=0) const noexcept { return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const { ((void)0); return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(const _CharT* __s, size_type __pos=0) const { ((void)0); return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(basic_string_view __s, size_type __pos=npos) const noexcept { ((void)0); return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s.data(), __pos, __s.size()); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(_CharT __c, size_type __pos=npos) const noexcept { return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const { ((void)0); return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(const _CharT* __s, size_type __pos=npos) const { ((void)0); return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } # 603 "/opt/toolchain/target/bin/../include/c++/v1/string_view" 3 private: const value_type* __data; size_type __size; }; template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { if ( __lhs.size() != __rhs.size()) return false; return __lhs.compare(__rhs) == 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(basic_string_view<_CharT, _Traits> __lhs, typename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) noexcept { if ( __lhs.size() != __rhs.size()) return false; return __lhs.compare(__rhs) == 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { if ( __lhs.size() != __rhs.size()) return false; return __lhs.compare(__rhs) == 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { if ( __lhs.size() != __rhs.size()) return true; return __lhs.compare(__rhs) != 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(basic_string_view<_CharT, _Traits> __lhs, typename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) noexcept { if ( __lhs.size() != __rhs.size()) return true; return __lhs.compare(__rhs) != 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { if ( __lhs.size() != __rhs.size()) return true; return __lhs.compare(__rhs) != 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) < 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(basic_string_view<_CharT, _Traits> __lhs, typename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) noexcept { return __lhs.compare(__rhs) < 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) < 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) > 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(basic_string_view<_CharT, _Traits> __lhs, typename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) noexcept { return __lhs.compare(__rhs) > 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) > 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) <= 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(basic_string_view<_CharT, _Traits> __lhs, typename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) noexcept { return __lhs.compare(__rhs) <= 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) <= 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) >= 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(basic_string_view<_CharT, _Traits> __lhs, typename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) noexcept { return __lhs.compare(__rhs) >= 0; } template<class _CharT, class _Traits> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, basic_string_view<_CharT, _Traits> __rhs) noexcept { return __lhs.compare(__rhs) >= 0; } typedef basic_string_view<char> string_view; typedef basic_string_view<char16_t> u16string_view; typedef basic_string_view<char32_t> u32string_view; typedef basic_string_view<wchar_t> wstring_view; template<class _CharT, class _Traits> struct __attribute__ ((__type_visibility__("default"))) hash<basic_string_view<_CharT, _Traits> > : public unary_function<basic_string_view<_CharT, _Traits>, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(const basic_string_view<_CharT, _Traits> __val) const noexcept { return __do_string_hash(__val.data(), __val.data() + __val.size()); } }; inline namespace literals { inline namespace string_view_literals { inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr basic_string_view<char> operator "" sv(const char *__str, size_t __len) noexcept { return basic_string_view<char> (__str, __len); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr basic_string_view<wchar_t> operator "" sv(const wchar_t *__str, size_t __len) noexcept { return basic_string_view<wchar_t> (__str, __len); } # 815 "/opt/toolchain/target/bin/../include/c++/v1/string_view" 3 inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr basic_string_view<char16_t> operator "" sv(const char16_t *__str, size_t __len) noexcept { return basic_string_view<char16_t> (__str, __len); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr basic_string_view<char32_t> operator "" sv(const char32_t *__str, size_t __len) noexcept { return basic_string_view<char32_t> (__str, __len); } } } } } # 505 "/opt/toolchain/target/bin/../include/c++/v1/string" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cwchar" 1 3 # 106 "/opt/toolchain/target/bin/../include/c++/v1/cwchar" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cwctype" 1 3 # 53 "/opt/toolchain/target/bin/../include/c++/v1/cwctype" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cctype" 1 3 # 38 "/opt/toolchain/target/bin/../include/c++/v1/cctype" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/ctype.h" 1 3 # 36 "/opt/toolchain/target/bin/../include/c++/v1/ctype.h" 3 # 1 "/usr/include/ctype.h" 1 3 4 # 28 "/usr/include/ctype.h" 3 4 extern "C" { # 46 "/usr/include/ctype.h" 3 4 enum { _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) }; # 79 "/usr/include/ctype.h" 3 4 extern const unsigned short int **__ctype_b_loc (void) throw () __attribute__ ((__const__)); extern const __int32_t **__ctype_tolower_loc (void) throw () __attribute__ ((__const__)); extern const __int32_t **__ctype_toupper_loc (void) throw () __attribute__ ((__const__)); # 108 "/usr/include/ctype.h" 3 4 extern int isalnum (int) throw (); extern int isalpha (int) throw (); extern int iscntrl (int) throw (); extern int isdigit (int) throw (); extern int islower (int) throw (); extern int isgraph (int) throw (); extern int isprint (int) throw (); extern int ispunct (int) throw (); extern int isspace (int) throw (); extern int isupper (int) throw (); extern int isxdigit (int) throw (); extern int tolower (int __c) throw (); extern int toupper (int __c) throw (); extern int isblank (int) throw (); extern int isctype (int __c, int __mask) throw (); extern int isascii (int __c) throw (); extern int toascii (int __c) throw (); extern int _toupper (int) throw (); extern int _tolower (int) throw (); # 174 "/usr/include/ctype.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int isalnum (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISalnum; } extern __inline __attribute__ ((__gnu_inline__)) int isalpha (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISalpha; } extern __inline __attribute__ ((__gnu_inline__)) int iscntrl (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _IScntrl; } extern __inline __attribute__ ((__gnu_inline__)) int isdigit (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISdigit; } extern __inline __attribute__ ((__gnu_inline__)) int islower (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISlower; } extern __inline __attribute__ ((__gnu_inline__)) int isgraph (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISgraph; } extern __inline __attribute__ ((__gnu_inline__)) int isprint (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISprint; } extern __inline __attribute__ ((__gnu_inline__)) int ispunct (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISpunct; } extern __inline __attribute__ ((__gnu_inline__)) int isspace (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISspace; } extern __inline __attribute__ ((__gnu_inline__)) int isupper (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISupper; } extern __inline __attribute__ ((__gnu_inline__)) int isxdigit (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISxdigit; } extern __inline __attribute__ ((__gnu_inline__)) int isblank (int __c) throw () { return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _ISblank; } # 206 "/usr/include/ctype.h" 3 4 extern __inline __attribute__ ((__gnu_inline__)) int tolower (int __c) throw () { return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; } extern __inline __attribute__ ((__gnu_inline__)) int toupper (int __c) throw () { return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; } # 251 "/usr/include/ctype.h" 3 4 extern int isalnum_l (int, locale_t) throw (); extern int isalpha_l (int, locale_t) throw (); extern int iscntrl_l (int, locale_t) throw (); extern int isdigit_l (int, locale_t) throw (); extern int islower_l (int, locale_t) throw (); extern int isgraph_l (int, locale_t) throw (); extern int isprint_l (int, locale_t) throw (); extern int ispunct_l (int, locale_t) throw (); extern int isspace_l (int, locale_t) throw (); extern int isupper_l (int, locale_t) throw (); extern int isxdigit_l (int, locale_t) throw (); extern int isblank_l (int, locale_t) throw (); extern int __tolower_l (int __c, locale_t __l) throw (); extern int tolower_l (int __c, locale_t __l) throw (); extern int __toupper_l (int __c, locale_t __l) throw (); extern int toupper_l (int __c, locale_t __l) throw (); # 327 "/usr/include/ctype.h" 3 4 } # 39 "/opt/toolchain/target/bin/../include/c++/v1/ctype.h" 2 3 # 39 "/opt/toolchain/target/bin/../include/c++/v1/cctype" 2 3 # 42 "/opt/toolchain/target/bin/../include/c++/v1/cctype" 3 namespace std { inline namespace __1 { # 103 "/opt/toolchain/target/bin/../include/c++/v1/cctype" 3 using ::isalnum; using ::isalpha; using ::isblank; using ::iscntrl; using ::isdigit; using ::isgraph; using ::islower; using ::isprint; using ::ispunct; using ::isspace; using ::isupper; using ::isxdigit; using ::tolower; using ::toupper; } } # 54 "/opt/toolchain/target/bin/../include/c++/v1/cwctype" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/wctype.h" 1 3 # 51 "/opt/toolchain/target/bin/../include/c++/v1/wctype.h" 3 # 1 "/usr/include/wctype.h" 1 3 4 # 38 "/usr/include/wctype.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 1 3 4 # 38 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 typedef unsigned long int wctype_t; # 56 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 enum { __ISwupper = 0, __ISwlower = 1, __ISwalpha = 2, __ISwdigit = 3, __ISwxdigit = 4, __ISwspace = 5, __ISwprint = 6, __ISwgraph = 7, __ISwblank = 8, __ISwcntrl = 9, __ISwpunct = 10, __ISwalnum = 11, _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) }; extern "C" { extern int iswalnum (wint_t __wc) throw (); extern int iswalpha (wint_t __wc) throw (); extern int iswcntrl (wint_t __wc) throw (); extern int iswdigit (wint_t __wc) throw (); extern int iswgraph (wint_t __wc) throw (); extern int iswlower (wint_t __wc) throw (); extern int iswprint (wint_t __wc) throw (); extern int iswpunct (wint_t __wc) throw (); extern int iswspace (wint_t __wc) throw (); extern int iswupper (wint_t __wc) throw (); extern int iswxdigit (wint_t __wc) throw (); extern int iswblank (wint_t __wc) throw (); # 155 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h" 3 4 extern wctype_t wctype (const char *__property) throw (); extern int iswctype (wint_t __wc, wctype_t __desc) throw (); extern wint_t towlower (wint_t __wc) throw (); extern wint_t towupper (wint_t __wc) throw (); } # 39 "/usr/include/wctype.h" 2 3 4 extern "C" { typedef const __int32_t *wctrans_t; extern wctrans_t wctrans (const char *__property) throw (); extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); extern int iswalnum_l (wint_t __wc, locale_t __locale) throw (); extern int iswalpha_l (wint_t __wc, locale_t __locale) throw (); extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw (); extern int iswdigit_l (wint_t __wc, locale_t __locale) throw (); extern int iswgraph_l (wint_t __wc, locale_t __locale) throw (); extern int iswlower_l (wint_t __wc, locale_t __locale) throw (); extern int iswprint_l (wint_t __wc, locale_t __locale) throw (); extern int iswpunct_l (wint_t __wc, locale_t __locale) throw (); extern int iswspace_l (wint_t __wc, locale_t __locale) throw (); extern int iswupper_l (wint_t __wc, locale_t __locale) throw (); extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw (); extern int iswblank_l (wint_t __wc, locale_t __locale) throw (); extern wctype_t wctype_l (const char *__property, locale_t __locale) throw (); extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) throw (); extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw (); extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw (); extern wctrans_t wctrans_l (const char *__property, locale_t __locale) throw (); extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, locale_t __locale) throw (); } # 54 "/opt/toolchain/target/bin/../include/c++/v1/wctype.h" 2 3 # 55 "/opt/toolchain/target/bin/../include/c++/v1/cwctype" 2 3 # 58 "/opt/toolchain/target/bin/../include/c++/v1/cwctype" 3 namespace std { inline namespace __1 { using ::wint_t; using ::wctrans_t; using ::wctype_t; using ::iswalnum; using ::iswalpha; using ::iswblank; using ::iswcntrl; using ::iswdigit; using ::iswgraph; using ::iswlower; using ::iswprint; using ::iswpunct; using ::iswspace; using ::iswupper; using ::iswxdigit; using ::iswctype; using ::wctype; using ::towlower; using ::towupper; using ::towctrans; using ::wctrans; } } # 107 "/opt/toolchain/target/bin/../include/c++/v1/cwchar" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/wchar.h" 1 3 # 108 "/opt/toolchain/target/bin/../include/c++/v1/cwchar" 2 3 # 111 "/opt/toolchain/target/bin/../include/c++/v1/cwchar" 3 namespace std { inline namespace __1 { using ::mbstate_t; using ::size_t; using ::tm; using ::wint_t; using ::FILE; using ::fwprintf; using ::fwscanf; using ::swprintf; using ::vfwprintf; using ::vswprintf; using ::swscanf; using ::vfwscanf; using ::vswscanf; using ::fgetwc; using ::fgetws; using ::fputwc; using ::fputws; using ::fwide; using ::getwc; using ::putwc; using ::ungetwc; using ::wcstod; using ::wcstof; using ::wcstold; using ::wcstol; using ::wcstoll; using ::wcstoul; using ::wcstoull; using ::wcscpy; using ::wcsncpy; using ::wcscat; using ::wcsncat; using ::wcscmp; using ::wcscoll; using ::wcsncmp; using ::wcsxfrm; using ::wcschr; using ::wcspbrk; using ::wcsrchr; using ::wcsstr; using ::wmemchr; using ::wcscspn; using ::wcslen; using ::wcsspn; using ::wcstok; using ::wmemcmp; using ::wmemcpy; using ::wmemmove; using ::wmemset; using ::wcsftime; using ::btowc; using ::wctob; using ::mbsinit; using ::mbrlen; using ::mbrtowc; using ::wcrtomb; using ::mbsrtowcs; using ::wcsrtombs; using ::getwchar; using ::vwscanf; using ::wscanf; using ::putwchar; using ::vwprintf; using ::wprintf; } } # 509 "/opt/toolchain/target/bin/../include/c++/v1/string" 2 3 # 526 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 530 "/opt/toolchain/target/bin/../include/c++/v1/string" 2 3 namespace std { inline namespace __1 { template <class _StateT> class __attribute__ ((__type_visibility__("default"))) fpos { private: _StateT __st_; streamoff __off_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fpos(streamoff __off = streamoff()) : __st_(), __off_(__off) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator streamoff() const {return __off_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _StateT state() const {return __st_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void state(_StateT __st) {__st_ = __st;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fpos& operator+=(streamoff __off) {__off_ += __off; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fpos operator+ (streamoff __off) const {fpos __t(*this); __t += __off; return __t;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fpos& operator-=(streamoff __off) {__off_ -= __off; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fpos operator- (streamoff __off) const {fpos __t(*this); __t -= __off; return __t;} }; template <class _StateT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamoff operator-(const fpos<_StateT>& __x, const fpos<_StateT>& __y) {return streamoff(__x) - streamoff(__y);} template <class _StateT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const fpos<_StateT>& __x, const fpos<_StateT>& __y) {return streamoff(__x) == streamoff(__y);} template <class _StateT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y) {return streamoff(__x) != streamoff(__y);} template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const basic_string<_CharT, _Traits, _Allocator>& __y); template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(const _CharT* __x, const basic_string<_CharT,_Traits,_Allocator>& __y); template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(_CharT __x, const basic_string<_CharT,_Traits,_Allocator>& __y); template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const _CharT* __y); template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y); extern template __attribute__ ((__visibility__("default"))) string operator+<char, char_traits<char>, allocator<char> >(char const*, string const&); template <bool> class __attribute__ ((__type_visibility__("default"))) __basic_string_common { protected: [[noreturn]] void __throw_length_error() const; [[noreturn]] void __throw_out_of_range() const; }; template <bool __b> void __basic_string_common<__b>::__throw_length_error() const { std::__1::__throw_length_error("basic_string"); } template <bool __b> void __basic_string_common<__b>::__throw_out_of_range() const { std::__1::__throw_out_of_range("basic_string"); } extern template class __attribute__ ((__visibility__("default"))) __basic_string_common<true>; template <class _Iter> struct __libcpp_string_gets_noexcept_iterator_impl : public true_type {}; # 641 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 template <class _Iter> struct __libcpp_string_gets_noexcept_iterator : public bool_constant<(__libcpp_is_trivial_iterator<_Iter>::value || __libcpp_string_gets_noexcept_iterator_impl<_Iter>::value)> {}; template <class _CharT, class _Traits, class _Tp> struct __can_be_converted_to_string_view : public bool_constant<(( is_convertible<const _Tp&, basic_string_view<_CharT, _Traits> >::value && !is_convertible<const _Tp&, const _CharT*>::value))> {}; # 665 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 template<class _CharT, class _Traits, class _Allocator> class __attribute__ ((__type_visibility__("default"))) basic_string : private __basic_string_common<true> { public: typedef basic_string __self; typedef basic_string_view<_CharT, _Traits> __self_view; typedef _Traits traits_type; typedef _CharT value_type; typedef _Allocator allocator_type; typedef allocator_traits<allocator_type> __alloc_traits; typedef typename __alloc_traits::size_type size_type; typedef typename __alloc_traits::difference_type difference_type; typedef value_type& reference; typedef const value_type& const_reference; typedef typename __alloc_traits::pointer pointer; typedef typename __alloc_traits::const_pointer const_pointer; static_assert((!is_array<value_type>::value), "Character type of basic_string must not be an array"); static_assert(( is_standard_layout<value_type>::value), "Character type of basic_string must be standard-layout"); static_assert(( is_trivial<value_type>::value), "Character type of basic_string must be trivial"); static_assert(( is_same<_CharT, typename traits_type::char_type>::value), "traits_type::char_type must be the same type as CharT"); static_assert(( is_same<typename allocator_type::value_type, value_type>::value), "Allocator::value_type must be same type as value_type"); typedef __wrap_iter<pointer> iterator; typedef __wrap_iter<const_pointer> const_iterator; typedef std::__1::reverse_iterator<iterator> reverse_iterator; typedef std::__1::reverse_iterator<const_iterator> const_reverse_iterator; private: # 735 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 struct __long { size_type __cap_; size_type __size_; pointer __data_; }; static const size_type __short_mask = 0x01; static const size_type __long_mask = 0x1ul; enum {__min_cap = (sizeof(__long) - 1)/sizeof(value_type) > 2 ? (sizeof(__long) - 1)/sizeof(value_type) : 2}; struct __short { union { unsigned char __size_; value_type __lx; }; value_type __data_[__min_cap]; }; union __ulx{__long __lx; __short __lxx;}; enum {__n_words = sizeof(__ulx) / sizeof(size_type)}; struct __raw { size_type __words[__n_words]; }; struct __rep { union { __long __l; __short __s; __raw __r; }; }; __compressed_pair<__rep, allocator_type> __r_; public: static const size_type npos = -1; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string() noexcept(is_nothrow_default_constructible<allocator_type>::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_string(const allocator_type& __a) noexcept; basic_string(const basic_string& __str); basic_string(const basic_string& __str, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(basic_string&& __str) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(basic_string&& __str, const allocator_type& __a); template <class = typename enable_if<__is_allocator<_Allocator>::value, nullptr_t>::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(const _CharT* __s) { ((void)0); __init(__s, traits_type::length(__s)); } template <class = typename enable_if<__is_allocator<_Allocator>::value, nullptr_t>::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(const _CharT* __s, const _Allocator& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(const _CharT* __s, size_type __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(const _CharT* __s, size_type __n, const _Allocator& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(size_type __n, _CharT __c); template <class = typename enable_if<__is_allocator<_Allocator>::value, nullptr_t>::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(size_type __n, _CharT __c, const _Allocator& __a); basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Allocator& __a = _Allocator()); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(const basic_string& __str, size_type __pos, const _Allocator& __a = _Allocator()); template<class _Tp, class = typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type> inline __attribute__ ((__visibility__("hidden"))) basic_string(const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a = allocator_type()); template<class _Tp, class = typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type> inline __attribute__ ((__visibility__("hidden"))) explicit basic_string(const _Tp& __t); template<class _Tp, class = typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type> inline __attribute__ ((__visibility__("hidden"))) explicit basic_string(const _Tp& __t, const allocator_type& __a); template<class _InputIterator, class = typename enable_if<__is_input_iterator<_InputIterator>::value>::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(_InputIterator __first, _InputIterator __last); template<class _InputIterator, class = typename enable_if<__is_input_iterator<_InputIterator>::value>::type> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(initializer_list<_CharT> __il); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string(initializer_list<_CharT> __il, const _Allocator& __a); inline ~basic_string(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator __self_view() const noexcept { return __self_view(data(), size()); } basic_string& operator=(const basic_string& __str); template <class _Tp, class = typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type> basic_string& operator=(const _Tp& __t) {__self_view __sv = __t; return assign(__sv);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator=(basic_string&& __str) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator=(const value_type* __s) {return assign(__s);} basic_string& operator=(value_type __c); # 913 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator begin() noexcept {return iterator(__get_pointer());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator begin() const noexcept {return const_iterator(__get_pointer());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator end() noexcept {return iterator(__get_pointer() + size());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator end() const noexcept {return const_iterator(__get_pointer() + size());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rbegin() noexcept {return reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rbegin() const noexcept {return const_reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rend() noexcept {return reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rend() const noexcept {return const_reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cbegin() const noexcept {return begin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cend() const noexcept {return end();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crbegin() const noexcept {return rbegin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crend() const noexcept {return rend();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type size() const noexcept {return __is_long() ? __get_long_size() : __get_short_size();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type length() const noexcept {return size();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type max_size() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type capacity() const noexcept {return (__is_long() ? __get_long_cap() : static_cast<size_type>(__min_cap)) - 1;} void resize(size_type __n, value_type __c); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void resize(size_type __n) {resize(__n, value_type());} void reserve(size_type __res_arg); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __resize_default_init(size_type __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void reserve() noexcept {reserve(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void shrink_to_fit() noexcept {reserve();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool empty() const noexcept {return size() == 0;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference operator[](size_type __pos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator[](size_type __pos) noexcept; const_reference at(size_type __n) const; reference at(size_type __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator+=(const basic_string& __str) {return append(__str);} template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type operator+=(const _Tp& __t) {__self_view __sv = __t; return append(__sv);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator+=(const value_type* __s) {return append(__s);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator+=(value_type __c) {push_back(__c); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& operator+=(initializer_list<value_type> __il) {return append(__il);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& append(const basic_string& __str); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type append(const _Tp& __t) { __self_view __sv = __t; return append(__sv.data(), __sv.size()); } basic_string& append(const basic_string& __str, size_type __pos, size_type __n=npos); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type append(const _Tp& __t, size_type __pos, size_type __n=npos); basic_string& append(const value_type* __s, size_type __n); basic_string& append(const value_type* __s); basic_string& append(size_type __n, value_type __c); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __append_default_init(size_type __n); template <class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) basic_string& __append_forward_unsafe(_ForwardIterator, _ForwardIterator); template<class _InputIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_exactly_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, basic_string& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) append(_InputIterator __first, _InputIterator __last) { const basic_string __temp (__first, __last, __alloc()); append(__temp.data(), __temp.size()); return *this; } template<class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, basic_string& >::type __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) append(_ForwardIterator __first, _ForwardIterator __last) { return __append_forward_unsafe(__first, __last); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& append(initializer_list<value_type> __il) {return append(__il.begin(), __il.size());} void push_back(value_type __c); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_back(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference front() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference front() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference back() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference back() const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type assign(const _Tp & __t) { __self_view __sv = __t; return assign(__sv.data(), __sv.size()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& assign(const basic_string& __str) { return *this = __str; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& assign(basic_string&& __str) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) {*this = std::__1::move(__str); return *this;} basic_string& assign(const basic_string& __str, size_type __pos, size_type __n=npos); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type assign(const _Tp & __t, size_type __pos, size_type __n=npos); basic_string& assign(const value_type* __s, size_type __n); basic_string& assign(const value_type* __s); basic_string& assign(size_type __n, value_type __c); template<class _InputIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_exactly_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, basic_string& >::type assign(_InputIterator __first, _InputIterator __last); template<class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, basic_string& >::type assign(_ForwardIterator __first, _ForwardIterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& assign(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& insert(size_type __pos1, const basic_string& __str); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type insert(size_type __pos1, const _Tp& __t) { __self_view __sv = __t; return insert(__pos1, __sv.data(), __sv.size()); } template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type insert(size_type __pos1, const _Tp& __t, size_type __pos2, size_type __n=npos); basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n=npos); basic_string& insert(size_type __pos, const value_type* __s, size_type __n); basic_string& insert(size_type __pos, const value_type* __s); basic_string& insert(size_type __pos, size_type __n, value_type __c); iterator insert(const_iterator __pos, value_type __c); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator insert(const_iterator __pos, size_type __n, value_type __c); template<class _InputIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_exactly_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, iterator >::type insert(const_iterator __pos, _InputIterator __first, _InputIterator __last); template<class _ForwardIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, iterator >::type insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator insert(const_iterator __pos, initializer_list<value_type> __il) {return insert(__pos, __il.begin(), __il.end());} basic_string& erase(size_type __pos = 0, size_type __n = npos); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator erase(const_iterator __pos); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator erase(const_iterator __first, const_iterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type replace(size_type __pos1, size_type __n1, const _Tp& __t) { __self_view __sv = __t; return replace(__pos1, __n1, __sv.data(), __sv.size()); } basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type replace(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos); basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2); basic_string& replace(size_type __pos, size_type __n1, const value_type* __s); basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_string& __str); template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string& >::type replace(const_iterator __i1, const_iterator __i2, const _Tp& __t) { __self_view __sv = __t; return replace(__i1 - begin(), __i2 - __i1, __sv); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c); template<class _InputIterator> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __is_input_iterator<_InputIterator>::value, basic_string& >::type replace(const_iterator __i1, const_iterator __i2, _InputIterator __j1, _InputIterator __j2); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string& replace(const_iterator __i1, const_iterator __i2, initializer_list<value_type> __il) {return replace(__i1, __i2, __il.begin(), __il.end());} size_type copy(value_type* __s, size_type __n, size_type __pos = 0) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string substr(size_type __pos = 0, size_type __n = npos) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_string& __str) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const value_type* c_str() const noexcept {return data();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const value_type* data() const noexcept {return std::__1::__to_raw_pointer(__get_pointer());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) value_type* data() noexcept {return std::__1::__to_raw_pointer(__get_pointer());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator_type get_allocator() const noexcept {return __alloc();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find(const basic_string& __str, size_type __pos = 0) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, size_type >::type find(const _Tp& __t, size_type __pos = 0) const; size_type find(const value_type* __s, size_type __pos, size_type __n) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find(const value_type* __s, size_type __pos = 0) const noexcept; size_type find(value_type __c, size_type __pos = 0) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type rfind(const basic_string& __str, size_type __pos = npos) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, size_type >::type rfind(const _Tp& __t, size_type __pos = npos) const; size_type rfind(const value_type* __s, size_type __pos, size_type __n) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type rfind(const value_type* __s, size_type __pos = npos) const noexcept; size_type rfind(value_type __c, size_type __pos = npos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(const basic_string& __str, size_type __pos = 0) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, size_type >::type find_first_of(const _Tp& __t, size_type __pos = 0) const; size_type find_first_of(const value_type* __s, size_type __pos, size_type __n) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(const value_type* __s, size_type __pos = 0) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_of(value_type __c, size_type __pos = 0) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(const basic_string& __str, size_type __pos = npos) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, size_type >::type find_last_of(const _Tp& __t, size_type __pos = npos) const; size_type find_last_of(const value_type* __s, size_type __pos, size_type __n) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(const value_type* __s, size_type __pos = npos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_of(value_type __c, size_type __pos = npos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, size_type >::type find_first_not_of(const _Tp &__t, size_type __pos = 0) const; size_type find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(const value_type* __s, size_type __pos = 0) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_first_not_of(value_type __c, size_type __pos = 0) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, size_type >::type find_last_not_of(const _Tp& __t, size_type __pos = npos) const; size_type find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(const value_type* __s, size_type __pos = npos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type find_last_not_of(value_type __c, size_type __pos = npos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(const basic_string& __str) const noexcept; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, int >::type compare(const _Tp &__t) const; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, int >::type compare(size_type __pos1, size_type __n1, const _Tp& __t) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(size_type __pos1, size_type __n1, const basic_string& __str) const; int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const; template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, int >::type compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos) const; int compare(const value_type* __s) const noexcept; int compare(size_type __pos1, size_type __n1, const value_type* __s) const; int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const; # 1420 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __invariants() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __clear_and_shrink() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __is_long() const noexcept {return bool(__r_.first().__s.__size_ & __short_mask);} # 1437 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator_type& __alloc() noexcept {return __r_.second();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const allocator_type& __alloc() const noexcept {return __r_.second();} # 1465 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set_short_size(size_type __s) noexcept {__r_.first().__s.__size_ = (unsigned char)(__s << 1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __get_short_size() const noexcept {return __r_.first().__s.__size_ >> 1;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set_long_size(size_type __s) noexcept {__r_.first().__l.__size_ = __s;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __get_long_size() const noexcept {return __r_.first().__l.__size_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set_size(size_type __s) noexcept {if (__is_long()) __set_long_size(__s); else __set_short_size(__s);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set_long_cap(size_type __s) noexcept {__r_.first().__l.__cap_ = __long_mask | __s;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __get_long_cap() const noexcept {return __r_.first().__l.__cap_ & size_type(~__long_mask);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __set_long_pointer(pointer __p) noexcept {__r_.first().__l.__data_ = __p;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer __get_long_pointer() noexcept {return __r_.first().__l.__data_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_pointer __get_long_pointer() const noexcept {return __r_.first().__l.__data_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer __get_short_pointer() noexcept {return pointer_traits<pointer>::pointer_to(__r_.first().__s.__data_[0]);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_pointer __get_short_pointer() const noexcept {return pointer_traits<const_pointer>::pointer_to(__r_.first().__s.__data_[0]);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer __get_pointer() noexcept {return __is_long() ? __get_long_pointer() : __get_short_pointer();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_pointer __get_pointer() const noexcept {return __is_long() ? __get_long_pointer() : __get_short_pointer();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __zero() noexcept { size_type (&__a)[__n_words] = __r_.first().__r.__words; for (unsigned __i = 0; __i < __n_words; ++__i) __a[__i] = 0; } template <size_type __a> static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __align_it(size_type __s) noexcept {return (__s + (__a-1)) & ~(__a-1);} enum {__alignment = 16}; static __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __recommend(size_type __s) noexcept { if (__s < __min_cap) return static_cast<size_type>(__min_cap) - 1; size_type __guess = __align_it<sizeof(value_type) < __alignment ? __alignment/sizeof(value_type) : 1 > (__s+1) - 1; if (__guess == __min_cap) ++__guess; return __guess; } inline void __init(const value_type* __s, size_type __sz, size_type __reserve); inline void __init(const value_type* __s, size_type __sz); inline void __init(size_type __n, value_type __c); template <class _InputIterator> inline typename enable_if < __is_exactly_input_iterator<_InputIterator>::value, void >::type __init(_InputIterator __first, _InputIterator __last); template <class _ForwardIterator> inline typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type __init(_ForwardIterator __first, _ForwardIterator __last); void __grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz, size_type __n_copy, size_type __n_del, size_type __n_add = 0); void __grow_by_and_replace(size_type __old_cap, size_type __delta_cap, size_type __old_sz, size_type __n_copy, size_type __n_del, size_type __n_add, const value_type* __p_new_stuff); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __erase_to_end(size_type __pos); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const basic_string& __str) {__copy_assign_alloc(__str, integral_constant<bool, __alloc_traits::propagate_on_container_copy_assignment::value>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const basic_string& __str, true_type) { if (__alloc() == __str.__alloc()) __alloc() = __str.__alloc(); else { if (!__str.__is_long()) { __clear_and_shrink(); __alloc() = __str.__alloc(); } else { allocator_type __a = __str.__alloc(); pointer __p = __alloc_traits::allocate(__a, __str.__get_long_cap()); __clear_and_shrink(); __alloc() = std::__1::move(__a); __set_long_pointer(__p); __set_long_cap(__str.__get_long_cap()); __set_long_size(__str.size()); } } } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const basic_string&, false_type) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign(basic_string& __str, false_type) noexcept(__alloc_traits::is_always_equal::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign(basic_string& __str, true_type) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(basic_string& __str) noexcept(!__alloc_traits::propagate_on_container_move_assignment::value || is_nothrow_move_assignable<allocator_type>::value) {__move_assign_alloc(__str, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(basic_string& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value) { __alloc() = std::__1::move(__c.__alloc()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(basic_string&, false_type) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __invalidate_all_iterators(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __invalidate_iterators_past(size_type); friend basic_string operator+<>(const basic_string&, const basic_string&); friend basic_string operator+<>(const value_type*, const basic_string&); friend basic_string operator+<>(value_type, const basic_string&); friend basic_string operator+<>(const basic_string&, const value_type*); friend basic_string operator+<>(const basic_string&, value_type); }; template<class _InputIterator, class _CharT = typename iterator_traits<_InputIterator>::value_type, class _Allocator = allocator<_CharT>, class = typename enable_if<__is_input_iterator<_InputIterator>::value, void>::type, class = typename enable_if<__is_allocator<_Allocator>::value, void>::type > basic_string(_InputIterator, _InputIterator, _Allocator = _Allocator()) -> basic_string<_CharT, char_traits<_CharT>, _Allocator>; template<class _CharT, class _Traits, class _Allocator = allocator<_CharT>, class = typename enable_if<__is_allocator<_Allocator>::value, void>::type > explicit basic_string(basic_string_view<_CharT, _Traits>, const _Allocator& = _Allocator()) -> basic_string<_CharT, _Traits, _Allocator>; template<class _CharT, class _Traits, class _Allocator = allocator<_CharT>, class = typename enable_if<__is_allocator<_Allocator>::value, void>::type, class _Sz = typename allocator_traits<_Allocator>::size_type > basic_string(basic_string_view<_CharT, _Traits>, _Sz, _Sz, const _Allocator& = _Allocator()) -> basic_string<_CharT, _Traits, _Allocator>; template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__invalidate_all_iterators() { } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type ) { # 1724 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string() noexcept(is_nothrow_default_constructible<allocator_type>::value) { __zero(); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a) noexcept : __r_(__second_tag(), __a) { __zero(); } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz, size_type __reserve) { if (__reserve > max_size()) this->__throw_length_error(); pointer __p; if (__reserve < __min_cap) { __set_short_size(__sz); __p = __get_short_pointer(); } else { size_type __cap = __recommend(__reserve); __p = __alloc_traits::allocate(__alloc(), __cap+1); __set_long_pointer(__p); __set_long_cap(__cap+1); __set_long_size(__sz); } traits_type::copy(std::__1::__to_raw_pointer(__p), __s, __sz); traits_type::assign(__p[__sz], value_type()); } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz) { if (__sz > max_size()) this->__throw_length_error(); pointer __p; if (__sz < __min_cap) { __set_short_size(__sz); __p = __get_short_pointer(); } else { size_type __cap = __recommend(__sz); __p = __alloc_traits::allocate(__alloc(), __cap+1); __set_long_pointer(__p); __set_long_cap(__cap+1); __set_long_size(__sz); } traits_type::copy(std::__1::__to_raw_pointer(__p), __s, __sz); traits_type::assign(__p[__sz], value_type()); } template <class _CharT, class _Traits, class _Allocator> template <class> basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const _Allocator& __a) : __r_(__second_tag(), __a) { ((void)0); __init(__s, traits_type::length(__s)); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n) { ((void)0); __init(__s, __n); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n, const _Allocator& __a) : __r_(__second_tag(), __a) { ((void)0); __init(__s, __n); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str) : __r_(__second_tag(), __alloc_traits::select_on_container_copy_construction(__str.__alloc())) { if (!__str.__is_long()) __r_.first().__r = __str.__r_.first().__r; else __init(std::__1::__to_raw_pointer(__str.__get_long_pointer()), __str.__get_long_size()); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>::basic_string( const basic_string& __str, const allocator_type& __a) : __r_(__second_tag(), __a) { if (!__str.__is_long()) __r_.first().__r = __str.__r_.first().__r; else __init(std::__1::__to_raw_pointer(__str.__get_long_pointer()), __str.__get_long_size()); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str) noexcept : __r_(std::__1::move(__str.__r_)) { __str.__zero(); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, const allocator_type& __a) : __r_(__second_tag(), __a) { if (__str.__is_long() && __a != __str.__alloc()) __init(std::__1::__to_raw_pointer(__str.__get_long_pointer()), __str.__get_long_size()); else { __r_.first().__r = __str.__r_.first().__r; __str.__zero(); } } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c) { if (__n > max_size()) this->__throw_length_error(); pointer __p; if (__n < __min_cap) { __set_short_size(__n); __p = __get_short_pointer(); } else { size_type __cap = __recommend(__n); __p = __alloc_traits::allocate(__alloc(), __cap+1); __set_long_pointer(__p); __set_long_cap(__cap+1); __set_long_size(__n); } traits_type::assign(std::__1::__to_raw_pointer(__p), __n, __c); traits_type::assign(__p[__n], value_type()); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c) { __init(__n, __c); } template <class _CharT, class _Traits, class _Allocator> template <class> basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c, const _Allocator& __a) : __r_(__second_tag(), __a) { __init(__n, __c); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Allocator& __a) : __r_(__second_tag(), __a) { size_type __str_sz = __str.size(); if (__pos > __str_sz) this->__throw_out_of_range(); __init(__str.data() + __pos, std::__1::min(__n, __str_sz - __pos)); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos, const _Allocator& __a) : __r_(__second_tag(), __a) { size_type __str_sz = __str.size(); if (__pos > __str_sz) this->__throw_out_of_range(); __init(__str.data() + __pos, __str_sz - __pos); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp, class> basic_string<_CharT, _Traits, _Allocator>::basic_string( const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a) : __r_(__second_tag(), __a) { __self_view __sv0 = __t; __self_view __sv = __sv0.substr(__pos, __n); __init(__sv.data(), __sv.size()); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp, class> basic_string<_CharT, _Traits, _Allocator>::basic_string(const _Tp & __t) { __self_view __sv = __t; __init(__sv.data(), __sv.size()); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp, class> basic_string<_CharT, _Traits, _Allocator>::basic_string(const _Tp & __t, const _Allocator& __a) : __r_(__second_tag(), __a) { __self_view __sv = __t; __init(__sv.data(), __sv.size()); } template <class _CharT, class _Traits, class _Allocator> template <class _InputIterator> typename enable_if < __is_exactly_input_iterator<_InputIterator>::value, void >::type basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _InputIterator __last) { __zero(); for (; __first != __last; ++__first) push_back(*__first); # 2046 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 } template <class _CharT, class _Traits, class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _ForwardIterator __last) { size_type __sz = static_cast<size_type>(std::__1::distance(__first, __last)); if (__sz > max_size()) this->__throw_length_error(); pointer __p; if (__sz < __min_cap) { __set_short_size(__sz); __p = __get_short_pointer(); } else { size_type __cap = __recommend(__sz); __p = __alloc_traits::allocate(__alloc(), __cap+1); __set_long_pointer(__p); __set_long_cap(__cap+1); __set_long_size(__sz); } for (; __first != __last; ++__first, (void) ++__p) traits_type::assign(*__p, *__first); traits_type::assign(*__p, value_type()); } template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator, class> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last) { __init(__first, __last); } template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator, class> inline basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a) : __r_(__second_tag(), __a) { __init(__first, __last); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string( initializer_list<_CharT> __il) { __init(__il.begin(), __il.end()); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>::basic_string( initializer_list<_CharT> __il, const _Allocator& __a) : __r_(__second_tag(), __a) { __init(__il.begin(), __il.end()); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>::~basic_string() { if (__is_long()) __alloc_traits::deallocate(__alloc(), __get_long_pointer(), __get_long_cap()); } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::__grow_by_and_replace (size_type __old_cap, size_type __delta_cap, size_type __old_sz, size_type __n_copy, size_type __n_del, size_type __n_add, const value_type* __p_new_stuff) { size_type __ms = max_size(); if (__delta_cap > __ms - __old_cap - 1) this->__throw_length_error(); pointer __old_p = __get_pointer(); size_type __cap = __old_cap < __ms / 2 - __alignment ? __recommend(std::__1::max(__old_cap + __delta_cap, 2 * __old_cap)) : __ms - 1; pointer __p = __alloc_traits::allocate(__alloc(), __cap+1); __invalidate_all_iterators(); if (__n_copy != 0) traits_type::copy(std::__1::__to_raw_pointer(__p), std::__1::__to_raw_pointer(__old_p), __n_copy); if (__n_add != 0) traits_type::copy(std::__1::__to_raw_pointer(__p) + __n_copy, __p_new_stuff, __n_add); size_type __sec_cp_sz = __old_sz - __n_del - __n_copy; if (__sec_cp_sz != 0) traits_type::copy(std::__1::__to_raw_pointer(__p) + __n_copy + __n_add, std::__1::__to_raw_pointer(__old_p) + __n_copy + __n_del, __sec_cp_sz); if (__old_cap+1 != __min_cap) __alloc_traits::deallocate(__alloc(), __old_p, __old_cap+1); __set_long_pointer(__p); __set_long_cap(__cap+1); __old_sz = __n_copy + __n_add + __sec_cp_sz; __set_long_size(__old_sz); traits_type::assign(__p[__old_sz], value_type()); } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::__grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz, size_type __n_copy, size_type __n_del, size_type __n_add) { size_type __ms = max_size(); if (__delta_cap > __ms - __old_cap) this->__throw_length_error(); pointer __old_p = __get_pointer(); size_type __cap = __old_cap < __ms / 2 - __alignment ? __recommend(std::__1::max(__old_cap + __delta_cap, 2 * __old_cap)) : __ms - 1; pointer __p = __alloc_traits::allocate(__alloc(), __cap+1); __invalidate_all_iterators(); if (__n_copy != 0) traits_type::copy(std::__1::__to_raw_pointer(__p), std::__1::__to_raw_pointer(__old_p), __n_copy); size_type __sec_cp_sz = __old_sz - __n_del - __n_copy; if (__sec_cp_sz != 0) traits_type::copy(std::__1::__to_raw_pointer(__p) + __n_copy + __n_add, std::__1::__to_raw_pointer(__old_p) + __n_copy + __n_del, __sec_cp_sz); if (__old_cap+1 != __min_cap) __alloc_traits::deallocate(__alloc(), __old_p, __old_cap+1); __set_long_pointer(__p); __set_long_cap(__cap+1); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s, size_type __n) { ((void)0); size_type __cap = capacity(); if (__cap >= __n) { value_type* __p = std::__1::__to_raw_pointer(__get_pointer()); traits_type::move(__p, __s, __n); traits_type::assign(__p[__n], value_type()); __set_size(__n); __invalidate_iterators_past(__n); } else { size_type __sz = size(); __grow_by_and_replace(__cap, __n - __cap, __sz, 0, __sz, __n, __s); } return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c) { size_type __cap = capacity(); if (__cap < __n) { size_type __sz = size(); __grow_by(__cap, __n - __cap, __sz, 0, __sz); } else __invalidate_iterators_past(__n); value_type* __p = std::__1::__to_raw_pointer(__get_pointer()); traits_type::assign(__p, __n, __c); traits_type::assign(__p[__n], value_type()); __set_size(__n); return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c) { pointer __p; if (__is_long()) { __p = __get_long_pointer(); __set_long_size(1); } else { __p = __get_short_pointer(); __set_short_size(1); } traits_type::assign(*__p, __c); traits_type::assign(*++__p, value_type()); __invalidate_iterators_past(1); return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str) { if (this != &__str) { __copy_assign_alloc(__str); assign(__str.data(), __str.size()); } return *this; } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, false_type) noexcept(__alloc_traits::is_always_equal::value) { if (__alloc() != __str.__alloc()) assign(__str); else __move_assign(__str, true_type()); } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, true_type) noexcept { __clear_and_shrink(); __r_.first() = __str.__r_.first(); __move_assign_alloc(__str); __str.__zero(); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::operator=(basic_string&& __str) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) { __move_assign(__str, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>()); return *this; } template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator> typename enable_if < __is_exactly_input_iterator <_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::assign(_InputIterator __first, _InputIterator __last) { const basic_string __temp(__first, __last, __alloc()); assign(__temp.data(), __temp.size()); return *this; } template <class _CharT, class _Traits, class _Allocator> template<class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last) { size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); size_type __cap = capacity(); if (__cap < __n) { size_type __sz = size(); __grow_by(__cap, __n - __cap, __sz, 0, __sz); } else __invalidate_iterators_past(__n); pointer __p = __get_pointer(); for (; __first != __last; ++__first, ++__p) traits_type::assign(*__p, *__first); traits_type::assign(*__p, value_type()); __set_size(__n); return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::assign(const basic_string& __str, size_type __pos, size_type __n) { size_type __sz = __str.size(); if (__pos > __sz) this->__throw_out_of_range(); return assign(__str.data() + __pos, std::__1::min(__n, __sz - __pos)); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::assign(const _Tp & __t, size_type __pos, size_type __n) { __self_view __sv = __t; size_type __sz = __sv.size(); if (__pos > __sz) this->__throw_out_of_range(); return assign(__sv.data() + __pos, std::__1::min(__n, __sz - __pos)); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s) { ((void)0); return assign(__s, traits_type::length(__s)); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s, size_type __n) { ((void)0); size_type __cap = capacity(); size_type __sz = size(); if (__cap - __sz >= __n) { if (__n) { value_type* __p = std::__1::__to_raw_pointer(__get_pointer()); traits_type::copy(__p + __sz, __s, __n); __sz += __n; __set_size(__sz); traits_type::assign(__p[__sz], value_type()); } } else __grow_by_and_replace(__cap, __sz + __n - __cap, __sz, __sz, 0, __n, __s); return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::append(size_type __n, value_type __c) { if (__n) { size_type __cap = capacity(); size_type __sz = size(); if (__cap - __sz < __n) __grow_by(__cap, __sz + __n - __cap, __sz, __sz, 0); pointer __p = __get_pointer(); traits_type::assign(std::__1::__to_raw_pointer(__p) + __sz, __n, __c); __sz += __n; __set_size(__sz); traits_type::assign(__p[__sz], value_type()); } return *this; } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__append_default_init(size_type __n) { if (__n) { size_type __cap = capacity(); size_type __sz = size(); if (__cap - __sz < __n) __grow_by(__cap, __sz + __n - __cap, __sz, __sz, 0); pointer __p = __get_pointer(); __sz += __n; __set_size(__sz); traits_type::assign(__p[__sz], value_type()); } } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::push_back(value_type __c) { bool __is_short = !__is_long(); size_type __cap; size_type __sz; if (__is_short) { __cap = __min_cap - 1; __sz = __get_short_size(); } else { __cap = __get_long_cap() - 1; __sz = __get_long_size(); } if (__sz == __cap) { __grow_by(__cap, 1, __sz, __sz, 0); __is_short = !__is_long(); } pointer __p; if (__is_short) { __p = __get_short_pointer() + __sz; __set_short_size(__sz+1); } else { __p = __get_long_pointer() + __sz; __set_long_size(__sz+1); } traits_type::assign(*__p, __c); traits_type::assign(*++__p, value_type()); } template <class _Tp> bool __ptr_in_range (const _Tp* __p, const _Tp* __first, const _Tp* __last) { return __first <= __p && __p < __last; } template <class _Tp1, class _Tp2> bool __ptr_in_range (const _Tp1*, const _Tp2*, const _Tp2*) { return false; } template <class _CharT, class _Traits, class _Allocator> template<class _ForwardIterator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::__append_forward_unsafe( _ForwardIterator __first, _ForwardIterator __last) { static_assert(__is_forward_iterator<_ForwardIterator>::value, "function requires a ForwardIterator"); size_type __sz = size(); size_type __cap = capacity(); size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); if (__n) { typedef typename iterator_traits<_ForwardIterator>::reference _CharRef; _CharRef __tmp_ref = *__first; if (__ptr_in_range(std::__1::addressof(__tmp_ref), data(), data() + size())) { const basic_string __temp (__first, __last, __alloc()); append(__temp.data(), __temp.size()); } else { if (__cap - __sz < __n) __grow_by(__cap, __sz + __n - __cap, __sz, __sz, 0); pointer __p = __get_pointer() + __sz; for (; __first != __last; ++__p, ++__first) traits_type::assign(*__p, *__first); traits_type::assign(*__p, value_type()); __set_size(__sz + __n); } } return *this; } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::append(const basic_string& __str) { return append(__str.data(), __str.size()); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::append(const basic_string& __str, size_type __pos, size_type __n) { size_type __sz = __str.size(); if (__pos > __sz) this->__throw_out_of_range(); return append(__str.data() + __pos, std::__1::min(__n, __sz - __pos)); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::append(const _Tp & __t, size_type __pos, size_type __n) { __self_view __sv = __t; size_type __sz = __sv.size(); if (__pos > __sz) this->__throw_out_of_range(); return append(__sv.data() + __pos, std::__1::min(__n, __sz - __pos)); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s) { ((void)0); return append(__s, traits_type::length(__s)); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s, size_type __n) { ((void)0); size_type __sz = size(); if (__pos > __sz) this->__throw_out_of_range(); size_type __cap = capacity(); if (__cap - __sz >= __n) { if (__n) { value_type* __p = std::__1::__to_raw_pointer(__get_pointer()); size_type __n_move = __sz - __pos; if (__n_move != 0) { if (__p + __pos <= __s && __s < __p + __sz) __s += __n; traits_type::move(__p + __pos + __n, __p + __pos, __n_move); } traits_type::move(__p + __pos, __s, __n); __sz += __n; __set_size(__sz); traits_type::assign(__p[__sz], value_type()); } } else __grow_by_and_replace(__cap, __sz + __n - __cap, __sz, __pos, 0, __n, __s); return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, size_type __n, value_type __c) { size_type __sz = size(); if (__pos > __sz) this->__throw_out_of_range(); if (__n) { size_type __cap = capacity(); value_type* __p; if (__cap - __sz >= __n) { __p = std::__1::__to_raw_pointer(__get_pointer()); size_type __n_move = __sz - __pos; if (__n_move != 0) traits_type::move(__p + __pos + __n, __p + __pos, __n_move); } else { __grow_by(__cap, __sz + __n - __cap, __sz, __pos, 0, __n); __p = std::__1::__to_raw_pointer(__get_long_pointer()); } traits_type::assign(__p + __pos, __n, __c); __sz += __n; __set_size(__sz); traits_type::assign(__p[__sz], value_type()); } return *this; } template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator> typename enable_if < __is_exactly_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, typename basic_string<_CharT, _Traits, _Allocator>::iterator >::type basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _InputIterator __first, _InputIterator __last) { const basic_string __temp(__first, __last, __alloc()); return insert(__pos, __temp.data(), __temp.data() + __temp.size()); } template <class _CharT, class _Traits, class _Allocator> template<class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, typename basic_string<_CharT, _Traits, _Allocator>::iterator >::type basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last) { size_type __ip = static_cast<size_type>(__pos - begin()); size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); if (__n) { typedef typename iterator_traits<_ForwardIterator>::reference _CharRef; _CharRef __tmp_char = *__first; if (__ptr_in_range(std::__1::addressof(__tmp_char), data(), data() + size())) { const basic_string __temp(__first, __last, __alloc()); return insert(__pos, __temp.data(), __temp.data() + __temp.size()); } size_type __sz = size(); size_type __cap = capacity(); value_type* __p; if (__cap - __sz >= __n) { __p = std::__1::__to_raw_pointer(__get_pointer()); size_type __n_move = __sz - __ip; if (__n_move != 0) traits_type::move(__p + __ip + __n, __p + __ip, __n_move); } else { __grow_by(__cap, __sz + __n - __cap, __sz, __ip, 0, __n); __p = std::__1::__to_raw_pointer(__get_long_pointer()); } __sz += __n; __set_size(__sz); traits_type::assign(__p[__sz], value_type()); for (__p += __ip; __first != __last; ++__p, ++__first) traits_type::assign(*__p, *__first); } return begin() + __ip; } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const basic_string& __str) { return insert(__pos1, __str.data(), __str.size()); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n) { size_type __str_sz = __str.size(); if (__pos2 > __str_sz) this->__throw_out_of_range(); return insert(__pos1, __str.data() + __pos2, std::__1::min(__n, __str_sz - __pos2)); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const _Tp& __t, size_type __pos2, size_type __n) { __self_view __sv = __t; size_type __str_sz = __sv.size(); if (__pos2 > __str_sz) this->__throw_out_of_range(); return insert(__pos1, __sv.data() + __pos2, std::__1::min(__n, __str_sz - __pos2)); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s) { ((void)0); return insert(__pos, __s, traits_type::length(__s)); } template <class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::iterator basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, value_type __c) { size_type __ip = static_cast<size_type>(__pos - begin()); size_type __sz = size(); size_type __cap = capacity(); value_type* __p; if (__cap == __sz) { __grow_by(__cap, 1, __sz, __ip, 0, 1); __p = std::__1::__to_raw_pointer(__get_long_pointer()); } else { __p = std::__1::__to_raw_pointer(__get_pointer()); size_type __n_move = __sz - __ip; if (__n_move != 0) traits_type::move(__p + __ip + 1, __p + __ip, __n_move); } traits_type::assign(__p[__ip], __c); traits_type::assign(__p[++__sz], value_type()); __set_size(__sz); return begin() + static_cast<difference_type>(__ip); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::iterator basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, size_type __n, value_type __c) { difference_type __p = __pos - begin(); insert(static_cast<size_type>(__p), __n, __c); return begin() + __p; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { ((void)0); size_type __sz = size(); if (__pos > __sz) this->__throw_out_of_range(); __n1 = std::__1::min(__n1, __sz - __pos); size_type __cap = capacity(); if (__cap - __sz + __n1 >= __n2) { value_type* __p = std::__1::__to_raw_pointer(__get_pointer()); if (__n1 != __n2) { size_type __n_move = __sz - __pos - __n1; if (__n_move != 0) { if (__n1 > __n2) { traits_type::move(__p + __pos, __s, __n2); traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move); goto __finish; } if (__p + __pos < __s && __s < __p + __sz) { if (__p + __pos + __n1 <= __s) __s += __n2 - __n1; else { traits_type::move(__p + __pos, __s, __n1); __pos += __n1; __s += __n2; __n2 -= __n1; __n1 = 0; } } traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move); } } traits_type::move(__p + __pos, __s, __n2); __finish: __sz += __n2 - __n1; __set_size(__sz); __invalidate_iterators_past(__sz); traits_type::assign(__p[__sz], value_type()); } else __grow_by_and_replace(__cap, __sz - __n1 + __n2 - __cap, __sz, __pos, __n1, __n2, __s); return *this; } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, size_type __n2, value_type __c) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) { size_type __sz = size(); if (__pos > __sz) this->__throw_out_of_range(); __n1 = std::__1::min(__n1, __sz - __pos); size_type __cap = capacity(); value_type* __p; if (__cap - __sz + __n1 >= __n2) { __p = std::__1::__to_raw_pointer(__get_pointer()); if (__n1 != __n2) { size_type __n_move = __sz - __pos - __n1; if (__n_move != 0) traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move); } } else { __grow_by(__cap, __sz - __n1 + __n2 - __cap, __sz, __pos, __n1, __n2); __p = std::__1::__to_raw_pointer(__get_long_pointer()); } traits_type::assign(__p + __pos, __n2, __c); __sz += __n2 - __n1; __set_size(__sz); __invalidate_iterators_past(__sz); traits_type::assign(__p[__sz], value_type()); return *this; } template <class _CharT, class _Traits, class _Allocator> template<class _InputIterator> typename enable_if < __is_input_iterator<_InputIterator>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, _InputIterator __j1, _InputIterator __j2) { const basic_string __temp(__j1, __j2, __alloc()); return this->replace(__i1, __i2, __temp); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos1, size_type __n1, const basic_string& __str) { return replace(__pos1, __n1, __str.data(), __str.size()); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) { size_type __str_sz = __str.size(); if (__pos2 > __str_sz) this->__throw_out_of_range(); return replace(__pos1, __n1, __str.data() + __pos2, std::__1::min(__n2, __str_sz - __pos2)); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, basic_string<_CharT, _Traits, _Allocator>& >::type basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2) { __self_view __sv = __t; size_type __str_sz = __sv.size(); if (__pos2 > __str_sz) this->__throw_out_of_range(); return replace(__pos1, __n1, __sv.data() + __pos2, std::__1::min(__n2, __str_sz - __pos2)); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, const value_type* __s) { ((void)0); return replace(__pos, __n1, __s, traits_type::length(__s)); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, const basic_string& __str) { return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __str.data(), __str.size()); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n) { return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __s, __n); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, const value_type* __s) { return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __s); } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c) { return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __n, __c); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::erase(size_type __pos, size_type __n) { size_type __sz = size(); if (__pos > __sz) this->__throw_out_of_range(); if (__n) { value_type* __p = std::__1::__to_raw_pointer(__get_pointer()); __n = std::__1::min(__n, __sz - __pos); size_type __n_move = __sz - __pos - __n; if (__n_move != 0) traits_type::move(__p + __pos, __p + __pos + __n, __n_move); __sz -= __n; __set_size(__sz); __invalidate_iterators_past(__sz); traits_type::assign(__p[__sz], value_type()); } return *this; } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::iterator basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __pos) { ((void)0); iterator __b = begin(); size_type __r = static_cast<size_type>(__pos - __b); erase(__r, 1); return __b + static_cast<difference_type>(__r); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::iterator basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __first, const_iterator __last) { ((void)0); iterator __b = begin(); size_type __r = static_cast<size_type>(__first - __b); erase(__r, static_cast<size_type>(__last - __first)); return __b + static_cast<difference_type>(__r); } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::pop_back() { ((void)0); size_type __sz; if (__is_long()) { __sz = __get_long_size() - 1; __set_long_size(__sz); traits_type::assign(*(__get_long_pointer() + __sz), value_type()); } else { __sz = __get_short_size() - 1; __set_short_size(__sz); traits_type::assign(*(__get_short_pointer() + __sz), value_type()); } __invalidate_iterators_past(__sz); } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::clear() noexcept { __invalidate_all_iterators(); if (__is_long()) { traits_type::assign(*__get_long_pointer(), value_type()); __set_long_size(0); } else { traits_type::assign(*__get_short_pointer(), value_type()); __set_short_size(0); } } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__erase_to_end(size_type __pos) { if (__is_long()) { traits_type::assign(*(__get_long_pointer() + __pos), value_type()); __set_long_size(__pos); } else { traits_type::assign(*(__get_short_pointer() + __pos), value_type()); __set_short_size(__pos); } __invalidate_iterators_past(__pos); } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::resize(size_type __n, value_type __c) { size_type __sz = size(); if (__n > __sz) append(__n - __sz, __c); else __erase_to_end(__n); } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__resize_default_init(size_type __n) { size_type __sz = size(); if (__n > __sz) { __append_default_init(__n - __sz); } else __erase_to_end(__n); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::max_size() const noexcept { size_type __m = __alloc_traits::max_size(__alloc()); return __m - __alignment; } template <class _CharT, class _Traits, class _Allocator> void basic_string<_CharT, _Traits, _Allocator>::reserve(size_type __res_arg) { if (__res_arg > max_size()) this->__throw_length_error(); size_type __cap = capacity(); size_type __sz = size(); __res_arg = std::__1::max(__res_arg, __sz); __res_arg = __recommend(__res_arg); if (__res_arg != __cap) { pointer __new_data, __p; bool __was_long, __now_long; if (__res_arg == __min_cap - 1) { __was_long = true; __now_long = false; __new_data = __get_short_pointer(); __p = __get_long_pointer(); } else { if (__res_arg > __cap) __new_data = __alloc_traits::allocate(__alloc(), __res_arg+1); else { __new_data = __alloc_traits::allocate(__alloc(), __res_arg+1); if (__new_data == nullptr) return; } __now_long = true; __was_long = __is_long(); __p = __get_pointer(); } traits_type::copy(std::__1::__to_raw_pointer(__new_data), std::__1::__to_raw_pointer(__p), size()+1); if (__was_long) __alloc_traits::deallocate(__alloc(), __p, __cap+1); if (__now_long) { __set_long_cap(__res_arg+1); __set_long_size(__sz); __set_long_pointer(__new_data); } else __set_short_size(__sz); __invalidate_all_iterators(); } } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::const_reference basic_string<_CharT, _Traits, _Allocator>::operator[](size_type __pos) const noexcept { ((void)0); return *(data() + __pos); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::reference basic_string<_CharT, _Traits, _Allocator>::operator[](size_type __pos) noexcept { ((void)0); return *(__get_pointer() + __pos); } template <class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::const_reference basic_string<_CharT, _Traits, _Allocator>::at(size_type __n) const { if (__n >= size()) this->__throw_out_of_range(); return (*this)[__n]; } template <class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::reference basic_string<_CharT, _Traits, _Allocator>::at(size_type __n) { if (__n >= size()) this->__throw_out_of_range(); return (*this)[__n]; } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::reference basic_string<_CharT, _Traits, _Allocator>::front() noexcept { ((void)0); return *__get_pointer(); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::const_reference basic_string<_CharT, _Traits, _Allocator>::front() const noexcept { ((void)0); return *data(); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::reference basic_string<_CharT, _Traits, _Allocator>::back() noexcept { ((void)0); return *(__get_pointer() + size() - 1); } template <class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::const_reference basic_string<_CharT, _Traits, _Allocator>::back() const noexcept { ((void)0); return *(data() + size() - 1); } template <class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::copy(value_type* __s, size_type __n, size_type __pos) const { size_type __sz = size(); if (__pos > __sz) this->__throw_out_of_range(); size_type __rlen = std::__1::min(__n, __sz - __pos); traits_type::copy(__s, data() + __pos, __rlen); return __rlen; } template <class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator> basic_string<_CharT, _Traits, _Allocator>::substr(size_type __pos, size_type __n) const { return basic_string(*this, __pos, __n, __alloc()); } template <class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::swap(basic_string& __str) noexcept { ((void)0); std::__1::swap(__r_.first(), __str.__r_.first()); __swap_allocator(__alloc(), __str.__alloc()); } template <class _Traits> struct __attribute__ ((__visibility__("hidden"))) __traits_eq { typedef typename _Traits::char_type char_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator()(const char_type& __x, const char_type& __y) noexcept {return _Traits::eq(__x, __y);} }; template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s, size_type __pos, size_type __n) const noexcept { ((void)0); return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str, size_type __pos) const noexcept { return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); } template<class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, typename basic_string<_CharT, _Traits, _Allocator>::size_type >::type basic_string<_CharT, _Traits, _Allocator>::find(const _Tp &__t, size_type __pos) const { __self_view __sv = __t; return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __sv.data(), __pos, __sv.size()); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s, size_type __pos) const noexcept { ((void)0); return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find(value_type __c, size_type __pos) const noexcept { return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s, size_type __pos, size_type __n) const noexcept { ((void)0); return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str, size_type __pos) const noexcept { return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); } template<class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, typename basic_string<_CharT, _Traits, _Allocator>::size_type >::type basic_string<_CharT, _Traits, _Allocator>::rfind(const _Tp& __t, size_type __pos) const { __self_view __sv = __t; return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __sv.data(), __pos, __sv.size()); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s, size_type __pos) const noexcept { ((void)0); return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c, size_type __pos) const noexcept { return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s, size_type __pos, size_type __n) const noexcept { ((void)0); return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str, size_type __pos) const noexcept { return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); } template<class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, typename basic_string<_CharT, _Traits, _Allocator>::size_type >::type basic_string<_CharT, _Traits, _Allocator>::find_first_of(const _Tp& __t, size_type __pos) const { __self_view __sv = __t; return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __sv.data(), __pos, __sv.size()); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s, size_type __pos) const noexcept { ((void)0); return __str_find_first_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c, size_type __pos) const noexcept { return find(__c, __pos); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s, size_type __pos, size_type __n) const noexcept { ((void)0); return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str, size_type __pos) const noexcept { return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); } template<class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, typename basic_string<_CharT, _Traits, _Allocator>::size_type >::type basic_string<_CharT, _Traits, _Allocator>::find_last_of(const _Tp& __t, size_type __pos) const { __self_view __sv = __t; return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __sv.data(), __pos, __sv.size()); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s, size_type __pos) const noexcept { ((void)0); return __str_find_last_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c, size_type __pos) const noexcept { return rfind(__c, __pos); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const noexcept { ((void)0); return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& __str, size_type __pos) const noexcept { return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); } template<class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, typename basic_string<_CharT, _Traits, _Allocator>::size_type >::type basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const _Tp& __t, size_type __pos) const { __self_view __sv = __t; return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __sv.data(), __pos, __sv.size()); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s, size_type __pos) const noexcept { ((void)0); return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c, size_type __pos) const noexcept { return __str_find_first_not_of<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } template<class _CharT, class _Traits, class _Allocator> typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const noexcept { ((void)0); return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& __str, size_type __pos) const noexcept { return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); } template<class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, typename basic_string<_CharT, _Traits, _Allocator>::size_type >::type basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const _Tp& __t, size_type __pos) const { __self_view __sv = __t; return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __sv.data(), __pos, __sv.size()); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s, size_type __pos) const noexcept { ((void)0); return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> inline typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c, size_type __pos) const noexcept { return __str_find_last_not_of<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, int >::type basic_string<_CharT, _Traits, _Allocator>::compare(const _Tp& __t) const { __self_view __sv = __t; size_t __lhs_sz = size(); size_t __rhs_sz = __sv.size(); int __result = traits_type::compare(data(), __sv.data(), std::__1::min(__lhs_sz, __rhs_sz)); if (__result != 0) return __result; if (__lhs_sz < __rhs_sz) return -1; if (__lhs_sz > __rhs_sz) return 1; return 0; } template <class _CharT, class _Traits, class _Allocator> inline int basic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const noexcept { return compare(__self_view(__str)); } template <class _CharT, class _Traits, class _Allocator> int basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const { ((void)0); size_type __sz = size(); if (__pos1 > __sz || __n2 == npos) this->__throw_out_of_range(); size_type __rlen = std::__1::min(__n1, __sz - __pos1); int __r = traits_type::compare(data() + __pos1, __s, std::__1::min(__rlen, __n2)); if (__r == 0) { if (__rlen < __n2) __r = -1; else if (__rlen > __n2) __r = 1; } return __r; } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, int >::type basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const _Tp& __t) const { __self_view __sv = __t; return compare(__pos1, __n1, __sv.data(), __sv.size()); } template <class _CharT, class _Traits, class _Allocator> inline int basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const basic_string& __str) const { return compare(__pos1, __n1, __str.data(), __str.size()); } template <class _CharT, class _Traits, class _Allocator> template <class _Tp> typename enable_if < __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, int >::type basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2) const { __self_view __sv = __t; return __self_view(*this).substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2)); } template <class _CharT, class _Traits, class _Allocator> int basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const { return compare(__pos1, __n1, __self_view(__str), __pos2, __n2); } template <class _CharT, class _Traits, class _Allocator> int basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const noexcept { ((void)0); return compare(0, npos, __s, traits_type::length(__s)); } template <class _CharT, class _Traits, class _Allocator> int basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1, size_type __n1, const value_type* __s) const { ((void)0); return compare(__pos1, __n1, __s, traits_type::length(__s)); } template<class _CharT, class _Traits, class _Allocator> inline bool basic_string<_CharT, _Traits, _Allocator>::__invariants() const { if (size() > capacity()) return false; if (capacity() < __min_cap - 1) return false; if (data() == 0) return false; if (data()[size()] != value_type(0)) return false; return true; } template<class _CharT, class _Traits, class _Allocator> inline void basic_string<_CharT, _Traits, _Allocator>::__clear_and_shrink() noexcept { clear(); if(__is_long()) { __alloc_traits::deallocate(__alloc(), __get_long_pointer(), capacity() + 1); __set_long_cap(0); __set_short_size(0); } } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { size_t __lhs_sz = __lhs.size(); return __lhs_sz == __rhs.size() && _Traits::compare(__lhs.data(), __rhs.data(), __lhs_sz) == 0; } template<class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs, const basic_string<char, char_traits<char>, _Allocator>& __rhs) noexcept { size_t __lhs_sz = __lhs.size(); if (__lhs_sz != __rhs.size()) return false; const char* __lp = __lhs.data(); const char* __rp = __rhs.data(); if (__lhs.__is_long()) return char_traits<char>::compare(__lp, __rp, __lhs_sz) == 0; for (; __lhs_sz != 0; --__lhs_sz, ++__lp, ++__rp) if (*__lp != *__rp) return false; return true; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { typedef basic_string<_CharT, _Traits, _Allocator> _String; ((void)0); size_t __lhs_len = _Traits::length(__lhs); if (__lhs_len != __rhs.size()) return false; return __rhs.compare(0, _String::npos, __lhs, __lhs_len) == 0; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs, const _CharT* __rhs) noexcept { typedef basic_string<_CharT, _Traits, _Allocator> _String; ((void)0); size_t __rhs_len = _Traits::length(__rhs); if (__rhs_len != __lhs.size()) return false; return __lhs.compare(0, _String::npos, __rhs, __rhs_len) == 0; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const basic_string<_CharT,_Traits,_Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return !(__lhs == __rhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return !(__lhs == __rhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) noexcept { return !(__lhs == __rhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator< (const basic_string<_CharT, _Traits, _Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return __lhs.compare(__rhs) < 0; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator< (const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) noexcept { return __lhs.compare(__rhs) < 0; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator< (const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return __rhs.compare(__lhs) > 0; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (const basic_string<_CharT, _Traits, _Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return __rhs < __lhs; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) noexcept { return __rhs < __lhs; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return __rhs < __lhs; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return !(__rhs < __lhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) noexcept { return !(__rhs < __lhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return !(__rhs < __lhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return !(__lhs < __rhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) noexcept { return !(__lhs < __rhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept { return !(__lhs < __rhs); } template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) { basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator()); typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size(); typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size(); __r.__init(__lhs.data(), __lhs_sz, __lhs_sz + __rhs_sz); __r.append(__rhs.data(), __rhs_sz); return __r; } template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs) { basic_string<_CharT, _Traits, _Allocator> __r(__rhs.get_allocator()); typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = _Traits::length(__lhs); typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size(); __r.__init(__lhs, __lhs_sz, __lhs_sz + __rhs_sz); __r.append(__rhs.data(), __rhs_sz); return __r; } template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs) { basic_string<_CharT, _Traits, _Allocator> __r(__rhs.get_allocator()); typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size(); __r.__init(&__lhs, 1, 1 + __rhs_sz); __r.append(__rhs.data(), __rhs_sz); return __r; } template<class _CharT, class _Traits, class _Allocator> inline basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) { basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator()); typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size(); typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = _Traits::length(__rhs); __r.__init(__lhs.data(), __lhs_sz, __lhs_sz + __rhs_sz); __r.append(__rhs, __rhs_sz); return __r; } template<class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs) { basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator()); typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size(); __r.__init(__lhs.data(), __lhs_sz, __lhs_sz + 1); __r.push_back(__rhs); return __r; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) { return std::__1::move(__lhs.append(__rhs)); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs) { return std::__1::move(__rhs.insert(0, __lhs)); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs) { return std::__1::move(__lhs.append(__rhs)); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(const _CharT* __lhs , basic_string<_CharT,_Traits,_Allocator>&& __rhs) { return std::__1::move(__rhs.insert(0, __lhs)); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(_CharT __lhs, basic_string<_CharT,_Traits,_Allocator>&& __rhs) { __rhs.insert(__rhs.begin(), __lhs); return std::__1::move(__rhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const _CharT* __rhs) { return std::__1::move(__lhs.append(__rhs)); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, _Allocator> operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, _CharT __rhs) { __lhs.push_back(__rhs); return std::__1::move(__lhs); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept(noexcept(__lhs.swap(__rhs))) { __lhs.swap(__rhs); } typedef basic_string<char16_t> u16string; typedef basic_string<char32_t> u32string; __attribute__ ((__visibility__("default"))) int stoi (const string& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) long stol (const string& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) unsigned long stoul (const string& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) long long stoll (const string& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) unsigned long long stoull(const string& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) float stof (const string& __str, size_t* __idx = 0); __attribute__ ((__visibility__("default"))) double stod (const string& __str, size_t* __idx = 0); __attribute__ ((__visibility__("default"))) long double stold(const string& __str, size_t* __idx = 0); __attribute__ ((__visibility__("default"))) string to_string(int __val); __attribute__ ((__visibility__("default"))) string to_string(unsigned __val); __attribute__ ((__visibility__("default"))) string to_string(long __val); __attribute__ ((__visibility__("default"))) string to_string(unsigned long __val); __attribute__ ((__visibility__("default"))) string to_string(long long __val); __attribute__ ((__visibility__("default"))) string to_string(unsigned long long __val); __attribute__ ((__visibility__("default"))) string to_string(float __val); __attribute__ ((__visibility__("default"))) string to_string(double __val); __attribute__ ((__visibility__("default"))) string to_string(long double __val); __attribute__ ((__visibility__("default"))) int stoi (const wstring& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) long stol (const wstring& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) unsigned long stoul (const wstring& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) long long stoll (const wstring& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) unsigned long long stoull(const wstring& __str, size_t* __idx = 0, int __base = 10); __attribute__ ((__visibility__("default"))) float stof (const wstring& __str, size_t* __idx = 0); __attribute__ ((__visibility__("default"))) double stod (const wstring& __str, size_t* __idx = 0); __attribute__ ((__visibility__("default"))) long double stold(const wstring& __str, size_t* __idx = 0); __attribute__ ((__visibility__("default"))) wstring to_wstring(int __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(unsigned __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(long __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(unsigned long __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(long long __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(unsigned long long __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(float __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(double __val); __attribute__ ((__visibility__("default"))) wstring to_wstring(long double __val); template<class _CharT, class _Traits, class _Allocator> const typename basic_string<_CharT, _Traits, _Allocator>::size_type basic_string<_CharT, _Traits, _Allocator>::npos; template <class _CharT, class _Allocator> struct __attribute__ ((__type_visibility__("default"))) hash<basic_string<_CharT, char_traits<_CharT>, _Allocator> > : public unary_function< basic_string<_CharT, char_traits<_CharT>, _Allocator>, size_t> { size_t operator()(const basic_string<_CharT, char_traits<_CharT>, _Allocator>& __val) const noexcept { return __do_string_hash(__val.data(), __val.data() + __val.size()); } }; template<class _CharT, class _Traits, class _Allocator> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Allocator>& __str); template<class _CharT, class _Traits, class _Allocator> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str); template<class _CharT, class _Traits, class _Allocator> basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm); template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str); template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm); template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str); # 4327 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 extern template class __attribute__ ((__visibility__("default"))) basic_string<char>; extern template class __attribute__ ((__visibility__("default"))) basic_string<wchar_t>; inline namespace literals { inline namespace string_literals { inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<char> operator "" s( const char *__str, size_t __len ) { return basic_string<char> (__str, __len); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<wchar_t> operator "" s( const wchar_t *__str, size_t __len ) { return basic_string<wchar_t> (__str, __len); } # 4356 "/opt/toolchain/target/bin/../include/c++/v1/string" 3 inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<char16_t> operator "" s( const char16_t *__str, size_t __len ) { return basic_string<char16_t> (__str, __len); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<char32_t> operator "" s( const char32_t *__str, size_t __len ) { return basic_string<char32_t> (__str, __len); } } } } } # 15 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 1 3 # 190 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 1 3 # 14 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 1 3 # 797 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/ctime" 1 3 # 49 "/opt/toolchain/target/bin/../include/c++/v1/ctime" 3 # 1 "/usr/include/time.h" 1 3 4 # 29 "/usr/include/time.h" 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 30 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 # 73 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4 struct timex { unsigned int modes; __syscall_slong_t offset; __syscall_slong_t freq; __syscall_slong_t maxerror; __syscall_slong_t esterror; int status; __syscall_slong_t constant; __syscall_slong_t precision; __syscall_slong_t tolerance; struct timeval time; __syscall_slong_t tick; __syscall_slong_t ppsfreq; __syscall_slong_t jitter; int shift; __syscall_slong_t stabil; __syscall_slong_t jitcnt; __syscall_slong_t calcnt; __syscall_slong_t errcnt; __syscall_slong_t stbcnt; int tai; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; }; # 74 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4 extern "C" { extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw (); } # 34 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h" 1 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; const char *tm_zone; }; # 40 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4 struct itimerspec { struct timespec it_interval; struct timespec it_value; }; # 49 "/usr/include/time.h" 2 3 4 struct sigevent; # 68 "/usr/include/time.h" 3 4 extern "C" { extern clock_t clock (void) throw (); extern time_t time (time_t *__timer) throw (); extern double difftime (time_t __time1, time_t __time0) throw () __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) throw (); extern size_t strftime (char *__restrict __s, size_t __maxsize, const char *__restrict __format, const struct tm *__restrict __tp) throw (); extern char *strptime (const char *__restrict __s, const char *__restrict __fmt, struct tm *__tp) throw (); extern size_t strftime_l (char *__restrict __s, size_t __maxsize, const char *__restrict __format, const struct tm *__restrict __tp, locale_t __loc) throw (); extern char *strptime_l (const char *__restrict __s, const char *__restrict __fmt, struct tm *__tp, locale_t __loc) throw (); extern struct tm *gmtime (const time_t *__timer) throw (); extern struct tm *localtime (const time_t *__timer) throw (); extern struct tm *gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern struct tm *localtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) throw (); extern char *asctime (const struct tm *__tp) throw (); extern char *ctime (const time_t *__timer) throw (); extern char *asctime_r (const struct tm *__restrict __tp, char *__restrict __buf) throw (); extern char *ctime_r (const time_t *__restrict __timer, char *__restrict __buf) throw (); extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) throw (); extern int daylight; extern long int timezone; extern int stime (const time_t *__when) throw (); # 196 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) throw (); extern time_t timelocal (struct tm *__tp) throw (); extern int dysize (int __year) throw () __attribute__ ((__const__)); # 211 "/usr/include/time.h" 3 4 extern int nanosleep (const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) throw (); extern int clock_nanosleep (clockid_t __clock_id, int __flags, const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) throw (); extern int timer_delete (timer_t __timerid) throw (); extern int timer_settime (timer_t __timerid, int __flags, const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) throw (); extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) throw (); extern int timer_getoverrun (timer_t __timerid) throw (); extern int timespec_get (struct timespec *__ts, int __base) throw () __attribute__ ((__nonnull__ (1))); # 280 "/usr/include/time.h" 3 4 extern int getdate_err; # 289 "/usr/include/time.h" 3 4 extern struct tm *getdate (const char *__string); # 303 "/usr/include/time.h" 3 4 extern int getdate_r (const char *__restrict __string, struct tm *__restrict __resbufp); } # 50 "/opt/toolchain/target/bin/../include/c++/v1/ctime" 2 3 # 53 "/opt/toolchain/target/bin/../include/c++/v1/ctime" 3 namespace std { inline namespace __1 { using ::clock_t; using ::size_t; using ::time_t; using ::tm; using ::timespec; using ::clock; using ::difftime; using ::mktime; using ::time; using ::asctime; using ::ctime; using ::gmtime; using ::localtime; using ::strftime; using ::timespec_get; } } # 798 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 1 3 # 82 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/climits" 1 3 # 45 "/opt/toolchain/target/bin/../include/c++/v1/climits" 3 # 83 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 2 3 # 87 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 91 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 2 3 namespace std { inline namespace __1 { template <intmax_t _Xp, intmax_t _Yp> struct __static_gcd { static const intmax_t value = __static_gcd<_Yp, _Xp % _Yp>::value; }; template <intmax_t _Xp> struct __static_gcd<_Xp, 0> { static const intmax_t value = _Xp; }; template <> struct __static_gcd<0, 0> { static const intmax_t value = 1; }; template <intmax_t _Xp, intmax_t _Yp> struct __static_lcm { static const intmax_t value = _Xp / __static_gcd<_Xp, _Yp>::value * _Yp; }; template <intmax_t _Xp> struct __static_abs { static const intmax_t value = _Xp < 0 ? -_Xp : _Xp; }; template <intmax_t _Xp> struct __static_sign { static const intmax_t value = _Xp == 0 ? 0 : (_Xp < 0 ? -1 : 1); }; template <intmax_t _Xp, intmax_t _Yp, intmax_t = __static_sign<_Yp>::value> class __ll_add; template <intmax_t _Xp, intmax_t _Yp> class __ll_add<_Xp, _Yp, 1> { static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; static const intmax_t max = -min; static_assert(_Xp <= max - _Yp, "overflow in __ll_add"); public: static const intmax_t value = _Xp + _Yp; }; template <intmax_t _Xp, intmax_t _Yp> class __ll_add<_Xp, _Yp, 0> { public: static const intmax_t value = _Xp; }; template <intmax_t _Xp, intmax_t _Yp> class __ll_add<_Xp, _Yp, -1> { static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; static const intmax_t max = -min; static_assert(min - _Yp <= _Xp, "overflow in __ll_add"); public: static const intmax_t value = _Xp + _Yp; }; template <intmax_t _Xp, intmax_t _Yp, intmax_t = __static_sign<_Yp>::value> class __ll_sub; template <intmax_t _Xp, intmax_t _Yp> class __ll_sub<_Xp, _Yp, 1> { static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; static const intmax_t max = -min; static_assert(min + _Yp <= _Xp, "overflow in __ll_sub"); public: static const intmax_t value = _Xp - _Yp; }; template <intmax_t _Xp, intmax_t _Yp> class __ll_sub<_Xp, _Yp, 0> { public: static const intmax_t value = _Xp; }; template <intmax_t _Xp, intmax_t _Yp> class __ll_sub<_Xp, _Yp, -1> { static const intmax_t min = (1LL << (sizeof(intmax_t) * 8 - 1)) + 1; static const intmax_t max = -min; static_assert(_Xp <= max + _Yp, "overflow in __ll_sub"); public: static const intmax_t value = _Xp - _Yp; }; template <intmax_t _Xp, intmax_t _Yp> class __ll_mul { static const intmax_t nan = (1LL << (sizeof(intmax_t) * 8 - 1)); static const intmax_t min = nan + 1; static const intmax_t max = -min; static const intmax_t __a_x = __static_abs<_Xp>::value; static const intmax_t __a_y = __static_abs<_Yp>::value; static_assert(_Xp != nan && _Yp != nan && __a_x <= max / __a_y, "overflow in __ll_mul"); public: static const intmax_t value = _Xp * _Yp; }; template <intmax_t _Yp> class __ll_mul<0, _Yp> { public: static const intmax_t value = 0; }; template <intmax_t _Xp> class __ll_mul<_Xp, 0> { public: static const intmax_t value = 0; }; template <> class __ll_mul<0, 0> { public: static const intmax_t value = 0; }; template <intmax_t _Xp, intmax_t _Yp> class __ll_div { static const intmax_t nan = (1LL << (sizeof(intmax_t) * 8 - 1)); static const intmax_t min = nan + 1; static const intmax_t max = -min; static_assert(_Xp != nan && _Yp != nan && _Yp != 0, "overflow in __ll_div"); public: static const intmax_t value = _Xp / _Yp; }; template <intmax_t _Num, intmax_t _Den = 1> class __attribute__ ((__type_visibility__("default"))) ratio { static_assert(__static_abs<_Num>::value >= 0, "ratio numerator is out of range"); static_assert(_Den != 0, "ratio divide by 0"); static_assert(__static_abs<_Den>::value > 0, "ratio denominator is out of range"); static constexpr const intmax_t __na = __static_abs<_Num>::value; static constexpr const intmax_t __da = __static_abs<_Den>::value; static constexpr const intmax_t __s = __static_sign<_Num>::value * __static_sign<_Den>::value; static constexpr const intmax_t __gcd = __static_gcd<__na, __da>::value; public: static constexpr const intmax_t num = __s * __na / __gcd; static constexpr const intmax_t den = __da / __gcd; typedef ratio<num, den> type; }; template <intmax_t _Num, intmax_t _Den> constexpr const intmax_t ratio<_Num, _Den>::num; template <intmax_t _Num, intmax_t _Den> constexpr const intmax_t ratio<_Num, _Den>::den; template <class _Tp> struct __is_ratio : false_type {}; template <intmax_t _Num, intmax_t _Den> struct __is_ratio<ratio<_Num, _Den> > : true_type {}; typedef ratio<1LL, 1000000000000000000LL> atto; typedef ratio<1LL, 1000000000000000LL> femto; typedef ratio<1LL, 1000000000000LL> pico; typedef ratio<1LL, 1000000000LL> nano; typedef ratio<1LL, 1000000LL> micro; typedef ratio<1LL, 1000LL> milli; typedef ratio<1LL, 100LL> centi; typedef ratio<1LL, 10LL> deci; typedef ratio< 10LL, 1LL> deca; typedef ratio< 100LL, 1LL> hecto; typedef ratio< 1000LL, 1LL> kilo; typedef ratio< 1000000LL, 1LL> mega; typedef ratio< 1000000000LL, 1LL> giga; typedef ratio< 1000000000000LL, 1LL> tera; typedef ratio< 1000000000000000LL, 1LL> peta; typedef ratio<1000000000000000000LL, 1LL> exa; template <class _R1, class _R2> struct __ratio_multiply { private: static const intmax_t __gcd_n1_d2 = __static_gcd<_R1::num, _R2::den>::value; static const intmax_t __gcd_d1_n2 = __static_gcd<_R1::den, _R2::num>::value; public: typedef typename ratio < __ll_mul<_R1::num / __gcd_n1_d2, _R2::num / __gcd_d1_n2>::value, __ll_mul<_R2::den / __gcd_n1_d2, _R1::den / __gcd_d1_n2>::value >::type type; }; template <class _R1, class _R2> using ratio_multiply = typename __ratio_multiply<_R1, _R2>::type; # 317 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 3 template <class _R1, class _R2> struct __ratio_divide { private: static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; public: typedef typename ratio < __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value, __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value >::type type; }; template <class _R1, class _R2> using ratio_divide = typename __ratio_divide<_R1, _R2>::type; # 344 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 3 template <class _R1, class _R2> struct __ratio_add { private: static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; public: typedef typename ratio_multiply < ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>, ratio < __ll_add < __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value, __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value >::value, _R2::den > >::type type; }; template <class _R1, class _R2> using ratio_add = typename __ratio_add<_R1, _R2>::type; # 379 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 3 template <class _R1, class _R2> struct __ratio_subtract { private: static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; public: typedef typename ratio_multiply < ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>, ratio < __ll_sub < __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value, __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value >::value, _R2::den > >::type type; }; template <class _R1, class _R2> using ratio_subtract = typename __ratio_subtract<_R1, _R2>::type; # 416 "/opt/toolchain/target/bin/../include/c++/v1/ratio" 3 template <class _R1, class _R2> struct __attribute__ ((__type_visibility__("default"))) ratio_equal : public bool_constant<((_R1::num == _R2::num && _R1::den == _R2::den))> {}; template <class _R1, class _R2> struct __attribute__ ((__type_visibility__("default"))) ratio_not_equal : public bool_constant<((!ratio_equal<_R1, _R2>::value))> {}; template <class _R1, class _R2, bool _Odd = false, intmax_t _Q1 = _R1::num / _R1::den, intmax_t _M1 = _R1::num % _R1::den, intmax_t _Q2 = _R2::num / _R2::den, intmax_t _M2 = _R2::num % _R2::den> struct __ratio_less1 { static const bool value = _Odd ? _Q2 < _Q1 : _Q1 < _Q2; }; template <class _R1, class _R2, bool _Odd, intmax_t _Qp> struct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, 0> { static const bool value = false; }; template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M2> struct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, _M2> { static const bool value = !_Odd; }; template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1> struct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, 0> { static const bool value = _Odd; }; template <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1, intmax_t _M2> struct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, _M2> { static const bool value = __ratio_less1<ratio<_R1::den, _M1>, ratio<_R2::den, _M2>, !_Odd>::value; }; template <class _R1, class _R2, intmax_t _S1 = __static_sign<_R1::num>::value, intmax_t _S2 = __static_sign<_R2::num>::value> struct __ratio_less { static const bool value = _S1 < _S2; }; template <class _R1, class _R2> struct __ratio_less<_R1, _R2, 1LL, 1LL> { static const bool value = __ratio_less1<_R1, _R2>::value; }; template <class _R1, class _R2> struct __ratio_less<_R1, _R2, -1LL, -1LL> { static const bool value = __ratio_less1<ratio<-_R2::num, _R2::den>, ratio<-_R1::num, _R1::den> >::value; }; template <class _R1, class _R2> struct __attribute__ ((__type_visibility__("default"))) ratio_less : public bool_constant<((__ratio_less<_R1, _R2>::value))> {}; template <class _R1, class _R2> struct __attribute__ ((__type_visibility__("default"))) ratio_less_equal : public bool_constant<((!ratio_less<_R2, _R1>::value))> {}; template <class _R1, class _R2> struct __attribute__ ((__type_visibility__("default"))) ratio_greater : public bool_constant<((ratio_less<_R2, _R1>::value))> {}; template <class _R1, class _R2> struct __attribute__ ((__type_visibility__("default"))) ratio_greater_equal : public bool_constant<((!ratio_less<_R1, _R2>::value))> {}; template <class _R1, class _R2> struct __ratio_gcd { typedef ratio<__static_gcd<_R1::num, _R2::num>::value, __static_lcm<_R1::den, _R2::den>::value> type; }; template <class _R1, class _R2> inline constexpr bool ratio_equal_v = ratio_equal<_R1, _R2>::value; template <class _R1, class _R2> inline constexpr bool ratio_not_equal_v = ratio_not_equal<_R1, _R2>::value; template <class _R1, class _R2> inline constexpr bool ratio_less_v = ratio_less<_R1, _R2>::value; template <class _R1, class _R2> inline constexpr bool ratio_less_equal_v = ratio_less_equal<_R1, _R2>::value; template <class _R1, class _R2> inline constexpr bool ratio_greater_v = ratio_greater<_R1, _R2>::value; template <class _R1, class _R2> inline constexpr bool ratio_greater_equal_v = ratio_greater_equal<_R1, _R2>::value; } } # 800 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 2 3 # 805 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 809 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 2 3 namespace std { inline namespace __1 { inline namespace __fs { namespace filesystem { struct _FilesystemClock; } } } } namespace std { inline namespace __1 { namespace chrono { template <class _Rep, class _Period = ratio<1> > class __attribute__ ((__type_visibility__("default"))) duration; template <class _Tp> struct __is_duration : false_type {}; template <class _Rep, class _Period> struct __is_duration<duration<_Rep, _Period> > : true_type {}; template <class _Rep, class _Period> struct __is_duration<const duration<_Rep, _Period> > : true_type {}; template <class _Rep, class _Period> struct __is_duration<volatile duration<_Rep, _Period> > : true_type {}; template <class _Rep, class _Period> struct __is_duration<const volatile duration<_Rep, _Period> > : true_type {}; } template <class _Rep1, class _Period1, class _Rep2, class _Period2> struct __attribute__ ((__type_visibility__("default"))) common_type<chrono::duration<_Rep1, _Period1>, chrono::duration<_Rep2, _Period2> > { typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type, typename __ratio_gcd<_Period1, _Period2>::type> type; }; namespace chrono { template <class _FromDuration, class _ToDuration, class _Period = typename ratio_divide<typename _FromDuration::period, typename _ToDuration::period>::type, bool = _Period::num == 1, bool = _Period::den == 1> struct __duration_cast; template <class _FromDuration, class _ToDuration, class _Period> struct __duration_cast<_FromDuration, _ToDuration, _Period, true, true> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ToDuration operator()(const _FromDuration& __fd) const { return _ToDuration(static_cast<typename _ToDuration::rep>(__fd.count())); } }; template <class _FromDuration, class _ToDuration, class _Period> struct __duration_cast<_FromDuration, _ToDuration, _Period, true, false> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ToDuration operator()(const _FromDuration& __fd) const { typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct; return _ToDuration(static_cast<typename _ToDuration::rep>( static_cast<_Ct>(__fd.count()) / static_cast<_Ct>(_Period::den))); } }; template <class _FromDuration, class _ToDuration, class _Period> struct __duration_cast<_FromDuration, _ToDuration, _Period, false, true> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ToDuration operator()(const _FromDuration& __fd) const { typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct; return _ToDuration(static_cast<typename _ToDuration::rep>( static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num))); } }; template <class _FromDuration, class _ToDuration, class _Period> struct __duration_cast<_FromDuration, _ToDuration, _Period, false, false> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _ToDuration operator()(const _FromDuration& __fd) const { typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct; return _ToDuration(static_cast<typename _ToDuration::rep>( static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num) / static_cast<_Ct>(_Period::den))); } }; template <class _ToDuration, class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, _ToDuration >::type duration_cast(const duration<_Rep, _Period>& __fd) { return __duration_cast<duration<_Rep, _Period>, _ToDuration>()(__fd); } template <class _Rep> struct __attribute__ ((__type_visibility__("default"))) treat_as_floating_point : is_floating_point<_Rep> {}; template <class _Rep> inline constexpr bool treat_as_floating_point_v = treat_as_floating_point<_Rep>::value; template <class _Rep> struct __attribute__ ((__type_visibility__("default"))) duration_values { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr _Rep zero() noexcept {return _Rep(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr _Rep max() noexcept {return numeric_limits<_Rep>::max();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr _Rep min() noexcept {return numeric_limits<_Rep>::lowest();} }; template <class _ToDuration, class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, _ToDuration >::type floor(const duration<_Rep, _Period>& __d) { _ToDuration __t = duration_cast<_ToDuration>(__d); if (__t > __d) __t = __t - _ToDuration{1}; return __t; } template <class _ToDuration, class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, _ToDuration >::type ceil(const duration<_Rep, _Period>& __d) { _ToDuration __t = duration_cast<_ToDuration>(__d); if (__t < __d) __t = __t + _ToDuration{1}; return __t; } template <class _ToDuration, class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, _ToDuration >::type round(const duration<_Rep, _Period>& __d) { _ToDuration __lower = floor<_ToDuration>(__d); _ToDuration __upper = __lower + _ToDuration{1}; auto __lowerDiff = __d - __lower; auto __upperDiff = __upper - __d; if (__lowerDiff < __upperDiff) return __lower; if (__lowerDiff > __upperDiff) return __upper; return __lower.count() & 1 ? __upper : __lower; } template <class _Rep, class _Period> class __attribute__ ((__type_visibility__("default"))) duration { static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration"); static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio"); static_assert(_Period::num > 0, "duration period must be positive"); template <class _R1, class _R2> struct __no_overflow { private: static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value; static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value; static const intmax_t __n1 = _R1::num / __gcd_n1_n2; static const intmax_t __d1 = _R1::den / __gcd_d1_d2; static const intmax_t __n2 = _R2::num / __gcd_n1_n2; static const intmax_t __d2 = _R2::den / __gcd_d1_d2; static const intmax_t max = -((intmax_t(1) << (sizeof(intmax_t) * 8 - 1)) + 1); template <intmax_t _Xp, intmax_t _Yp, bool __overflow> struct __mul { static const intmax_t value = _Xp * _Yp; }; template <intmax_t _Xp, intmax_t _Yp> struct __mul<_Xp, _Yp, true> { static const intmax_t value = 1; }; public: static const bool value = (__n1 <= max / __d2) && (__n2 <= max / __d1); typedef ratio<__mul<__n1, __d2, !value>::value, __mul<__n2, __d1, !value>::value> type; }; public: typedef _Rep rep; typedef typename _Period::type period; private: rep __rep_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration() = default; template <class _Rep2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit duration(const _Rep2& __r, typename enable_if < is_convertible<_Rep2, rep>::value && (treat_as_floating_point<rep>::value || !treat_as_floating_point<_Rep2>::value) >::type* = 0) : __rep_(__r) {} template <class _Rep2, class _Period2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration(const duration<_Rep2, _Period2>& __d, typename enable_if < __no_overflow<_Period2, period>::value && ( treat_as_floating_point<rep>::value || (__no_overflow<_Period2, period>::type::den == 1 && !treat_as_floating_point<_Rep2>::value)) >::type* = 0) : __rep_(std::__1::chrono::duration_cast<duration>(__d).count()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr rep count() const {return __rep_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration>::type operator+() const {return typename common_type<duration>::type(*this);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration>::type operator-() const {return typename common_type<duration>::type(-__rep_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator++() {++__rep_; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration operator++(int) {return duration(__rep_++);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator--() {--__rep_; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration operator--(int) {return duration(__rep_--);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator+=(const duration& __d) {__rep_ += __d.count(); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator-=(const duration& __d) {__rep_ -= __d.count(); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator*=(const rep& rhs) {__rep_ *= rhs; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator/=(const rep& rhs) {__rep_ /= rhs; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator%=(const rep& rhs) {__rep_ %= rhs; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration& operator%=(const duration& rhs) {__rep_ %= rhs.count(); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr duration zero() noexcept {return duration(duration_values<rep>::zero());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr duration min() noexcept {return duration(duration_values<rep>::min());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr duration max() noexcept {return duration(duration_values<rep>::max());} }; typedef duration<long long, nano> nanoseconds; typedef duration<long long, micro> microseconds; typedef duration<long long, milli> milliseconds; typedef duration<long long > seconds; typedef duration< long, ratio< 60> > minutes; typedef duration< long, ratio<3600> > hours; # 1107 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 3 template <class _LhsDuration, class _RhsDuration> struct __duration_eq { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const { typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct; return _Ct(__lhs).count() == _Ct(__rhs).count(); } }; template <class _LhsDuration> struct __duration_eq<_LhsDuration, _LhsDuration> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const {return __lhs.count() == __rhs.count();} }; template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return __duration_eq<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return !(__lhs == __rhs); } template <class _LhsDuration, class _RhsDuration> struct __duration_lt { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const { typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct; return _Ct(__lhs).count() < _Ct(__rhs).count(); } }; template <class _LhsDuration> struct __duration_lt<_LhsDuration, _LhsDuration> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const {return __lhs.count() < __rhs.count();} }; template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator< (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return __duration_lt<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator> (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return __rhs < __lhs; } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return !(__rhs < __lhs); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return !(__lhs < __rhs); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type operator+(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd; return _Cd(_Cd(__lhs).count() + _Cd(__rhs).count()); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type operator-(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd; return _Cd(_Cd(__lhs).count() - _Cd(__rhs).count()); } template <class _Rep1, class _Period, class _Rep2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, duration<typename common_type<_Rep1, _Rep2>::type, _Period> >::type operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) { typedef typename common_type<_Rep1, _Rep2>::type _Cr; typedef duration<_Cr, _Period> _Cd; return _Cd(_Cd(__d).count() * static_cast<_Cr>(__s)); } template <class _Rep1, class _Period, class _Rep2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < is_convertible<_Rep1, typename common_type<_Rep1, _Rep2>::type>::value, duration<typename common_type<_Rep1, _Rep2>::type, _Period> >::type operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) { return __d * __s; } template <class _Rep1, class _Period, class _Rep2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < !__is_duration<_Rep2>::value && is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, duration<typename common_type<_Rep1, _Rep2>::type, _Period> >::type operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) { typedef typename common_type<_Rep1, _Rep2>::type _Cr; typedef duration<_Cr, _Period> _Cd; return _Cd(_Cd(__d).count() / static_cast<_Cr>(__s)); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<_Rep1, _Rep2>::type operator/(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Ct; return _Ct(__lhs).count() / _Ct(__rhs).count(); } template <class _Rep1, class _Period, class _Rep2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < !__is_duration<_Rep2>::value && is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value, duration<typename common_type<_Rep1, _Rep2>::type, _Period> >::type operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) { typedef typename common_type<_Rep1, _Rep2>::type _Cr; typedef duration<_Cr, _Period> _Cd; return _Cd(_Cd(__d).count() % static_cast<_Cr>(__s)); } template <class _Rep1, class _Period1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type operator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { typedef typename common_type<_Rep1, _Rep2>::type _Cr; typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd; return _Cd(static_cast<_Cr>(_Cd(__lhs).count()) % static_cast<_Cr>(_Cd(__rhs).count())); } template <class _Clock, class _Duration = typename _Clock::duration> class __attribute__ ((__type_visibility__("default"))) time_point { static_assert(__is_duration<_Duration>::value, "Second template parameter of time_point must be a std::chrono::duration"); public: typedef _Clock clock; typedef _Duration duration; typedef typename duration::rep rep; typedef typename duration::period period; private: duration __d_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point() : __d_(duration::zero()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr explicit time_point(const duration& __d) : __d_(__d) {} template <class _Duration2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point(const time_point<clock, _Duration2>& t, typename enable_if < is_convertible<_Duration2, duration>::value >::type* = 0) : __d_(t.time_since_epoch()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr duration time_since_epoch() const {return __d_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point& operator+=(const duration& __d) {__d_ += __d; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point& operator-=(const duration& __d) {__d_ -= __d; return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr time_point min() noexcept {return time_point(duration::min());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr time_point max() noexcept {return time_point(duration::max());} }; } template <class _Clock, class _Duration1, class _Duration2> struct __attribute__ ((__type_visibility__("default"))) common_type<chrono::time_point<_Clock, _Duration1>, chrono::time_point<_Clock, _Duration2> > { typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type; }; namespace chrono { template <class _ToDuration, class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point<_Clock, _ToDuration> time_point_cast(const time_point<_Clock, _Duration>& __t) { return time_point<_Clock, _ToDuration>(std::__1::chrono::duration_cast<_ToDuration>(__t.time_since_epoch())); } template <class _ToDuration, class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, time_point<_Clock, _ToDuration> >::type floor(const time_point<_Clock, _Duration>& __t) { return time_point<_Clock, _ToDuration>{floor<_ToDuration>(__t.time_since_epoch())}; } template <class _ToDuration, class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, time_point<_Clock, _ToDuration> >::type ceil(const time_point<_Clock, _Duration>& __t) { return time_point<_Clock, _ToDuration>{ceil<_ToDuration>(__t.time_since_epoch())}; } template <class _ToDuration, class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < __is_duration<_ToDuration>::value, time_point<_Clock, _ToDuration> >::type round(const time_point<_Clock, _Duration>& __t) { return time_point<_Clock, _ToDuration>{round<_ToDuration>(__t.time_since_epoch())}; } template <class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if < numeric_limits<_Rep>::is_signed, duration<_Rep, _Period> >::type abs(duration<_Rep, _Period> __d) { return __d >= __d.zero() ? __d : -__d; } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return !(__lhs == __rhs); } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return __rhs < __lhs; } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return !(__rhs < __lhs); } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return !(__lhs < __rhs); } template <class _Clock, class _Duration1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> operator+(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Tr; return _Tr (__lhs.time_since_epoch() + __rhs); } template <class _Rep1, class _Period1, class _Clock, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point<_Clock, typename common_type<duration<_Rep1, _Period1>, _Duration2>::type> operator+(const duration<_Rep1, _Period1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return __rhs + __lhs; } template <class _Clock, class _Duration1, class _Rep2, class _Period2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> operator-(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Ret; return _Ret(__lhs.time_since_epoch() -__rhs); } template <class _Clock, class _Duration1, class _Duration2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename common_type<_Duration1, _Duration2>::type operator-(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs) { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } class __attribute__ ((__visibility__("default"))) system_clock { public: typedef microseconds duration; typedef duration::rep rep; typedef duration::period period; typedef chrono::time_point<system_clock> time_point; static constexpr const bool is_steady = false; static time_point now() noexcept; static time_t to_time_t (const time_point& __t) noexcept; static time_point from_time_t(time_t __t) noexcept; }; class __attribute__ ((__visibility__("default"))) steady_clock { public: typedef nanoseconds duration; typedef duration::rep rep; typedef duration::period period; typedef chrono::time_point<steady_clock, duration> time_point; static constexpr const bool is_steady = true; static time_point now() noexcept; }; typedef steady_clock high_resolution_clock; # 2719 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 3 } inline namespace literals { inline namespace chrono_literals { constexpr chrono::hours operator""h(unsigned long long __h) { return chrono::hours(static_cast<chrono::hours::rep>(__h)); } constexpr chrono::duration<long double, ratio<3600,1>> operator""h(long double __h) { return chrono::duration<long double, ratio<3600,1>>(__h); } constexpr chrono::minutes operator""min(unsigned long long __m) { return chrono::minutes(static_cast<chrono::minutes::rep>(__m)); } constexpr chrono::duration<long double, ratio<60,1>> operator""min(long double __m) { return chrono::duration<long double, ratio<60,1>> (__m); } constexpr chrono::seconds operator""s(unsigned long long __s) { return chrono::seconds(static_cast<chrono::seconds::rep>(__s)); } constexpr chrono::duration<long double> operator""s(long double __s) { return chrono::duration<long double> (__s); } constexpr chrono::milliseconds operator""ms(unsigned long long __ms) { return chrono::milliseconds(static_cast<chrono::milliseconds::rep>(__ms)); } constexpr chrono::duration<long double, milli> operator""ms(long double __ms) { return chrono::duration<long double, milli>(__ms); } constexpr chrono::microseconds operator""us(unsigned long long __us) { return chrono::microseconds(static_cast<chrono::microseconds::rep>(__us)); } constexpr chrono::duration<long double, micro> operator""us(long double __us) { return chrono::duration<long double, micro> (__us); } constexpr chrono::nanoseconds operator""ns(unsigned long long __ns) { return chrono::nanoseconds(static_cast<chrono::nanoseconds::rep>(__ns)); } constexpr chrono::duration<long double, nano> operator""ns(long double __ns) { return chrono::duration<long double, nano> (__ns); } # 2804 "/opt/toolchain/target/bin/../include/c++/v1/chrono" 3 }} namespace chrono { using namespace literals::chrono_literals; } } } namespace std { inline namespace __1 { inline namespace __fs { namespace filesystem { struct _FilesystemClock { typedef __int128_t rep; typedef nano period; typedef chrono::duration<rep, period> duration; typedef chrono::time_point<_FilesystemClock> time_point; static constexpr const bool is_steady = false; __attribute__ ((__visibility__("default"))) static time_point now() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static time_t to_time_t(const time_point& __t) noexcept { typedef chrono::duration<rep> __secs; return time_t( chrono::duration_cast<__secs>(__t.time_since_epoch()).count()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static time_point from_time_t(time_t __t) noexcept { typedef chrono::duration<rep> __secs; return time_point(__secs(__t)); } }; } } } } # 15 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/system_error" 1 3 # 145 "/opt/toolchain/target/bin/../include/c++/v1/system_error" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__errc" 1 3 # 104 "/opt/toolchain/target/bin/../include/c++/v1/__errc" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cerrno" 1 3 # 26 "/opt/toolchain/target/bin/../include/c++/v1/cerrno" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/errno.h" 1 3 # 29 "/opt/toolchain/target/bin/../include/c++/v1/errno.h" 3 # 1 "/usr/include/errno.h" 1 3 4 # 28 "/usr/include/errno.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/errno.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/x86_64-linux-gnu/asm/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 # 6 "/usr/include/asm-generic/errno.h" 2 3 4 # 2 "/usr/include/x86_64-linux-gnu/asm/errno.h" 2 3 4 # 2 "/usr/include/linux/errno.h" 2 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/errno.h" 2 3 4 # 29 "/usr/include/errno.h" 2 3 4 extern "C" { extern int *__errno_location (void) throw () __attribute__ ((__const__)); extern char *program_invocation_name; extern char *program_invocation_short_name; # 1 "/usr/include/x86_64-linux-gnu/bits/types/error_t.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/types/error_t.h" 3 4 typedef int error_t; # 49 "/usr/include/errno.h" 2 3 4 } # 32 "/opt/toolchain/target/bin/../include/c++/v1/errno.h" 2 3 # 27 "/opt/toolchain/target/bin/../include/c++/v1/cerrno" 2 3 # 30 "/opt/toolchain/target/bin/../include/c++/v1/cerrno" 3 # 105 "/opt/toolchain/target/bin/../include/c++/v1/__errc" 2 3 # 108 "/opt/toolchain/target/bin/../include/c++/v1/__errc" 3 namespace std { inline namespace __1 { enum class __attribute__ ((__type_visibility__("default"))) errc { address_family_not_supported = 97, address_in_use = 98, address_not_available = 99, already_connected = 106, argument_list_too_long = 7, argument_out_of_domain = 33, bad_address = 14, bad_file_descriptor = 9, bad_message = 74, broken_pipe = 32, connection_aborted = 103, connection_already_in_progress = 114, connection_refused = 111, connection_reset = 104, cross_device_link = 18, destination_address_required = 89, device_or_resource_busy = 16, directory_not_empty = 39, executable_format_error = 8, file_exists = 17, file_too_large = 27, filename_too_long = 36, function_not_supported = 38, host_unreachable = 113, identifier_removed = 43, illegal_byte_sequence = 84, inappropriate_io_control_operation = 25, interrupted = 4, invalid_argument = 22, invalid_seek = 29, io_error = 5, is_a_directory = 21, message_size = 90, network_down = 100, network_reset = 102, network_unreachable = 101, no_buffer_space = 105, no_child_process = 10, no_link = 67, no_lock_available = 37, no_message_available = 61, no_message = 42, no_protocol_option = 92, no_space_on_device = 28, no_stream_resources = 63, no_such_device_or_address = 6, no_such_device = 19, no_such_file_or_directory = 2, no_such_process = 3, not_a_directory = 20, not_a_socket = 88, not_a_stream = 60, not_connected = 107, not_enough_memory = 12, not_supported = 95, operation_canceled = 125, operation_in_progress = 115, operation_not_permitted = 1, operation_not_supported = 95, operation_would_block = 11, owner_dead = 130, permission_denied = 13, protocol_error = 71, protocol_not_supported = 93, read_only_file_system = 30, resource_deadlock_would_occur = 35, resource_unavailable_try_again = 11, result_out_of_range = 34, state_not_recoverable = 131, stream_timeout = 62, text_file_busy = 26, timed_out = 110, too_many_files_open_in_system = 23, too_many_files_open = 24, too_many_links = 31, too_many_symbolic_link_levels = 40, value_too_large = 75, wrong_protocol_type = 91 }; } } # 146 "/opt/toolchain/target/bin/../include/c++/v1/system_error" 2 3 # 153 "/opt/toolchain/target/bin/../include/c++/v1/system_error" 3 namespace std { inline namespace __1 { template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_error_code_enum : public false_type {}; template <class _Tp> inline constexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) is_error_condition_enum : public false_type {}; template <class _Tp> inline constexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; template <> struct __attribute__ ((__type_visibility__("default"))) is_error_condition_enum<errc> : true_type { }; class __attribute__ ((__visibility__("default"))) error_condition; class __attribute__ ((__visibility__("default"))) error_code; class __attribute__ ((__visibility__("hidden"))) __do_message; class __attribute__ ((__visibility__("default"))) error_category { public: virtual ~error_category() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr error_category() noexcept = default; private: error_category(const error_category&); error_category& operator=(const error_category&); public: virtual const char* name() const noexcept = 0; virtual error_condition default_error_condition(int __ev) const noexcept; virtual bool equivalent(int __code, const error_condition& __condition) const noexcept; virtual bool equivalent(const error_code& __code, int __condition) const noexcept; virtual string message(int __ev) const = 0; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const error_category& __rhs) const noexcept {return this == &__rhs;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const error_category& __rhs) const noexcept {return !(*this == __rhs);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator< (const error_category& __rhs) const noexcept {return this < &__rhs;} friend class __attribute__ ((__visibility__("hidden"))) __do_message; }; class __attribute__ ((__visibility__("hidden"))) __do_message : public error_category { public: virtual string message(int ev) const; }; __attribute__ ((__visibility__("default"))) const error_category& generic_category() noexcept; __attribute__ ((__visibility__("default"))) const error_category& system_category() noexcept; class __attribute__ ((__visibility__("default"))) error_condition { int __val_; const error_category* __cat_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_condition() noexcept : __val_(0), __cat_(&generic_category()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_condition(int __val, const error_category& __cat) noexcept : __val_(__val), __cat_(&__cat) {} template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_condition(_Ep __e, typename enable_if<is_error_condition_enum<_Ep>::value>::type* = 0 ) noexcept {*this = make_error_condition(__e);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void assign(int __val, const error_category& __cat) noexcept { __val_ = __val; __cat_ = &__cat; } template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_error_condition_enum<_Ep>::value, error_condition& >::type operator=(_Ep __e) noexcept {*this = make_error_condition(__e); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept { __val_ = 0; __cat_ = &generic_category(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int value() const noexcept {return __val_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const error_category& category() const noexcept {return *__cat_;} string message() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept {return __val_ != 0;} }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_condition make_error_condition(errc __e) noexcept { return error_condition(static_cast<int>(__e), generic_category()); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(const error_condition& __x, const error_condition& __y) noexcept { return __x.category() < __y.category() || (__x.category() == __y.category() && __x.value() < __y.value()); } class __attribute__ ((__visibility__("default"))) error_code { int __val_; const error_category* __cat_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_code() noexcept : __val_(0), __cat_(&system_category()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_code(int __val, const error_category& __cat) noexcept : __val_(__val), __cat_(&__cat) {} template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_code(_Ep __e, typename enable_if<is_error_code_enum<_Ep>::value>::type* = 0 ) noexcept {*this = make_error_code(__e);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void assign(int __val, const error_category& __cat) noexcept { __val_ = __val; __cat_ = &__cat; } template <class _Ep> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_error_code_enum<_Ep>::value, error_code& >::type operator=(_Ep __e) noexcept {*this = make_error_code(__e); return *this;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept { __val_ = 0; __cat_ = &system_category(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int value() const noexcept {return __val_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const error_category& category() const noexcept {return *__cat_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_condition default_error_condition() const noexcept {return __cat_->default_error_condition(__val_);} string message() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const noexcept {return __val_ != 0;} }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_code make_error_code(errc __e) noexcept { return error_code(static_cast<int>(__e), generic_category()); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<(const error_code& __x, const error_code& __y) noexcept { return __x.category() < __y.category() || (__x.category() == __y.category() && __x.value() < __y.value()); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const error_code& __x, const error_code& __y) noexcept { return __x.category() == __y.category() && __x.value() == __y.value(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const error_code& __x, const error_condition& __y) noexcept { return __x.category().equivalent(__x.value(), __y) || __y.category().equivalent(__x, __y.value()); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const error_condition& __x, const error_code& __y) noexcept { return __y == __x; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const error_condition& __x, const error_condition& __y) noexcept { return __x.category() == __y.category() && __x.value() == __y.value(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const error_code& __x, const error_code& __y) noexcept {return !(__x == __y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const error_code& __x, const error_condition& __y) noexcept {return !(__x == __y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const error_condition& __x, const error_code& __y) noexcept {return !(__x == __y);} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const error_condition& __x, const error_condition& __y) noexcept {return !(__x == __y);} template <> struct __attribute__ ((__type_visibility__("default"))) hash<error_code> : public unary_function<error_code, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(const error_code& __ec) const noexcept { return static_cast<size_t>(__ec.value()); } }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<error_condition> : public unary_function<error_condition, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(const error_condition& __ec) const noexcept { return static_cast<size_t>(__ec.value()); } }; class __attribute__ ((__visibility__("default"))) system_error : public runtime_error { error_code __ec_; public: system_error(error_code __ec, const string& __what_arg); system_error(error_code __ec, const char* __what_arg); system_error(error_code __ec); system_error(int __ev, const error_category& __ecat, const string& __what_arg); system_error(int __ev, const error_category& __ecat, const char* __what_arg); system_error(int __ev, const error_category& __ecat); ~system_error() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const error_code& code() const noexcept {return __ec_;} private: static string __init(const error_code&, string); }; [[noreturn]] __attribute__ ((__visibility__("default"))) void __throw_system_error(int ev, const char* what_arg); } } # 16 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__threading_support" 1 3 # 19 "/opt/toolchain/target/bin/../include/c++/v1/__threading_support" 3 # 1 "/usr/include/pthread.h" 1 3 4 # 23 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/sched.h" 1 3 4 # 29 "/usr/include/sched.h" 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 30 "/usr/include/sched.h" 2 3 4 # 43 "/usr/include/sched.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/sched.h" 1 3 4 # 74 "/usr/include/x86_64-linux-gnu/bits/sched.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h" 3 4 struct sched_param { int sched_priority; }; # 75 "/usr/include/x86_64-linux-gnu/bits/sched.h" 2 3 4 extern "C" { extern int clone (int (*__fn) (void *__arg), void *__child_stack, int __flags, void *__arg, ...) throw (); extern int unshare (int __flags) throw (); extern int sched_getcpu (void) throw (); extern int setns (int __fd, int __nstype) throw (); } # 44 "/usr/include/sched.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 1 3 4 # 32 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 3 4 typedef unsigned long int __cpu_mask; typedef struct { __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; } cpu_set_t; # 115 "/usr/include/x86_64-linux-gnu/bits/cpu-set.h" 3 4 extern "C" { extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) throw (); extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ; extern void __sched_cpufree (cpu_set_t *__set) throw (); } # 45 "/usr/include/sched.h" 2 3 4 extern "C" { extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) throw (); extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); extern int sched_setscheduler (__pid_t __pid, int __policy, const struct sched_param *__param) throw (); extern int sched_getscheduler (__pid_t __pid) throw (); extern int sched_yield (void) throw (); extern int sched_get_priority_max (int __algorithm) throw (); extern int sched_get_priority_min (int __algorithm) throw (); extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); # 121 "/usr/include/sched.h" 3 4 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, const cpu_set_t *__cpuset) throw (); extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *__cpuset) throw (); } # 24 "/usr/include/pthread.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 1 3 4 # 26 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/setjmp.h" 2 3 4 typedef long int __jmp_buf[8]; # 28 "/usr/include/pthread.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 29 "/usr/include/pthread.h" 2 3 4 enum { PTHREAD_CREATE_JOINABLE, PTHREAD_CREATE_DETACHED }; enum { PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_ADAPTIVE_NP , PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP }; enum { PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST }; enum { PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT }; # 115 "/usr/include/pthread.h" 3 4 enum { PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP }; # 156 "/usr/include/pthread.h" 3 4 enum { PTHREAD_INHERIT_SCHED, PTHREAD_EXPLICIT_SCHED }; enum { PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS }; enum { PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED }; # 191 "/usr/include/pthread.h" 3 4 struct _pthread_cleanup_buffer { void (*__routine) (void *); void *__arg; int __canceltype; struct _pthread_cleanup_buffer *__prev; }; enum { PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE }; enum { PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_ASYNCHRONOUS }; # 229 "/usr/include/pthread.h" 3 4 extern "C" { extern int pthread_create (pthread_t *__restrict __newthread, const pthread_attr_t *__restrict __attr, void *(*__start_routine) (void *), void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); extern int pthread_join (pthread_t __th, void **__thread_return); extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, const struct timespec *__abstime); extern int pthread_detach (pthread_t __th) throw (); extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () __attribute__ ((__const__)); extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_destroy (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, int *__detachstate) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, size_t *__guardsize) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, const struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict __attr, int *__restrict __policy) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict __attr, int *__restrict __inherit) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, int __inherit) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, int *__restrict __scope) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) throw () __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, size_t __cpusetsize, const cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, size_t __cpusetsize, cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_getattr_default_np (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_setattr_default_np (const pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_setschedparam (pthread_t __target_thread, int __policy, const struct sched_param *__param) throw () __attribute__ ((__nonnull__ (3))); extern int pthread_getschedparam (pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) throw () __attribute__ ((__nonnull__ (2, 3))); extern int pthread_setschedprio (pthread_t __target_thread, int __prio) throw (); extern int pthread_getname_np (pthread_t __target_thread, char *__buf, size_t __buflen) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_setname_np (pthread_t __target_thread, const char *__name) throw () __attribute__ ((__nonnull__ (2))); extern int pthread_getconcurrency (void) throw (); extern int pthread_setconcurrency (int __level) throw (); extern int pthread_yield (void) throw (); extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, const cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (3))); extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, cpu_set_t *__cpuset) throw () __attribute__ ((__nonnull__ (3))); # 495 "/usr/include/pthread.h" 3 4 extern int pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); # 507 "/usr/include/pthread.h" 3 4 extern int pthread_setcancelstate (int __state, int *__oldstate); extern int pthread_setcanceltype (int __type, int *__oldtype); extern int pthread_cancel (pthread_t __th); extern void pthread_testcancel (void); typedef struct { struct { __jmp_buf __cancel_jmp_buf; int __mask_was_saved; } __cancel_jmp_buf[1]; void *__pad[4]; } __pthread_unwind_buf_t __attribute__ ((__aligned__)); # 541 "/usr/include/pthread.h" 3 4 struct __pthread_cleanup_frame { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; }; # 681 "/usr/include/pthread.h" 3 4 extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) ; # 693 "/usr/include/pthread.h" 3 4 extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) ; # 716 "/usr/include/pthread.h" 3 4 extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) ; # 729 "/usr/include/pthread.h" 3 4 extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) ; extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) __attribute__ ((__noreturn__)) __attribute__ ((__weak__)) ; struct __jmp_buf_tag; extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); extern int pthread_mutex_init (pthread_mutex_t *__mutex, const pthread_mutexattr_t *__mutexattr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_getprioceiling (const pthread_mutex_t * __restrict __mutex, int *__restrict __prioceiling) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) throw () __attribute__ ((__nonnull__ (1, 3))); extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) throw () __attribute__ ((__nonnull__ (1))); # 807 "/usr/include/pthread.h" 3 4 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * __restrict __attr, int *__restrict __protocol) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, int __protocol) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * __restrict __attr, int *__restrict __prioceiling) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, int __prioceiling) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, int *__robustness) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr, int *__robustness) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, int __robustness) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, int __robustness) throw () __attribute__ ((__nonnull__ (1))); # 889 "/usr/include/pthread.h" 3 4 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, const pthread_rwlockattr_t *__restrict __attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pref) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, int __pref) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_init (pthread_cond_t *__restrict __cond, const pthread_condattr_t *__restrict __cond_attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_destroy (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_signal (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __attribute__ ((__nonnull__ (1, 2))); # 1001 "/usr/include/pthread.h" 3 4 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); extern int pthread_condattr_init (pthread_condattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getpshared (const pthread_condattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_condattr_getclock (const pthread_condattr_t * __restrict __attr, __clockid_t *__restrict __clock_id) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_condattr_setclock (pthread_condattr_t *__attr, __clockid_t __clock_id) throw () __attribute__ ((__nonnull__ (1))); # 1045 "/usr/include/pthread.h" 3 4 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, const pthread_barrierattr_t *__restrict __attr, unsigned int __count) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * __restrict __attr, int *__restrict __pshared) throw () __attribute__ ((__nonnull__ (1, 2))); extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, int __pshared) throw () __attribute__ ((__nonnull__ (1))); # 1112 "/usr/include/pthread.h" 3 4 extern int pthread_key_create (pthread_key_t *__key, void (*__destr_function) (void *)) throw () __attribute__ ((__nonnull__ (1))); extern int pthread_key_delete (pthread_key_t __key) throw (); extern void *pthread_getspecific (pthread_key_t __key) throw (); extern int pthread_setspecific (pthread_key_t __key, const void *__pointer) throw () ; extern int pthread_getcpuclockid (pthread_t __thread_id, __clockid_t *__clock_id) throw () __attribute__ ((__nonnull__ (2))); # 1146 "/usr/include/pthread.h" 3 4 extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) throw (); extern __inline __attribute__ ((__gnu_inline__)) int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () { return __thread1 == __thread2; } } # 27 "/opt/toolchain/target/bin/../include/c++/v1/__threading_support" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 32 "/opt/toolchain/target/bin/../include/c++/v1/__threading_support" 2 3 # 47 "/opt/toolchain/target/bin/../include/c++/v1/__threading_support" 3 namespace std { inline namespace __1 { typedef pthread_mutex_t __libcpp_mutex_t; typedef pthread_mutex_t __libcpp_recursive_mutex_t; typedef pthread_cond_t __libcpp_condvar_t; typedef pthread_once_t __libcpp_exec_once_flag; typedef pthread_t __libcpp_thread_id; typedef pthread_t __libcpp_thread_t; typedef pthread_key_t __libcpp_tls_key; # 112 "/opt/toolchain/target/bin/../include/c++/v1/__threading_support" 3 inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_mutex_lock(__libcpp_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_mutex_unlock(__libcpp_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_mutex_destroy(__libcpp_mutex_t *__m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_condvar_signal(__libcpp_condvar_t* __cv); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_condvar_broadcast(__libcpp_condvar_t* __cv); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, timespec *__ts); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_condvar_destroy(__libcpp_condvar_t* __cv); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_execute_once(__libcpp_exec_once_flag *flag, void (*init_routine)(void)); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __libcpp_thread_isnull(const __libcpp_thread_t *__t); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), void *__arg); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __libcpp_thread_id __libcpp_thread_get_current_id(); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_thread_join(__libcpp_thread_t *__t); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_thread_detach(__libcpp_thread_t *__t); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __libcpp_thread_yield(); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_tls_create(__libcpp_tls_key* __key, void(* __at_exit)(void*)); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void *__libcpp_tls_get(__libcpp_tls_key __key); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_tls_set(__libcpp_tls_key __key, void *__p); int __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m) { pthread_mutexattr_t attr; int __ec = pthread_mutexattr_init(&attr); if (__ec) return __ec; __ec = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); if (__ec) { pthread_mutexattr_destroy(&attr); return __ec; } __ec = pthread_mutex_init(__m, &attr); if (__ec) { pthread_mutexattr_destroy(&attr); return __ec; } __ec = pthread_mutexattr_destroy(&attr); if (__ec) { pthread_mutex_destroy(__m); return __ec; } return 0; } int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m) { return pthread_mutex_lock(__m); } bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m) { return pthread_mutex_trylock(__m) == 0; } int __libcpp_recursive_mutex_unlock(__libcpp_mutex_t *__m) { return pthread_mutex_unlock(__m); } int __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m) { return pthread_mutex_destroy(__m); } int __libcpp_mutex_lock(__libcpp_mutex_t *__m) { return pthread_mutex_lock(__m); } bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m) { return pthread_mutex_trylock(__m) == 0; } int __libcpp_mutex_unlock(__libcpp_mutex_t *__m) { return pthread_mutex_unlock(__m); } int __libcpp_mutex_destroy(__libcpp_mutex_t *__m) { return pthread_mutex_destroy(__m); } int __libcpp_condvar_signal(__libcpp_condvar_t *__cv) { return pthread_cond_signal(__cv); } int __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv) { return pthread_cond_broadcast(__cv); } int __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m) { return pthread_cond_wait(__cv, __m); } int __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m, timespec *__ts) { return pthread_cond_timedwait(__cv, __m, __ts); } int __libcpp_condvar_destroy(__libcpp_condvar_t *__cv) { return pthread_cond_destroy(__cv); } int __libcpp_execute_once(__libcpp_exec_once_flag *flag, void (*init_routine)(void)) { return pthread_once(flag, init_routine); } bool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2) { return pthread_equal(t1, t2) != 0; } bool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2) { return t1 < t2; } bool __libcpp_thread_isnull(const __libcpp_thread_t *__t) { return *__t == 0; } int __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *), void *__arg) { return pthread_create(__t, 0, __func, __arg); } __libcpp_thread_id __libcpp_thread_get_current_id() { return pthread_self(); } __libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t) { return *__t; } int __libcpp_thread_join(__libcpp_thread_t *__t) { return pthread_join(*__t, 0); } int __libcpp_thread_detach(__libcpp_thread_t *__t) { return pthread_detach(*__t); } void __libcpp_thread_yield() { sched_yield(); } void __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns) { using namespace chrono; seconds __s = duration_cast<seconds>(__ns); timespec __ts; typedef decltype(__ts.tv_sec) ts_sec; constexpr ts_sec __ts_sec_max = numeric_limits<ts_sec>::max(); if (__s.count() < __ts_sec_max) { __ts.tv_sec = static_cast<ts_sec>(__s.count()); __ts.tv_nsec = static_cast<decltype(__ts.tv_nsec)>((__ns - __s).count()); } else { __ts.tv_sec = __ts_sec_max; __ts.tv_nsec = 999999999; } while (nanosleep(&__ts, &__ts) == -1 && (*__errno_location ()) == 4); } int __libcpp_tls_create(__libcpp_tls_key *__key, void (*__at_exit)(void *)) { return pthread_key_create(__key, __at_exit); } void *__libcpp_tls_get(__libcpp_tls_key __key) { return pthread_getspecific(__key); } int __libcpp_tls_set(__libcpp_tls_key __key, void *__p) { return pthread_setspecific(__key, __p); } } } # 17 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 2 3 # 21 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 25 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 2 3 namespace std { inline namespace __1 { # 39 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 3 class __attribute__ ((__visibility__("default"))) mutex { __libcpp_mutex_t __m_ = { { 0, 0, 0, 0, 0, 0, 0, { 0, 0 } } }; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr mutex() = default; ~mutex() noexcept; private: mutex(const mutex&); mutex& operator=(const mutex&); public: void lock() ; bool try_lock() noexcept ; void unlock() noexcept ; typedef __libcpp_mutex_t* native_handle_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) native_handle_type native_handle() {return &__m_;} }; static_assert(is_nothrow_default_constructible<mutex>::value, "the default constructor for std::mutex must be nothrow"); struct __attribute__ ((__visibility__("default"))) defer_lock_t {}; struct __attribute__ ((__visibility__("default"))) try_to_lock_t {}; struct __attribute__ ((__visibility__("default"))) adopt_lock_t {}; # 84 "/opt/toolchain/target/bin/../include/c++/v1/__mutex_base" 3 constexpr defer_lock_t defer_lock = defer_lock_t(); constexpr try_to_lock_t try_to_lock = try_to_lock_t(); constexpr adopt_lock_t adopt_lock = adopt_lock_t(); template <class _Mutex> class __attribute__ ((__type_visibility__("default"))) lock_guard { public: typedef _Mutex mutex_type; private: mutex_type& __m_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit lock_guard(mutex_type& __m) : __m_(__m) {__m_.lock();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) lock_guard(mutex_type& __m, adopt_lock_t) : __m_(__m) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~lock_guard() {__m_.unlock();} private: lock_guard(lock_guard const&) = delete; lock_guard& operator=(lock_guard const&) = delete; }; template <class _Mutex> class __attribute__ ((__type_visibility__("default"))) unique_lock { public: typedef _Mutex mutex_type; private: mutex_type* __m_; bool __owns_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock() noexcept : __m_(nullptr), __owns_(false) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit unique_lock(mutex_type& __m) : __m_(std::__1::addressof(__m)), __owns_(true) {__m_->lock();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock(mutex_type& __m, defer_lock_t) noexcept : __m_(std::__1::addressof(__m)), __owns_(false) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock(mutex_type& __m, try_to_lock_t) : __m_(std::__1::addressof(__m)), __owns_(__m.try_lock()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock(mutex_type& __m, adopt_lock_t) : __m_(std::__1::addressof(__m)), __owns_(true) {} template <class _Clock, class _Duration> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock(mutex_type& __m, const chrono::time_point<_Clock, _Duration>& __t) : __m_(std::__1::addressof(__m)), __owns_(__m.try_lock_until(__t)) {} template <class _Rep, class _Period> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock(mutex_type& __m, const chrono::duration<_Rep, _Period>& __d) : __m_(std::__1::addressof(__m)), __owns_(__m.try_lock_for(__d)) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~unique_lock() { if (__owns_) __m_->unlock(); } private: unique_lock(unique_lock const&); unique_lock& operator=(unique_lock const&); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock(unique_lock&& __u) noexcept : __m_(__u.__m_), __owns_(__u.__owns_) {__u.__m_ = nullptr; __u.__owns_ = false;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unique_lock& operator=(unique_lock&& __u) noexcept { if (__owns_) __m_->unlock(); __m_ = __u.__m_; __owns_ = __u.__owns_; __u.__m_ = nullptr; __u.__owns_ = false; return *this; } void lock(); bool try_lock(); template <class _Rep, class _Period> bool try_lock_for(const chrono::duration<_Rep, _Period>& __d); template <class _Clock, class _Duration> bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t); void unlock(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(unique_lock& __u) noexcept { std::__1::swap(__m_, __u.__m_); std::__1::swap(__owns_, __u.__owns_); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) mutex_type* release() noexcept { mutex_type* __m = __m_; __m_ = nullptr; __owns_ = false; return __m; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool owns_lock() const noexcept {return __owns_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool () const noexcept {return __owns_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) mutex_type* mutex() const noexcept {return __m_;} }; template <class _Mutex> void unique_lock<_Mutex>::lock() { if (__m_ == nullptr) __throw_system_error(1, "unique_lock::lock: references null mutex"); if (__owns_) __throw_system_error(35, "unique_lock::lock: already locked"); __m_->lock(); __owns_ = true; } template <class _Mutex> bool unique_lock<_Mutex>::try_lock() { if (__m_ == nullptr) __throw_system_error(1, "unique_lock::try_lock: references null mutex"); if (__owns_) __throw_system_error(35, "unique_lock::try_lock: already locked"); __owns_ = __m_->try_lock(); return __owns_; } template <class _Mutex> template <class _Rep, class _Period> bool unique_lock<_Mutex>::try_lock_for(const chrono::duration<_Rep, _Period>& __d) { if (__m_ == nullptr) __throw_system_error(1, "unique_lock::try_lock_for: references null mutex"); if (__owns_) __throw_system_error(35, "unique_lock::try_lock_for: already locked"); __owns_ = __m_->try_lock_for(__d); return __owns_; } template <class _Mutex> template <class _Clock, class _Duration> bool unique_lock<_Mutex>::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) { if (__m_ == nullptr) __throw_system_error(1, "unique_lock::try_lock_until: references null mutex"); if (__owns_) __throw_system_error(35, "unique_lock::try_lock_until: already locked"); __owns_ = __m_->try_lock_until(__t); return __owns_; } template <class _Mutex> void unique_lock<_Mutex>::unlock() { if (!__owns_) __throw_system_error(1, "unique_lock::unlock: not locked"); __m_->unlock(); __owns_ = false; } template <class _Mutex> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) noexcept {__x.swap(__y);} enum class __attribute__ ((__type_visibility__("default"))) cv_status { no_timeout, timeout }; class __attribute__ ((__visibility__("default"))) condition_variable { __libcpp_condvar_t __cv_ = { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr condition_variable() noexcept = default; ~condition_variable(); private: condition_variable(const condition_variable&); condition_variable& operator=(const condition_variable&); public: void notify_one() noexcept; void notify_all() noexcept; void wait(unique_lock<mutex>& __lk) noexcept; template <class _Predicate> inline __attribute__ ((__visibility__("hidden"))) void wait(unique_lock<mutex>& __lk, _Predicate __pred); template <class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) cv_status wait_until(unique_lock<mutex>& __lk, const chrono::time_point<_Clock, _Duration>& __t); template <class _Clock, class _Duration, class _Predicate> inline __attribute__ ((__visibility__("hidden"))) bool wait_until(unique_lock<mutex>& __lk, const chrono::time_point<_Clock, _Duration>& __t, _Predicate __pred); template <class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) cv_status wait_for(unique_lock<mutex>& __lk, const chrono::duration<_Rep, _Period>& __d); template <class _Rep, class _Period, class _Predicate> bool __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wait_for(unique_lock<mutex>& __lk, const chrono::duration<_Rep, _Period>& __d, _Predicate __pred); typedef __libcpp_condvar_t* native_handle_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) native_handle_type native_handle() {return &__cv_;} private: void __do_timed_wait(unique_lock<mutex>& __lk, chrono::time_point<chrono::system_clock, chrono::nanoseconds>) noexcept; }; template <class _To, class _Rep, class _Period> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < chrono::__is_duration<_To>::value, _To >::type __ceil(chrono::duration<_Rep, _Period> __d) { using namespace chrono; _To __r = duration_cast<_To>(__d); if (__r < __d) ++__r; return __r; } template <class _Predicate> void condition_variable::wait(unique_lock<mutex>& __lk, _Predicate __pred) { while (!__pred()) wait(__lk); } template <class _Clock, class _Duration> cv_status condition_variable::wait_until(unique_lock<mutex>& __lk, const chrono::time_point<_Clock, _Duration>& __t) { using namespace chrono; wait_for(__lk, __t - _Clock::now()); return _Clock::now() < __t ? cv_status::no_timeout : cv_status::timeout; } template <class _Clock, class _Duration, class _Predicate> bool condition_variable::wait_until(unique_lock<mutex>& __lk, const chrono::time_point<_Clock, _Duration>& __t, _Predicate __pred) { while (!__pred()) { if (wait_until(__lk, __t) == cv_status::timeout) return __pred(); } return true; } template <class _Rep, class _Period> cv_status condition_variable::wait_for(unique_lock<mutex>& __lk, const chrono::duration<_Rep, _Period>& __d) { using namespace chrono; if (__d <= __d.zero()) return cv_status::timeout; typedef time_point<system_clock, duration<long double, nano> > __sys_tpf; typedef time_point<system_clock, nanoseconds> __sys_tpi; __sys_tpf _Max = __sys_tpi::max(); steady_clock::time_point __c_now = steady_clock::now(); system_clock::time_point __s_now = system_clock::now(); if (_Max - __d > __s_now) __do_timed_wait(__lk, __s_now + __ceil<nanoseconds>(__d)); else __do_timed_wait(__lk, __sys_tpi::max()); return steady_clock::now() - __c_now < __d ? cv_status::no_timeout : cv_status::timeout; } template <class _Rep, class _Period, class _Predicate> inline bool condition_variable::wait_for(unique_lock<mutex>& __lk, const chrono::duration<_Rep, _Period>& __d, _Predicate __pred) { return wait_until(__lk, chrono::steady_clock::now() + __d, std::__1::move(__pred)); } } } # 191 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 2 3 # 202 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 206 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 2 3 namespace std { inline namespace __1 { class __attribute__ ((__visibility__("default"))) recursive_mutex { __libcpp_recursive_mutex_t __m_; public: recursive_mutex(); ~recursive_mutex(); private: recursive_mutex(const recursive_mutex&); recursive_mutex& operator=(const recursive_mutex&); public: void lock(); bool try_lock() noexcept; void unlock() noexcept; typedef __libcpp_recursive_mutex_t* native_handle_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) native_handle_type native_handle() {return &__m_;} }; class __attribute__ ((__visibility__("default"))) timed_mutex { mutex __m_; condition_variable __cv_; bool __locked_; public: timed_mutex(); ~timed_mutex(); private: timed_mutex(const timed_mutex&); timed_mutex& operator=(const timed_mutex&); public: void lock(); bool try_lock() noexcept; template <class _Rep, class _Period> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool try_lock_for(const chrono::duration<_Rep, _Period>& __d) {return try_lock_until(chrono::steady_clock::now() + __d);} template <class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t); void unlock() noexcept; }; template <class _Clock, class _Duration> bool timed_mutex::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) { using namespace chrono; unique_lock<mutex> __lk(__m_); bool no_timeout = _Clock::now() < __t; while (no_timeout && __locked_) no_timeout = __cv_.wait_until(__lk, __t) == cv_status::no_timeout; if (!__locked_) { __locked_ = true; return true; } return false; } class __attribute__ ((__visibility__("default"))) recursive_timed_mutex { mutex __m_; condition_variable __cv_; size_t __count_; __libcpp_thread_id __id_; public: recursive_timed_mutex(); ~recursive_timed_mutex(); private: recursive_timed_mutex(const recursive_timed_mutex&); recursive_timed_mutex& operator=(const recursive_timed_mutex&); public: void lock(); bool try_lock() noexcept; template <class _Rep, class _Period> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool try_lock_for(const chrono::duration<_Rep, _Period>& __d) {return try_lock_until(chrono::steady_clock::now() + __d);} template <class _Clock, class _Duration> inline __attribute__ ((__visibility__("hidden"))) bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t); void unlock() noexcept; }; template <class _Clock, class _Duration> bool recursive_timed_mutex::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t) { using namespace chrono; __libcpp_thread_id __id = __libcpp_thread_get_current_id(); unique_lock<mutex> lk(__m_); if (__libcpp_thread_id_equal(__id, __id_)) { if (__count_ == numeric_limits<size_t>::max()) return false; ++__count_; return true; } bool no_timeout = _Clock::now() < __t; while (no_timeout && __count_ != 0) no_timeout = __cv_.wait_until(lk, __t) == cv_status::no_timeout; if (__count_ == 0) { __count_ = 1; __id_ = __id; return true; } return false; } template <class _L0, class _L1> int try_lock(_L0& __l0, _L1& __l1) { unique_lock<_L0> __u0(__l0, try_to_lock); if (__u0.owns_lock()) { if (__l1.try_lock()) { __u0.release(); return -1; } else return 1; } return 0; } template <class _L0, class _L1, class _L2, class... _L3> int try_lock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3) { int __r = 0; unique_lock<_L0> __u0(__l0, try_to_lock); if (__u0.owns_lock()) { __r = try_lock(__l1, __l2, __l3...); if (__r == -1) __u0.release(); else ++__r; } return __r; } template <class _L0, class _L1> void lock(_L0& __l0, _L1& __l1) { while (true) { { unique_lock<_L0> __u0(__l0); if (__l1.try_lock()) { __u0.release(); break; } } __libcpp_thread_yield(); { unique_lock<_L1> __u1(__l1); if (__l0.try_lock()) { __u1.release(); break; } } __libcpp_thread_yield(); } } template <class _L0, class _L1, class _L2, class ..._L3> void __lock_first(int __i, _L0& __l0, _L1& __l1, _L2& __l2, _L3& ...__l3) { while (true) { switch (__i) { case 0: { unique_lock<_L0> __u0(__l0); __i = try_lock(__l1, __l2, __l3...); if (__i == -1) { __u0.release(); return; } } ++__i; __libcpp_thread_yield(); break; case 1: { unique_lock<_L1> __u1(__l1); __i = try_lock(__l2, __l3..., __l0); if (__i == -1) { __u1.release(); return; } } if (__i == sizeof...(_L3) + 1) __i = 0; else __i += 2; __libcpp_thread_yield(); break; default: __lock_first(__i - 2, __l2, __l3..., __l0, __l1); return; } } } template <class _L0, class _L1, class _L2, class ..._L3> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void lock(_L0& __l0, _L1& __l1, _L2& __l2, _L3& ...__l3) { __lock_first(0, __l0, __l1, __l2, __l3...); } template <class _L0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __unlock(_L0& __l0) { __l0.unlock(); } template <class _L0, class _L1> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __unlock(_L0& __l0, _L1& __l1) { __l0.unlock(); __l1.unlock(); } template <class _L0, class _L1, class _L2, class ..._L3> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __unlock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3) { __l0.unlock(); __l1.unlock(); std::__1::__unlock(__l2, __l3...); } template <class ..._Mutexes> class __attribute__ ((__type_visibility__("default"))) scoped_lock; template <> class __attribute__ ((__type_visibility__("default"))) scoped_lock<> { public: explicit scoped_lock() {} ~scoped_lock() = default; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit scoped_lock(adopt_lock_t) {} scoped_lock(scoped_lock const&) = delete; scoped_lock& operator=(scoped_lock const&) = delete; }; template <class _Mutex> class __attribute__ ((__type_visibility__("default"))) scoped_lock<_Mutex> { public: typedef _Mutex mutex_type; private: mutex_type& __m_; public: explicit scoped_lock(mutex_type & __m) : __m_(__m) {__m_.lock();} ~scoped_lock() {__m_.unlock();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit scoped_lock(adopt_lock_t, mutex_type& __m) : __m_(__m) {} scoped_lock(scoped_lock const&) = delete; scoped_lock& operator=(scoped_lock const&) = delete; }; template <class ..._MArgs> class __attribute__ ((__type_visibility__("default"))) scoped_lock { static_assert(sizeof...(_MArgs) > 1, "At least 2 lock types required"); typedef tuple<_MArgs&...> _MutexTuple; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit scoped_lock(_MArgs&... __margs) : __t_(__margs...) { std::__1::lock(__margs...); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) scoped_lock(adopt_lock_t, _MArgs&... __margs) : __t_(__margs...) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~scoped_lock() { typedef typename __make_tuple_indices<sizeof...(_MArgs)>::type _Indices; __unlock_unpack(_Indices{}, __t_); } scoped_lock(scoped_lock const&) = delete; scoped_lock& operator=(scoped_lock const&) = delete; private: template <size_t ..._Indx> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __unlock_unpack(__tuple_indices<_Indx...>, _MutexTuple& __mt) { std::__1::__unlock(std::__1::get<_Indx>(__mt)...); } _MutexTuple __t_; }; struct __attribute__ ((__type_visibility__("default"))) once_flag; template<class _Callable, class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void call_once(once_flag&, _Callable&&, _Args&&...); # 573 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 3 struct __attribute__ ((__type_visibility__("default"))) once_flag { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr once_flag() noexcept : __state_(0) {} typedef unsigned long _State_type; private: once_flag(const once_flag&); once_flag& operator=(const once_flag&); _State_type __state_; template<class _Callable, class... _Args> friend void call_once(once_flag&, _Callable&&, _Args&&...); # 605 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 3 }; template <class _Fp> class __call_once_param { _Fp& __f_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __call_once_param(_Fp& __f) : __f_(__f) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator()() { typedef typename __make_tuple_indices<tuple_size<_Fp>::value, 1>::type _Index; __execute(_Index()); } private: template <size_t ..._Indices> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __execute(__tuple_indices<_Indices...>) { __invoke(std::__1::get<0>(std::__1::move(__f_)), std::__1::get<_Indices>(std::__1::move(__f_))...); } }; # 652 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 3 template <class _Fp> void __call_once_proxy(void* __vp) { __call_once_param<_Fp>* __p = static_cast<__call_once_param<_Fp>*>(__vp); (*__p)(); } __attribute__ ((__visibility__("default"))) void __call_once(volatile once_flag::_State_type&, void*, void (*)(void*)); template<class _Callable, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void call_once(once_flag& __flag, _Callable&& __func, _Args&&... __args) { if (__libcpp_acquire_load(&__flag.__state_) != ~once_flag::_State_type(0)) { typedef tuple<_Callable&&, _Args&&...> _Gp; _Gp __f(std::__1::forward<_Callable>(__func), std::__1::forward<_Args>(__args)...); __call_once_param<_Gp> __p(__f); __call_once(__flag.__state_, &__p, &__call_once_proxy<_Gp>); } } # 707 "/opt/toolchain/target/bin/../include/c++/v1/mutex" 3 } } # 18 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/locale.h" 1 3 # 40 "/opt/toolchain/target/bin/../include/c++/v1/locale.h" 3 # 1 "/usr/include/locale.h" 1 3 4 # 28 "/usr/include/locale.h" 3 4 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 1 3 4 # 15 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 3 # 1 "/opt/toolchain/target/lib/clang/9.0.0/include/stddef.h" 1 3 # 18 "/opt/toolchain/target/bin/../include/c++/v1/stddef.h" 2 3 # 29 "/usr/include/locale.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/locale.h" 1 3 4 # 30 "/usr/include/locale.h" 2 3 4 extern "C" { # 51 "/usr/include/locale.h" 3 4 struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; char int_p_cs_precedes; char int_p_sep_by_space; char int_n_cs_precedes; char int_n_sep_by_space; char int_p_sign_posn; char int_n_sign_posn; # 118 "/usr/include/locale.h" 3 4 }; extern char *setlocale (int __category, const char *__locale) throw (); extern struct lconv *localeconv (void) throw (); # 141 "/usr/include/locale.h" 3 4 extern locale_t newlocale (int __category_mask, const char *__locale, locale_t __base) throw (); # 176 "/usr/include/locale.h" 3 4 extern locale_t duplocale (locale_t __dataset) throw (); extern void freelocale (locale_t __dataset) throw (); extern locale_t uselocale (locale_t __dataset) throw (); } # 43 "/opt/toolchain/target/bin/../include/c++/v1/locale.h" 2 3 # 21 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 2 3 # 47 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 3 namespace std { inline namespace __1 { struct __libcpp_locale_guard { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __libcpp_locale_guard(locale_t& __loc) : __old_loc_(uselocale(__loc)) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~__libcpp_locale_guard() { if (__old_loc_) uselocale(__old_loc_); } locale_t __old_loc_; private: __libcpp_locale_guard(__libcpp_locale_guard const&); __libcpp_locale_guard& operator=(__libcpp_locale_guard const&); }; # 109 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 3 class __attribute__ ((__visibility__("default"))) locale; template <class _Facet> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool has_facet(const locale&) noexcept; template <class _Facet> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Facet& use_facet(const locale&); class __attribute__ ((__visibility__("default"))) locale { public: class __attribute__ ((__visibility__("default"))) facet; class __attribute__ ((__visibility__("default"))) id; typedef int category; static const category none = 0, collate = (1 << 3), ctype = (1 << 0), monetary = (1 << 4), numeric = (1 << 1), time = (1 << 2), messages = (1 << 5), all = collate | ctype | monetary | numeric | time | messages; locale() noexcept; locale(const locale&) noexcept; explicit locale(const char*); explicit locale(const string&); locale(const locale&, const char*, category); locale(const locale&, const string&, category); template <class _Facet> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) locale(const locale&, _Facet*); locale(const locale&, const locale&, category); ~locale(); const locale& operator=(const locale&) noexcept; template <class _Facet> inline __attribute__ ((__visibility__("hidden"))) locale combine(const locale&) const; string name() const; bool operator==(const locale&) const; bool operator!=(const locale& __y) const {return !(*this == __y);} template <class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) bool operator()(const basic_string<_CharT, _Traits, _Allocator>&, const basic_string<_CharT, _Traits, _Allocator>&) const; static locale global(const locale&); static const locale& classic(); private: class __imp; __imp* __locale_; void __install_ctor(const locale&, facet*, long); static locale& __global(); bool has_facet(id&) const; const facet* use_facet(id&) const; template <class _Facet> friend bool has_facet(const locale&) noexcept; template <class _Facet> friend const _Facet& use_facet(const locale&); }; class __attribute__ ((__visibility__("default"))) locale::facet : public __shared_count { protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit facet(size_t __refs = 0) : __shared_count(static_cast<long>(__refs)-1) {} virtual ~facet(); private: virtual void __on_zero_shared() noexcept; }; class __attribute__ ((__visibility__("default"))) locale::id { once_flag __flag_; int32_t __id_; static int32_t __next_id; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr id() :__id_(0) {} private: void __init(); void operator=(const id&); id(const id&); public: long __get(); friend class locale; friend class locale::__imp; }; template <class _Facet> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) locale::locale(const locale& __other, _Facet* __f) { __install_ctor(__other, __f, __f ? __f->id.__get() : 0); } template <class _Facet> locale locale::combine(const locale& __other) const { if (!std::__1::has_facet<_Facet>(__other)) __throw_runtime_error("locale::combine: locale missing facet"); return locale(*this, &const_cast<_Facet&>(std::__1::use_facet<_Facet>(__other))); } template <class _Facet> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool has_facet(const locale& __l) noexcept { return __l.has_facet(_Facet::id); } template <class _Facet> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const _Facet& use_facet(const locale& __l) { return static_cast<const _Facet&>(*__l.use_facet(_Facet::id)); } template <class _CharT> class __attribute__ ((__type_visibility__("default"))) collate : public locale::facet { public: typedef _CharT char_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit collate(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int compare(const char_type* __lo1, const char_type* __hi1, const char_type* __lo2, const char_type* __hi2) const { return do_compare(__lo1, __hi1, __lo2, __hi2); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __attribute__ ((__always_inline__)) string_type transform(const char_type* __lo, const char_type* __hi) const { return do_transform(__lo, __hi); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long hash(const char_type* __lo, const char_type* __hi) const { return do_hash(__lo, __hi); } static locale::id id; protected: ~collate(); virtual int do_compare(const char_type* __lo1, const char_type* __hi1, const char_type* __lo2, const char_type* __hi2) const; virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const {return string_type(__lo, __hi);} virtual long do_hash(const char_type* __lo, const char_type* __hi) const; }; template <class _CharT> locale::id collate<_CharT>::id; template <class _CharT> collate<_CharT>::~collate() { } template <class _CharT> int collate<_CharT>::do_compare(const char_type* __lo1, const char_type* __hi1, const char_type* __lo2, const char_type* __hi2) const { for (; __lo2 != __hi2; ++__lo1, ++__lo2) { if (__lo1 == __hi1 || *__lo1 < *__lo2) return -1; if (*__lo2 < *__lo1) return 1; } return __lo1 != __hi1; } template <class _CharT> long collate<_CharT>::do_hash(const char_type* __lo, const char_type* __hi) const { size_t __h = 0; const size_t __sr = 8 * sizeof(size_t) - 8; const size_t __mask = size_t(0xF) << (__sr + 4); for(const char_type* __p = __lo; __p != __hi; ++__p) { __h = (__h << 4) + static_cast<size_t>(*__p); size_t __g = __h & __mask; __h ^= __g | (__g >> __sr); } return static_cast<long>(__h); } extern template class __attribute__ ((__visibility__("default"))) collate<char>; extern template class __attribute__ ((__visibility__("default"))) collate<wchar_t>; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) collate_byname; template <> class __attribute__ ((__visibility__("default"))) collate_byname<char> : public collate<char> { locale_t __l; public: typedef char char_type; typedef basic_string<char_type> string_type; explicit collate_byname(const char* __n, size_t __refs = 0); explicit collate_byname(const string& __n, size_t __refs = 0); protected: ~collate_byname(); virtual int do_compare(const char_type* __lo1, const char_type* __hi1, const char_type* __lo2, const char_type* __hi2) const; virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const; }; template <> class __attribute__ ((__visibility__("default"))) collate_byname<wchar_t> : public collate<wchar_t> { locale_t __l; public: typedef wchar_t char_type; typedef basic_string<char_type> string_type; explicit collate_byname(const char* __n, size_t __refs = 0); explicit collate_byname(const string& __n, size_t __refs = 0); protected: ~collate_byname(); virtual int do_compare(const char_type* __lo1, const char_type* __hi1, const char_type* __lo2, const char_type* __hi2) const; virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const; }; template <class _CharT, class _Traits, class _Allocator> bool locale::operator()(const basic_string<_CharT, _Traits, _Allocator>& __x, const basic_string<_CharT, _Traits, _Allocator>& __y) const { return std::__1::use_facet<std::__1::collate<_CharT> >(*this).compare( __x.data(), __x.data() + __x.size(), __y.data(), __y.data() + __y.size()) < 0; } class __attribute__ ((__visibility__("default"))) ctype_base { public: typedef unsigned short mask; static const mask space = _ISspace; static const mask print = _ISprint; static const mask cntrl = _IScntrl; static const mask upper = _ISupper; static const mask lower = _ISlower; static const mask alpha = _ISalpha; static const mask digit = _ISdigit; static const mask punct = _ISpunct; static const mask xdigit = _ISxdigit; static const mask blank = _ISblank; # 488 "/opt/toolchain/target/bin/../include/c++/v1/__locale" 3 static const mask alnum = alpha | digit; static const mask graph = alnum | punct; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ctype_base() {} }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) ctype; template <> class __attribute__ ((__visibility__("default"))) ctype<wchar_t> : public locale::facet, public ctype_base { public: typedef wchar_t char_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit ctype(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is(mask __m, char_type __c) const { return do_is(__m, __c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const { return do_is(__low, __high, __vec); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* scan_is(mask __m, const char_type* __low, const char_type* __high) const { return do_scan_is(__m, __low, __high); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const { return do_scan_not(__m, __low, __high); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type toupper(char_type __c) const { return do_toupper(__c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* toupper(char_type* __low, const char_type* __high) const { return do_toupper(__low, __high); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type tolower(char_type __c) const { return do_tolower(__c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* tolower(char_type* __low, const char_type* __high) const { return do_tolower(__low, __high); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type widen(char __c) const { return do_widen(__c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char* widen(const char* __low, const char* __high, char_type* __to) const { return do_widen(__low, __high, __to); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char narrow(char_type __c, char __dfault) const { return do_narrow(__c, __dfault); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const { return do_narrow(__low, __high, __dfault, __to); } static locale::id id; protected: ~ctype(); virtual bool do_is(mask __m, char_type __c) const; virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const; virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const; virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const; virtual char_type do_toupper(char_type) const; virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; virtual char_type do_tolower(char_type) const; virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; virtual char_type do_widen(char) const; virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const; virtual char do_narrow(char_type, char __dfault) const; virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const; }; template <> class __attribute__ ((__visibility__("default"))) ctype<char> : public locale::facet, public ctype_base { const mask* __tab_; bool __del_; public: typedef char char_type; explicit ctype(const mask* __tab = 0, bool __del = false, size_t __refs = 0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool is(mask __m, char_type __c) const { return (((__c) & ~0x7f) == 0) ? (__tab_[static_cast<int>(__c)] & __m) !=0 : false; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const { for (; __low != __high; ++__low, ++__vec) *__vec = (((*__low) & ~0x7f) == 0) ? __tab_[static_cast<int>(*__low)] : 0; return __low; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* scan_is (mask __m, const char_type* __low, const char_type* __high) const { for (; __low != __high; ++__low) if ((((*__low) & ~0x7f) == 0) && (__tab_[static_cast<int>(*__low)] & __m)) break; return __low; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const { for (; __low != __high; ++__low) if (!((((*__low) & ~0x7f) == 0) && (__tab_[static_cast<int>(*__low)] & __m))) break; return __low; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type toupper(char_type __c) const { return do_toupper(__c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* toupper(char_type* __low, const char_type* __high) const { return do_toupper(__low, __high); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type tolower(char_type __c) const { return do_tolower(__c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char_type* tolower(char_type* __low, const char_type* __high) const { return do_tolower(__low, __high); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type widen(char __c) const { return do_widen(__c); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char* widen(const char* __low, const char* __high, char_type* __to) const { return do_widen(__low, __high, __to); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char narrow(char_type __c, char __dfault) const { return do_narrow(__c, __dfault); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const char* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const { return do_narrow(__low, __high, __dfault, __to); } static locale::id id; static const size_t table_size = 256; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const mask* table() const noexcept {return __tab_;} static const mask* classic_table() noexcept; static const int* __classic_upper_table() noexcept; static const int* __classic_lower_table() noexcept; protected: ~ctype(); virtual char_type do_toupper(char_type __c) const; virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; virtual char_type do_tolower(char_type __c) const; virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; virtual char_type do_widen(char __c) const; virtual const char* do_widen(const char* __low, const char* __high, char_type* __to) const; virtual char do_narrow(char_type __c, char __dfault) const; virtual const char* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const; }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) ctype_byname; template <> class __attribute__ ((__visibility__("default"))) ctype_byname<char> : public ctype<char> { locale_t __l; public: explicit ctype_byname(const char*, size_t = 0); explicit ctype_byname(const string&, size_t = 0); protected: ~ctype_byname(); virtual char_type do_toupper(char_type) const; virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; virtual char_type do_tolower(char_type) const; virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; }; template <> class __attribute__ ((__visibility__("default"))) ctype_byname<wchar_t> : public ctype<wchar_t> { locale_t __l; public: explicit ctype_byname(const char*, size_t = 0); explicit ctype_byname(const string&, size_t = 0); protected: ~ctype_byname(); virtual bool do_is(mask __m, char_type __c) const; virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const; virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const; virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const; virtual char_type do_toupper(char_type) const; virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const; virtual char_type do_tolower(char_type) const; virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const; virtual char_type do_widen(char) const; virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const; virtual char do_narrow(char_type, char __dfault) const; virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const; }; template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isspace(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isprint(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool iscntrl(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isupper(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool islower(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isalpha(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isdigit(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool ispunct(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isxdigit(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isalnum(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool isgraph(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _CharT toupper(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).toupper(__c); } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _CharT tolower(_CharT __c, const locale& __loc) { return use_facet<ctype<_CharT> >(__loc).tolower(__c); } class __attribute__ ((__visibility__("default"))) codecvt_base { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) codecvt_base() {} enum result {ok, partial, error, noconv}; }; template <class _InternT, class _ExternT, class _StateT> class __attribute__ ((__type_visibility__("default"))) codecvt; template <> class __attribute__ ((__visibility__("default"))) codecvt<char, char, mbstate_t> : public locale::facet, public codecvt_base { public: typedef char intern_type; typedef char extern_type; typedef mbstate_t state_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_unshift(__st, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const { return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int encoding() const noexcept { return do_encoding(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool always_noconv() const noexcept { return do_always_noconv(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const { return do_length(__st, __frm, __end, __mx); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int max_length() const noexcept { return do_max_length(); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt(const char*, size_t __refs = 0) : locale::facet(__refs) {} ~codecvt(); virtual result do_out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual result do_in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual int do_encoding() const noexcept; virtual bool do_always_noconv() const noexcept; virtual int do_length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const; virtual int do_max_length() const noexcept; }; template <> class __attribute__ ((__visibility__("default"))) codecvt<wchar_t, char, mbstate_t> : public locale::facet, public codecvt_base { locale_t __l; public: typedef wchar_t intern_type; typedef char extern_type; typedef mbstate_t state_type; explicit codecvt(size_t __refs = 0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_unshift(__st, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const { return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int encoding() const noexcept { return do_encoding(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool always_noconv() const noexcept { return do_always_noconv(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const { return do_length(__st, __frm, __end, __mx); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int max_length() const noexcept { return do_max_length(); } static locale::id id; protected: explicit codecvt(const char*, size_t __refs = 0); ~codecvt(); virtual result do_out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual result do_in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual int do_encoding() const noexcept; virtual bool do_always_noconv() const noexcept; virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; virtual int do_max_length() const noexcept; }; template <> class __attribute__ ((__visibility__("default"))) codecvt<char16_t, char, mbstate_t> : public locale::facet, public codecvt_base { public: typedef char16_t intern_type; typedef char extern_type; typedef mbstate_t state_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_unshift(__st, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const { return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int encoding() const noexcept { return do_encoding(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool always_noconv() const noexcept { return do_always_noconv(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const { return do_length(__st, __frm, __end, __mx); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int max_length() const noexcept { return do_max_length(); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt(const char*, size_t __refs = 0) : locale::facet(__refs) {} ~codecvt(); virtual result do_out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual result do_in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual int do_encoding() const noexcept; virtual bool do_always_noconv() const noexcept; virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; virtual int do_max_length() const noexcept; }; template <> class __attribute__ ((__visibility__("default"))) codecvt<char32_t, char, mbstate_t> : public locale::facet, public codecvt_base { public: typedef char32_t intern_type; typedef char extern_type; typedef mbstate_t state_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const { return do_unshift(__st, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const { return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int encoding() const noexcept { return do_encoding(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool always_noconv() const noexcept { return do_always_noconv(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const { return do_length(__st, __frm, __end, __mx); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int max_length() const noexcept { return do_max_length(); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt(const char*, size_t __refs = 0) : locale::facet(__refs) {} ~codecvt(); virtual result do_out(state_type& __st, const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual result do_in(state_type& __st, const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt, intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const; virtual result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const; virtual int do_encoding() const noexcept; virtual bool do_always_noconv() const noexcept; virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const; virtual int do_max_length() const noexcept; }; template <class _InternT, class _ExternT, class _StateT> class __attribute__ ((__type_visibility__("default"))) codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt_byname(const char* __nm, size_t __refs = 0) : codecvt<_InternT, _ExternT, _StateT>(__nm, __refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit codecvt_byname(const string& __nm, size_t __refs = 0) : codecvt<_InternT, _ExternT, _StateT>(__nm.c_str(), __refs) {} protected: ~codecvt_byname(); }; template <class _InternT, class _ExternT, class _StateT> codecvt_byname<_InternT, _ExternT, _StateT>::~codecvt_byname() { } extern template class __attribute__ ((__visibility__("default"))) codecvt_byname<char, char, mbstate_t>; extern template class __attribute__ ((__visibility__("default"))) codecvt_byname<wchar_t, char, mbstate_t>; extern template class __attribute__ ((__visibility__("default"))) codecvt_byname<char16_t, char, mbstate_t>; extern template class __attribute__ ((__visibility__("default"))) codecvt_byname<char32_t, char, mbstate_t>; template <size_t _Np> struct __narrow_to_utf8 { template <class _OutputIterator, class _CharT> _OutputIterator operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const; }; template <> struct __narrow_to_utf8<8> { template <class _OutputIterator, class _CharT> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const { for (; __wb < __we; ++__wb, ++__s) *__s = *__wb; return __s; } }; template <> struct __attribute__ ((__type_visibility__("default"))) __narrow_to_utf8<16> : public codecvt<char16_t, char, mbstate_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __narrow_to_utf8() : codecvt<char16_t, char, mbstate_t>(1) {} __attribute__((__visibility__("default"))) ~__narrow_to_utf8(); template <class _OutputIterator, class _CharT> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const { result __r = ok; mbstate_t __mb; while (__wb < __we && __r != error) { const int __sz = 32; char __buf[__sz]; char* __bn; const char16_t* __wn = (const char16_t*)__wb; __r = do_out(__mb, (const char16_t*)__wb, (const char16_t*)__we, __wn, __buf, __buf+__sz, __bn); if (__r == codecvt_base::error || __wn == (const char16_t*)__wb) __throw_runtime_error("locale not supported"); for (const char* __p = __buf; __p < __bn; ++__p, ++__s) *__s = *__p; __wb = (const _CharT*)__wn; } return __s; } }; template <> struct __attribute__ ((__type_visibility__("default"))) __narrow_to_utf8<32> : public codecvt<char32_t, char, mbstate_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __narrow_to_utf8() : codecvt<char32_t, char, mbstate_t>(1) {} __attribute__((__visibility__("default"))) ~__narrow_to_utf8(); template <class _OutputIterator, class _CharT> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const { result __r = ok; mbstate_t __mb; while (__wb < __we && __r != error) { const int __sz = 32; char __buf[__sz]; char* __bn; const char32_t* __wn = (const char32_t*)__wb; __r = do_out(__mb, (const char32_t*)__wb, (const char32_t*)__we, __wn, __buf, __buf+__sz, __bn); if (__r == codecvt_base::error || __wn == (const char32_t*)__wb) __throw_runtime_error("locale not supported"); for (const char* __p = __buf; __p < __bn; ++__p, ++__s) *__s = *__p; __wb = (const _CharT*)__wn; } return __s; } }; template <size_t _Np> struct __widen_from_utf8 { template <class _OutputIterator> _OutputIterator operator()(_OutputIterator __s, const char* __nb, const char* __ne) const; }; template <> struct __widen_from_utf8<8> { template <class _OutputIterator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator operator()(_OutputIterator __s, const char* __nb, const char* __ne) const { for (; __nb < __ne; ++__nb, ++__s) *__s = *__nb; return __s; } }; template <> struct __attribute__ ((__type_visibility__("default"))) __widen_from_utf8<16> : public codecvt<char16_t, char, mbstate_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __widen_from_utf8() : codecvt<char16_t, char, mbstate_t>(1) {} __attribute__((__visibility__("default"))) ~__widen_from_utf8(); template <class _OutputIterator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator operator()(_OutputIterator __s, const char* __nb, const char* __ne) const { result __r = ok; mbstate_t __mb; while (__nb < __ne && __r != error) { const int __sz = 32; char16_t __buf[__sz]; char16_t* __bn; const char* __nn = __nb; __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn, __buf, __buf+__sz, __bn); if (__r == codecvt_base::error || __nn == __nb) __throw_runtime_error("locale not supported"); for (const char16_t* __p = __buf; __p < __bn; ++__p, ++__s) *__s = (wchar_t)*__p; __nb = __nn; } return __s; } }; template <> struct __attribute__ ((__type_visibility__("default"))) __widen_from_utf8<32> : public codecvt<char32_t, char, mbstate_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __widen_from_utf8() : codecvt<char32_t, char, mbstate_t>(1) {} __attribute__((__visibility__("default"))) ~__widen_from_utf8(); template <class _OutputIterator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator operator()(_OutputIterator __s, const char* __nb, const char* __ne) const { result __r = ok; mbstate_t __mb; while (__nb < __ne && __r != error) { const int __sz = 32; char32_t __buf[__sz]; char32_t* __bn; const char* __nn = __nb; __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn, __buf, __buf+__sz, __bn); if (__r == codecvt_base::error || __nn == __nb) __throw_runtime_error("locale not supported"); for (const char32_t* __p = __buf; __p < __bn; ++__p, ++__s) *__s = (wchar_t)*__p; __nb = __nn; } return __s; } }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) numpunct; template <> class __attribute__ ((__visibility__("default"))) numpunct<char> : public locale::facet { public: typedef char char_type; typedef basic_string<char_type> string_type; explicit numpunct(size_t __refs = 0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type decimal_point() const {return do_decimal_point();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type thousands_sep() const {return do_thousands_sep();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string grouping() const {return do_grouping();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type truename() const {return do_truename();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type falsename() const {return do_falsename();} static locale::id id; protected: ~numpunct(); virtual char_type do_decimal_point() const; virtual char_type do_thousands_sep() const; virtual string do_grouping() const; virtual string_type do_truename() const; virtual string_type do_falsename() const; char_type __decimal_point_; char_type __thousands_sep_; string __grouping_; }; template <> class __attribute__ ((__visibility__("default"))) numpunct<wchar_t> : public locale::facet { public: typedef wchar_t char_type; typedef basic_string<char_type> string_type; explicit numpunct(size_t __refs = 0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type decimal_point() const {return do_decimal_point();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type thousands_sep() const {return do_thousands_sep();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string grouping() const {return do_grouping();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type truename() const {return do_truename();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type falsename() const {return do_falsename();} static locale::id id; protected: ~numpunct(); virtual char_type do_decimal_point() const; virtual char_type do_thousands_sep() const; virtual string do_grouping() const; virtual string_type do_truename() const; virtual string_type do_falsename() const; char_type __decimal_point_; char_type __thousands_sep_; string __grouping_; }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) numpunct_byname; template <> class __attribute__ ((__visibility__("default"))) numpunct_byname<char> : public numpunct<char> { public: typedef char char_type; typedef basic_string<char_type> string_type; explicit numpunct_byname(const char* __nm, size_t __refs = 0); explicit numpunct_byname(const string& __nm, size_t __refs = 0); protected: ~numpunct_byname(); private: void __init(const char*); }; template <> class __attribute__ ((__visibility__("default"))) numpunct_byname<wchar_t> : public numpunct<wchar_t> { public: typedef wchar_t char_type; typedef basic_string<char_type> string_type; explicit numpunct_byname(const char* __nm, size_t __refs = 0); explicit numpunct_byname(const string& __nm, size_t __refs = 0); protected: ~numpunct_byname(); private: void __init(const char*); }; } } # 216 "/opt/toolchain/target/bin/../include/c++/v1/ios" 2 3 # 224 "/opt/toolchain/target/bin/../include/c++/v1/ios" 3 namespace std { inline namespace __1 { typedef ptrdiff_t streamsize; class __attribute__ ((__visibility__("default"))) ios_base { public: class __attribute__ ((__visibility__("default"))) failure; typedef unsigned int fmtflags; static const fmtflags boolalpha = 0x0001; static const fmtflags dec = 0x0002; static const fmtflags fixed = 0x0004; static const fmtflags hex = 0x0008; static const fmtflags internal = 0x0010; static const fmtflags left = 0x0020; static const fmtflags oct = 0x0040; static const fmtflags right = 0x0080; static const fmtflags scientific = 0x0100; static const fmtflags showbase = 0x0200; static const fmtflags showpoint = 0x0400; static const fmtflags showpos = 0x0800; static const fmtflags skipws = 0x1000; static const fmtflags unitbuf = 0x2000; static const fmtflags uppercase = 0x4000; static const fmtflags adjustfield = left | right | internal; static const fmtflags basefield = dec | oct | hex; static const fmtflags floatfield = scientific | fixed; typedef unsigned int iostate; static const iostate badbit = 0x1; static const iostate eofbit = 0x2; static const iostate failbit = 0x4; static const iostate goodbit = 0x0; typedef unsigned int openmode; static const openmode app = 0x01; static const openmode ate = 0x02; static const openmode binary = 0x04; static const openmode in = 0x08; static const openmode out = 0x10; static const openmode trunc = 0x20; enum seekdir {beg, cur, end}; # 280 "/opt/toolchain/target/bin/../include/c++/v1/ios" 3 class __attribute__ ((__visibility__("default"))) Init; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fmtflags flags() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fmtflags flags(fmtflags __fmtfl); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fmtflags setf(fmtflags __fmtfl); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) fmtflags setf(fmtflags __fmtfl, fmtflags __mask); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void unsetf(fmtflags __mask); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize precision() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize precision(streamsize __prec); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize width() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize width(streamsize __wide); locale imbue(const locale& __loc); locale getloc() const; static int xalloc(); long& iword(int __index); void*& pword(int __index); virtual ~ios_base(); enum event { erase_event, imbue_event, copyfmt_event }; typedef void (*event_callback)(event, ios_base&, int __index); void register_callback(event_callback __fn, int __index); private: ios_base(const ios_base&); ios_base& operator=(const ios_base&); public: static bool sync_with_stdio(bool __sync = true); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iostate rdstate() const; void clear(iostate __state = goodbit); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void setstate(iostate __state); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool good() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool eof() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool fail() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool bad() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iostate exceptions() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void exceptions(iostate __iostate); void __set_badbit_and_consider_rethrow(); void __set_failbit_and_consider_rethrow(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __setstate_nothrow(iostate __state) { if (__rdbuf_) __rdstate_ |= __state; else __rdstate_ |= __state | ios_base::badbit; } protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base() { } void init(void* __sb); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void* rdbuf() const {return __rdbuf_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void rdbuf(void* __sb) { __rdbuf_ = __sb; clear(); } void __call_callbacks(event); void copyfmt(const ios_base&); void move(ios_base&); void swap(ios_base&) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void set_rdbuf(void* __sb) { __rdbuf_ = __sb; } private: fmtflags __fmtflags_; streamsize __precision_; streamsize __width_; iostate __rdstate_; iostate __exceptions_; void* __rdbuf_; void* __loc_; event_callback* __fn_; int* __index_; size_t __event_size_; size_t __event_cap_; static atomic<int> __xindex_; long* __iarray_; size_t __iarray_size_; size_t __iarray_cap_; void** __parray_; size_t __parray_size_; size_t __parray_cap_; }; enum class __attribute__ ((__type_visibility__("default"))) io_errc { stream = 1 }; template <> struct __attribute__ ((__type_visibility__("default"))) is_error_code_enum<io_errc> : public true_type { }; __attribute__ ((__visibility__("default"))) const error_category& iostream_category() noexcept; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_code make_error_code(io_errc __e) noexcept { return error_code(static_cast<int>(__e), iostream_category()); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) error_condition make_error_condition(io_errc __e) noexcept { return error_condition(static_cast<int>(__e), iostream_category()); } class __attribute__ ((__visibility__("default"))) ios_base::failure : public system_error { public: explicit failure(const string& __msg, const error_code& __ec = io_errc::stream); explicit failure(const char* __msg, const error_code& __ec = io_errc::stream); virtual ~failure() throw(); }; [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_failure(char const* __msg) { ((void)__msg); std::__1::abort(); } class __attribute__ ((__visibility__("default"))) ios_base::Init { public: Init(); ~Init(); }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base::fmtflags ios_base::flags() const { return __fmtflags_; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base::fmtflags ios_base::flags(fmtflags __fmtfl) { fmtflags __r = __fmtflags_; __fmtflags_ = __fmtfl; return __r; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base::fmtflags ios_base::setf(fmtflags __fmtfl) { fmtflags __r = __fmtflags_; __fmtflags_ |= __fmtfl; return __r; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void ios_base::unsetf(fmtflags __mask) { __fmtflags_ &= ~__mask; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base::fmtflags ios_base::setf(fmtflags __fmtfl, fmtflags __mask) { fmtflags __r = __fmtflags_; unsetf(__mask); __fmtflags_ |= __fmtfl & __mask; return __r; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize ios_base::precision() const { return __precision_; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize ios_base::precision(streamsize __prec) { streamsize __r = __precision_; __precision_ = __prec; return __r; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize ios_base::width() const { return __width_; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize ios_base::width(streamsize __wide) { streamsize __r = __width_; __width_ = __wide; return __r; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base::iostate ios_base::rdstate() const { return __rdstate_; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void ios_base::setstate(iostate __state) { clear(__rdstate_ | __state); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool ios_base::good() const { return __rdstate_ == 0; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool ios_base::eof() const { return (__rdstate_ & eofbit) != 0; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool ios_base::fail() const { return (__rdstate_ & (failbit | badbit)) != 0; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool ios_base::bad() const { return (__rdstate_ & badbit) != 0; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base::iostate ios_base::exceptions() const { return __exceptions_; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void ios_base::exceptions(iostate __iostate) { __exceptions_ = __iostate; clear(__rdstate_); } # 600 "/opt/toolchain/target/bin/../include/c++/v1/ios" 3 template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_ios : public ios_base { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; static_assert((is_same<_CharT, typename traits_type::char_type>::value), "traits_type::char_type must be the same type as CharT"); # 625 "/opt/toolchain/target/bin/../include/c++/v1/ios" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const {return !fail();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!() const {return fail();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iostate rdstate() const {return ios_base::rdstate();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear(iostate __state = goodbit) {ios_base::clear(__state);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void setstate(iostate __state) {ios_base::setstate(__state);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool good() const {return ios_base::good();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool eof() const {return ios_base::eof();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool fail() const {return ios_base::fail();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool bad() const {return ios_base::bad();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iostate exceptions() const {return ios_base::exceptions();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void exceptions(iostate __iostate) {ios_base::exceptions(__iostate);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_ios(basic_streambuf<char_type,traits_type>* __sb); virtual ~basic_ios(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<char_type, traits_type>* tie() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<char_type, traits_type>* tie(basic_ostream<char_type, traits_type>* __tiestr); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_streambuf<char_type, traits_type>* rdbuf() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_streambuf<char_type, traits_type>* rdbuf(basic_streambuf<char_type, traits_type>* __sb); basic_ios& copyfmt(const basic_ios& __rhs); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type fill() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type fill(char_type __ch); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) locale imbue(const locale& __loc); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char narrow(char_type __c, char __dfault) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type widen(char __c) const; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ios() { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void init(basic_streambuf<char_type, traits_type>* __sb); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void move(basic_ios& __rhs); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void move(basic_ios&& __rhs) {move(__rhs);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_ios& __rhs) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void set_rdbuf(basic_streambuf<char_type, traits_type>* __sb); private: basic_ostream<char_type, traits_type>* __tie_; mutable int_type __fill_; }; template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ios<_CharT, _Traits>::basic_ios(basic_streambuf<char_type,traits_type>* __sb) { init(__sb); } template <class _CharT, class _Traits> basic_ios<_CharT, _Traits>::~basic_ios() { } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void basic_ios<_CharT, _Traits>::init(basic_streambuf<char_type, traits_type>* __sb) { ios_base::init(__sb); __tie_ = 0; __fill_ = traits_type::eof(); } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>* basic_ios<_CharT, _Traits>::tie() const { return __tie_; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>* basic_ios<_CharT, _Traits>::tie(basic_ostream<char_type, traits_type>* __tiestr) { basic_ostream<char_type, traits_type>* __r = __tie_; __tie_ = __tiestr; return __r; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_streambuf<_CharT, _Traits>* basic_ios<_CharT, _Traits>::rdbuf() const { return static_cast<basic_streambuf<char_type, traits_type>*>(ios_base::rdbuf()); } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_streambuf<_CharT, _Traits>* basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<char_type, traits_type>* __sb) { basic_streambuf<char_type, traits_type>* __r = rdbuf(); ios_base::rdbuf(__sb); return __r; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) locale basic_ios<_CharT, _Traits>::imbue(const locale& __loc) { locale __r = getloc(); ios_base::imbue(__loc); if (rdbuf()) rdbuf()->pubimbue(__loc); return __r; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const { return use_facet<ctype<char_type> >(getloc()).narrow(__c, __dfault); } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _CharT basic_ios<_CharT, _Traits>::widen(char __c) const { return use_facet<ctype<char_type> >(getloc()).widen(__c); } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _CharT basic_ios<_CharT, _Traits>::fill() const { if (traits_type::eq_int_type(traits_type::eof(), __fill_)) __fill_ = widen(' '); return __fill_; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _CharT basic_ios<_CharT, _Traits>::fill(char_type __ch) { char_type __r = __fill_; __fill_ = __ch; return __r; } template <class _CharT, class _Traits> basic_ios<_CharT, _Traits>& basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) { if (this != &__rhs) { __call_callbacks(erase_event); ios_base::copyfmt(__rhs); __tie_ = __rhs.__tie_; __fill_ = __rhs.__fill_; __call_callbacks(copyfmt_event); exceptions(__rhs.exceptions()); } return *this; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void basic_ios<_CharT, _Traits>::move(basic_ios& __rhs) { ios_base::move(__rhs); __tie_ = __rhs.__tie_; __rhs.__tie_ = 0; __fill_ = __rhs.__fill_; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void basic_ios<_CharT, _Traits>::swap(basic_ios& __rhs) noexcept { ios_base::swap(__rhs); std::__1::swap(__tie_, __rhs.__tie_); std::__1::swap(__fill_, __rhs.__fill_); } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void basic_ios<_CharT, _Traits>::set_rdbuf(basic_streambuf<char_type, traits_type>* __sb) { ios_base::set_rdbuf(__sb); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& boolalpha(ios_base& __str) { __str.setf(ios_base::boolalpha); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& noboolalpha(ios_base& __str) { __str.unsetf(ios_base::boolalpha); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& showbase(ios_base& __str) { __str.setf(ios_base::showbase); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& noshowbase(ios_base& __str) { __str.unsetf(ios_base::showbase); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& showpoint(ios_base& __str) { __str.setf(ios_base::showpoint); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& noshowpoint(ios_base& __str) { __str.unsetf(ios_base::showpoint); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& showpos(ios_base& __str) { __str.setf(ios_base::showpos); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& noshowpos(ios_base& __str) { __str.unsetf(ios_base::showpos); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& skipws(ios_base& __str) { __str.setf(ios_base::skipws); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& noskipws(ios_base& __str) { __str.unsetf(ios_base::skipws); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& uppercase(ios_base& __str) { __str.setf(ios_base::uppercase); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& nouppercase(ios_base& __str) { __str.unsetf(ios_base::uppercase); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& unitbuf(ios_base& __str) { __str.setf(ios_base::unitbuf); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& nounitbuf(ios_base& __str) { __str.unsetf(ios_base::unitbuf); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& internal(ios_base& __str) { __str.setf(ios_base::internal, ios_base::adjustfield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& left(ios_base& __str) { __str.setf(ios_base::left, ios_base::adjustfield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& right(ios_base& __str) { __str.setf(ios_base::right, ios_base::adjustfield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& dec(ios_base& __str) { __str.setf(ios_base::dec, ios_base::basefield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& hex(ios_base& __str) { __str.setf(ios_base::hex, ios_base::basefield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& oct(ios_base& __str) { __str.setf(ios_base::oct, ios_base::basefield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& fixed(ios_base& __str) { __str.setf(ios_base::fixed, ios_base::floatfield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& scientific(ios_base& __str) { __str.setf(ios_base::scientific, ios_base::floatfield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& hexfloat(ios_base& __str) { __str.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield); return __str; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ios_base& defaultfloat(ios_base& __str) { __str.unsetf(ios_base::floatfield); return __str; } template <class _CharT, class _Traits> class __save_flags { typedef basic_ios<_CharT, _Traits> __stream_type; typedef typename __stream_type::fmtflags fmtflags; __stream_type& __stream_; fmtflags __fmtflags_; _CharT __fill_; __save_flags(const __save_flags&); __save_flags& operator=(const __save_flags&); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __save_flags(__stream_type& __stream) : __stream_(__stream), __fmtflags_(__stream.flags()), __fill_(__stream.fill()) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~__save_flags() { __stream_.flags(__fmtflags_); __stream_.fill(__fill_); } }; } } # 138 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/streambuf" 1 3 # 116 "/opt/toolchain/target/bin/../include/c++/v1/streambuf" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 120 "/opt/toolchain/target/bin/../include/c++/v1/streambuf" 2 3 namespace std { inline namespace __1 { template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_streambuf { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; static_assert((is_same<_CharT, typename traits_type::char_type>::value), "traits_type::char_type must be the same type as CharT"); virtual ~basic_streambuf(); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) locale pubimbue(const locale& __loc) { imbue(__loc); locale __r = __loc_; __loc_ = __loc; return __r; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) locale getloc() const { return __loc_; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_streambuf* pubsetbuf(char_type* __s, streamsize __n) { return setbuf(__s, __n); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pos_type pubseekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __which = ios_base::in | ios_base::out) { return seekoff(__off, __way, __which); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pos_type pubseekpos(pos_type __sp, ios_base::openmode __which = ios_base::in | ios_base::out) { return seekpos(__sp, __which); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int pubsync() { return sync(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize in_avail() { if (__ninp_ < __einp_) return static_cast<streamsize>(__einp_ - __ninp_); return showmanyc(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int_type snextc() { if (sbumpc() == traits_type::eof()) return traits_type::eof(); return sgetc(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int_type sbumpc() { if (__ninp_ == __einp_) return uflow(); return traits_type::to_int_type(*__ninp_++); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int_type sgetc() { if (__ninp_ == __einp_) return underflow(); return traits_type::to_int_type(*__ninp_); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize sgetn(char_type* __s, streamsize __n) { return xsgetn(__s, __n); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int_type sputbackc(char_type __c) { if (__binp_ == __ninp_ || !traits_type::eq(__c, __ninp_[-1])) return pbackfail(traits_type::to_int_type(__c)); return traits_type::to_int_type(*--__ninp_); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int_type sungetc() { if (__binp_ == __ninp_) return pbackfail(); return traits_type::to_int_type(*--__ninp_); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int_type sputc(char_type __c) { if (__nout_ == __eout_) return overflow(traits_type::to_int_type(__c)); *__nout_++ = __c; return traits_type::to_int_type(__c); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize sputn(const char_type* __s, streamsize __n) { return xsputn(__s, __n); } protected: basic_streambuf(); basic_streambuf(const basic_streambuf& __rhs); basic_streambuf& operator=(const basic_streambuf& __rhs); void swap(basic_streambuf& __rhs); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type* eback() const {return __binp_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type* gptr() const {return __ninp_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type* egptr() const {return __einp_;} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void gbump(int __n) { __ninp_ += __n; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) { __binp_ = __gbeg; __ninp_ = __gnext; __einp_ = __gend; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type* pbase() const {return __bout_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type* pptr() const {return __nout_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type* epptr() const {return __eout_;} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pbump(int __n) { __nout_ += __n; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __pbump(streamsize __n) { __nout_ += __n; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void setp(char_type* __pbeg, char_type* __pend) { __bout_ = __nout_ = __pbeg; __eout_ = __pend; } virtual void imbue(const locale& __loc); virtual basic_streambuf* setbuf(char_type* __s, streamsize __n); virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __which = ios_base::in | ios_base::out); virtual pos_type seekpos(pos_type __sp, ios_base::openmode __which = ios_base::in | ios_base::out); virtual int sync(); virtual streamsize showmanyc(); virtual streamsize xsgetn(char_type* __s, streamsize __n); virtual int_type underflow(); virtual int_type uflow(); virtual int_type pbackfail(int_type __c = traits_type::eof()); virtual streamsize xsputn(const char_type* __s, streamsize __n); virtual int_type overflow(int_type __c = traits_type::eof()); private: locale __loc_; char_type* __binp_; char_type* __ninp_; char_type* __einp_; char_type* __bout_; char_type* __nout_; char_type* __eout_; }; template <class _CharT, class _Traits> basic_streambuf<_CharT, _Traits>::~basic_streambuf() { } template <class _CharT, class _Traits> basic_streambuf<_CharT, _Traits>::basic_streambuf() : __binp_(0), __ninp_(0), __einp_(0), __bout_(0), __nout_(0), __eout_(0) { } template <class _CharT, class _Traits> basic_streambuf<_CharT, _Traits>::basic_streambuf(const basic_streambuf& __sb) : __loc_(__sb.__loc_), __binp_(__sb.__binp_), __ninp_(__sb.__ninp_), __einp_(__sb.__einp_), __bout_(__sb.__bout_), __nout_(__sb.__nout_), __eout_(__sb.__eout_) { } template <class _CharT, class _Traits> basic_streambuf<_CharT, _Traits>& basic_streambuf<_CharT, _Traits>::operator=(const basic_streambuf& __sb) { __loc_ = __sb.__loc_; __binp_ = __sb.__binp_; __ninp_ = __sb.__ninp_; __einp_ = __sb.__einp_; __bout_ = __sb.__bout_; __nout_ = __sb.__nout_; __eout_ = __sb.__eout_; return *this; } template <class _CharT, class _Traits> void basic_streambuf<_CharT, _Traits>::swap(basic_streambuf& __sb) { std::__1::swap(__loc_, __sb.__loc_); std::__1::swap(__binp_, __sb.__binp_); std::__1::swap(__ninp_, __sb.__ninp_); std::__1::swap(__einp_, __sb.__einp_); std::__1::swap(__bout_, __sb.__bout_); std::__1::swap(__nout_, __sb.__nout_); std::__1::swap(__eout_, __sb.__eout_); } template <class _CharT, class _Traits> void basic_streambuf<_CharT, _Traits>::imbue(const locale&) { } template <class _CharT, class _Traits> basic_streambuf<_CharT, _Traits>* basic_streambuf<_CharT, _Traits>::setbuf(char_type*, streamsize) { return this; } template <class _CharT, class _Traits> typename basic_streambuf<_CharT, _Traits>::pos_type basic_streambuf<_CharT, _Traits>::seekoff(off_type, ios_base::seekdir, ios_base::openmode) { return pos_type(off_type(-1)); } template <class _CharT, class _Traits> typename basic_streambuf<_CharT, _Traits>::pos_type basic_streambuf<_CharT, _Traits>::seekpos(pos_type, ios_base::openmode) { return pos_type(off_type(-1)); } template <class _CharT, class _Traits> int basic_streambuf<_CharT, _Traits>::sync() { return 0; } template <class _CharT, class _Traits> streamsize basic_streambuf<_CharT, _Traits>::showmanyc() { return 0; } template <class _CharT, class _Traits> streamsize basic_streambuf<_CharT, _Traits>::xsgetn(char_type* __s, streamsize __n) { const int_type __eof = traits_type::eof(); int_type __c; streamsize __i = 0; while(__i < __n) { if (__ninp_ < __einp_) { const streamsize __len = std::__1::min(static_cast<streamsize>(2147483647), std::__1::min(__einp_ - __ninp_, __n - __i)); traits_type::copy(__s, __ninp_, __len); __s += __len; __i += __len; this->gbump(__len); } else if ((__c = uflow()) != __eof) { *__s = traits_type::to_char_type(__c); ++__s; ++__i; } else break; } return __i; } template <class _CharT, class _Traits> typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>::underflow() { return traits_type::eof(); } template <class _CharT, class _Traits> typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>::uflow() { if (underflow() == traits_type::eof()) return traits_type::eof(); return traits_type::to_int_type(*__ninp_++); } template <class _CharT, class _Traits> typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>::pbackfail(int_type) { return traits_type::eof(); } template <class _CharT, class _Traits> streamsize basic_streambuf<_CharT, _Traits>::xsputn(const char_type* __s, streamsize __n) { streamsize __i = 0; int_type __eof = traits_type::eof(); while( __i < __n) { if (__nout_ >= __eout_) { if (overflow(traits_type::to_int_type(*__s)) == __eof) break; ++__s; ++__i; } else { streamsize __chunk_size = std::__1::min(__eout_ - __nout_, __n - __i); traits_type::copy(__nout_, __s, __chunk_size); __nout_ += __chunk_size; __s += __chunk_size; __i += __chunk_size; } } return __i; } template <class _CharT, class _Traits> typename basic_streambuf<_CharT, _Traits>::int_type basic_streambuf<_CharT, _Traits>::overflow(int_type) { return traits_type::eof(); } extern template class __attribute__ ((__visibility__("default"))) basic_streambuf<char>; extern template class __attribute__ ((__visibility__("default"))) basic_streambuf<wchar_t>; extern template class __attribute__ ((__visibility__("default"))) basic_ios<char>; extern template class __attribute__ ((__visibility__("default"))) basic_ios<wchar_t>; } } # 139 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/locale" 1 3 # 191 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cstdarg" 1 3 # 39 "/opt/toolchain/target/bin/../include/c++/v1/cstdarg" 3 namespace std { inline namespace __1 { using ::va_list; } } # 192 "/opt/toolchain/target/bin/../include/c++/v1/locale" 2 3 # 1 "/usr/include/nl_types.h" 1 3 4 # 30 "/usr/include/nl_types.h" 3 4 extern "C" { typedef void *nl_catd; typedef int nl_item; extern nl_catd catopen (const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1))); extern char *catgets (nl_catd __catalog, int __set, int __number, const char *__string) throw () __attribute__ ((__nonnull__ (1))); extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1))); } # 198 "/opt/toolchain/target/bin/../include/c++/v1/locale" 2 3 # 207 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__bsd_locale_fallbacks.h" 1 3 # 16 "/opt/toolchain/target/bin/../include/c++/v1/__bsd_locale_fallbacks.h" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/stdlib.h" 1 3 # 17 "/opt/toolchain/target/bin/../include/c++/v1/__bsd_locale_fallbacks.h" 2 3 # 22 "/opt/toolchain/target/bin/../include/c++/v1/__bsd_locale_fallbacks.h" 3 namespace std { inline namespace __1 { inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) decltype((__ctype_get_mb_cur_max ())) __libcpp_mb_cur_max_l(locale_t __l) { __libcpp_locale_guard __current(__l); return (__ctype_get_mb_cur_max ()); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wint_t __libcpp_btowc_l(int __c, locale_t __l) { __libcpp_locale_guard __current(__l); return btowc(__c); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_wctob_l(wint_t __c, locale_t __l) { __libcpp_locale_guard __current(__l); return wctob(__c); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __libcpp_wcsnrtombs_l(char *__dest, const wchar_t **__src, size_t __nwc, size_t __len, mbstate_t *__ps, locale_t __l) { __libcpp_locale_guard __current(__l); return wcsnrtombs(__dest, __src, __nwc, __len, __ps); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __libcpp_wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l) { __libcpp_locale_guard __current(__l); return wcrtomb(__s, __wc, __ps); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __libcpp_mbsnrtowcs_l(wchar_t * __dest, const char **__src, size_t __nms, size_t __len, mbstate_t *__ps, locale_t __l) { __libcpp_locale_guard __current(__l); return mbsnrtowcs(__dest, __src, __nms, __len, __ps); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __libcpp_mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n, mbstate_t *__ps, locale_t __l) { __libcpp_locale_guard __current(__l); return mbrtowc(__pwc, __s, __n, __ps); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int __libcpp_mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l) { __libcpp_locale_guard __current(__l); return mbtowc(__pwc, __pmb, __max); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __libcpp_mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l) { __libcpp_locale_guard __current(__l); return mbrlen(__s, __n, __ps); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) lconv *__libcpp_localeconv_l(locale_t __l) { __libcpp_locale_guard __current(__l); return localeconv(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __libcpp_mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len, mbstate_t *__ps, locale_t __l) { __libcpp_locale_guard __current(__l); return mbsrtowcs(__dest, __src, __len, __ps); } inline int __libcpp_snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) { va_list __va; __builtin_va_start(__va, __format); __libcpp_locale_guard __current(__l); int __res = vsnprintf(__s, __n, __format, __va); __builtin_va_end(__va); return __res; } inline int __libcpp_asprintf_l(char **__s, locale_t __l, const char *__format, ...) { va_list __va; __builtin_va_start(__va, __format); __libcpp_locale_guard __current(__l); int __res = vasprintf(__s, __format, __va); __builtin_va_end(__va); return __res; } inline int __libcpp_sscanf_l(const char *__s, locale_t __l, const char *__format, ...) { va_list __va; __builtin_va_start(__va, __format); __libcpp_locale_guard __current(__l); int __res = vsscanf(__s, __format, __va); __builtin_va_end(__va); return __res; } } } # 208 "/opt/toolchain/target/bin/../include/c++/v1/locale" 2 3 # 212 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 216 "/opt/toolchain/target/bin/../include/c++/v1/locale" 2 3 namespace std { inline namespace __1 { # 227 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 __attribute__ ((__visibility__("default"))) locale_t __cloc(); # 249 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 template <class _InputIterator, class _ForwardIterator, class _Ctype> __attribute__ ((__visibility__("hidden"))) _ForwardIterator __scan_keyword(_InputIterator& __b, _InputIterator __e, _ForwardIterator __kb, _ForwardIterator __ke, const _Ctype& __ct, ios_base::iostate& __err, bool __case_sensitive = true) { typedef typename iterator_traits<_InputIterator>::value_type _CharT; size_t __nkw = static_cast<size_t>(std::__1::distance(__kb, __ke)); const unsigned char __doesnt_match = '\0'; const unsigned char __might_match = '\1'; const unsigned char __does_match = '\2'; unsigned char __statbuf[100]; unsigned char* __status = __statbuf; unique_ptr<unsigned char, void(*)(void*)> __stat_hold(0, free); if (__nkw > sizeof(__statbuf)) { __status = (unsigned char*)malloc(__nkw); if (__status == 0) __throw_bad_alloc(); __stat_hold.reset(__status); } size_t __n_might_match = __nkw; size_t __n_does_match = 0; unsigned char* __st = __status; for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st) { if (!__ky->empty()) *__st = __might_match; else { *__st = __does_match; --__n_might_match; ++__n_does_match; } } for (size_t __indx = 0; __b != __e && __n_might_match > 0; ++__indx) { _CharT __c = *__b; if (!__case_sensitive) __c = __ct.toupper(__c); bool __consume = false; __st = __status; for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st) { if (*__st == __might_match) { _CharT __kc = (*__ky)[__indx]; if (!__case_sensitive) __kc = __ct.toupper(__kc); if (__c == __kc) { __consume = true; if (__ky->size() == __indx+1) { *__st = __does_match; --__n_might_match; ++__n_does_match; } } else { *__st = __doesnt_match; --__n_might_match; } } } if (__consume) { ++__b; if (__n_might_match + __n_does_match > 1) { __st = __status; for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st) { if (*__st == __does_match && __ky->size() != __indx+1) { *__st = __doesnt_match; --__n_does_match; } } } } } if (__b == __e) __err |= ios_base::eofbit; for (__st = __status; __kb != __ke; ++__kb, (void) ++__st) if (*__st == __does_match) break; if (__kb == __ke) __err |= ios_base::failbit; return __kb; } struct __attribute__ ((__visibility__("default"))) __num_get_base { static const int __num_get_buf_sz = 40; static int __get_base(ios_base&); static const char __src[33]; }; __attribute__ ((__visibility__("default"))) void __check_grouping(const string& __grouping, unsigned* __g, unsigned* __g_end, ios_base::iostate& __err); template <class _CharT> struct __num_get : protected __num_get_base { static string __stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point, _CharT& __thousands_sep); static int __stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp, char* __a, char*& __a_end, _CharT __decimal_point, _CharT __thousands_sep, const string& __grouping, unsigned* __g, unsigned*& __g_end, unsigned& __dc, _CharT* __atoms); static string __stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep); static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end, unsigned& __dc, _CharT __thousands_sep, const string& __grouping, unsigned* __g, unsigned*& __g_end, _CharT* __atoms); # 423 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 }; template <class _CharT> string __num_get<_CharT>::__stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep) { locale __loc = __iob.getloc(); use_facet<ctype<_CharT> >(__loc).widen(__src, __src + 26, __atoms); const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc); __thousands_sep = __np.thousands_sep(); return __np.grouping(); } template <class _CharT> string __num_get<_CharT>::__stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point, _CharT& __thousands_sep) { locale __loc = __iob.getloc(); use_facet<ctype<_CharT> >(__loc).widen(__src, __src + 32, __atoms); const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc); __decimal_point = __np.decimal_point(); __thousands_sep = __np.thousands_sep(); return __np.grouping(); } template <class _CharT> int __num_get<_CharT>::__stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end, unsigned& __dc, _CharT __thousands_sep, const string& __grouping, unsigned* __g, unsigned*& __g_end, _CharT* __atoms) { if (__a_end == __a && (__ct == __atoms[24] || __ct == __atoms[25])) { *__a_end++ = __ct == __atoms[24] ? '+' : '-'; __dc = 0; return 0; } if (__grouping.size() != 0 && __ct == __thousands_sep) { if (__g_end-__g < __num_get_buf_sz) { *__g_end++ = __dc; __dc = 0; } return 0; } ptrdiff_t __f = find(__atoms, __atoms + 26, __ct) - __atoms; if (__f >= 24) return -1; switch (__base) { case 8: case 10: if (__f >= __base) return -1; break; case 16: if (__f < 22) break; if (__a_end != __a && __a_end - __a <= 2 && __a_end[-1] == '0') { __dc = 0; *__a_end++ = __src[__f]; return 0; } return -1; } *__a_end++ = __src[__f]; ++__dc; return 0; } template <class _CharT> int __num_get<_CharT>::__stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp, char* __a, char*& __a_end, _CharT __decimal_point, _CharT __thousands_sep, const string& __grouping, unsigned* __g, unsigned*& __g_end, unsigned& __dc, _CharT* __atoms) { if (__ct == __decimal_point) { if (!__in_units) return -1; __in_units = false; *__a_end++ = '.'; if (__grouping.size() != 0 && __g_end-__g < __num_get_buf_sz) *__g_end++ = __dc; return 0; } if (__ct == __thousands_sep && __grouping.size() != 0) { if (!__in_units) return -1; if (__g_end-__g < __num_get_buf_sz) { *__g_end++ = __dc; __dc = 0; } return 0; } ptrdiff_t __f = find(__atoms, __atoms + 32, __ct) - __atoms; if (__f >= 32) return -1; char __x = __src[__f]; if (__x == '-' || __x == '+') { if (__a_end == __a || (__a_end[-1] & 0x5F) == (__exp & 0x7F)) { *__a_end++ = __x; return 0; } return -1; } if (__x == 'x' || __x == 'X') __exp = 'P'; else if ((__x & 0x5F) == __exp) { __exp |= (char) 0x80; if (__in_units) { __in_units = false; if (__grouping.size() != 0 && __g_end-__g < __num_get_buf_sz) *__g_end++ = __dc; } } *__a_end++ = __x; if (__f >= 22) return 0; ++__dc; return 0; } extern template struct __attribute__ ((__visibility__("default"))) __num_get<char>; extern template struct __attribute__ ((__visibility__("default"))) __num_get<wchar_t>; template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) num_get : public locale::facet, private __num_get<_CharT> { public: typedef _CharT char_type; typedef _InputIterator iter_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit num_get(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, bool& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long long& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned short& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned int& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned long& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned long long& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, float& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, double& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long double& __v) const { return do_get(__b, __e, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, void*& __v) const { return do_get(__b, __e, __iob, __err, __v); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~num_get() {} template <class _Fp> inline __attribute__ ((__visibility__("hidden"))) iter_type __do_get_floating_point (iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, _Fp& __v) const; template <class _Signed> inline __attribute__ ((__visibility__("hidden"))) iter_type __do_get_signed (iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, _Signed& __v) const; template <class _Unsigned> inline __attribute__ ((__visibility__("hidden"))) iter_type __do_get_unsigned (iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, _Unsigned& __v) const; virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, bool& __v) const; virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long& __v) const { return this->__do_get_signed ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long long& __v) const { return this->__do_get_signed ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned short& __v) const { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned int& __v) const { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned long& __v) const { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned long long& __v) const { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, float& __v) const { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, double& __v) const { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long double& __v) const { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); } virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, void*& __v) const; }; template <class _CharT, class _InputIterator> locale::id num_get<_CharT, _InputIterator>::id; template <class _Tp> __attribute__ ((__visibility__("hidden"))) _Tp __num_get_signed_integral(const char* __a, const char* __a_end, ios_base::iostate& __err, int __base) { if (__a != __a_end) { typename remove_reference<decltype((*__errno_location ()))>::type __save_errno = (*__errno_location ()); (*__errno_location ()) = 0; char *__p2; long long __ll = strtoll_l(__a, &__p2, __base, __cloc()); typename remove_reference<decltype((*__errno_location ()))>::type __current_errno = (*__errno_location ()); if (__current_errno == 0) (*__errno_location ()) = __save_errno; if (__p2 != __a_end) { __err = ios_base::failbit; return 0; } else if (__current_errno == 34 || __ll < numeric_limits<_Tp>::min() || numeric_limits<_Tp>::max() < __ll) { __err = ios_base::failbit; if (__ll > 0) return numeric_limits<_Tp>::max(); else return numeric_limits<_Tp>::min(); } return static_cast<_Tp>(__ll); } __err = ios_base::failbit; return 0; } template <class _Tp> __attribute__ ((__visibility__("hidden"))) _Tp __num_get_unsigned_integral(const char* __a, const char* __a_end, ios_base::iostate& __err, int __base) { if (__a != __a_end) { const bool __negate = *__a == '-'; if (__negate && ++__a == __a_end) { __err = ios_base::failbit; return 0; } typename remove_reference<decltype((*__errno_location ()))>::type __save_errno = (*__errno_location ()); (*__errno_location ()) = 0; char *__p2; unsigned long long __ll = strtoull_l(__a, &__p2, __base, __cloc()); typename remove_reference<decltype((*__errno_location ()))>::type __current_errno = (*__errno_location ()); if (__current_errno == 0) (*__errno_location ()) = __save_errno; if (__p2 != __a_end) { __err = ios_base::failbit; return 0; } else if (__current_errno == 34 || numeric_limits<_Tp>::max() < __ll) { __err = ios_base::failbit; return numeric_limits<_Tp>::max(); } _Tp __res = static_cast<_Tp>(__ll); if (__negate) __res = -__res; return __res; } __err = ios_base::failbit; return 0; } template <class _Tp> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp __do_strtod(const char* __a, char** __p2); template <> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float __do_strtod<float>(const char* __a, char** __p2) { return strtof_l(__a, __p2, __cloc()); } template <> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) double __do_strtod<double>(const char* __a, char** __p2) { return strtod_l(__a, __p2, __cloc()); } template <> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double __do_strtod<long double>(const char* __a, char** __p2) { return strtold_l(__a, __p2, __cloc()); } template <class _Tp> __attribute__ ((__visibility__("hidden"))) _Tp __num_get_float(const char* __a, const char* __a_end, ios_base::iostate& __err) { if (__a != __a_end) { typename remove_reference<decltype((*__errno_location ()))>::type __save_errno = (*__errno_location ()); (*__errno_location ()) = 0; char *__p2; _Tp __ld = __do_strtod<_Tp>(__a, &__p2); typename remove_reference<decltype((*__errno_location ()))>::type __current_errno = (*__errno_location ()); if (__current_errno == 0) (*__errno_location ()) = __save_errno; if (__p2 != __a_end) { __err = ios_base::failbit; return 0; } else if (__current_errno == 34) __err = ios_base::failbit; return __ld; } __err = ios_base::failbit; return 0; } template <class _CharT, class _InputIterator> _InputIterator num_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, bool& __v) const { if ((__iob.flags() & ios_base::boolalpha) == 0) { long __lv = -1; __b = do_get(__b, __e, __iob, __err, __lv); switch (__lv) { case 0: __v = false; break; case 1: __v = true; break; default: __v = true; __err = ios_base::failbit; break; } return __b; } const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__iob.getloc()); const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__iob.getloc()); typedef typename numpunct<_CharT>::string_type string_type; const string_type __names[2] = {__np.truename(), __np.falsename()}; const string_type* __i = __scan_keyword(__b, __e, __names, __names+2, __ct, __err); __v = __i == __names; return __b; } template <class _CharT, class _InputIterator> template <class _Signed> _InputIterator num_get<_CharT, _InputIterator>::__do_get_signed(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, _Signed& __v) const { int __base = this->__get_base(__iob); char_type __thousands_sep; const int __atoms_size = 26; char_type __atoms[__atoms_size]; string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep); string __buf; __buf.resize(__buf.capacity()); char* __a = &__buf[0]; char* __a_end = __a; unsigned __g[__num_get_base::__num_get_buf_sz]; unsigned* __g_end = __g; unsigned __dc = 0; for (; __b != __e; ++__b) { if (__a_end == __a + __buf.size()) { size_t __tmp = __buf.size(); __buf.resize(2*__buf.size()); __buf.resize(__buf.capacity()); __a = &__buf[0]; __a_end = __a + __tmp; } if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, __thousands_sep, __grouping, __g, __g_end, __atoms)) break; } if (__grouping.size() != 0 && __g_end-__g < __num_get_base::__num_get_buf_sz) *__g_end++ = __dc; __v = __num_get_signed_integral<_Signed>(__a, __a_end, __err, __base); __check_grouping(__grouping, __g, __g_end, __err); if (__b == __e) __err |= ios_base::eofbit; return __b; } template <class _CharT, class _InputIterator> template <class _Unsigned> _InputIterator num_get<_CharT, _InputIterator>::__do_get_unsigned(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, _Unsigned& __v) const { int __base = this->__get_base(__iob); char_type __thousands_sep; const int __atoms_size = 26; char_type __atoms[__atoms_size]; string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep); string __buf; __buf.resize(__buf.capacity()); char* __a = &__buf[0]; char* __a_end = __a; unsigned __g[__num_get_base::__num_get_buf_sz]; unsigned* __g_end = __g; unsigned __dc = 0; for (; __b != __e; ++__b) { if (__a_end == __a + __buf.size()) { size_t __tmp = __buf.size(); __buf.resize(2*__buf.size()); __buf.resize(__buf.capacity()); __a = &__buf[0]; __a_end = __a + __tmp; } if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, __thousands_sep, __grouping, __g, __g_end, __atoms)) break; } if (__grouping.size() != 0 && __g_end-__g < __num_get_base::__num_get_buf_sz) *__g_end++ = __dc; __v = __num_get_unsigned_integral<_Unsigned>(__a, __a_end, __err, __base); __check_grouping(__grouping, __g, __g_end, __err); if (__b == __e) __err |= ios_base::eofbit; return __b; } template <class _CharT, class _InputIterator> template <class _Fp> _InputIterator num_get<_CharT, _InputIterator>::__do_get_floating_point(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, _Fp& __v) const { char_type __atoms[32]; char_type __decimal_point; char_type __thousands_sep; string __grouping = this->__stage2_float_prep(__iob, __atoms, __decimal_point, __thousands_sep); string __buf; __buf.resize(__buf.capacity()); char* __a = &__buf[0]; char* __a_end = __a; unsigned __g[__num_get_base::__num_get_buf_sz]; unsigned* __g_end = __g; unsigned __dc = 0; bool __in_units = true; char __exp = 'E'; for (; __b != __e; ++__b) { if (__a_end == __a + __buf.size()) { size_t __tmp = __buf.size(); __buf.resize(2*__buf.size()); __buf.resize(__buf.capacity()); __a = &__buf[0]; __a_end = __a + __tmp; } if (this->__stage2_float_loop(*__b, __in_units, __exp, __a, __a_end, __decimal_point, __thousands_sep, __grouping, __g, __g_end, __dc, __atoms)) break; } if (__grouping.size() != 0 && __in_units && __g_end-__g < __num_get_base::__num_get_buf_sz) *__g_end++ = __dc; __v = __num_get_float<_Fp>(__a, __a_end, __err); __check_grouping(__grouping, __g, __g_end, __err); if (__b == __e) __err |= ios_base::eofbit; return __b; } template <class _CharT, class _InputIterator> _InputIterator num_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, void*& __v) const { int __base = 16; char_type __atoms[26]; char_type __thousands_sep = 0; string __grouping; use_facet<ctype<_CharT> >(__iob.getloc()).widen(__num_get_base::__src, __num_get_base::__src + 26, __atoms); string __buf; __buf.resize(__buf.capacity()); char* __a = &__buf[0]; char* __a_end = __a; unsigned __g[__num_get_base::__num_get_buf_sz]; unsigned* __g_end = __g; unsigned __dc = 0; for (; __b != __e; ++__b) { if (__a_end == __a + __buf.size()) { size_t __tmp = __buf.size(); __buf.resize(2*__buf.size()); __buf.resize(__buf.capacity()); __a = &__buf[0]; __a_end = __a + __tmp; } if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, __thousands_sep, __grouping, __g, __g_end, __atoms)) break; } __buf.resize(__a_end - __a); if (__libcpp_sscanf_l(__buf.c_str(), __cloc(), "%p", &__v) != 1) __err = ios_base::failbit; if (__b == __e) __err |= ios_base::eofbit; return __b; } extern template class __attribute__ ((__visibility__("default"))) num_get<char>; extern template class __attribute__ ((__visibility__("default"))) num_get<wchar_t>; struct __attribute__ ((__visibility__("default"))) __num_put_base { protected: static void __format_int(char* __fmt, const char* __len, bool __signd, ios_base::fmtflags __flags); static bool __format_float(char* __fmt, const char* __len, ios_base::fmtflags __flags); static char* __identify_padding(char* __nb, char* __ne, const ios_base& __iob); }; template <class _CharT> struct __num_put : protected __num_put_base { static void __widen_and_group_int(char* __nb, char* __np, char* __ne, _CharT* __ob, _CharT*& __op, _CharT*& __oe, const locale& __loc); static void __widen_and_group_float(char* __nb, char* __np, char* __ne, _CharT* __ob, _CharT*& __op, _CharT*& __oe, const locale& __loc); }; template <class _CharT> void __num_put<_CharT>::__widen_and_group_int(char* __nb, char* __np, char* __ne, _CharT* __ob, _CharT*& __op, _CharT*& __oe, const locale& __loc) { const ctype<_CharT>& __ct = use_facet<ctype<_CharT> > (__loc); const numpunct<_CharT>& __npt = use_facet<numpunct<_CharT> >(__loc); string __grouping = __npt.grouping(); if (__grouping.empty()) { __ct.widen(__nb, __ne, __ob); __oe = __ob + (__ne - __nb); } else { __oe = __ob; char* __nf = __nb; if (*__nf == '-' || *__nf == '+') *__oe++ = __ct.widen(*__nf++); if (__ne - __nf >= 2 && __nf[0] == '0' && (__nf[1] == 'x' || __nf[1] == 'X')) { *__oe++ = __ct.widen(*__nf++); *__oe++ = __ct.widen(*__nf++); } reverse(__nf, __ne); _CharT __thousands_sep = __npt.thousands_sep(); unsigned __dc = 0; unsigned __dg = 0; for (char* __p = __nf; __p < __ne; ++__p) { if (static_cast<unsigned>(__grouping[__dg]) > 0 && __dc == static_cast<unsigned>(__grouping[__dg])) { *__oe++ = __thousands_sep; __dc = 0; if (__dg < __grouping.size()-1) ++__dg; } *__oe++ = __ct.widen(*__p); ++__dc; } reverse(__ob + (__nf - __nb), __oe); } if (__np == __ne) __op = __oe; else __op = __ob + (__np - __nb); } template <class _CharT> void __num_put<_CharT>::__widen_and_group_float(char* __nb, char* __np, char* __ne, _CharT* __ob, _CharT*& __op, _CharT*& __oe, const locale& __loc) { const ctype<_CharT>& __ct = use_facet<ctype<_CharT> > (__loc); const numpunct<_CharT>& __npt = use_facet<numpunct<_CharT> >(__loc); string __grouping = __npt.grouping(); __oe = __ob; char* __nf = __nb; if (*__nf == '-' || *__nf == '+') *__oe++ = __ct.widen(*__nf++); char* __ns; if (__ne - __nf >= 2 && __nf[0] == '0' && (__nf[1] == 'x' || __nf[1] == 'X')) { *__oe++ = __ct.widen(*__nf++); *__oe++ = __ct.widen(*__nf++); for (__ns = __nf; __ns < __ne; ++__ns) if (!((((__cloc())))->__ctype_b[(int) (((*__ns)))] & (unsigned short int) _ISxdigit)) break; } else { for (__ns = __nf; __ns < __ne; ++__ns) if (!((((__cloc())))->__ctype_b[(int) (((*__ns)))] & (unsigned short int) _ISdigit)) break; } if (__grouping.empty()) { __ct.widen(__nf, __ns, __oe); __oe += __ns - __nf; } else { reverse(__nf, __ns); _CharT __thousands_sep = __npt.thousands_sep(); unsigned __dc = 0; unsigned __dg = 0; for (char* __p = __nf; __p < __ns; ++__p) { if (__grouping[__dg] > 0 && __dc == static_cast<unsigned>(__grouping[__dg])) { *__oe++ = __thousands_sep; __dc = 0; if (__dg < __grouping.size()-1) ++__dg; } *__oe++ = __ct.widen(*__p); ++__dc; } reverse(__ob + (__nf - __nb), __oe); } for (__nf = __ns; __nf < __ne; ++__nf) { if (*__nf == '.') { *__oe++ = __npt.decimal_point(); ++__nf; break; } else *__oe++ = __ct.widen(*__nf); } __ct.widen(__nf, __ne, __oe); __oe += __ne - __nf; if (__np == __ne) __op = __oe; else __op = __ob + (__np - __nb); } extern template struct __attribute__ ((__visibility__("default"))) __num_put<char>; extern template struct __attribute__ ((__visibility__("default"))) __num_put<wchar_t>; template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) num_put : public locale::facet, private __num_put<_CharT> { public: typedef _CharT char_type; typedef _OutputIterator iter_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit num_put(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, bool __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, long __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, long long __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, unsigned long __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, unsigned long long __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, double __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, long double __v) const { return do_put(__s, __iob, __fl, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, const void* __v) const { return do_put(__s, __iob, __fl, __v); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~num_put() {} virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, bool __v) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, long __v) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, long long __v) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, unsigned long) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, unsigned long long) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, double __v) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, long double __v) const; virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl, const void* __v) const; }; template <class _CharT, class _OutputIterator> locale::id num_put<_CharT, _OutputIterator>::id; template <class _CharT, class _OutputIterator> __attribute__ ((__visibility__("hidden"))) _OutputIterator __pad_and_output(_OutputIterator __s, const _CharT* __ob, const _CharT* __op, const _CharT* __oe, ios_base& __iob, _CharT __fl) { streamsize __sz = __oe - __ob; streamsize __ns = __iob.width(); if (__ns > __sz) __ns -= __sz; else __ns = 0; for (;__ob < __op; ++__ob, ++__s) *__s = *__ob; for (; __ns; --__ns, ++__s) *__s = __fl; for (; __ob < __oe; ++__ob, ++__s) *__s = *__ob; __iob.width(0); return __s; } template <class _CharT, class _Traits> __attribute__ ((__visibility__("hidden"))) ostreambuf_iterator<_CharT, _Traits> __pad_and_output(ostreambuf_iterator<_CharT, _Traits> __s, const _CharT* __ob, const _CharT* __op, const _CharT* __oe, ios_base& __iob, _CharT __fl) { if (__s.__sbuf_ == nullptr) return __s; streamsize __sz = __oe - __ob; streamsize __ns = __iob.width(); if (__ns > __sz) __ns -= __sz; else __ns = 0; streamsize __np = __op - __ob; if (__np > 0) { if (__s.__sbuf_->sputn(__ob, __np) != __np) { __s.__sbuf_ = nullptr; return __s; } } if (__ns > 0) { basic_string<_CharT, _Traits> __sp(__ns, __fl); if (__s.__sbuf_->sputn(__sp.data(), __ns) != __ns) { __s.__sbuf_ = nullptr; return __s; } } __np = __oe - __op; if (__np > 0) { if (__s.__sbuf_->sputn(__op, __np) != __np) { __s.__sbuf_ = nullptr; return __s; } } __iob.width(0); return __s; } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, bool __v) const { if ((__iob.flags() & ios_base::boolalpha) == 0) return do_put(__s, __iob, __fl, (unsigned long)__v); const numpunct<char_type>& __np = use_facet<numpunct<char_type> >(__iob.getloc()); typedef typename numpunct<char_type>::string_type string_type; string_type __nm = __v ? __np.truename() : __np.falsename(); for (typename string_type::iterator __i = __nm.begin(); __i != __nm.end(); ++__i, ++__s) *__s = *__i; return __s; } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, long __v) const { char __fmt[6] = {'%', 0}; const char* __len = "l"; this->__format_int(__fmt+1, __len, true, __iob.flags()); const unsigned __nbuf = (numeric_limits<long>::digits / 3) + ((numeric_limits<long>::digits % 3) != 0) + ((__iob.flags() & ios_base::showbase) != 0) + 2; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), __cloc(), __fmt, __v); char* __ne = __nar + __nc; char* __np = this->__identify_padding(__nar, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __op; char_type* __oe; this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, long long __v) const { char __fmt[8] = {'%', 0}; const char* __len = "ll"; this->__format_int(__fmt+1, __len, true, __iob.flags()); const unsigned __nbuf = (numeric_limits<long long>::digits / 3) + ((numeric_limits<long long>::digits % 3) != 0) + ((__iob.flags() & ios_base::showbase) != 0) + 2; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), __cloc(), __fmt, __v); char* __ne = __nar + __nc; char* __np = this->__identify_padding(__nar, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __op; char_type* __oe; this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, unsigned long __v) const { char __fmt[6] = {'%', 0}; const char* __len = "l"; this->__format_int(__fmt+1, __len, false, __iob.flags()); const unsigned __nbuf = (numeric_limits<unsigned long>::digits / 3) + ((numeric_limits<unsigned long>::digits % 3) != 0) + ((__iob.flags() & ios_base::showbase) != 0) + 1; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), __cloc(), __fmt, __v); char* __ne = __nar + __nc; char* __np = this->__identify_padding(__nar, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __op; char_type* __oe; this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, unsigned long long __v) const { char __fmt[8] = {'%', 0}; const char* __len = "ll"; this->__format_int(__fmt+1, __len, false, __iob.flags()); const unsigned __nbuf = (numeric_limits<unsigned long long>::digits / 3) + ((numeric_limits<unsigned long long>::digits % 3) != 0) + ((__iob.flags() & ios_base::showbase) != 0) + 1; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), __cloc(), __fmt, __v); char* __ne = __nar + __nc; char* __np = this->__identify_padding(__nar, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __op; char_type* __oe; this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc()); return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, double __v) const { char __fmt[8] = {'%', 0}; const char* __len = ""; bool __specify_precision = this->__format_float(__fmt+1, __len, __iob.flags()); const unsigned __nbuf = 30; char __nar[__nbuf]; char* __nb = __nar; int __nc; if (__specify_precision) __nc = __libcpp_snprintf_l(__nb, __nbuf, __cloc(), __fmt, (int)__iob.precision(), __v); else __nc = __libcpp_snprintf_l(__nb, __nbuf, __cloc(), __fmt, __v); unique_ptr<char, void(*)(void*)> __nbh(0, free); if (__nc > static_cast<int>(__nbuf-1)) { if (__specify_precision) __nc = __libcpp_asprintf_l(&__nb, __cloc(), __fmt, (int)__iob.precision(), __v); else __nc = __libcpp_asprintf_l(&__nb, __cloc(), __fmt, __v); if (__nb == 0) __throw_bad_alloc(); __nbh.reset(__nb); } char* __ne = __nb + __nc; char* __np = this->__identify_padding(__nb, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __ob = __o; unique_ptr<char_type, void(*)(void*)> __obh(0, free); if (__nb != __nar) { __ob = (char_type*)malloc(2*static_cast<size_t>(__nc)*sizeof(char_type)); if (__ob == 0) __throw_bad_alloc(); __obh.reset(__ob); } char_type* __op; char_type* __oe; this->__widen_and_group_float(__nb, __np, __ne, __ob, __op, __oe, __iob.getloc()); __s = __pad_and_output(__s, __ob, __op, __oe, __iob, __fl); return __s; } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, long double __v) const { char __fmt[8] = {'%', 0}; const char* __len = "L"; bool __specify_precision = this->__format_float(__fmt+1, __len, __iob.flags()); const unsigned __nbuf = 30; char __nar[__nbuf]; char* __nb = __nar; int __nc; if (__specify_precision) __nc = __libcpp_snprintf_l(__nb, __nbuf, __cloc(), __fmt, (int)__iob.precision(), __v); else __nc = __libcpp_snprintf_l(__nb, __nbuf, __cloc(), __fmt, __v); unique_ptr<char, void(*)(void*)> __nbh(0, free); if (__nc > static_cast<int>(__nbuf-1)) { if (__specify_precision) __nc = __libcpp_asprintf_l(&__nb, __cloc(), __fmt, (int)__iob.precision(), __v); else __nc = __libcpp_asprintf_l(&__nb, __cloc(), __fmt, __v); if (__nb == 0) __throw_bad_alloc(); __nbh.reset(__nb); } char* __ne = __nb + __nc; char* __np = this->__identify_padding(__nb, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __ob = __o; unique_ptr<char_type, void(*)(void*)> __obh(0, free); if (__nb != __nar) { __ob = (char_type*)malloc(2*static_cast<size_t>(__nc)*sizeof(char_type)); if (__ob == 0) __throw_bad_alloc(); __obh.reset(__ob); } char_type* __op; char_type* __oe; this->__widen_and_group_float(__nb, __np, __ne, __ob, __op, __oe, __iob.getloc()); __s = __pad_and_output(__s, __ob, __op, __oe, __iob, __fl); return __s; } template <class _CharT, class _OutputIterator> _OutputIterator num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_type __fl, const void* __v) const { char __fmt[6] = "%p"; const unsigned __nbuf = 20; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), __cloc(), __fmt, __v); char* __ne = __nar + __nc; char* __np = this->__identify_padding(__nar, __ne, __iob); char_type __o[2*(__nbuf-1) - 1]; char_type* __op; char_type* __oe; const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); __ct.widen(__nar, __ne, __o); __oe = __o + (__ne - __nar); if (__np == __ne) __op = __oe; else __op = __o + (__np - __nar); return __pad_and_output(__s, __o, __op, __oe, __iob, __fl); } extern template class __attribute__ ((__visibility__("default"))) num_put<char>; extern template class __attribute__ ((__visibility__("default"))) num_put<wchar_t>; template <class _CharT, class _InputIterator> __attribute__ ((__visibility__("hidden"))) int __get_up_to_n_digits(_InputIterator& __b, _InputIterator __e, ios_base::iostate& __err, const ctype<_CharT>& __ct, int __n) { if (__b == __e) { __err |= ios_base::eofbit | ios_base::failbit; return 0; } _CharT __c = *__b; if (!__ct.is(ctype_base::digit, __c)) { __err |= ios_base::failbit; return 0; } int __r = __ct.narrow(__c, 0) - '0'; for (++__b, (void) --__n; __b != __e && __n > 0; ++__b, (void) --__n) { __c = *__b; if (!__ct.is(ctype_base::digit, __c)) return __r; __r = __r * 10 + __ct.narrow(__c, 0) - '0'; } if (__b == __e) __err |= ios_base::eofbit; return __r; } class __attribute__ ((__visibility__("default"))) time_base { public: enum dateorder {no_order, dmy, mdy, ymd, ydm}; }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) __time_get_c_storage { protected: typedef basic_string<_CharT> string_type; virtual const string_type* __weeks() const; virtual const string_type* __months() const; virtual const string_type* __am_pm() const; virtual const string_type& __c() const; virtual const string_type& __r() const; virtual const string_type& __x() const; virtual const string_type& __X() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~__time_get_c_storage() {} }; template <> __attribute__ ((__visibility__("default"))) const string* __time_get_c_storage<char>::__weeks() const; template <> __attribute__ ((__visibility__("default"))) const string* __time_get_c_storage<char>::__months() const; template <> __attribute__ ((__visibility__("default"))) const string* __time_get_c_storage<char>::__am_pm() const; template <> __attribute__ ((__visibility__("default"))) const string& __time_get_c_storage<char>::__c() const; template <> __attribute__ ((__visibility__("default"))) const string& __time_get_c_storage<char>::__r() const; template <> __attribute__ ((__visibility__("default"))) const string& __time_get_c_storage<char>::__x() const; template <> __attribute__ ((__visibility__("default"))) const string& __time_get_c_storage<char>::__X() const; template <> __attribute__ ((__visibility__("default"))) const wstring* __time_get_c_storage<wchar_t>::__weeks() const; template <> __attribute__ ((__visibility__("default"))) const wstring* __time_get_c_storage<wchar_t>::__months() const; template <> __attribute__ ((__visibility__("default"))) const wstring* __time_get_c_storage<wchar_t>::__am_pm() const; template <> __attribute__ ((__visibility__("default"))) const wstring& __time_get_c_storage<wchar_t>::__c() const; template <> __attribute__ ((__visibility__("default"))) const wstring& __time_get_c_storage<wchar_t>::__r() const; template <> __attribute__ ((__visibility__("default"))) const wstring& __time_get_c_storage<wchar_t>::__x() const; template <> __attribute__ ((__visibility__("default"))) const wstring& __time_get_c_storage<wchar_t>::__X() const; template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) time_get : public locale::facet, public time_base, private __time_get_c_storage<_CharT> { public: typedef _CharT char_type; typedef _InputIterator iter_type; typedef time_base::dateorder dateorder; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_get(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) dateorder date_order() const { return this->do_date_order(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get_time(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { return do_get_time(__b, __e, __iob, __err, __tm); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get_date(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { return do_get_date(__b, __e, __iob, __err, __tm); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get_weekday(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { return do_get_weekday(__b, __e, __iob, __err, __tm); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get_monthname(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { return do_get_monthname(__b, __e, __iob, __err, __tm); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get_year(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { return do_get_year(__b, __e, __iob, __err, __tm); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm *__tm, char __fmt, char __mod = 0) const { return do_get(__b, __e, __iob, __err, __tm, __fmt, __mod); } iter_type get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm, const char_type* __fmtb, const char_type* __fmte) const; static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~time_get() {} virtual dateorder do_date_order() const; virtual iter_type do_get_time(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_date(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_weekday(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_monthname(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get_year(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const; virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm, char __fmt, char __mod) const; private: void __get_white_space(iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_percent(iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_weekdayname(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_monthname(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_day(int& __d, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_month(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_year(int& __y, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_year4(int& __y, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_hour(int& __d, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_12_hour(int& __h, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_am_pm(int& __h, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_minute(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_second(int& __s, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_weekday(int& __w, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; void __get_day_year_num(int& __w, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const; }; template <class _CharT, class _InputIterator> locale::id time_get<_CharT, _InputIterator>::id; template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_weekdayname(int& __w, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { const string_type* __wk = this->__weeks(); ptrdiff_t __i = __scan_keyword(__b, __e, __wk, __wk+14, __ct, __err, false) - __wk; if (__i < 14) __w = __i % 7; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_monthname(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { const string_type* __month = this->__months(); ptrdiff_t __i = __scan_keyword(__b, __e, __month, __month+24, __ct, __err, false) - __month; if (__i < 24) __m = __i % 12; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_day(int& __d, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); if (!(__err & ios_base::failbit) && 1 <= __t && __t <= 31) __d = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_month(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2) - 1; if (!(__err & ios_base::failbit) && __t <= 11) __m = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_year(int& __y, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 4); if (!(__err & ios_base::failbit)) { if (__t < 69) __t += 2000; else if (69 <= __t && __t <= 99) __t += 1900; __y = __t - 1900; } } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_year4(int& __y, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 4); if (!(__err & ios_base::failbit)) __y = __t - 1900; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_hour(int& __h, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); if (!(__err & ios_base::failbit) && __t <= 23) __h = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_12_hour(int& __h, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); if (!(__err & ios_base::failbit) && 1 <= __t && __t <= 12) __h = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_minute(int& __m, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); if (!(__err & ios_base::failbit) && __t <= 59) __m = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_second(int& __s, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2); if (!(__err & ios_base::failbit) && __t <= 60) __s = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_weekday(int& __w, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 1); if (!(__err & ios_base::failbit) && __t <= 6) __w = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_day_year_num(int& __d, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 3); if (!(__err & ios_base::failbit) && __t <= 365) __d = __t; else __err |= ios_base::failbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_white_space(iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { for (; __b != __e && __ct.is(ctype_base::space, *__b); ++__b) ; if (__b == __e) __err |= ios_base::eofbit; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_am_pm(int& __h, iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { const string_type* __ap = this->__am_pm(); if (__ap[0].size() + __ap[1].size() == 0) { __err |= ios_base::failbit; return; } ptrdiff_t __i = __scan_keyword(__b, __e, __ap, __ap+2, __ct, __err, false) - __ap; if (__i == 0 && __h == 12) __h = 0; else if (__i == 1 && __h < 12) __h += 12; } template <class _CharT, class _InputIterator> void time_get<_CharT, _InputIterator>::__get_percent(iter_type& __b, iter_type __e, ios_base::iostate& __err, const ctype<char_type>& __ct) const { if (__b == __e) { __err |= ios_base::eofbit | ios_base::failbit; return; } if (__ct.narrow(*__b, 0) != '%') __err |= ios_base::failbit; else if(++__b == __e) __err |= ios_base::eofbit; } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm, const char_type* __fmtb, const char_type* __fmte) const { const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); __err = ios_base::goodbit; while (__fmtb != __fmte && __err == ios_base::goodbit) { if (__b == __e) { __err = ios_base::failbit; break; } if (__ct.narrow(*__fmtb, 0) == '%') { if (++__fmtb == __fmte) { __err = ios_base::failbit; break; } char __cmd = __ct.narrow(*__fmtb, 0); char __opt = '\0'; if (__cmd == 'E' || __cmd == '0') { if (++__fmtb == __fmte) { __err = ios_base::failbit; break; } __opt = __cmd; __cmd = __ct.narrow(*__fmtb, 0); } __b = do_get(__b, __e, __iob, __err, __tm, __cmd, __opt); ++__fmtb; } else if (__ct.is(ctype_base::space, *__fmtb)) { for (++__fmtb; __fmtb != __fmte && __ct.is(ctype_base::space, *__fmtb); ++__fmtb) ; for ( ; __b != __e && __ct.is(ctype_base::space, *__b); ++__b) ; } else if (__ct.toupper(*__b) == __ct.toupper(*__fmtb)) { ++__b; ++__fmtb; } else __err = ios_base::failbit; } if (__b == __e) __err |= ios_base::eofbit; return __b; } template <class _CharT, class _InputIterator> typename time_get<_CharT, _InputIterator>::dateorder time_get<_CharT, _InputIterator>::do_date_order() const { return mdy; } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::do_get_time(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { const char_type __fmt[] = {'%', 'H', ':', '%', 'M', ':', '%', 'S'}; return get(__b, __e, __iob, __err, __tm, __fmt, __fmt + sizeof(__fmt)/sizeof(__fmt[0])); } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::do_get_date(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { const string_type& __fmt = this->__x(); return get(__b, __e, __iob, __err, __tm, __fmt.data(), __fmt.data() + __fmt.size()); } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::do_get_weekday(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); __get_weekdayname(__tm->tm_wday, __b, __e, __err, __ct); return __b; } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::do_get_monthname(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); __get_monthname(__tm->tm_mon, __b, __e, __err, __ct); return __b; } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::do_get_year(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm) const { const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); __get_year(__tm->tm_year, __b, __e, __err, __ct); return __b; } template <class _CharT, class _InputIterator> _InputIterator time_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, tm* __tm, char __fmt, char) const { __err = ios_base::goodbit; const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); switch (__fmt) { case 'a': case 'A': __get_weekdayname(__tm->tm_wday, __b, __e, __err, __ct); break; case 'b': case 'B': case 'h': __get_monthname(__tm->tm_mon, __b, __e, __err, __ct); break; case 'c': { const string_type& __fm = this->__c(); __b = get(__b, __e, __iob, __err, __tm, __fm.data(), __fm.data() + __fm.size()); } break; case 'd': case 'e': __get_day(__tm->tm_mday, __b, __e, __err, __ct); break; case 'D': { const char_type __fm[] = {'%', 'm', '/', '%', 'd', '/', '%', 'y'}; __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); } break; case 'F': { const char_type __fm[] = {'%', 'Y', '-', '%', 'm', '-', '%', 'd'}; __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); } break; case 'H': __get_hour(__tm->tm_hour, __b, __e, __err, __ct); break; case 'I': __get_12_hour(__tm->tm_hour, __b, __e, __err, __ct); break; case 'j': __get_day_year_num(__tm->tm_yday, __b, __e, __err, __ct); break; case 'm': __get_month(__tm->tm_mon, __b, __e, __err, __ct); break; case 'M': __get_minute(__tm->tm_min, __b, __e, __err, __ct); break; case 'n': case 't': __get_white_space(__b, __e, __err, __ct); break; case 'p': __get_am_pm(__tm->tm_hour, __b, __e, __err, __ct); break; case 'r': { const char_type __fm[] = {'%', 'I', ':', '%', 'M', ':', '%', 'S', ' ', '%', 'p'}; __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); } break; case 'R': { const char_type __fm[] = {'%', 'H', ':', '%', 'M'}; __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); } break; case 'S': __get_second(__tm->tm_sec, __b, __e, __err, __ct); break; case 'T': { const char_type __fm[] = {'%', 'H', ':', '%', 'M', ':', '%', 'S'}; __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0])); } break; case 'w': __get_weekday(__tm->tm_wday, __b, __e, __err, __ct); break; case 'x': return do_get_date(__b, __e, __iob, __err, __tm); case 'X': { const string_type& __fm = this->__X(); __b = get(__b, __e, __iob, __err, __tm, __fm.data(), __fm.data() + __fm.size()); } break; case 'y': __get_year(__tm->tm_year, __b, __e, __err, __ct); break; case 'Y': __get_year4(__tm->tm_year, __b, __e, __err, __ct); break; case '%': __get_percent(__b, __e, __err, __ct); break; default: __err |= ios_base::failbit; } return __b; } extern template class __attribute__ ((__visibility__("default"))) time_get<char>; extern template class __attribute__ ((__visibility__("default"))) time_get<wchar_t>; class __attribute__ ((__visibility__("default"))) __time_get { protected: locale_t __loc_; __time_get(const char* __nm); __time_get(const string& __nm); ~__time_get(); }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) __time_get_storage : public __time_get { protected: typedef basic_string<_CharT> string_type; string_type __weeks_[14]; string_type __months_[24]; string_type __am_pm_[2]; string_type __c_; string_type __r_; string_type __x_; string_type __X_; explicit __time_get_storage(const char* __nm); explicit __time_get_storage(const string& __nm); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~__time_get_storage() {} time_base::dateorder __do_date_order() const; private: void init(const ctype<_CharT>&); string_type __analyze(char __fmt, const ctype<_CharT>&); }; # 2418 "/opt/toolchain/target/bin/../include/c++/v1/locale" 3 template <> __attribute__ ((__visibility__("default"))) time_base::dateorder __time_get_storage<char>::__do_date_order() const; template <> __attribute__ ((__visibility__("default"))) __time_get_storage<char>::__time_get_storage(const char*); template <> __attribute__ ((__visibility__("default"))) __time_get_storage<char>::__time_get_storage(const string&); template <> __attribute__ ((__visibility__("default"))) void __time_get_storage<char>::init(const ctype<char>&); template <> __attribute__ ((__visibility__("default"))) __time_get_storage<char>::string_type __time_get_storage<char>::__analyze(char, const ctype<char>&); extern template __attribute__ ((__visibility__("default"))) time_base::dateorder __time_get_storage<char>::__do_date_order() const; extern template __attribute__ ((__visibility__("default"))) __time_get_storage<char>::__time_get_storage(const char*); extern template __attribute__ ((__visibility__("default"))) __time_get_storage<char>::__time_get_storage(const string&); extern template __attribute__ ((__visibility__("default"))) void __time_get_storage<char>::init(const ctype<char>&); extern template __attribute__ ((__visibility__("default"))) __time_get_storage<char>::string_type __time_get_storage<char>::__analyze(char, const ctype<char>&); template <> __attribute__ ((__visibility__("default"))) time_base::dateorder __time_get_storage<wchar_t>::__do_date_order() const; template <> __attribute__ ((__visibility__("default"))) __time_get_storage<wchar_t>::__time_get_storage(const char*); template <> __attribute__ ((__visibility__("default"))) __time_get_storage<wchar_t>::__time_get_storage(const string&); template <> __attribute__ ((__visibility__("default"))) void __time_get_storage<wchar_t>::init(const ctype<wchar_t>&); template <> __attribute__ ((__visibility__("default"))) __time_get_storage<wchar_t>::string_type __time_get_storage<wchar_t>::__analyze(char, const ctype<wchar_t>&); extern template __attribute__ ((__visibility__("default"))) time_base::dateorder __time_get_storage<wchar_t>::__do_date_order() const; extern template __attribute__ ((__visibility__("default"))) __time_get_storage<wchar_t>::__time_get_storage(const char*); extern template __attribute__ ((__visibility__("default"))) __time_get_storage<wchar_t>::__time_get_storage(const string&); extern template __attribute__ ((__visibility__("default"))) void __time_get_storage<wchar_t>::init(const ctype<wchar_t>&); extern template __attribute__ ((__visibility__("default"))) __time_get_storage<wchar_t>::string_type __time_get_storage<wchar_t>::__analyze(char, const ctype<wchar_t>&); template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) time_get_byname : public time_get<_CharT, _InputIterator>, private __time_get_storage<_CharT> { public: typedef time_base::dateorder dateorder; typedef _InputIterator iter_type; typedef _CharT char_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_get_byname(const char* __nm, size_t __refs = 0) : time_get<_CharT, _InputIterator>(__refs), __time_get_storage<_CharT>(__nm) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_get_byname(const string& __nm, size_t __refs = 0) : time_get<_CharT, _InputIterator>(__refs), __time_get_storage<_CharT>(__nm) {} protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~time_get_byname() {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual dateorder do_date_order() const {return this->__do_date_order();} private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type* __weeks() const {return this->__weeks_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type* __months() const {return this->__months_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type* __am_pm() const {return this->__am_pm_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type& __c() const {return this->__c_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type& __r() const {return this->__r_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type& __x() const {return this->__x_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual const string_type& __X() const {return this->__X_;} }; extern template class __attribute__ ((__visibility__("default"))) time_get_byname<char>; extern template class __attribute__ ((__visibility__("default"))) time_get_byname<wchar_t>; class __attribute__ ((__visibility__("default"))) __time_put { locale_t __loc_; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __time_put() : __loc_(__cloc()) {} __time_put(const char* __nm); __time_put(const string& __nm); ~__time_put(); void __do_put(char* __nb, char*& __ne, const tm* __tm, char __fmt, char __mod) const; void __do_put(wchar_t* __wb, wchar_t*& __we, const tm* __tm, char __fmt, char __mod) const; }; template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) time_put : public locale::facet, private __time_put { public: typedef _CharT char_type; typedef _OutputIterator iter_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_put(size_t __refs = 0) : locale::facet(__refs) {} iter_type put(iter_type __s, ios_base& __iob, char_type __fl, const tm* __tm, const char_type* __pb, const char_type* __pe) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, ios_base& __iob, char_type __fl, const tm* __tm, char __fmt, char __mod = 0) const { return do_put(__s, __iob, __fl, __tm, __fmt, __mod); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~time_put() {} virtual iter_type do_put(iter_type __s, ios_base&, char_type, const tm* __tm, char __fmt, char __mod) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_put(const char* __nm, size_t __refs) : locale::facet(__refs), __time_put(__nm) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_put(const string& __nm, size_t __refs) : locale::facet(__refs), __time_put(__nm) {} }; template <class _CharT, class _OutputIterator> locale::id time_put<_CharT, _OutputIterator>::id; template <class _CharT, class _OutputIterator> _OutputIterator time_put<_CharT, _OutputIterator>::put(iter_type __s, ios_base& __iob, char_type __fl, const tm* __tm, const char_type* __pb, const char_type* __pe) const { const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc()); for (; __pb != __pe; ++__pb) { if (__ct.narrow(*__pb, 0) == '%') { if (++__pb == __pe) { *__s++ = __pb[-1]; break; } char __mod = 0; char __fmt = __ct.narrow(*__pb, 0); if (__fmt == 'E' || __fmt == 'O') { if (++__pb == __pe) { *__s++ = __pb[-2]; *__s++ = __pb[-1]; break; } __mod = __fmt; __fmt = __ct.narrow(*__pb, 0); } __s = do_put(__s, __iob, __fl, __tm, __fmt, __mod); } else *__s++ = *__pb; } return __s; } template <class _CharT, class _OutputIterator> _OutputIterator time_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base&, char_type, const tm* __tm, char __fmt, char __mod) const { char_type __nar[100]; char_type* __nb = __nar; char_type* __ne = __nb + 100; __do_put(__nb, __ne, __tm, __fmt, __mod); return std::__1::copy(__nb, __ne, __s); } extern template class __attribute__ ((__visibility__("default"))) time_put<char>; extern template class __attribute__ ((__visibility__("default"))) time_put<wchar_t>; template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) time_put_byname : public time_put<_CharT, _OutputIterator> { public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_put_byname(const char* __nm, size_t __refs = 0) : time_put<_CharT, _OutputIterator>(__nm, __refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit time_put_byname(const string& __nm, size_t __refs = 0) : time_put<_CharT, _OutputIterator>(__nm, __refs) {} protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~time_put_byname() {} }; extern template class __attribute__ ((__visibility__("default"))) time_put_byname<char>; extern template class __attribute__ ((__visibility__("default"))) time_put_byname<wchar_t>; class __attribute__ ((__visibility__("default"))) money_base { public: enum part {none, space, symbol, sign, value}; struct pattern {char field[4];}; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) money_base() {} }; template <class _CharT, bool _International = false> class __attribute__ ((__type_visibility__("default"))) moneypunct : public locale::facet, public money_base { public: typedef _CharT char_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit moneypunct(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type decimal_point() const {return do_decimal_point();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) char_type thousands_sep() const {return do_thousands_sep();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string grouping() const {return do_grouping();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type curr_symbol() const {return do_curr_symbol();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type positive_sign() const {return do_positive_sign();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type negative_sign() const {return do_negative_sign();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) int frac_digits() const {return do_frac_digits();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pattern pos_format() const {return do_pos_format();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pattern neg_format() const {return do_neg_format();} static locale::id id; static const bool intl = _International; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~moneypunct() {} virtual char_type do_decimal_point() const {return numeric_limits<char_type>::max();} virtual char_type do_thousands_sep() const {return numeric_limits<char_type>::max();} virtual string do_grouping() const {return string();} virtual string_type do_curr_symbol() const {return string_type();} virtual string_type do_positive_sign() const {return string_type();} virtual string_type do_negative_sign() const {return string_type(1, '-');} virtual int do_frac_digits() const {return 0;} virtual pattern do_pos_format() const {pattern __p = {{symbol, sign, none, value}}; return __p;} virtual pattern do_neg_format() const {pattern __p = {{symbol, sign, none, value}}; return __p;} }; template <class _CharT, bool _International> locale::id moneypunct<_CharT, _International>::id; template <class _CharT, bool _International> const bool moneypunct<_CharT, _International>::intl; extern template class __attribute__ ((__visibility__("default"))) moneypunct<char, false>; extern template class __attribute__ ((__visibility__("default"))) moneypunct<char, true>; extern template class __attribute__ ((__visibility__("default"))) moneypunct<wchar_t, false>; extern template class __attribute__ ((__visibility__("default"))) moneypunct<wchar_t, true>; template <class _CharT, bool _International = false> class __attribute__ ((__type_visibility__("default"))) moneypunct_byname : public moneypunct<_CharT, _International> { public: typedef money_base::pattern pattern; typedef _CharT char_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit moneypunct_byname(const char* __nm, size_t __refs = 0) : moneypunct<_CharT, _International>(__refs) {init(__nm);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit moneypunct_byname(const string& __nm, size_t __refs = 0) : moneypunct<_CharT, _International>(__refs) {init(__nm.c_str());} protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~moneypunct_byname() {} virtual char_type do_decimal_point() const {return __decimal_point_;} virtual char_type do_thousands_sep() const {return __thousands_sep_;} virtual string do_grouping() const {return __grouping_;} virtual string_type do_curr_symbol() const {return __curr_symbol_;} virtual string_type do_positive_sign() const {return __positive_sign_;} virtual string_type do_negative_sign() const {return __negative_sign_;} virtual int do_frac_digits() const {return __frac_digits_;} virtual pattern do_pos_format() const {return __pos_format_;} virtual pattern do_neg_format() const {return __neg_format_;} private: char_type __decimal_point_; char_type __thousands_sep_; string __grouping_; string_type __curr_symbol_; string_type __positive_sign_; string_type __negative_sign_; int __frac_digits_; pattern __pos_format_; pattern __neg_format_; void init(const char*); }; template<> __attribute__ ((__visibility__("default"))) void moneypunct_byname<char, false>::init(const char*); template<> __attribute__ ((__visibility__("default"))) void moneypunct_byname<char, true>::init(const char*); template<> __attribute__ ((__visibility__("default"))) void moneypunct_byname<wchar_t, false>::init(const char*); template<> __attribute__ ((__visibility__("default"))) void moneypunct_byname<wchar_t, true>::init(const char*); extern template class __attribute__ ((__visibility__("default"))) moneypunct_byname<char, false>; extern template class __attribute__ ((__visibility__("default"))) moneypunct_byname<char, true>; extern template class __attribute__ ((__visibility__("default"))) moneypunct_byname<wchar_t, false>; extern template class __attribute__ ((__visibility__("default"))) moneypunct_byname<wchar_t, true>; template <class _CharT> class __money_get { protected: typedef _CharT char_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __money_get() {} static void __gather_info(bool __intl, const locale& __loc, money_base::pattern& __pat, char_type& __dp, char_type& __ts, string& __grp, string_type& __sym, string_type& __psn, string_type& __nsn, int& __fd); }; template <class _CharT> void __money_get<_CharT>::__gather_info(bool __intl, const locale& __loc, money_base::pattern& __pat, char_type& __dp, char_type& __ts, string& __grp, string_type& __sym, string_type& __psn, string_type& __nsn, int& __fd) { if (__intl) { const moneypunct<char_type, true>& __mp = use_facet<moneypunct<char_type, true> >(__loc); __pat = __mp.neg_format(); __nsn = __mp.negative_sign(); __psn = __mp.positive_sign(); __dp = __mp.decimal_point(); __ts = __mp.thousands_sep(); __grp = __mp.grouping(); __sym = __mp.curr_symbol(); __fd = __mp.frac_digits(); } else { const moneypunct<char_type, false>& __mp = use_facet<moneypunct<char_type, false> >(__loc); __pat = __mp.neg_format(); __nsn = __mp.negative_sign(); __psn = __mp.positive_sign(); __dp = __mp.decimal_point(); __ts = __mp.thousands_sep(); __grp = __mp.grouping(); __sym = __mp.curr_symbol(); __fd = __mp.frac_digits(); } } extern template class __attribute__ ((__visibility__("default"))) __money_get<char>; extern template class __attribute__ ((__visibility__("default"))) __money_get<wchar_t>; template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) money_get : public locale::facet, private __money_get<_CharT> { public: typedef _CharT char_type; typedef _InputIterator iter_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit money_get(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, ios_base::iostate& __err, long double& __v) const { return do_get(__b, __e, __intl, __iob, __err, __v); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, ios_base::iostate& __err, string_type& __v) const { return do_get(__b, __e, __intl, __iob, __err, __v); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~money_get() {} virtual iter_type do_get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, ios_base::iostate& __err, long double& __v) const; virtual iter_type do_get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, ios_base::iostate& __err, string_type& __v) const; private: static bool __do_get(iter_type& __b, iter_type __e, bool __intl, const locale& __loc, ios_base::fmtflags __flags, ios_base::iostate& __err, bool& __neg, const ctype<char_type>& __ct, unique_ptr<char_type, void(*)(void*)>& __wb, char_type*& __wn, char_type* __we); }; template <class _CharT, class _InputIterator> locale::id money_get<_CharT, _InputIterator>::id; __attribute__ ((__visibility__("default"))) void __do_nothing(void*); template <class _Tp> __attribute__ ((__visibility__("hidden"))) void __double_or_nothing(unique_ptr<_Tp, void(*)(void*)>& __b, _Tp*& __n, _Tp*& __e) { bool __owns = __b.get_deleter() != __do_nothing; size_t __cur_cap = static_cast<size_t>(__e-__b.get()) * sizeof(_Tp); size_t __new_cap = __cur_cap < numeric_limits<size_t>::max() / 2 ? 2 * __cur_cap : numeric_limits<size_t>::max(); if (__new_cap == 0) __new_cap = sizeof(_Tp); size_t __n_off = static_cast<size_t>(__n - __b.get()); _Tp* __t = (_Tp*)realloc(__owns ? __b.get() : 0, __new_cap); if (__t == 0) __throw_bad_alloc(); if (__owns) __b.release(); __b = unique_ptr<_Tp, void(*)(void*)>(__t, free); __new_cap /= sizeof(_Tp); __n = __b.get() + __n_off; __e = __b.get() + __new_cap; } template <class _CharT, class _InputIterator> bool money_get<_CharT, _InputIterator>::__do_get(iter_type& __b, iter_type __e, bool __intl, const locale& __loc, ios_base::fmtflags __flags, ios_base::iostate& __err, bool& __neg, const ctype<char_type>& __ct, unique_ptr<char_type, void(*)(void*)>& __wb, char_type*& __wn, char_type* __we) { const unsigned __bz = 100; unsigned __gbuf[__bz]; unique_ptr<unsigned, void(*)(void*)> __gb(__gbuf, __do_nothing); unsigned* __gn = __gb.get(); unsigned* __ge = __gn + __bz; money_base::pattern __pat; char_type __dp; char_type __ts; string __grp; string_type __sym; string_type __psn; string_type __nsn; string_type __spaces; int __fd; __money_get<_CharT>::__gather_info(__intl, __loc, __pat, __dp, __ts, __grp, __sym, __psn, __nsn, __fd); const string_type* __trailing_sign = 0; __wn = __wb.get(); for (unsigned __p = 0; __p < 4 && __b != __e; ++__p) { switch (__pat.field[__p]) { case money_base::space: if (__p != 3) { if (__ct.is(ctype_base::space, *__b)) __spaces.push_back(*__b++); else { __err |= ios_base::failbit; return false; } } [[fallthrough]]; case money_base::none: if (__p != 3) { while (__b != __e && __ct.is(ctype_base::space, *__b)) __spaces.push_back(*__b++); } break; case money_base::sign: if (__psn.size() + __nsn.size() > 0) { if (__psn.size() == 0 || __nsn.size() == 0) { if (__psn.size() > 0) { if (*__b == __psn[0]) { ++__b; if (__psn.size() > 1) __trailing_sign = &__psn; } else __neg = true; } else if (*__b == __nsn[0]) { ++__b; __neg = true; if (__nsn.size() > 1) __trailing_sign = &__nsn; } } else { if (*__b == __psn[0]) { ++__b; if (__psn.size() > 1) __trailing_sign = &__psn; } else if (*__b == __nsn[0]) { ++__b; __neg = true; if (__nsn.size() > 1) __trailing_sign = &__nsn; } else { __err |= ios_base::failbit; return false; } } } break; case money_base::symbol: { bool __more_needed = __trailing_sign || (__p < 2) || (__p == 2 && __pat.field[3] != static_cast<char>(money_base::none)); bool __sb = (__flags & ios_base::showbase) != 0; if (__sb || __more_needed) { typename string_type::const_iterator __sym_space_end = __sym.begin(); if (__p > 0 && (__pat.field[__p - 1] == money_base::none || __pat.field[__p - 1] == money_base::space)) { while (__sym_space_end != __sym.end() && __ct.is(ctype_base::space, *__sym_space_end)) ++__sym_space_end; const size_t __num_spaces = __sym_space_end - __sym.begin(); if (__num_spaces > __spaces.size() || !equal(__spaces.end() - __num_spaces, __spaces.end(), __sym.begin())) { __sym_space_end = __sym.begin(); } } typename string_type::const_iterator __sym_curr_char = __sym_space_end; while (__sym_curr_char != __sym.end() && __b != __e && *__b == *__sym_curr_char) { ++__b; ++__sym_curr_char; } if (__sb && __sym_curr_char != __sym.end()) { __err |= ios_base::failbit; return false; } } } break; case money_base::value: { unsigned __ng = 0; for (; __b != __e; ++__b) { char_type __c = *__b; if (__ct.is(ctype_base::digit, __c)) { if (__wn == __we) __double_or_nothing(__wb, __wn, __we); *__wn++ = __c; ++__ng; } else if (__grp.size() > 0 && __ng > 0 && __c == __ts) { if (__gn == __ge) __double_or_nothing(__gb, __gn, __ge); *__gn++ = __ng; __ng = 0; } else break; } if (__gb.get() != __gn && __ng > 0) { if (__gn == __ge) __double_or_nothing(__gb, __gn, __ge); *__gn++ = __ng; } if (__fd > 0) { if (__b == __e || *__b != __dp) { __err |= ios_base::failbit; return false; } for (++__b; __fd > 0; --__fd, ++__b) { if (__b == __e || !__ct.is(ctype_base::digit, *__b)) { __err |= ios_base::failbit; return false; } if (__wn == __we) __double_or_nothing(__wb, __wn, __we); *__wn++ = *__b; } } if (__wn == __wb.get()) { __err |= ios_base::failbit; return false; } } break; } } if (__trailing_sign) { for (unsigned __i = 1; __i < __trailing_sign->size(); ++__i, ++__b) { if (__b == __e || *__b != (*__trailing_sign)[__i]) { __err |= ios_base::failbit; return false; } } } if (__gb.get() != __gn) { ios_base::iostate __et = ios_base::goodbit; __check_grouping(__grp, __gb.get(), __gn, __et); if (__et) { __err |= ios_base::failbit; return false; } } return true; } template <class _CharT, class _InputIterator> _InputIterator money_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, ios_base::iostate& __err, long double& __v) const { const int __bz = 100; char_type __wbuf[__bz]; unique_ptr<char_type, void(*)(void*)> __wb(__wbuf, __do_nothing); char_type* __wn; char_type* __we = __wbuf + __bz; locale __loc = __iob.getloc(); const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc); bool __neg = false; if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct, __wb, __wn, __we)) { const char __src[] = "0123456789"; char_type __atoms[sizeof(__src)-1]; __ct.widen(__src, __src + (sizeof(__src)-1), __atoms); char __nbuf[__bz]; char* __nc = __nbuf; unique_ptr<char, void(*)(void*)> __h(0, free); if (__wn - __wb.get() > __bz-2) { __h.reset((char*)malloc(static_cast<size_t>(__wn - __wb.get() + 2))); if (__h.get() == 0) __throw_bad_alloc(); __nc = __h.get(); } if (__neg) *__nc++ = '-'; for (const char_type* __w = __wb.get(); __w < __wn; ++__w, ++__nc) *__nc = __src[find(__atoms, std::__1::end(__atoms), *__w) - __atoms]; *__nc = char(); if (sscanf(__nbuf, "%Lf", &__v) != 1) __throw_runtime_error("money_get error"); } if (__b == __e) __err |= ios_base::eofbit; return __b; } template <class _CharT, class _InputIterator> _InputIterator money_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob, ios_base::iostate& __err, string_type& __v) const { const int __bz = 100; char_type __wbuf[__bz]; unique_ptr<char_type, void(*)(void*)> __wb(__wbuf, __do_nothing); char_type* __wn; char_type* __we = __wbuf + __bz; locale __loc = __iob.getloc(); const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc); bool __neg = false; if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct, __wb, __wn, __we)) { __v.clear(); if (__neg) __v.push_back(__ct.widen('-')); char_type __z = __ct.widen('0'); char_type* __w; for (__w = __wb.get(); __w < __wn-1; ++__w) if (*__w != __z) break; __v.append(__w, __wn); } if (__b == __e) __err |= ios_base::eofbit; return __b; } extern template class __attribute__ ((__visibility__("default"))) money_get<char>; extern template class __attribute__ ((__visibility__("default"))) money_get<wchar_t>; template <class _CharT> class __money_put { protected: typedef _CharT char_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __money_put() {} static void __gather_info(bool __intl, bool __neg, const locale& __loc, money_base::pattern& __pat, char_type& __dp, char_type& __ts, string& __grp, string_type& __sym, string_type& __sn, int& __fd); static void __format(char_type* __mb, char_type*& __mi, char_type*& __me, ios_base::fmtflags __flags, const char_type* __db, const char_type* __de, const ctype<char_type>& __ct, bool __neg, const money_base::pattern& __pat, char_type __dp, char_type __ts, const string& __grp, const string_type& __sym, const string_type& __sn, int __fd); }; template <class _CharT> void __money_put<_CharT>::__gather_info(bool __intl, bool __neg, const locale& __loc, money_base::pattern& __pat, char_type& __dp, char_type& __ts, string& __grp, string_type& __sym, string_type& __sn, int& __fd) { if (__intl) { const moneypunct<char_type, true>& __mp = use_facet<moneypunct<char_type, true> >(__loc); if (__neg) { __pat = __mp.neg_format(); __sn = __mp.negative_sign(); } else { __pat = __mp.pos_format(); __sn = __mp.positive_sign(); } __dp = __mp.decimal_point(); __ts = __mp.thousands_sep(); __grp = __mp.grouping(); __sym = __mp.curr_symbol(); __fd = __mp.frac_digits(); } else { const moneypunct<char_type, false>& __mp = use_facet<moneypunct<char_type, false> >(__loc); if (__neg) { __pat = __mp.neg_format(); __sn = __mp.negative_sign(); } else { __pat = __mp.pos_format(); __sn = __mp.positive_sign(); } __dp = __mp.decimal_point(); __ts = __mp.thousands_sep(); __grp = __mp.grouping(); __sym = __mp.curr_symbol(); __fd = __mp.frac_digits(); } } template <class _CharT> void __money_put<_CharT>::__format(char_type* __mb, char_type*& __mi, char_type*& __me, ios_base::fmtflags __flags, const char_type* __db, const char_type* __de, const ctype<char_type>& __ct, bool __neg, const money_base::pattern& __pat, char_type __dp, char_type __ts, const string& __grp, const string_type& __sym, const string_type& __sn, int __fd) { __me = __mb; for (unsigned __p = 0; __p < 4; ++__p) { switch (__pat.field[__p]) { case money_base::none: __mi = __me; break; case money_base::space: __mi = __me; *__me++ = __ct.widen(' '); break; case money_base::sign: if (!__sn.empty()) *__me++ = __sn[0]; break; case money_base::symbol: if (!__sym.empty() && (__flags & ios_base::showbase)) __me = std::__1::copy(__sym.begin(), __sym.end(), __me); break; case money_base::value: { char_type* __t = __me; if (__neg) ++__db; const char_type* __d; for (__d = __db; __d < __de; ++__d) if (!__ct.is(ctype_base::digit, *__d)) break; if (__fd > 0) { int __f; for (__f = __fd; __d > __db && __f > 0; --__f) *__me++ = *--__d; char_type __z = __f > 0 ? __ct.widen('0') : char_type(); for (; __f > 0; --__f) *__me++ = __z; *__me++ = __dp; } if (__d == __db) { *__me++ = __ct.widen('0'); } else { unsigned __ng = 0; unsigned __ig = 0; unsigned __gl = __grp.empty() ? numeric_limits<unsigned>::max() : static_cast<unsigned>(__grp[__ig]); while (__d != __db) { if (__ng == __gl) { *__me++ = __ts; __ng = 0; if (++__ig < __grp.size()) __gl = __grp[__ig] == numeric_limits<char>::max() ? numeric_limits<unsigned>::max() : static_cast<unsigned>(__grp[__ig]); } *__me++ = *--__d; ++__ng; } } reverse(__t, __me); } break; } } if (__sn.size() > 1) __me = std::__1::copy(__sn.begin()+1, __sn.end(), __me); if ((__flags & ios_base::adjustfield) == ios_base::left) __mi = __me; else if ((__flags & ios_base::adjustfield) != ios_base::internal) __mi = __mb; } extern template class __attribute__ ((__visibility__("default"))) __money_put<char>; extern template class __attribute__ ((__visibility__("default"))) __money_put<wchar_t>; template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> > class __attribute__ ((__type_visibility__("default"))) money_put : public locale::facet, private __money_put<_CharT> { public: typedef _CharT char_type; typedef _OutputIterator iter_type; typedef basic_string<char_type> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit money_put(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, long double __units) const { return do_put(__s, __intl, __iob, __fl, __units); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iter_type put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, const string_type& __digits) const { return do_put(__s, __intl, __iob, __fl, __digits); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~money_put() {} virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, long double __units) const; virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, const string_type& __digits) const; }; template <class _CharT, class _OutputIterator> locale::id money_put<_CharT, _OutputIterator>::id; template <class _CharT, class _OutputIterator> _OutputIterator money_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, long double __units) const { const size_t __bs = 100; char __buf[__bs]; char* __bb = __buf; char_type __digits[__bs]; char_type* __db = __digits; size_t __n = static_cast<size_t>(snprintf(__bb, __bs, "%.0Lf", __units)); unique_ptr<char, void(*)(void*)> __hn(0, free); unique_ptr<char_type, void(*)(void*)> __hd(0, free); if (__n > __bs-1) { __n = static_cast<size_t>(__libcpp_asprintf_l(&__bb, __cloc(), "%.0Lf", __units)); if (__bb == 0) __throw_bad_alloc(); __hn.reset(__bb); __hd.reset((char_type*)malloc(__n * sizeof(char_type))); if (__hd == nullptr) __throw_bad_alloc(); __db = __hd.get(); } locale __loc = __iob.getloc(); const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc); __ct.widen(__bb, __bb + __n, __db); bool __neg = __n > 0 && __bb[0] == '-'; money_base::pattern __pat; char_type __dp; char_type __ts; string __grp; string_type __sym; string_type __sn; int __fd; this->__gather_info(__intl, __neg, __loc, __pat, __dp, __ts, __grp, __sym, __sn, __fd); char_type __mbuf[__bs]; char_type* __mb = __mbuf; unique_ptr<char_type, void(*)(void*)> __hw(0, free); size_t __exn = static_cast<int>(__n) > __fd ? (__n - static_cast<size_t>(__fd)) * 2 + __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 1 : __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 2; if (__exn > __bs) { __hw.reset((char_type*)malloc(__exn * sizeof(char_type))); __mb = __hw.get(); if (__mb == 0) __throw_bad_alloc(); } char_type* __mi; char_type* __me; this->__format(__mb, __mi, __me, __iob.flags(), __db, __db + __n, __ct, __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd); return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl); } template <class _CharT, class _OutputIterator> _OutputIterator money_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl, const string_type& __digits) const { locale __loc = __iob.getloc(); const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc); bool __neg = __digits.size() > 0 && __digits[0] == __ct.widen('-'); money_base::pattern __pat; char_type __dp; char_type __ts; string __grp; string_type __sym; string_type __sn; int __fd; this->__gather_info(__intl, __neg, __loc, __pat, __dp, __ts, __grp, __sym, __sn, __fd); char_type __mbuf[100]; char_type* __mb = __mbuf; unique_ptr<char_type, void(*)(void*)> __h(0, free); size_t __exn = static_cast<int>(__digits.size()) > __fd ? (__digits.size() - static_cast<size_t>(__fd)) * 2 + __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 1 : __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 2; if (__exn > 100) { __h.reset((char_type*)malloc(__exn * sizeof(char_type))); __mb = __h.get(); if (__mb == 0) __throw_bad_alloc(); } char_type* __mi; char_type* __me; this->__format(__mb, __mi, __me, __iob.flags(), __digits.data(), __digits.data() + __digits.size(), __ct, __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd); return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl); } extern template class __attribute__ ((__visibility__("default"))) money_put<char>; extern template class __attribute__ ((__visibility__("default"))) money_put<wchar_t>; class __attribute__ ((__visibility__("default"))) messages_base { public: typedef ptrdiff_t catalog; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) messages_base() {} }; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) messages : public locale::facet, public messages_base { public: typedef _CharT char_type; typedef basic_string<_CharT> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit messages(size_t __refs = 0) : locale::facet(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) catalog open(const basic_string<char>& __nm, const locale& __loc) const { return do_open(__nm, __loc); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type get(catalog __c, int __set, int __msgid, const string_type& __dflt) const { return do_get(__c, __set, __msgid, __dflt); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void close(catalog __c) const { do_close(__c); } static locale::id id; protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~messages() {} virtual catalog do_open(const basic_string<char>&, const locale&) const; virtual string_type do_get(catalog, int __set, int __msgid, const string_type& __dflt) const; virtual void do_close(catalog) const; }; template <class _CharT> locale::id messages<_CharT>::id; template <class _CharT> typename messages<_CharT>::catalog messages<_CharT>::do_open(const basic_string<char>& __nm, const locale&) const { catalog __cat = (catalog)catopen(__nm.c_str(), 1); if (__cat != -1) __cat = static_cast<catalog>((static_cast<size_t>(__cat) >> 1)); return __cat; } template <class _CharT> typename messages<_CharT>::string_type messages<_CharT>::do_get(catalog __c, int __set, int __msgid, const string_type& __dflt) const { string __ndflt; __narrow_to_utf8<sizeof(char_type)*8>()(back_inserter(__ndflt), __dflt.c_str(), __dflt.c_str() + __dflt.size()); if (__c != -1) __c <<= 1; nl_catd __cat = (nl_catd)__c; char* __n = catgets(__cat, __set, __msgid, __ndflt.c_str()); string_type __w; __widen_from_utf8<sizeof(char_type)*8>()(back_inserter(__w), __n, __n + strlen(__n)); return __w; } template <class _CharT> void messages<_CharT>::do_close(catalog __c) const { if (__c != -1) __c <<= 1; nl_catd __cat = (nl_catd)__c; catclose(__cat); } extern template class __attribute__ ((__visibility__("default"))) messages<char>; extern template class __attribute__ ((__visibility__("default"))) messages<wchar_t>; template <class _CharT> class __attribute__ ((__type_visibility__("default"))) messages_byname : public messages<_CharT> { public: typedef messages_base::catalog catalog; typedef basic_string<_CharT> string_type; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit messages_byname(const char*, size_t __refs = 0) : messages<_CharT>(__refs) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit messages_byname(const string&, size_t __refs = 0) : messages<_CharT>(__refs) {} protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~messages_byname() {} }; extern template class __attribute__ ((__visibility__("default"))) messages_byname<char>; extern template class __attribute__ ((__visibility__("default"))) messages_byname<wchar_t>; template<class _Codecvt, class _Elem = wchar_t, class _Wide_alloc = allocator<_Elem>, class _Byte_alloc = allocator<char> > class __attribute__ ((__type_visibility__("default"))) wstring_convert { public: typedef basic_string<char, char_traits<char>, _Byte_alloc> byte_string; typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string; typedef typename _Codecvt::state_type state_type; typedef typename wide_string::traits_type::int_type int_type; private: byte_string __byte_err_string_; wide_string __wide_err_string_; _Codecvt* __cvtptr_; state_type __cvtstate_; size_t __cvtcount_; wstring_convert(const wstring_convert& __wc); wstring_convert& operator=(const wstring_convert& __wc); public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit wstring_convert(_Codecvt* __pcvt = new _Codecvt); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wstring_convert(_Codecvt* __pcvt, state_type __state); explicit wstring_convert(const byte_string& __byte_err, const wide_string& __wide_err = wide_string()); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wstring_convert(wstring_convert&& __wc); ~wstring_convert(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wide_string from_bytes(char __byte) {return from_bytes(&__byte, &__byte+1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wide_string from_bytes(const char* __ptr) {return from_bytes(__ptr, __ptr + char_traits<char>::length(__ptr));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) wide_string from_bytes(const byte_string& __str) {return from_bytes(__str.data(), __str.data() + __str.size());} wide_string from_bytes(const char* __first, const char* __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) byte_string to_bytes(_Elem __wchar) {return to_bytes(&__wchar, &__wchar+1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) byte_string to_bytes(const _Elem* __wptr) {return to_bytes(__wptr, __wptr + char_traits<_Elem>::length(__wptr));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) byte_string to_bytes(const wide_string& __wstr) {return to_bytes(__wstr.data(), __wstr.data() + __wstr.size());} byte_string to_bytes(const _Elem* __first, const _Elem* __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t converted() const noexcept {return __cvtcount_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) state_type state() const {return __cvtstate_;} }; template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> inline wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: wstring_convert(_Codecvt* __pcvt) : __cvtptr_(__pcvt), __cvtstate_(), __cvtcount_(0) { } template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> inline wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: wstring_convert(_Codecvt* __pcvt, state_type __state) : __cvtptr_(__pcvt), __cvtstate_(__state), __cvtcount_(0) { } template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: wstring_convert(const byte_string& __byte_err, const wide_string& __wide_err) : __byte_err_string_(__byte_err), __wide_err_string_(__wide_err), __cvtstate_(), __cvtcount_(0) { __cvtptr_ = new _Codecvt; } template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> inline wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: wstring_convert(wstring_convert&& __wc) : __byte_err_string_(std::__1::move(__wc.__byte_err_string_)), __wide_err_string_(std::__1::move(__wc.__wide_err_string_)), __cvtptr_(__wc.__cvtptr_), __cvtstate_(__wc.__cvtstate_), __cvtcount_(__wc.__cvtcount_) { __wc.__cvtptr_ = nullptr; } template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::~wstring_convert() { delete __cvtptr_; } template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> typename wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::wide_string wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: from_bytes(const char* __frm, const char* __frm_end) { __cvtcount_ = 0; if (__cvtptr_ != nullptr) { wide_string __ws(2*(__frm_end - __frm), _Elem()); if (__frm != __frm_end) __ws.resize(__ws.capacity()); codecvt_base::result __r = codecvt_base::ok; state_type __st = __cvtstate_; if (__frm != __frm_end) { _Elem* __to = &__ws[0]; _Elem* __to_end = __to + __ws.size(); const char* __frm_nxt; do { _Elem* __to_nxt; __r = __cvtptr_->in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); __cvtcount_ += __frm_nxt - __frm; if (__frm_nxt == __frm) { __r = codecvt_base::error; } else if (__r == codecvt_base::noconv) { __ws.resize(__to - &__ws[0]); __ws.append((const _Elem*)__frm, (const _Elem*)__frm_end); __frm = __frm_nxt; __r = codecvt_base::ok; } else if (__r == codecvt_base::ok) { __ws.resize(__to_nxt - &__ws[0]); __frm = __frm_nxt; } else if (__r == codecvt_base::partial) { ptrdiff_t __s = __to_nxt - &__ws[0]; __ws.resize(2 * __s); __to = &__ws[0] + __s; __to_end = &__ws[0] + __ws.size(); __frm = __frm_nxt; } } while (__r == codecvt_base::partial && __frm_nxt < __frm_end); } if (__r == codecvt_base::ok) return __ws; } if (__wide_err_string_.empty()) __throw_range_error("wstring_convert: from_bytes error"); return __wide_err_string_; } template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc> typename wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::byte_string wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>:: to_bytes(const _Elem* __frm, const _Elem* __frm_end) { __cvtcount_ = 0; if (__cvtptr_ != nullptr) { byte_string __bs(2*(__frm_end - __frm), char()); if (__frm != __frm_end) __bs.resize(__bs.capacity()); codecvt_base::result __r = codecvt_base::ok; state_type __st = __cvtstate_; if (__frm != __frm_end) { char* __to = &__bs[0]; char* __to_end = __to + __bs.size(); const _Elem* __frm_nxt; do { char* __to_nxt; __r = __cvtptr_->out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt); __cvtcount_ += __frm_nxt - __frm; if (__frm_nxt == __frm) { __r = codecvt_base::error; } else if (__r == codecvt_base::noconv) { __bs.resize(__to - &__bs[0]); __bs.append((const char*)__frm, (const char*)__frm_end); __frm = __frm_nxt; __r = codecvt_base::ok; } else if (__r == codecvt_base::ok) { __bs.resize(__to_nxt - &__bs[0]); __frm = __frm_nxt; } else if (__r == codecvt_base::partial) { ptrdiff_t __s = __to_nxt - &__bs[0]; __bs.resize(2 * __s); __to = &__bs[0] + __s; __to_end = &__bs[0] + __bs.size(); __frm = __frm_nxt; } } while (__r == codecvt_base::partial && __frm_nxt < __frm_end); } if (__r == codecvt_base::ok) { size_t __s = __bs.size(); __bs.resize(__bs.capacity()); char* __to = &__bs[0] + __s; char* __to_end = __to + __bs.size(); do { char* __to_nxt; __r = __cvtptr_->unshift(__st, __to, __to_end, __to_nxt); if (__r == codecvt_base::noconv) { __bs.resize(__to - &__bs[0]); __r = codecvt_base::ok; } else if (__r == codecvt_base::ok) { __bs.resize(__to_nxt - &__bs[0]); } else if (__r == codecvt_base::partial) { ptrdiff_t __sp = __to_nxt - &__bs[0]; __bs.resize(2 * __sp); __to = &__bs[0] + __sp; __to_end = &__bs[0] + __bs.size(); } } while (__r == codecvt_base::partial); if (__r == codecvt_base::ok) return __bs; } } if (__byte_err_string_.empty()) __throw_range_error("wstring_convert: to_bytes error"); return __byte_err_string_; } template <class _Codecvt, class _Elem = wchar_t, class _Tr = char_traits<_Elem> > class __attribute__ ((__type_visibility__("default"))) wbuffer_convert : public basic_streambuf<_Elem, _Tr> { public: typedef _Elem char_type; typedef _Tr traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef typename _Codecvt::state_type state_type; private: char* __extbuf_; const char* __extbufnext_; const char* __extbufend_; char __extbuf_min_[8]; size_t __ebs_; char_type* __intbuf_; size_t __ibs_; streambuf* __bufptr_; _Codecvt* __cv_; state_type __st_; ios_base::openmode __cm_; bool __owns_eb_; bool __owns_ib_; bool __always_noconv_; wbuffer_convert(const wbuffer_convert&); wbuffer_convert& operator=(const wbuffer_convert&); public: explicit wbuffer_convert(streambuf* __bytebuf = 0, _Codecvt* __pcvt = new _Codecvt, state_type __state = state_type()); ~wbuffer_convert(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streambuf* rdbuf() const {return __bufptr_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streambuf* rdbuf(streambuf* __bytebuf) { streambuf* __r = __bufptr_; __bufptr_ = __bytebuf; return __r; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) state_type state() const {return __st_;} protected: virtual int_type underflow(); virtual int_type pbackfail(int_type __c = traits_type::eof()); virtual int_type overflow (int_type __c = traits_type::eof()); virtual basic_streambuf<char_type, traits_type>* setbuf(char_type* __s, streamsize __n); virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __wch = ios_base::in | ios_base::out); virtual pos_type seekpos(pos_type __sp, ios_base::openmode __wch = ios_base::in | ios_base::out); virtual int sync(); private: bool __read_mode(); void __write_mode(); wbuffer_convert* __close(); }; template <class _Codecvt, class _Elem, class _Tr> wbuffer_convert<_Codecvt, _Elem, _Tr>:: wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt, state_type __state) : __extbuf_(0), __extbufnext_(0), __extbufend_(0), __ebs_(0), __intbuf_(0), __ibs_(0), __bufptr_(__bytebuf), __cv_(__pcvt), __st_(__state), __cm_(0), __owns_eb_(false), __owns_ib_(false), __always_noconv_(__cv_ ? __cv_->always_noconv() : false) { setbuf(0, 4096); } template <class _Codecvt, class _Elem, class _Tr> wbuffer_convert<_Codecvt, _Elem, _Tr>::~wbuffer_convert() { __close(); delete __cv_; if (__owns_eb_) delete [] __extbuf_; if (__owns_ib_) delete [] __intbuf_; } template <class _Codecvt, class _Elem, class _Tr> typename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type wbuffer_convert<_Codecvt, _Elem, _Tr>::underflow() { if (__cv_ == 0 || __bufptr_ == 0) return traits_type::eof(); bool __initial = __read_mode(); char_type __1buf; if (this->gptr() == 0) this->setg(&__1buf, &__1buf+1, &__1buf+1); const size_t __unget_sz = __initial ? 0 : min<size_t>((this->egptr() - this->eback()) / 2, 4); int_type __c = traits_type::eof(); if (this->gptr() == this->egptr()) { memmove(this->eback(), this->egptr() - __unget_sz, __unget_sz * sizeof(char_type)); if (__always_noconv_) { streamsize __nmemb = static_cast<streamsize>(this->egptr() - this->eback() - __unget_sz); __nmemb = __bufptr_->sgetn((char*)this->eback() + __unget_sz, __nmemb); if (__nmemb != 0) { this->setg(this->eback(), this->eback() + __unget_sz, this->eback() + __unget_sz + __nmemb); __c = *this->gptr(); } } else { ((void)0); if (__extbufend_ != __extbufnext_) memmove(__extbuf_, __extbufnext_, __extbufend_ - __extbufnext_); __extbufnext_ = __extbuf_ + (__extbufend_ - __extbufnext_); __extbufend_ = __extbuf_ + (__extbuf_ == __extbuf_min_ ? sizeof(__extbuf_min_) : __ebs_); streamsize __nmemb = std::__1::min(static_cast<streamsize>(this->egptr() - this->eback() - __unget_sz), static_cast<streamsize>(__extbufend_ - __extbufnext_)); codecvt_base::result __r; streamsize __nr = __bufptr_->sgetn(const_cast<char*>(__extbufnext_), __nmemb); if (__nr != 0) { __extbufend_ = __extbufnext_ + __nr; char_type* __inext; __r = __cv_->in(__st_, __extbuf_, __extbufend_, __extbufnext_, this->eback() + __unget_sz, this->egptr(), __inext); if (__r == codecvt_base::noconv) { this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, (char_type*) const_cast<char *>(__extbufend_)); __c = *this->gptr(); } else if (__inext != this->eback() + __unget_sz) { this->setg(this->eback(), this->eback() + __unget_sz, __inext); __c = *this->gptr(); } } } } else __c = *this->gptr(); if (this->eback() == &__1buf) this->setg(0, 0, 0); return __c; } template <class _Codecvt, class _Elem, class _Tr> typename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type wbuffer_convert<_Codecvt, _Elem, _Tr>::pbackfail(int_type __c) { if (__cv_ != 0 && __bufptr_ != 0 && this->eback() < this->gptr()) { if (traits_type::eq_int_type(__c, traits_type::eof())) { this->gbump(-1); return traits_type::not_eof(__c); } if (traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1])) { this->gbump(-1); *this->gptr() = traits_type::to_char_type(__c); return __c; } } return traits_type::eof(); } template <class _Codecvt, class _Elem, class _Tr> typename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type wbuffer_convert<_Codecvt, _Elem, _Tr>::overflow(int_type __c) { if (__cv_ == 0 || __bufptr_ == 0) return traits_type::eof(); __write_mode(); char_type __1buf; char_type* __pb_save = this->pbase(); char_type* __epb_save = this->epptr(); if (!traits_type::eq_int_type(__c, traits_type::eof())) { if (this->pptr() == 0) this->setp(&__1buf, &__1buf+1); *this->pptr() = traits_type::to_char_type(__c); this->pbump(1); } if (this->pptr() != this->pbase()) { if (__always_noconv_) { streamsize __nmemb = static_cast<streamsize>(this->pptr() - this->pbase()); if (__bufptr_->sputn((const char*)this->pbase(), __nmemb) != __nmemb) return traits_type::eof(); } else { char* __extbe = __extbuf_; codecvt_base::result __r; do { const char_type* __e; __r = __cv_->out(__st_, this->pbase(), this->pptr(), __e, __extbuf_, __extbuf_ + __ebs_, __extbe); if (__e == this->pbase()) return traits_type::eof(); if (__r == codecvt_base::noconv) { streamsize __nmemb = static_cast<size_t>(this->pptr() - this->pbase()); if (__bufptr_->sputn((const char*)this->pbase(), __nmemb) != __nmemb) return traits_type::eof(); } else if (__r == codecvt_base::ok || __r == codecvt_base::partial) { streamsize __nmemb = static_cast<size_t>(__extbe - __extbuf_); if (__bufptr_->sputn(__extbuf_, __nmemb) != __nmemb) return traits_type::eof(); if (__r == codecvt_base::partial) { this->setp(const_cast<char_type *>(__e), this->pptr()); this->__pbump(this->epptr() - this->pbase()); } } else return traits_type::eof(); } while (__r == codecvt_base::partial); } this->setp(__pb_save, __epb_save); } return traits_type::not_eof(__c); } template <class _Codecvt, class _Elem, class _Tr> basic_streambuf<_Elem, _Tr>* wbuffer_convert<_Codecvt, _Elem, _Tr>::setbuf(char_type* __s, streamsize __n) { this->setg(0, 0, 0); this->setp(0, 0); if (__owns_eb_) delete [] __extbuf_; if (__owns_ib_) delete [] __intbuf_; __ebs_ = __n; if (__ebs_ > sizeof(__extbuf_min_)) { if (__always_noconv_ && __s) { __extbuf_ = (char*)__s; __owns_eb_ = false; } else { __extbuf_ = new char[__ebs_]; __owns_eb_ = true; } } else { __extbuf_ = __extbuf_min_; __ebs_ = sizeof(__extbuf_min_); __owns_eb_ = false; } if (!__always_noconv_) { __ibs_ = max<streamsize>(__n, sizeof(__extbuf_min_)); if (__s && __ibs_ >= sizeof(__extbuf_min_)) { __intbuf_ = __s; __owns_ib_ = false; } else { __intbuf_ = new char_type[__ibs_]; __owns_ib_ = true; } } else { __ibs_ = 0; __intbuf_ = 0; __owns_ib_ = false; } return this; } template <class _Codecvt, class _Elem, class _Tr> typename wbuffer_convert<_Codecvt, _Elem, _Tr>::pos_type wbuffer_convert<_Codecvt, _Elem, _Tr>::seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __om) { int __width = __cv_->encoding(); if (__cv_ == 0 || __bufptr_ == 0 || (__width <= 0 && __off != 0) || sync()) return pos_type(off_type(-1)); if (__way != ios_base::beg && __way != ios_base::cur && __way != ios_base::end) return pos_type(off_type(-1)); pos_type __r = __bufptr_->pubseekoff(__width * __off, __way, __om); __r.state(__st_); return __r; } template <class _Codecvt, class _Elem, class _Tr> typename wbuffer_convert<_Codecvt, _Elem, _Tr>::pos_type wbuffer_convert<_Codecvt, _Elem, _Tr>::seekpos(pos_type __sp, ios_base::openmode __wch) { if (__cv_ == 0 || __bufptr_ == 0 || sync()) return pos_type(off_type(-1)); if (__bufptr_->pubseekpos(__sp, __wch) == pos_type(off_type(-1))) return pos_type(off_type(-1)); return __sp; } template <class _Codecvt, class _Elem, class _Tr> int wbuffer_convert<_Codecvt, _Elem, _Tr>::sync() { if (__cv_ == 0 || __bufptr_ == 0) return 0; if (__cm_ & ios_base::out) { if (this->pptr() != this->pbase()) if (overflow() == traits_type::eof()) return -1; codecvt_base::result __r; do { char* __extbe; __r = __cv_->unshift(__st_, __extbuf_, __extbuf_ + __ebs_, __extbe); streamsize __nmemb = static_cast<streamsize>(__extbe - __extbuf_); if (__bufptr_->sputn(__extbuf_, __nmemb) != __nmemb) return -1; } while (__r == codecvt_base::partial); if (__r == codecvt_base::error) return -1; if (__bufptr_->pubsync()) return -1; } else if (__cm_ & ios_base::in) { off_type __c; if (__always_noconv_) __c = this->egptr() - this->gptr(); else { int __width = __cv_->encoding(); __c = __extbufend_ - __extbufnext_; if (__width > 0) __c += __width * (this->egptr() - this->gptr()); else { if (this->gptr() != this->egptr()) { reverse(this->gptr(), this->egptr()); codecvt_base::result __r; const char_type* __e = this->gptr(); char* __extbe; do { __r = __cv_->out(__st_, __e, this->egptr(), __e, __extbuf_, __extbuf_ + __ebs_, __extbe); switch (__r) { case codecvt_base::noconv: __c += this->egptr() - this->gptr(); break; case codecvt_base::ok: case codecvt_base::partial: __c += __extbe - __extbuf_; break; default: return -1; } } while (__r == codecvt_base::partial); } } } if (__bufptr_->pubseekoff(-__c, ios_base::cur, __cm_) == pos_type(off_type(-1))) return -1; this->setg(0, 0, 0); __cm_ = 0; } return 0; } template <class _Codecvt, class _Elem, class _Tr> bool wbuffer_convert<_Codecvt, _Elem, _Tr>::__read_mode() { if (!(__cm_ & ios_base::in)) { this->setp(0, 0); if (__always_noconv_) this->setg((char_type*)__extbuf_, (char_type*)__extbuf_ + __ebs_, (char_type*)__extbuf_ + __ebs_); else this->setg(__intbuf_, __intbuf_ + __ibs_, __intbuf_ + __ibs_); __cm_ = ios_base::in; return true; } return false; } template <class _Codecvt, class _Elem, class _Tr> void wbuffer_convert<_Codecvt, _Elem, _Tr>::__write_mode() { if (!(__cm_ & ios_base::out)) { this->setg(0, 0, 0); if (__ebs_ > sizeof(__extbuf_min_)) { if (__always_noconv_) this->setp((char_type*)__extbuf_, (char_type*)__extbuf_ + (__ebs_ - 1)); else this->setp(__intbuf_, __intbuf_ + (__ibs_ - 1)); } else this->setp(0, 0); __cm_ = ios_base::out; } } template <class _Codecvt, class _Elem, class _Tr> wbuffer_convert<_Codecvt, _Elem, _Tr>* wbuffer_convert<_Codecvt, _Elem, _Tr>::__close() { wbuffer_convert* __rt = 0; if (__cv_ != 0 && __bufptr_ != 0) { __rt = this; if ((__cm_ & ios_base::out) && sync()) __rt = 0; } return __rt; } } } # 140 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 2 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 1 3 # 116 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__bit_reference" 1 3 # 19 "/opt/toolchain/target/bin/../include/c++/v1/__bit_reference" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 23 "/opt/toolchain/target/bin/../include/c++/v1/__bit_reference" 2 3 namespace std { inline namespace __1 { template <class _Cp, bool _IsConst, typename _Cp::__storage_type = 0> class __bit_iterator; template <class _Cp> class __bit_const_reference; template <class _Tp> struct __has_storage_type { static const bool value = false; }; template <class _Cp, bool = __has_storage_type<_Cp>::value> class __bit_reference { typedef typename _Cp::__storage_type __storage_type; typedef typename _Cp::__storage_pointer __storage_pointer; __storage_pointer __seg_; __storage_type __mask_; friend typename _Cp::__self; friend class __bit_const_reference<_Cp>; friend class __bit_iterator<_Cp, false>; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) operator bool() const noexcept {return static_cast<bool>(*__seg_ & __mask_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator ~() const noexcept {return !static_cast<bool>(*this);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_reference& operator=(bool __x) noexcept { if (__x) *__seg_ |= __mask_; else *__seg_ &= ~__mask_; return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_reference& operator=(const __bit_reference& __x) noexcept {return operator=(static_cast<bool>(__x));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void flip() noexcept {*__seg_ ^= __mask_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, false> operator&() const noexcept {return __bit_iterator<_Cp, false>(__seg_, static_cast<unsigned>(__ctz(__mask_)));} private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_reference(__storage_pointer __s, __storage_type __m) noexcept : __seg_(__s), __mask_(__m) {} }; template <class _Cp> class __bit_reference<_Cp, false> { }; template <class _Cp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__bit_reference<_Cp> __x, __bit_reference<_Cp> __y) noexcept { bool __t = __x; __x = __y; __y = __t; } template <class _Cp, class _Dp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__bit_reference<_Cp> __x, __bit_reference<_Dp> __y) noexcept { bool __t = __x; __x = __y; __y = __t; } template <class _Cp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__bit_reference<_Cp> __x, bool& __y) noexcept { bool __t = __x; __x = __y; __y = __t; } template <class _Cp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(bool& __x, __bit_reference<_Cp> __y) noexcept { bool __t = __x; __x = __y; __y = __t; } template <class _Cp> class __bit_const_reference { typedef typename _Cp::__storage_type __storage_type; typedef typename _Cp::__const_storage_pointer __storage_pointer; __storage_pointer __seg_; __storage_type __mask_; friend typename _Cp::__self; friend class __bit_iterator<_Cp, true>; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_const_reference(const __bit_reference<_Cp>& __x) noexcept : __seg_(__x.__seg_), __mask_(__x.__mask_) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr operator bool() const noexcept {return static_cast<bool>(*__seg_ & __mask_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, true> operator&() const noexcept {return __bit_iterator<_Cp, true>(__seg_, static_cast<unsigned>(__ctz(__mask_)));} private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __bit_const_reference(__storage_pointer __s, __storage_type __m) noexcept : __seg_(__s), __mask_(__m) {} __bit_const_reference& operator=(const __bit_const_reference& __x); }; template <class _Cp, bool _IsConst> __bit_iterator<_Cp, _IsConst> __find_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) { typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; static const int __bits_per_word = _It::__bits_per_word; if (__first.__ctz_ != 0) { __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = std::__1::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b = *__first.__seg_ & __m; if (__b) return _It(__first.__seg_, static_cast<unsigned>(std::__1::__ctz(__b))); if (__n == __dn) return __first + __n; __n -= __dn; ++__first.__seg_; } for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) if (*__first.__seg_) return _It(__first.__seg_, static_cast<unsigned>(std::__1::__ctz(*__first.__seg_))); if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__first.__seg_ & __m; if (__b) return _It(__first.__seg_, static_cast<unsigned>(std::__1::__ctz(__b))); } return _It(__first.__seg_, static_cast<unsigned>(__n)); } template <class _Cp, bool _IsConst> __bit_iterator<_Cp, _IsConst> __find_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) { typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; const int __bits_per_word = _It::__bits_per_word; if (__first.__ctz_ != 0) { __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = std::__1::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b = ~*__first.__seg_ & __m; if (__b) return _It(__first.__seg_, static_cast<unsigned>(std::__1::__ctz(__b))); if (__n == __dn) return __first + __n; __n -= __dn; ++__first.__seg_; } for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) { __storage_type __b = ~*__first.__seg_; if (__b) return _It(__first.__seg_, static_cast<unsigned>(std::__1::__ctz(__b))); } if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = ~*__first.__seg_ & __m; if (__b) return _It(__first.__seg_, static_cast<unsigned>(std::__1::__ctz(__b))); } return _It(__first.__seg_, static_cast<unsigned>(__n)); } template <class _Cp, bool _IsConst, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, _IsConst> find(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_) { if (static_cast<bool>(__value_)) return __find_bool_true(__first, static_cast<typename _Cp::size_type>(__last - __first)); return __find_bool_false(__first, static_cast<typename _Cp::size_type>(__last - __first)); } template <class _Cp, bool _IsConst> typename __bit_iterator<_Cp, _IsConst>::difference_type __count_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) { typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; typedef typename _It::difference_type difference_type; const int __bits_per_word = _It::__bits_per_word; difference_type __r = 0; if (__first.__ctz_ != 0) { __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = std::__1::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __r = std::__1::__popcount(*__first.__seg_ & __m); __n -= __dn; ++__first.__seg_; } for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) __r += std::__1::__popcount(*__first.__seg_); if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __r += std::__1::__popcount(*__first.__seg_ & __m); } return __r; } template <class _Cp, bool _IsConst> typename __bit_iterator<_Cp, _IsConst>::difference_type __count_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) { typedef __bit_iterator<_Cp, _IsConst> _It; typedef typename _It::__storage_type __storage_type; typedef typename _It::difference_type difference_type; const int __bits_per_word = _It::__bits_per_word; difference_type __r = 0; if (__first.__ctz_ != 0) { __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = std::__1::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __r = std::__1::__popcount(~*__first.__seg_ & __m); __n -= __dn; ++__first.__seg_; } for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) __r += std::__1::__popcount(~*__first.__seg_); if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __r += std::__1::__popcount(~*__first.__seg_ & __m); } return __r; } template <class _Cp, bool _IsConst, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __bit_iterator<_Cp, _IsConst>::difference_type count(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_) { if (static_cast<bool>(__value_)) return __count_bool_true(__first, static_cast<typename _Cp::size_type>(__last - __first)); return __count_bool_false(__first, static_cast<typename _Cp::size_type>(__last - __first)); } template <class _Cp> void __fill_n_false(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) { typedef __bit_iterator<_Cp, false> _It; typedef typename _It::__storage_type __storage_type; const int __bits_per_word = _It::__bits_per_word; if (__first.__ctz_ != 0) { __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = std::__1::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); *__first.__seg_ &= ~__m; __n -= __dn; ++__first.__seg_; } __storage_type __nw = __n / __bits_per_word; std::__1::memset(std::__1::__to_raw_pointer(__first.__seg_), 0, __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; if (__n > 0) { __first.__seg_ += __nw; __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); *__first.__seg_ &= ~__m; } } template <class _Cp> void __fill_n_true(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) { typedef __bit_iterator<_Cp, false> _It; typedef typename _It::__storage_type __storage_type; const int __bits_per_word = _It::__bits_per_word; if (__first.__ctz_ != 0) { __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_); __storage_type __dn = std::__1::min(__clz_f, __n); __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); *__first.__seg_ |= __m; __n -= __dn; ++__first.__seg_; } __storage_type __nw = __n / __bits_per_word; std::__1::memset(std::__1::__to_raw_pointer(__first.__seg_), -1, __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; if (__n > 0) { __first.__seg_ += __nw; __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); *__first.__seg_ |= __m; } } template <class _Cp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void fill_n(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n, bool __value_) { if (__n > 0) { if (__value_) __fill_n_true(__first, __n); else __fill_n_false(__first, __n); } } template <class _Cp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void fill(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __last, bool __value_) { std::__1::fill_n(__first, static_cast<typename _Cp::size_type>(__last - __first), __value_); } template <class _Cp, bool _IsConst> __bit_iterator<_Cp, false> __copy_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { if (__first.__ctz_ != 0) { unsigned __clz = __bits_per_word - __first.__ctz_; difference_type __dn = std::__1::min(static_cast<difference_type>(__clz), __n); __n -= __dn; __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); __storage_type __b = *__first.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b; __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_) % __bits_per_word); ++__first.__seg_; } __storage_type __nw = __n / __bits_per_word; std::__1::memmove(std::__1::__to_raw_pointer(__result.__seg_), std::__1::__to_raw_pointer(__first.__seg_), __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; __result.__seg_ += __nw; if (__n > 0) { __first.__seg_ += __nw; __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__first.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b; __result.__ctz_ = static_cast<unsigned>(__n); } } return __result; } template <class _Cp, bool _IsConst> __bit_iterator<_Cp, false> __copy_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; static const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { if (__first.__ctz_ != 0) { unsigned __clz_f = __bits_per_word - __first.__ctz_; difference_type __dn = std::__1::min(static_cast<difference_type>(__clz_f), __n); __n -= __dn; __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b = *__first.__seg_ & __m; unsigned __clz_r = __bits_per_word - __result.__ctz_; __storage_type __ddn = std::__1::min<__storage_type>(__dn, __clz_r); __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); *__result.__seg_ &= ~__m; if (__result.__ctz_ > __first.__ctz_) *__result.__seg_ |= __b << (__result.__ctz_ - __first.__ctz_); else *__result.__seg_ |= __b >> (__first.__ctz_ - __result.__ctz_); __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word; __result.__ctz_ = static_cast<unsigned>((__ddn + __result.__ctz_) % __bits_per_word); __dn -= __ddn; if (__dn > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __dn); *__result.__seg_ &= ~__m; *__result.__seg_ |= __b >> (__first.__ctz_ + __ddn); __result.__ctz_ = static_cast<unsigned>(__dn); } ++__first.__seg_; } unsigned __clz_r = __bits_per_word - __result.__ctz_; __storage_type __m = ~__storage_type(0) << __result.__ctz_; for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) { __storage_type __b = *__first.__seg_; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b << __result.__ctz_; ++__result.__seg_; *__result.__seg_ &= __m; *__result.__seg_ |= __b >> __clz_r; } if (__n > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__first.__seg_ & __m; __storage_type __dn = std::__1::min(__n, static_cast<difference_type>(__clz_r)); __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); *__result.__seg_ &= ~__m; *__result.__seg_ |= __b << __result.__ctz_; __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_) % __bits_per_word); __n -= __dn; if (__n > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __n); *__result.__seg_ &= ~__m; *__result.__seg_ |= __b >> __dn; __result.__ctz_ = static_cast<unsigned>(__n); } } } return __result; } template <class _Cp, bool _IsConst> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, false> copy(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { if (__first.__ctz_ == __result.__ctz_) return __copy_aligned(__first, __last, __result); return __copy_unaligned(__first, __last, __result); } template <class _Cp, bool _IsConst> __bit_iterator<_Cp, false> __copy_backward_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { if (__last.__ctz_ != 0) { difference_type __dn = std::__1::min(static_cast<difference_type>(__last.__ctz_), __n); __n -= __dn; unsigned __clz = __bits_per_word - __last.__ctz_; __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz); __storage_type __b = *__last.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b; __result.__ctz_ = static_cast<unsigned>(((-__dn & (__bits_per_word - 1)) + __result.__ctz_) % __bits_per_word); } __storage_type __nw = __n / __bits_per_word; __result.__seg_ -= __nw; __last.__seg_ -= __nw; std::__1::memmove(std::__1::__to_raw_pointer(__result.__seg_), std::__1::__to_raw_pointer(__last.__seg_), __nw * sizeof(__storage_type)); __n -= __nw * __bits_per_word; if (__n > 0) { __storage_type __m = ~__storage_type(0) << (__bits_per_word - __n); __storage_type __b = *--__last.__seg_ & __m; *--__result.__seg_ &= ~__m; *__result.__seg_ |= __b; __result.__ctz_ = static_cast<unsigned>(-__n & (__bits_per_word - 1)); } } return __result; } template <class _Cp, bool _IsConst> __bit_iterator<_Cp, false> __copy_backward_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { typedef __bit_iterator<_Cp, _IsConst> _In; typedef typename _In::difference_type difference_type; typedef typename _In::__storage_type __storage_type; const int __bits_per_word = _In::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { if (__last.__ctz_ != 0) { difference_type __dn = std::__1::min(static_cast<difference_type>(__last.__ctz_), __n); __n -= __dn; unsigned __clz_l = __bits_per_word - __last.__ctz_; __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_l); __storage_type __b = *__last.__seg_ & __m; unsigned __clz_r = __bits_per_word - __result.__ctz_; __storage_type __ddn = std::__1::min(__dn, static_cast<difference_type>(__result.__ctz_)); if (__ddn > 0) { __m = (~__storage_type(0) << (__result.__ctz_ - __ddn)) & (~__storage_type(0) >> __clz_r); *__result.__seg_ &= ~__m; if (__result.__ctz_ > __last.__ctz_) *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_); else *__result.__seg_ |= __b >> (__last.__ctz_ - __result.__ctz_); __result.__ctz_ = static_cast<unsigned>(((-__ddn & (__bits_per_word - 1)) + __result.__ctz_) % __bits_per_word); __dn -= __ddn; } if (__dn > 0) { --__result.__seg_; __result.__ctz_ = static_cast<unsigned>(-__dn & (__bits_per_word - 1)); __m = ~__storage_type(0) << __result.__ctz_; *__result.__seg_ &= ~__m; __last.__ctz_ -= __dn + __ddn; *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_); } } unsigned __clz_r = __bits_per_word - __result.__ctz_; __storage_type __m = ~__storage_type(0) >> __clz_r; for (; __n >= __bits_per_word; __n -= __bits_per_word) { __storage_type __b = *--__last.__seg_; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b >> __clz_r; *--__result.__seg_ &= __m; *__result.__seg_ |= __b << __result.__ctz_; } if (__n > 0) { __m = ~__storage_type(0) << (__bits_per_word - __n); __storage_type __b = *--__last.__seg_ & __m; __clz_r = __bits_per_word - __result.__ctz_; __storage_type __dn = std::__1::min(__n, static_cast<difference_type>(__result.__ctz_)); __m = (~__storage_type(0) << (__result.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_r); *__result.__seg_ &= ~__m; *__result.__seg_ |= __b >> (__bits_per_word - __result.__ctz_); __result.__ctz_ = static_cast<unsigned>(((-__dn & (__bits_per_word - 1)) + __result.__ctz_) % __bits_per_word); __n -= __dn; if (__n > 0) { --__result.__seg_; __result.__ctz_ = static_cast<unsigned>(-__n & (__bits_per_word - 1)); __m = ~__storage_type(0) << __result.__ctz_; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b << (__result.__ctz_ - (__bits_per_word - __n - __dn)); } } } return __result; } template <class _Cp, bool _IsConst> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, false> copy_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { if (__last.__ctz_ == __result.__ctz_) return __copy_backward_aligned(__first, __last, __result); return __copy_backward_unaligned(__first, __last, __result); } template <class _Cp, bool _IsConst> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, false> move(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { return std::__1::copy(__first, __last, __result); } template <class _Cp, bool _IsConst> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, false> move_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result) { return std::__1::copy_backward(__first, __last, __result); } template <class __C1, class __C2> __bit_iterator<__C2, false> __swap_ranges_aligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last, __bit_iterator<__C2, false> __result) { typedef __bit_iterator<__C1, false> _I1; typedef typename _I1::difference_type difference_type; typedef typename _I1::__storage_type __storage_type; const int __bits_per_word = _I1::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { if (__first.__ctz_ != 0) { unsigned __clz = __bits_per_word - __first.__ctz_; difference_type __dn = std::__1::min(static_cast<difference_type>(__clz), __n); __n -= __dn; __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); __storage_type __b1 = *__first.__seg_ & __m; *__first.__seg_ &= ~__m; __storage_type __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b1; *__first.__seg_ |= __b2; __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_) % __bits_per_word); ++__first.__seg_; } for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_, ++__result.__seg_) swap(*__first.__seg_, *__result.__seg_); if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b1 = *__first.__seg_ & __m; *__first.__seg_ &= ~__m; __storage_type __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b1; *__first.__seg_ |= __b2; __result.__ctz_ = static_cast<unsigned>(__n); } } return __result; } template <class __C1, class __C2> __bit_iterator<__C2, false> __swap_ranges_unaligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last, __bit_iterator<__C2, false> __result) { typedef __bit_iterator<__C1, false> _I1; typedef typename _I1::difference_type difference_type; typedef typename _I1::__storage_type __storage_type; const int __bits_per_word = _I1::__bits_per_word; difference_type __n = __last - __first; if (__n > 0) { if (__first.__ctz_ != 0) { unsigned __clz_f = __bits_per_word - __first.__ctz_; difference_type __dn = std::__1::min(static_cast<difference_type>(__clz_f), __n); __n -= __dn; __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b1 = *__first.__seg_ & __m; *__first.__seg_ &= ~__m; unsigned __clz_r = __bits_per_word - __result.__ctz_; __storage_type __ddn = std::__1::min<__storage_type>(__dn, __clz_r); __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); __storage_type __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; if (__result.__ctz_ > __first.__ctz_) { unsigned __s = __result.__ctz_ - __first.__ctz_; *__result.__seg_ |= __b1 << __s; *__first.__seg_ |= __b2 >> __s; } else { unsigned __s = __first.__ctz_ - __result.__ctz_; *__result.__seg_ |= __b1 >> __s; *__first.__seg_ |= __b2 << __s; } __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word; __result.__ctz_ = static_cast<unsigned>((__ddn + __result.__ctz_) % __bits_per_word); __dn -= __ddn; if (__dn > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __dn); __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; unsigned __s = __first.__ctz_ + __ddn; *__result.__seg_ |= __b1 >> __s; *__first.__seg_ |= __b2 << __s; __result.__ctz_ = static_cast<unsigned>(__dn); } ++__first.__seg_; } __storage_type __m = ~__storage_type(0) << __result.__ctz_; unsigned __clz_r = __bits_per_word - __result.__ctz_; for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_) { __storage_type __b1 = *__first.__seg_; __storage_type __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b1 << __result.__ctz_; *__first.__seg_ = __b2 >> __result.__ctz_; ++__result.__seg_; __b2 = *__result.__seg_ & ~__m; *__result.__seg_ &= __m; *__result.__seg_ |= __b1 >> __clz_r; *__first.__seg_ |= __b2 << __clz_r; } if (__n > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b1 = *__first.__seg_ & __m; *__first.__seg_ &= ~__m; __storage_type __dn = std::__1::min<__storage_type>(__n, __clz_r); __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); __storage_type __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b1 << __result.__ctz_; *__first.__seg_ |= __b2 >> __result.__ctz_; __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word; __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_) % __bits_per_word); __n -= __dn; if (__n > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __n); __b2 = *__result.__seg_ & __m; *__result.__seg_ &= ~__m; *__result.__seg_ |= __b1 >> __dn; *__first.__seg_ |= __b2 << __dn; __result.__ctz_ = static_cast<unsigned>(__n); } } } return __result; } template <class __C1, class __C2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator<__C2, false> swap_ranges(__bit_iterator<__C1, false> __first1, __bit_iterator<__C1, false> __last1, __bit_iterator<__C2, false> __first2) { if (__first1.__ctz_ == __first2.__ctz_) return __swap_ranges_aligned(__first1, __last1, __first2); return __swap_ranges_unaligned(__first1, __last1, __first2); } template <class _Cp> struct __bit_array { typedef typename _Cp::difference_type difference_type; typedef typename _Cp::__storage_type __storage_type; typedef typename _Cp::__storage_pointer __storage_pointer; typedef typename _Cp::iterator iterator; static const unsigned __bits_per_word = _Cp::__bits_per_word; static const unsigned _Np = 4; difference_type __size_; __storage_type __word_[_Np]; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static difference_type capacity() {return static_cast<difference_type>(_Np * __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __bit_array(difference_type __s) : __size_(__s) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator begin() { return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]), 0); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator end() { return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]) + __size_ / __bits_per_word, static_cast<unsigned>(__size_ % __bits_per_word)); } }; template <class _Cp> __bit_iterator<_Cp, false> rotate(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __middle, __bit_iterator<_Cp, false> __last) { typedef __bit_iterator<_Cp, false> _I1; typedef typename _I1::difference_type difference_type; difference_type __d1 = __middle - __first; difference_type __d2 = __last - __middle; _I1 __r = __first + __d2; while (__d1 != 0 && __d2 != 0) { if (__d1 <= __d2) { if (__d1 <= __bit_array<_Cp>::capacity()) { __bit_array<_Cp> __b(__d1); std::__1::copy(__first, __middle, __b.begin()); std::__1::copy(__b.begin(), __b.end(), std::__1::copy(__middle, __last, __first)); break; } else { __bit_iterator<_Cp, false> __mp = std::__1::swap_ranges(__first, __middle, __middle); __first = __middle; __middle = __mp; __d2 -= __d1; } } else { if (__d2 <= __bit_array<_Cp>::capacity()) { __bit_array<_Cp> __b(__d2); std::__1::copy(__middle, __last, __b.begin()); std::__1::copy_backward(__b.begin(), __b.end(), std::__1::copy_backward(__first, __middle, __last)); break; } else { __bit_iterator<_Cp, false> __mp = __first + __d2; std::__1::swap_ranges(__first, __mp, __middle); __first = __mp; __d1 -= __d2; } } } return __r; } template <class _Cp, bool _IC1, bool _IC2> bool __equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, __bit_iterator<_Cp, _IC2> __first2) { typedef __bit_iterator<_Cp, _IC1> _It; typedef typename _It::difference_type difference_type; typedef typename _It::__storage_type __storage_type; static const int __bits_per_word = _It::__bits_per_word; difference_type __n = __last1 - __first1; if (__n > 0) { if (__first1.__ctz_ != 0) { unsigned __clz_f = __bits_per_word - __first1.__ctz_; difference_type __dn = std::__1::min(static_cast<difference_type>(__clz_f), __n); __n -= __dn; __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn)); __storage_type __b = *__first1.__seg_ & __m; unsigned __clz_r = __bits_per_word - __first2.__ctz_; __storage_type __ddn = std::__1::min<__storage_type>(__dn, __clz_r); __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); if (__first2.__ctz_ > __first1.__ctz_) { if ((*__first2.__seg_ & __m) != (__b << (__first2.__ctz_ - __first1.__ctz_))) return false; } else { if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ - __first2.__ctz_))) return false; } __first2.__seg_ += (__ddn + __first2.__ctz_) / __bits_per_word; __first2.__ctz_ = static_cast<unsigned>((__ddn + __first2.__ctz_) % __bits_per_word); __dn -= __ddn; if (__dn > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __dn); if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ + __ddn))) return false; __first2.__ctz_ = static_cast<unsigned>(__dn); } ++__first1.__seg_; } unsigned __clz_r = __bits_per_word - __first2.__ctz_; __storage_type __m = ~__storage_type(0) << __first2.__ctz_; for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_) { __storage_type __b = *__first1.__seg_; if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_)) return false; ++__first2.__seg_; if ((*__first2.__seg_ & ~__m) != (__b >> __clz_r)) return false; } if (__n > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__first1.__seg_ & __m; __storage_type __dn = std::__1::min(__n, static_cast<difference_type>(__clz_r)); __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn)); if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_)) return false; __first2.__seg_ += (__dn + __first2.__ctz_) / __bits_per_word; __first2.__ctz_ = static_cast<unsigned>((__dn + __first2.__ctz_) % __bits_per_word); __n -= __dn; if (__n > 0) { __m = ~__storage_type(0) >> (__bits_per_word - __n); if ((*__first2.__seg_ & __m) != (__b >> __dn)) return false; } } } return true; } template <class _Cp, bool _IC1, bool _IC2> bool __equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, __bit_iterator<_Cp, _IC2> __first2) { typedef __bit_iterator<_Cp, _IC1> _It; typedef typename _It::difference_type difference_type; typedef typename _It::__storage_type __storage_type; static const int __bits_per_word = _It::__bits_per_word; difference_type __n = __last1 - __first1; if (__n > 0) { if (__first1.__ctz_ != 0) { unsigned __clz = __bits_per_word - __first1.__ctz_; difference_type __dn = std::__1::min(static_cast<difference_type>(__clz), __n); __n -= __dn; __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz - __dn)); if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m)) return false; ++__first2.__seg_; ++__first1.__seg_; } for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_, ++__first2.__seg_) if (*__first2.__seg_ != *__first1.__seg_) return false; if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m)) return false; } } return true; } template <class _Cp, bool _IC1, bool _IC2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool equal(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, __bit_iterator<_Cp, _IC2> __first2) { if (__first1.__ctz_ == __first2.__ctz_) return __equal_aligned(__first1, __last1, __first2); return __equal_unaligned(__first1, __last1, __first2); } template <class _Cp, bool _IsConst, typename _Cp::__storage_type> class __bit_iterator { public: typedef typename _Cp::difference_type difference_type; typedef bool value_type; typedef __bit_iterator pointer; typedef typename conditional<_IsConst, __bit_const_reference<_Cp>, __bit_reference<_Cp> >::type reference; typedef random_access_iterator_tag iterator_category; private: typedef typename _Cp::__storage_type __storage_type; typedef typename conditional<_IsConst, typename _Cp::__const_storage_pointer, typename _Cp::__storage_pointer>::type __storage_pointer; static const unsigned __bits_per_word = _Cp::__bits_per_word; __storage_pointer __seg_; unsigned __ctz_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator() noexcept : __seg_(nullptr), __ctz_(0) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator(const __bit_iterator<_Cp, false>& __it) noexcept : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator*() const noexcept {return reference(__seg_, __storage_type(1) << __ctz_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator& operator++() { if (__ctz_ != __bits_per_word-1) ++__ctz_; else { __ctz_ = 0; ++__seg_; } return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator operator++(int) { __bit_iterator __tmp = *this; ++(*this); return __tmp; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator& operator--() { if (__ctz_ != 0) --__ctz_; else { __ctz_ = __bits_per_word - 1; --__seg_; } return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator operator--(int) { __bit_iterator __tmp = *this; --(*this); return __tmp; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator& operator+=(difference_type __n) { if (__n >= 0) __seg_ += (__n + __ctz_) / __bits_per_word; else __seg_ += static_cast<difference_type>(__n - __bits_per_word + __ctz_ + 1) / static_cast<difference_type>(__bits_per_word); __n &= (__bits_per_word - 1); __ctz_ = static_cast<unsigned>((__n + __ctz_) % __bits_per_word); return *this; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator& operator-=(difference_type __n) { return *this += -__n; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator operator+(difference_type __n) const { __bit_iterator __t(*this); __t += __n; return __t; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator operator-(difference_type __n) const { __bit_iterator __t(*this); __t -= __n; return __t; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend __bit_iterator operator+(difference_type __n, const __bit_iterator& __it) {return __it + __n;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend difference_type operator-(const __bit_iterator& __x, const __bit_iterator& __y) {return (__x.__seg_ - __y.__seg_) * __bits_per_word + __x.__ctz_ - __y.__ctz_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator[](difference_type __n) const {return *(*this + __n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend bool operator==(const __bit_iterator& __x, const __bit_iterator& __y) {return __x.__seg_ == __y.__seg_ && __x.__ctz_ == __y.__ctz_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend bool operator!=(const __bit_iterator& __x, const __bit_iterator& __y) {return !(__x == __y);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend bool operator<(const __bit_iterator& __x, const __bit_iterator& __y) {return __x.__seg_ < __y.__seg_ || (__x.__seg_ == __y.__seg_ && __x.__ctz_ < __y.__ctz_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend bool operator>(const __bit_iterator& __x, const __bit_iterator& __y) {return __y < __x;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend bool operator<=(const __bit_iterator& __x, const __bit_iterator& __y) {return !(__y < __x);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) friend bool operator>=(const __bit_iterator& __x, const __bit_iterator& __y) {return !(__x < __y);} private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __bit_iterator(__storage_pointer __s, unsigned __ctz) noexcept : __seg_(__s), __ctz_(__ctz) {} friend typename _Cp::__self; friend class __bit_reference<_Cp>; friend class __bit_const_reference<_Cp>; friend class __bit_iterator<_Cp, true>; template <class _Dp> friend struct __bit_array; template <class _Dp> friend void __fill_n_false(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n); template <class _Dp> friend void __fill_n_true(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_aligned(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_unaligned(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> copy(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_backward_aligned(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_backward_unaligned(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> copy_backward(__bit_iterator<_Dp, _IC> __first, __bit_iterator<_Dp, _IC> __last, __bit_iterator<_Dp, false> __result); template <class __C1, class __C2>friend __bit_iterator<__C2, false> __swap_ranges_aligned(__bit_iterator<__C1, false>, __bit_iterator<__C1, false>, __bit_iterator<__C2, false>); template <class __C1, class __C2>friend __bit_iterator<__C2, false> __swap_ranges_unaligned(__bit_iterator<__C1, false>, __bit_iterator<__C1, false>, __bit_iterator<__C2, false>); template <class __C1, class __C2>friend __bit_iterator<__C2, false> swap_ranges(__bit_iterator<__C1, false>, __bit_iterator<__C1, false>, __bit_iterator<__C2, false>); template <class _Dp> friend __bit_iterator<_Dp, false> rotate(__bit_iterator<_Dp, false>, __bit_iterator<_Dp, false>, __bit_iterator<_Dp, false>); template <class _Dp, bool _IC1, bool _IC2> friend bool __equal_aligned(__bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC2>); template <class _Dp, bool _IC1, bool _IC2> friend bool __equal_unaligned(__bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC2>); template <class _Dp, bool _IC1, bool _IC2> friend bool equal(__bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC1>, __bit_iterator<_Dp, _IC2>); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, _IC> __find_bool_true(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); template <class _Dp, bool _IC> friend __bit_iterator<_Dp, _IC> __find_bool_false(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); template <class _Dp, bool _IC> friend typename __bit_iterator<_Dp, _IC>::difference_type __count_bool_true(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); template <class _Dp, bool _IC> friend typename __bit_iterator<_Dp, _IC>::difference_type __count_bool_false(__bit_iterator<_Dp, _IC>, typename _Dp::size_type); }; } } # 117 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 2 3 # 126 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 130 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 2 3 namespace std { inline namespace __1 { template <size_t _N_words, size_t _Size> class __bitset; template <size_t _N_words, size_t _Size> struct __has_storage_type<__bitset<_N_words, _Size> > { static const bool value = true; }; template <size_t _N_words, size_t _Size> class __bitset { public: typedef ptrdiff_t difference_type; typedef size_t size_type; typedef size_type __storage_type; protected: typedef __bitset __self; typedef __storage_type* __storage_pointer; typedef const __storage_type* __const_storage_pointer; static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * 8); friend class __bit_reference<__bitset>; friend class __bit_const_reference<__bitset>; friend class __bit_iterator<__bitset, false>; friend class __bit_iterator<__bitset, true>; friend struct __bit_array<__bitset>; __storage_type __first_[_N_words]; typedef __bit_reference<__bitset> reference; typedef __bit_const_reference<__bitset> const_reference; typedef __bit_iterator<__bitset, false> iterator; typedef __bit_iterator<__bitset, true> const_iterator; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __bitset() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __bitset(unsigned long long __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference __make_ref(size_t __pos) noexcept {return reference(__first_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference __make_ref(size_t __pos) const noexcept {return const_reference(__first_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator __make_iter(size_t __pos) noexcept {return iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator __make_iter(size_t __pos) const noexcept {return const_iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator&=(const __bitset& __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator|=(const __bitset& __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator^=(const __bitset& __v) noexcept; void flip() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long to_ulong() const {return to_ulong(integral_constant<bool, _Size < sizeof(unsigned long) * 8>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long long to_ullong() const {return to_ullong(integral_constant<bool, _Size < sizeof(unsigned long long) * 8>());} bool all() const noexcept; bool any() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __hash_code() const noexcept; private: unsigned long to_ulong(false_type) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long to_ulong(true_type) const; unsigned long long to_ullong(false_type) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long long to_ullong(true_type) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long long to_ullong(true_type, false_type) const; unsigned long long to_ullong(true_type, true_type) const; }; template <size_t _N_words, size_t _Size> inline constexpr __bitset<_N_words, _Size>::__bitset() noexcept : __first_{0} { } # 263 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 3 template <size_t _N_words, size_t _Size> inline constexpr __bitset<_N_words, _Size>::__bitset(unsigned long long __v) noexcept : __first_{__v} # 278 "/opt/toolchain/target/bin/../include/c++/v1/bitset" 3 { } template <size_t _N_words, size_t _Size> inline void __bitset<_N_words, _Size>::operator&=(const __bitset& __v) noexcept { for (size_type __i = 0; __i < _N_words; ++__i) __first_[__i] &= __v.__first_[__i]; } template <size_t _N_words, size_t _Size> inline void __bitset<_N_words, _Size>::operator|=(const __bitset& __v) noexcept { for (size_type __i = 0; __i < _N_words; ++__i) __first_[__i] |= __v.__first_[__i]; } template <size_t _N_words, size_t _Size> inline void __bitset<_N_words, _Size>::operator^=(const __bitset& __v) noexcept { for (size_type __i = 0; __i < _N_words; ++__i) __first_[__i] ^= __v.__first_[__i]; } template <size_t _N_words, size_t _Size> void __bitset<_N_words, _Size>::flip() noexcept { size_type __n = _Size; __storage_pointer __p = __first_; for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) *__p = ~*__p; if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__p & __m; *__p &= ~__m; *__p |= ~__b & __m; } } template <size_t _N_words, size_t _Size> unsigned long __bitset<_N_words, _Size>::to_ulong(false_type) const { const_iterator __e = __make_iter(_Size); const_iterator __i = std::__1::find(__make_iter(sizeof(unsigned long) * 8), __e, true); if (__i != __e) __throw_overflow_error("bitset to_ulong overflow error"); return __first_[0]; } template <size_t _N_words, size_t _Size> inline unsigned long __bitset<_N_words, _Size>::to_ulong(true_type) const { return __first_[0]; } template <size_t _N_words, size_t _Size> unsigned long long __bitset<_N_words, _Size>::to_ullong(false_type) const { const_iterator __e = __make_iter(_Size); const_iterator __i = std::__1::find(__make_iter(sizeof(unsigned long long) * 8), __e, true); if (__i != __e) __throw_overflow_error("bitset to_ullong overflow error"); return to_ullong(true_type()); } template <size_t _N_words, size_t _Size> inline unsigned long long __bitset<_N_words, _Size>::to_ullong(true_type) const { return to_ullong(true_type(), integral_constant<bool, sizeof(__storage_type) < sizeof(unsigned long long)>()); } template <size_t _N_words, size_t _Size> inline unsigned long long __bitset<_N_words, _Size>::to_ullong(true_type, false_type) const { return __first_[0]; } template <size_t _N_words, size_t _Size> unsigned long long __bitset<_N_words, _Size>::to_ullong(true_type, true_type) const { unsigned long long __r = __first_[0]; for (std::size_t __i = 1; __i < sizeof(unsigned long long) / sizeof(__storage_type); ++__i) __r |= static_cast<unsigned long long>(__first_[__i]) << (sizeof(__storage_type) * 8); return __r; } template <size_t _N_words, size_t _Size> bool __bitset<_N_words, _Size>::all() const noexcept { size_type __n = _Size; __const_storage_pointer __p = __first_; for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) if (~*__p) return false; if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); if (~*__p & __m) return false; } return true; } template <size_t _N_words, size_t _Size> bool __bitset<_N_words, _Size>::any() const noexcept { size_type __n = _Size; __const_storage_pointer __p = __first_; for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) if (*__p) return true; if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); if (*__p & __m) return true; } return false; } template <size_t _N_words, size_t _Size> inline size_t __bitset<_N_words, _Size>::__hash_code() const noexcept { size_t __h = 0; for (size_type __i = 0; __i < _N_words; ++__i) __h ^= __first_[__i]; return __h; } template <size_t _Size> class __bitset<1, _Size> { public: typedef ptrdiff_t difference_type; typedef size_t size_type; typedef size_type __storage_type; protected: typedef __bitset __self; typedef __storage_type* __storage_pointer; typedef const __storage_type* __const_storage_pointer; static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * 8); friend class __bit_reference<__bitset>; friend class __bit_const_reference<__bitset>; friend class __bit_iterator<__bitset, false>; friend class __bit_iterator<__bitset, true>; friend struct __bit_array<__bitset>; __storage_type __first_; typedef __bit_reference<__bitset> reference; typedef __bit_const_reference<__bitset> const_reference; typedef __bit_iterator<__bitset, false> iterator; typedef __bit_iterator<__bitset, true> const_iterator; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __bitset() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __bitset(unsigned long long __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference __make_ref(size_t __pos) noexcept {return reference(&__first_, __storage_type(1) << __pos);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference __make_ref(size_t __pos) const noexcept {return const_reference(&__first_, __storage_type(1) << __pos);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator __make_iter(size_t __pos) noexcept {return iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator __make_iter(size_t __pos) const noexcept {return const_iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator&=(const __bitset& __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator|=(const __bitset& __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator^=(const __bitset& __v) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void flip() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long to_ulong() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long long to_ullong() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool all() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool any() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __hash_code() const noexcept; }; template <size_t _Size> inline constexpr __bitset<1, _Size>::__bitset() noexcept : __first_(0) { } template <size_t _Size> inline constexpr __bitset<1, _Size>::__bitset(unsigned long long __v) noexcept : __first_( _Size == __bits_per_word ? static_cast<__storage_type>(__v) : static_cast<__storage_type>(__v) & ((__storage_type(1) << _Size) - 1) ) { } template <size_t _Size> inline void __bitset<1, _Size>::operator&=(const __bitset& __v) noexcept { __first_ &= __v.__first_; } template <size_t _Size> inline void __bitset<1, _Size>::operator|=(const __bitset& __v) noexcept { __first_ |= __v.__first_; } template <size_t _Size> inline void __bitset<1, _Size>::operator^=(const __bitset& __v) noexcept { __first_ ^= __v.__first_; } template <size_t _Size> inline void __bitset<1, _Size>::flip() noexcept { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size); __first_ = ~__first_; __first_ &= __m; } template <size_t _Size> inline unsigned long __bitset<1, _Size>::to_ulong() const { return __first_; } template <size_t _Size> inline unsigned long long __bitset<1, _Size>::to_ullong() const { return __first_; } template <size_t _Size> inline bool __bitset<1, _Size>::all() const noexcept { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size); return !(~__first_ & __m); } template <size_t _Size> inline bool __bitset<1, _Size>::any() const noexcept { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size); return __first_ & __m; } template <size_t _Size> inline size_t __bitset<1, _Size>::__hash_code() const noexcept { return __first_; } template <> class __bitset<0, 0> { public: typedef ptrdiff_t difference_type; typedef size_t size_type; typedef size_type __storage_type; protected: typedef __bitset __self; typedef __storage_type* __storage_pointer; typedef const __storage_type* __const_storage_pointer; static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * 8); friend class __bit_reference<__bitset>; friend class __bit_const_reference<__bitset>; friend class __bit_iterator<__bitset, false>; friend class __bit_iterator<__bitset, true>; friend struct __bit_array<__bitset>; typedef __bit_reference<__bitset> reference; typedef __bit_const_reference<__bitset> const_reference; typedef __bit_iterator<__bitset, false> iterator; typedef __bit_iterator<__bitset, true> const_iterator; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr __bitset() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __bitset(unsigned long long) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference __make_ref(size_t) noexcept {return reference(0, 1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference __make_ref(size_t) const noexcept {return const_reference(0, 1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator __make_iter(size_t) noexcept {return iterator(0, 0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator __make_iter(size_t) const noexcept {return const_iterator(0, 0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator&=(const __bitset&) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator|=(const __bitset&) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void operator^=(const __bitset&) noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void flip() noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long to_ulong() const {return 0;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long long to_ullong() const {return 0;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool all() const noexcept {return true;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool any() const noexcept {return false;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __hash_code() const noexcept {return 0;} }; inline constexpr __bitset<0, 0>::__bitset() noexcept { } inline constexpr __bitset<0, 0>::__bitset(unsigned long long) noexcept { } template <size_t _Size> class __attribute__ ((__type_visibility__("default"))) bitset; template <size_t _Size> struct hash<bitset<_Size> >; template <size_t _Size> class __attribute__ ((__type_visibility__("default"))) bitset : private __bitset<_Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * 8) + 1, _Size> { public: static const unsigned __n_words = _Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * 8) + 1; typedef __bitset<__n_words, _Size> base; public: typedef typename base::reference reference; typedef typename base::const_reference const_reference; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bitset() noexcept {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bitset(unsigned long long __v) noexcept : base(__v) {} template<class _CharT> explicit bitset(const _CharT* __str, typename basic_string<_CharT>::size_type __n = basic_string<_CharT>::npos, _CharT __zero = _CharT('0'), _CharT __one = _CharT('1')); template<class _CharT, class _Traits, class _Allocator> explicit bitset(const basic_string<_CharT,_Traits,_Allocator>& __str, typename basic_string<_CharT,_Traits,_Allocator>::size_type __pos = 0, typename basic_string<_CharT,_Traits,_Allocator>::size_type __n = (basic_string<_CharT,_Traits,_Allocator>::npos), _CharT __zero = _CharT('0'), _CharT __one = _CharT('1')); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset& operator&=(const bitset& __rhs) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset& operator|=(const bitset& __rhs) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset& operator^=(const bitset& __rhs) noexcept; bitset& operator<<=(size_t __pos) noexcept; bitset& operator>>=(size_t __pos) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset& set() noexcept; bitset& set(size_t __pos, bool __val = true); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset& reset() noexcept; bitset& reset(size_t __pos); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset operator~() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset& flip() noexcept; bitset& flip(size_t __pos); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const_reference operator[](size_t __p) const {return base::__make_ref(__p);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator[](size_t __p) {return base::__make_ref(__p);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long to_ulong() const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) unsigned long long to_ullong() const; template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> to_string(_CharT __zero = _CharT('0'), _CharT __one = _CharT('1')) const; template <class _CharT, class _Traits> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, _Traits, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'), _CharT __one = _CharT('1')) const; template <class _CharT> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'), _CharT __one = _CharT('1')) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_string<char, char_traits<char>, allocator<char> > to_string(char __zero = '0', char __one = '1') const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t count() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t size() const noexcept {return _Size;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const bitset& __rhs) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const bitset& __rhs) const noexcept; bool test(size_t __pos) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool all() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool any() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool none() const noexcept {return !any();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset operator<<(size_t __pos) const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset operator>>(size_t __pos) const noexcept; private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t __hash_code() const noexcept {return base::__hash_code();} friend struct hash<bitset>; }; template <size_t _Size> template<class _CharT> bitset<_Size>::bitset(const _CharT* __str, typename basic_string<_CharT>::size_type __n, _CharT __zero, _CharT __one) { size_t __rlen = std::__1::min(__n, char_traits<_CharT>::length(__str)); for (size_t __i = 0; __i < __rlen; ++__i) if (__str[__i] != __zero && __str[__i] != __one) __throw_invalid_argument("bitset string ctor has invalid argument"); size_t _Mp = std::__1::min(__rlen, _Size); size_t __i = 0; for (; __i < _Mp; ++__i) { _CharT __c = __str[_Mp - 1 - __i]; if (__c == __zero) (*this)[__i] = false; else (*this)[__i] = true; } std::__1::fill(base::__make_iter(__i), base::__make_iter(_Size), false); } template <size_t _Size> template<class _CharT, class _Traits, class _Allocator> bitset<_Size>::bitset(const basic_string<_CharT,_Traits,_Allocator>& __str, typename basic_string<_CharT,_Traits,_Allocator>::size_type __pos, typename basic_string<_CharT,_Traits,_Allocator>::size_type __n, _CharT __zero, _CharT __one) { if (__pos > __str.size()) __throw_out_of_range("bitset string pos out of range"); size_t __rlen = std::__1::min(__n, __str.size() - __pos); for (size_t __i = __pos; __i < __pos + __rlen; ++__i) if (!_Traits::eq(__str[__i], __zero) && !_Traits::eq(__str[__i], __one)) __throw_invalid_argument("bitset string ctor has invalid argument"); size_t _Mp = std::__1::min(__rlen, _Size); size_t __i = 0; for (; __i < _Mp; ++__i) { _CharT __c = __str[__pos + _Mp - 1 - __i]; if (_Traits::eq(__c, __zero)) (*this)[__i] = false; else (*this)[__i] = true; } std::__1::fill(base::__make_iter(__i), base::__make_iter(_Size), false); } template <size_t _Size> inline bitset<_Size>& bitset<_Size>::operator&=(const bitset& __rhs) noexcept { base::operator&=(__rhs); return *this; } template <size_t _Size> inline bitset<_Size>& bitset<_Size>::operator|=(const bitset& __rhs) noexcept { base::operator|=(__rhs); return *this; } template <size_t _Size> inline bitset<_Size>& bitset<_Size>::operator^=(const bitset& __rhs) noexcept { base::operator^=(__rhs); return *this; } template <size_t _Size> bitset<_Size>& bitset<_Size>::operator<<=(size_t __pos) noexcept { __pos = std::__1::min(__pos, _Size); std::__1::copy_backward(base::__make_iter(0), base::__make_iter(_Size - __pos), base::__make_iter(_Size)); std::__1::fill_n(base::__make_iter(0), __pos, false); return *this; } template <size_t _Size> bitset<_Size>& bitset<_Size>::operator>>=(size_t __pos) noexcept { __pos = std::__1::min(__pos, _Size); std::__1::copy(base::__make_iter(__pos), base::__make_iter(_Size), base::__make_iter(0)); std::__1::fill_n(base::__make_iter(_Size - __pos), __pos, false); return *this; } template <size_t _Size> inline bitset<_Size>& bitset<_Size>::set() noexcept { std::__1::fill_n(base::__make_iter(0), _Size, true); return *this; } template <size_t _Size> bitset<_Size>& bitset<_Size>::set(size_t __pos, bool __val) { if (__pos >= _Size) __throw_out_of_range("bitset set argument out of range"); (*this)[__pos] = __val; return *this; } template <size_t _Size> inline bitset<_Size>& bitset<_Size>::reset() noexcept { std::__1::fill_n(base::__make_iter(0), _Size, false); return *this; } template <size_t _Size> bitset<_Size>& bitset<_Size>::reset(size_t __pos) { if (__pos >= _Size) __throw_out_of_range("bitset reset argument out of range"); (*this)[__pos] = false; return *this; } template <size_t _Size> inline bitset<_Size> bitset<_Size>::operator~() const noexcept { bitset __x(*this); __x.flip(); return __x; } template <size_t _Size> inline bitset<_Size>& bitset<_Size>::flip() noexcept { base::flip(); return *this; } template <size_t _Size> bitset<_Size>& bitset<_Size>::flip(size_t __pos) { if (__pos >= _Size) __throw_out_of_range("bitset flip argument out of range"); reference r = base::__make_ref(__pos); r = ~r; return *this; } template <size_t _Size> inline unsigned long bitset<_Size>::to_ulong() const { return base::to_ulong(); } template <size_t _Size> inline unsigned long long bitset<_Size>::to_ullong() const { return base::to_ullong(); } template <size_t _Size> template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> bitset<_Size>::to_string(_CharT __zero, _CharT __one) const { basic_string<_CharT, _Traits, _Allocator> __r(_Size, __zero); for (size_t __i = 0; __i < _Size; ++__i) { if ((*this)[__i]) __r[_Size - 1 - __i] = __one; } return __r; } template <size_t _Size> template <class _CharT, class _Traits> inline basic_string<_CharT, _Traits, allocator<_CharT> > bitset<_Size>::to_string(_CharT __zero, _CharT __one) const { return to_string<_CharT, _Traits, allocator<_CharT> >(__zero, __one); } template <size_t _Size> template <class _CharT> inline basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > bitset<_Size>::to_string(_CharT __zero, _CharT __one) const { return to_string<_CharT, char_traits<_CharT>, allocator<_CharT> >(__zero, __one); } template <size_t _Size> inline basic_string<char, char_traits<char>, allocator<char> > bitset<_Size>::to_string(char __zero, char __one) const { return to_string<char, char_traits<char>, allocator<char> >(__zero, __one); } template <size_t _Size> inline size_t bitset<_Size>::count() const noexcept { return static_cast<size_t>(__count_bool_true(base::__make_iter(0), _Size)); } template <size_t _Size> inline bool bitset<_Size>::operator==(const bitset& __rhs) const noexcept { return std::__1::equal(base::__make_iter(0), base::__make_iter(_Size), __rhs.__make_iter(0)); } template <size_t _Size> inline bool bitset<_Size>::operator!=(const bitset& __rhs) const noexcept { return !(*this == __rhs); } template <size_t _Size> bool bitset<_Size>::test(size_t __pos) const { if (__pos >= _Size) __throw_out_of_range("bitset test argument out of range"); return (*this)[__pos]; } template <size_t _Size> inline bool bitset<_Size>::all() const noexcept { return base::all(); } template <size_t _Size> inline bool bitset<_Size>::any() const noexcept { return base::any(); } template <size_t _Size> inline bitset<_Size> bitset<_Size>::operator<<(size_t __pos) const noexcept { bitset __r = *this; __r <<= __pos; return __r; } template <size_t _Size> inline bitset<_Size> bitset<_Size>::operator>>(size_t __pos) const noexcept { bitset __r = *this; __r >>= __pos; return __r; } template <size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset<_Size> operator&(const bitset<_Size>& __x, const bitset<_Size>& __y) noexcept { bitset<_Size> __r = __x; __r &= __y; return __r; } template <size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset<_Size> operator|(const bitset<_Size>& __x, const bitset<_Size>& __y) noexcept { bitset<_Size> __r = __x; __r |= __y; return __r; } template <size_t _Size> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bitset<_Size> operator^(const bitset<_Size>& __x, const bitset<_Size>& __y) noexcept { bitset<_Size> __r = __x; __r ^= __y; return __r; } template <size_t _Size> struct __attribute__ ((__type_visibility__("default"))) hash<bitset<_Size> > : public unary_function<bitset<_Size>, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(const bitset<_Size>& __bs) const noexcept {return __bs.__hash_code();} }; template <class _CharT, class _Traits, size_t _Size> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x); template <class _CharT, class _Traits, size_t _Size> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x); } } # 142 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 2 3 # 146 "/opt/toolchain/target/bin/../include/c++/v1/ostream" 3 namespace std { inline namespace __1 { template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_ostream : virtual public basic_ios<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_ostream(basic_streambuf<char_type, traits_type>* __sb) { this->init(__sb); } virtual ~basic_ostream(); protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream(basic_ostream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream& operator=(basic_ostream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_ostream& __rhs) { basic_ios<char_type, traits_type>::swap(__rhs); } basic_ostream (const basic_ostream& __rhs) = delete; basic_ostream& operator=(const basic_ostream& __rhs) = delete; public: class __attribute__ ((__type_visibility__("default"))) sentry; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream& operator<<(basic_ostream& (*__pf)(basic_ostream&)) { return __pf(*this); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream& operator<<(basic_ios<char_type, traits_type>& (*__pf)(basic_ios<char_type,traits_type>&)) { __pf(*this); return *this; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream& operator<<(ios_base& (*__pf)(ios_base&)) { __pf(*this); return *this; } basic_ostream& operator<<(bool __n); basic_ostream& operator<<(short __n); basic_ostream& operator<<(unsigned short __n); basic_ostream& operator<<(int __n); basic_ostream& operator<<(unsigned int __n); basic_ostream& operator<<(long __n); basic_ostream& operator<<(unsigned long __n); basic_ostream& operator<<(long long __n); basic_ostream& operator<<(unsigned long long __n); basic_ostream& operator<<(float __f); basic_ostream& operator<<(double __f); basic_ostream& operator<<(long double __f); basic_ostream& operator<<(const void* __p); basic_ostream& operator<<(basic_streambuf<char_type, traits_type>* __sb); basic_ostream& put(char_type __c); basic_ostream& write(const char_type* __s, streamsize __n); basic_ostream& flush(); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pos_type tellp(); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream& seekp(pos_type __pos); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream& seekp(off_type __off, ios_base::seekdir __dir); protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream() {} }; template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_ostream<_CharT, _Traits>::sentry { bool __ok_; basic_ostream<_CharT, _Traits>& __os_; sentry(const sentry&); sentry& operator=(const sentry&); public: explicit sentry(basic_ostream<_CharT, _Traits>& __os); ~sentry(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const {return __ok_;} }; template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>::sentry::sentry(basic_ostream<_CharT, _Traits>& __os) : __ok_(false), __os_(__os) { if (__os.good()) { if (__os.tie()) __os.tie()->flush(); __ok_ = true; } } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>::sentry::~sentry() { if (__os_.rdbuf() && __os_.good() && (__os_.flags() & ios_base::unitbuf) && !uncaught_exception()) { if (__os_.rdbuf()->pubsync() == -1) __os_.setstate(ios_base::badbit); } } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>::basic_ostream(basic_ostream&& __rhs) { this->move(__rhs); } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator=(basic_ostream&& __rhs) { swap(__rhs); return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>::~basic_ostream() { } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(basic_streambuf<char_type, traits_type>* __sb) { sentry __s(*this); if (__s) { if (__sb) { typedef istreambuf_iterator<_CharT, _Traits> _Ip; typedef ostreambuf_iterator<_CharT, _Traits> _Op; _Ip __i(__sb); _Ip __eof; _Op __o(*this); size_t __c = 0; for (; __i != __eof; ++__i, ++__o, ++__c) { *__o = *__i; if (__o.failed()) break; } if (__c == 0) this->setstate(ios_base::failbit); } else this->setstate(ios_base::badbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(bool __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(short __n) { sentry __s(*this); if (__s) { ios_base::fmtflags __flags = ios_base::flags() & ios_base::basefield; typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __flags == ios_base::oct || __flags == ios_base::hex ? static_cast<long>(static_cast<unsigned short>(__n)) : static_cast<long>(__n)).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned short __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), static_cast<unsigned long>(__n)).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(int __n) { sentry __s(*this); if (__s) { ios_base::fmtflags __flags = ios_base::flags() & ios_base::basefield; typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __flags == ios_base::oct || __flags == ios_base::hex ? static_cast<long>(static_cast<unsigned int>(__n)) : static_cast<long>(__n)).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned int __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), static_cast<unsigned long>(__n)).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(long __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned long __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(long long __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned long long __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(float __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), static_cast<double>(__n)).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(double __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(long double __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(const void* __n) { sentry __s(*this); if (__s) { typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp; const _Fp& __f = use_facet<_Fp>(this->getloc()); if (__f.put(*this, *this, this->fill(), __n).failed()) this->setstate(ios_base::badbit | ios_base::failbit); } return *this; } template<class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& __put_character_sequence(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str, size_t __len) { typename basic_ostream<_CharT, _Traits>::sentry __s(__os); if (__s) { typedef ostreambuf_iterator<_CharT, _Traits> _Ip; if (__pad_and_output(_Ip(__os), __str, (__os.flags() & ios_base::adjustfield) == ios_base::left ? __str + __len : __str, __str + __len, __os, __os.fill()).failed()) __os.setstate(ios_base::badbit | ios_base::failbit); } return __os; } template<class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c) { return std::__1::__put_character_sequence(__os, &__c, 1); } template<class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, char __cn) { typename basic_ostream<_CharT, _Traits>::sentry __s(__os); if (__s) { _CharT __c = __os.widen(__cn); typedef ostreambuf_iterator<_CharT, _Traits> _Ip; if (__pad_and_output(_Ip(__os), &__c, (__os.flags() & ios_base::adjustfield) == ios_base::left ? &__c + 1 : &__c, &__c + 1, __os, __os.fill()).failed()) __os.setstate(ios_base::badbit | ios_base::failbit); } return __os; } template<class _Traits> basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>& __os, char __c) { return std::__1::__put_character_sequence(__os, &__c, 1); } template<class _Traits> basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>& __os, signed char __c) { return std::__1::__put_character_sequence(__os, (char *) &__c, 1); } template<class _Traits> basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>& __os, unsigned char __c) { return std::__1::__put_character_sequence(__os, (char *) &__c, 1); } template<class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str) { return std::__1::__put_character_sequence(__os, __str, _Traits::length(__str)); } template<class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const char* __strn) { typename basic_ostream<_CharT, _Traits>::sentry __s(__os); if (__s) { typedef ostreambuf_iterator<_CharT, _Traits> _Ip; size_t __len = char_traits<char>::length(__strn); const int __bs = 100; _CharT __wbb[__bs]; _CharT* __wb = __wbb; unique_ptr<_CharT, void(*)(void*)> __h(0, free); if (__len > __bs) { __wb = (_CharT*)malloc(__len*sizeof(_CharT)); if (__wb == 0) __throw_bad_alloc(); __h.reset(__wb); } for (_CharT* __p = __wb; *__strn != '\0'; ++__strn, ++__p) *__p = __os.widen(*__strn); if (__pad_and_output(_Ip(__os), __wb, (__os.flags() & ios_base::adjustfield) == ios_base::left ? __wb + __len : __wb, __wb + __len, __os, __os.fill()).failed()) __os.setstate(ios_base::badbit | ios_base::failbit); } return __os; } template<class _Traits> basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>& __os, const char* __str) { return std::__1::__put_character_sequence(__os, __str, _Traits::length(__str)); } template<class _Traits> basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>& __os, const signed char* __str) { const char *__s = (const char *) __str; return std::__1::__put_character_sequence(__os, __s, _Traits::length(__s)); } template<class _Traits> basic_ostream<char, _Traits>& operator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __str) { const char *__s = (const char *) __str; return std::__1::__put_character_sequence(__os, __s, _Traits::length(__s)); } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::put(char_type __c) { sentry __s(*this); if (__s) { typedef ostreambuf_iterator<_CharT, _Traits> _Op; _Op __o(*this); *__o = __c; if (__o.failed()) this->setstate(ios_base::badbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::write(const char_type* __s, streamsize __n) { sentry __sen(*this); if (__sen && __n) { if (this->rdbuf()->sputn(__s, __n) != __n) this->setstate(ios_base::badbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::flush() { if (this->rdbuf()) { sentry __s(*this); if (__s) { if (this->rdbuf()->pubsync() == -1) this->setstate(ios_base::badbit); } } return *this; } template <class _CharT, class _Traits> typename basic_ostream<_CharT, _Traits>::pos_type basic_ostream<_CharT, _Traits>::tellp() { if (this->fail()) return pos_type(-1); return this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::seekp(pos_type __pos) { sentry __s(*this); if (!this->fail()) { if (this->rdbuf()->pubseekpos(__pos, ios_base::out) == pos_type(-1)) this->setstate(ios_base::failbit); } return *this; } template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::seekp(off_type __off, ios_base::seekdir __dir) { sentry __s(*this); if (!this->fail()) { if (this->rdbuf()->pubseekoff(__off, __dir, ios_base::out) == pos_type(-1)) this->setstate(ios_base::failbit); } return *this; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& endl(basic_ostream<_CharT, _Traits>& __os) { __os.put(__os.widen('\n')); __os.flush(); return __os; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& ends(basic_ostream<_CharT, _Traits>& __os) { __os.put(_CharT()); return __os; } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& flush(basic_ostream<_CharT, _Traits>& __os) { __os.flush(); return __os; } template <class _Stream, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < !is_lvalue_reference<_Stream>::value && is_base_of<ios_base, _Stream>::value, _Stream&& >::type operator<<(_Stream&& __os, const _Tp& __x) { __os << __x; return std::__1::move(__os); } template<class _CharT, class _Traits, class _Allocator> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Allocator>& __str) { return std::__1::__put_character_sequence(__os, __str.data(), __str.size()); } template<class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string_view<_CharT, _Traits> __sv) { return std::__1::__put_character_sequence(__os, __sv.data(), __sv.size()); } template <class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __ec) { return __os << __ec.category().name() << ':' << __ec.value(); } template<class _CharT, class _Traits, class _Yp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p) { return __os << __p.get(); } template<class _CharT, class _Traits, class _Yp, class _Dp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename enable_if < is_same<void, typename __void_t<decltype((declval<basic_ostream<_CharT, _Traits>&>() << declval<typename unique_ptr<_Yp, _Dp>::pointer>()))>::type>::value, basic_ostream<_CharT, _Traits>& >::type operator<<(basic_ostream<_CharT, _Traits>& __os, unique_ptr<_Yp, _Dp> const& __p) { return __os << __p.get(); } template <class _CharT, class _Traits, size_t _Size> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x) { return __os << __x.template to_string<_CharT, _Traits> (use_facet<ctype<_CharT> >(__os.getloc()).widen('0'), use_facet<ctype<_CharT> >(__os.getloc()).widen('1')); } extern template class __attribute__ ((__visibility__("default"))) basic_ostream<char>; extern template class __attribute__ ((__visibility__("default"))) basic_ostream<wchar_t>; } } # 164 "/opt/toolchain/target/bin/../include/c++/v1/istream" 2 3 # 167 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 171 "/opt/toolchain/target/bin/../include/c++/v1/istream" 2 3 namespace std { inline namespace __1 { template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_istream : virtual public basic_ios<_CharT, _Traits> { streamsize __gc_; public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_istream(basic_streambuf<char_type, traits_type>* __sb) : __gc_(0) { this->init(__sb); } virtual ~basic_istream(); protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream(basic_istream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& operator=(basic_istream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_istream& __rhs) { std::__1::swap(__gc_, __rhs.__gc_); basic_ios<char_type, traits_type>::swap(__rhs); } basic_istream (const basic_istream& __rhs) = delete; basic_istream& operator=(const basic_istream& __rhs) = delete; public: class __attribute__ ((__type_visibility__("default"))) sentry; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& operator>>(basic_istream& (*__pf)(basic_istream&)) { return __pf(*this); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& operator>>(basic_ios<char_type, traits_type>& (*__pf)(basic_ios<char_type, traits_type>&)) { __pf(*this); return *this; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& operator>>(ios_base& (*__pf)(ios_base&)) { __pf(*this); return *this; } basic_istream& operator>>(basic_streambuf<char_type, traits_type>* __sb); basic_istream& operator>>(bool& __n); basic_istream& operator>>(short& __n); basic_istream& operator>>(unsigned short& __n); basic_istream& operator>>(int& __n); basic_istream& operator>>(unsigned int& __n); basic_istream& operator>>(long& __n); basic_istream& operator>>(unsigned long& __n); basic_istream& operator>>(long long& __n); basic_istream& operator>>(unsigned long long& __n); basic_istream& operator>>(float& __f); basic_istream& operator>>(double& __f); basic_istream& operator>>(long double& __f); basic_istream& operator>>(void*& __p); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) streamsize gcount() const {return __gc_;} int_type get(); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& get(char_type& __c) { int_type __ch = get(); if (__ch != traits_type::eof()) __c = traits_type::to_char_type(__ch); return *this; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& get(char_type* __s, streamsize __n) { return get(__s, __n, this->widen('\n')); } basic_istream& get(char_type* __s, streamsize __n, char_type __dlm); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& get(basic_streambuf<char_type, traits_type>& __sb) { return get(__sb, this->widen('\n')); } basic_istream& get(basic_streambuf<char_type, traits_type>& __sb, char_type __dlm); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream& getline(char_type* __s, streamsize __n) { return getline(__s, __n, this->widen('\n')); } basic_istream& getline(char_type* __s, streamsize __n, char_type __dlm); basic_istream& ignore(streamsize __n = 1, int_type __dlm = traits_type::eof()); int_type peek(); basic_istream& read (char_type* __s, streamsize __n); streamsize readsome(char_type* __s, streamsize __n); basic_istream& putback(char_type __c); basic_istream& unget(); int sync(); pos_type tellg(); basic_istream& seekg(pos_type __pos); basic_istream& seekg(off_type __off, ios_base::seekdir __dir); }; template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_istream<_CharT, _Traits>::sentry { bool __ok_; sentry(const sentry&); sentry& operator=(const sentry&); public: explicit sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit operator bool() const {return __ok_;} }; template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>::sentry::sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws) : __ok_(false) { if (__is.good()) { if (__is.tie()) __is.tie()->flush(); if (!__noskipws && (__is.flags() & ios_base::skipws)) { typedef istreambuf_iterator<_CharT, _Traits> _Ip; const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc()); _Ip __i(__is); _Ip __eof; for (; __i != __eof; ++__i) if (!__ct.is(__ct.space, *__i)) break; if (__i == __eof) __is.setstate(ios_base::failbit | ios_base::eofbit); } __ok_ = __is.good(); } else __is.setstate(ios_base::failbit); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>::basic_istream(basic_istream&& __rhs) : __gc_(__rhs.__gc_) { __rhs.__gc_ = 0; this->move(__rhs); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator=(basic_istream&& __rhs) { swap(__rhs); return *this; } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>::~basic_istream() { } template <class _Tp, class _CharT, class _Traits> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& __input_arithmetic(basic_istream<_CharT, _Traits>& __is, _Tp& __n) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __s(__is); if (__s) { typedef istreambuf_iterator<_CharT, _Traits> _Ip; typedef num_get<_CharT, _Ip> _Fp; use_facet<_Fp>(__is.getloc()).get(_Ip(__is), _Ip(), __is, __state, __n); # 388 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(unsigned short& __n) { return std::__1::__input_arithmetic<unsigned short>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(unsigned int& __n) { return std::__1::__input_arithmetic<unsigned int>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(long& __n) { return std::__1::__input_arithmetic<long>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(unsigned long& __n) { return std::__1::__input_arithmetic<unsigned long>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(long long& __n) { return std::__1::__input_arithmetic<long long>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(unsigned long long& __n) { return std::__1::__input_arithmetic<unsigned long long>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(float& __n) { return std::__1::__input_arithmetic<float>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(double& __n) { return std::__1::__input_arithmetic<double>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(long double& __n) { return std::__1::__input_arithmetic<long double>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(bool& __n) { return std::__1::__input_arithmetic<bool>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(void*& __n) { return std::__1::__input_arithmetic<void*>(*this, __n); } template <class _Tp, class _CharT, class _Traits> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& __input_arithmetic_with_numeric_limits(basic_istream<_CharT, _Traits>& __is, _Tp& __n) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __s(__is); if (__s) { typedef istreambuf_iterator<_CharT, _Traits> _Ip; typedef num_get<_CharT, _Ip> _Fp; long __temp; use_facet<_Fp>(__is.getloc()).get(_Ip(__is), _Ip(), __is, __state, __temp); if (__temp < numeric_limits<_Tp>::min()) { __state |= ios_base::failbit; __n = numeric_limits<_Tp>::min(); } else if (__temp > numeric_limits<_Tp>::max()) { __state |= ios_base::failbit; __n = numeric_limits<_Tp>::max(); } else { __n = static_cast<_Tp>(__temp); } # 512 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(short& __n) { return std::__1::__input_arithmetic_with_numeric_limits<short>(*this, __n); } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(int& __n) { return std::__1::__input_arithmetic_with_numeric_limits<int>(*this, __n); } template<class _CharT, class _Traits> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& __input_c_string(basic_istream<_CharT, _Traits>& __is, _CharT* __p, size_t __n) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __sen(__is); if (__sen) { _CharT* __s = __p; const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc()); while (__s != __p + (__n-1)) { typename _Traits::int_type __i = __is.rdbuf()->sgetc(); if (_Traits::eq_int_type(__i, _Traits::eof())) { __state |= ios_base::eofbit; break; } _CharT __ch = _Traits::to_char_type(__i); if (__ct.is(__ct.space, __ch)) break; *__s++ = __ch; __is.rdbuf()->sbumpc(); } *__s = _CharT(); __is.width(0); if (__s == __p) __state |= ios_base::failbit; # 576 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } # 612 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 template<class _CharT, class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, _CharT* __s) { streamsize __n = __is.width(); if (__n <= 0) __n = numeric_limits<streamsize>::max() / sizeof(_CharT) - 1; return std::__1::__input_c_string(__is, __s, size_t(__n)); } template<class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<char, _Traits>& operator>>(basic_istream<char, _Traits>& __is, unsigned char* __s) { return __is >> (char*)__s; } template<class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<char, _Traits>& operator>>(basic_istream<char, _Traits>& __is, signed char* __s) { return __is >> (char*)__s; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, _CharT& __c) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __sen(__is); if (__sen) { typename _Traits::int_type __i = __is.rdbuf()->sbumpc(); if (_Traits::eq_int_type(__i, _Traits::eof())) __state |= ios_base::eofbit | ios_base::failbit; else __c = _Traits::to_char_type(__i); # 670 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } template<class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<char, _Traits>& operator>>(basic_istream<char, _Traits>& __is, unsigned char& __c) { return __is >> (char&)__c; } template<class _Traits> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<char, _Traits>& operator>>(basic_istream<char, _Traits>& __is, signed char& __c) { return __is >> (char&)__c; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>>(basic_streambuf<char_type, traits_type>* __sb) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __s(*this, true); if (__s) { if (__sb) { while (true) { typename traits_type::int_type __i = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__i, _Traits::eof())) { __state |= ios_base::eofbit; break; } if (traits_type::eq_int_type( __sb->sputc(traits_type::to_char_type(__i)), traits_type::eof())) break; ++__gc_; this->rdbuf()->sbumpc(); } if (__gc_ == 0) __state |= ios_base::failbit; # 738 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } else { __state |= ios_base::failbit; } this->setstate(__state); } return *this; } template<class _CharT, class _Traits> typename basic_istream<_CharT, _Traits>::int_type basic_istream<_CharT, _Traits>::get() { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; int_type __r = traits_type::eof(); sentry __s(*this, true); if (__s) { __r = this->rdbuf()->sbumpc(); if (traits_type::eq_int_type(__r, traits_type::eof())) __state |= ios_base::failbit | ios_base::eofbit; else __gc_ = 1; # 778 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return __r; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::get(char_type* __s, streamsize __n, char_type __dlm) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __sen(*this, true); if (__sen) { if (__n > 0) { while (__gc_ < __n-1) { int_type __i = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__i, traits_type::eof())) { __state |= ios_base::eofbit; break; } char_type __ch = traits_type::to_char_type(__i); if (traits_type::eq(__ch, __dlm)) break; *__s++ = __ch; ++__gc_; this->rdbuf()->sbumpc(); } if (__gc_ == 0) __state |= ios_base::failbit; # 829 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } else { __state |= ios_base::failbit; } if (__n > 0) *__s = char_type(); this->setstate(__state); } if (__n > 0) *__s = char_type(); return *this; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::get(basic_streambuf<char_type, traits_type>& __sb, char_type __dlm) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __sen(*this, true); if (__sen) { while (true) { typename traits_type::int_type __i = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__i, traits_type::eof())) { __state |= ios_base::eofbit; break; } char_type __ch = traits_type::to_char_type(__i); if (traits_type::eq(__ch, __dlm)) break; if (traits_type::eq_int_type(__sb.sputc(__ch), traits_type::eof())) break; ++__gc_; this->rdbuf()->sbumpc(); } # 882 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 if (__gc_ == 0) __state |= ios_base::failbit; this->setstate(__state); } return *this; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::getline(char_type* __s, streamsize __n, char_type __dlm) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __sen(*this, true); if (__sen) { while (true) { typename traits_type::int_type __i = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__i, traits_type::eof())) { __state |= ios_base::eofbit; break; } char_type __ch = traits_type::to_char_type(__i); if (traits_type::eq(__ch, __dlm)) { this->rdbuf()->sbumpc(); ++__gc_; break; } if (__gc_ >= __n-1) { __state |= ios_base::failbit; break; } *__s++ = __ch; this->rdbuf()->sbumpc(); ++__gc_; } # 942 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } if (__n > 0) *__s = char_type(); if (__gc_ == 0) __state |= ios_base::failbit; this->setstate(__state); return *this; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::ignore(streamsize __n, int_type __dlm) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __sen(*this, true); if (__sen) { if (__n == numeric_limits<streamsize>::max()) { while (true) { typename traits_type::int_type __i = this->rdbuf()->sbumpc(); if (traits_type::eq_int_type(__i, traits_type::eof())) { __state |= ios_base::eofbit; break; } ++__gc_; if (traits_type::eq_int_type(__i, __dlm)) break; } } else { while (__gc_ < __n) { typename traits_type::int_type __i = this->rdbuf()->sbumpc(); if (traits_type::eq_int_type(__i, traits_type::eof())) { __state |= ios_base::eofbit; break; } ++__gc_; if (traits_type::eq_int_type(__i, __dlm)) break; } } # 1006 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return *this; } template<class _CharT, class _Traits> typename basic_istream<_CharT, _Traits>::int_type basic_istream<_CharT, _Traits>::peek() { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; int_type __r = traits_type::eof(); sentry __sen(*this, true); if (__sen) { __r = this->rdbuf()->sgetc(); if (traits_type::eq_int_type(__r, traits_type::eof())) __state |= ios_base::eofbit; # 1040 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return __r; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::read(char_type* __s, streamsize __n) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __sen(*this, true); if (__sen) { __gc_ = this->rdbuf()->sgetn(__s, __n); if (__gc_ != __n) __state |= ios_base::failbit | ios_base::eofbit; # 1073 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } else { __state |= ios_base::failbit; } this->setstate(__state); return *this; } template<class _CharT, class _Traits> streamsize basic_istream<_CharT, _Traits>::readsome(char_type* __s, streamsize __n) { ios_base::iostate __state = ios_base::goodbit; __gc_ = 0; sentry __sen(*this, true); if (__sen) { streamsize __c = this->rdbuf()->in_avail(); switch (__c) { case -1: __state |= ios_base::eofbit; break; case 0: break; default: __n = std::__1::min(__c, __n); __gc_ = this->rdbuf()->sgetn(__s, __n); if (__gc_ != __n) __state |= ios_base::failbit | ios_base::eofbit; break; } # 1122 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } else { __state |= ios_base::failbit; } this->setstate(__state); return __gc_; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::putback(char_type __c) { ios_base::iostate __state = this->rdstate() & ~ios_base::eofbit; __gc_ = 0; this->clear(__state); sentry __sen(*this, true); if (__sen) { if (this->rdbuf() == 0 || this->rdbuf()->sputbackc(__c) == traits_type::eof()) __state |= ios_base::badbit; # 1159 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } else { __state |= ios_base::failbit; } this->setstate(__state); return *this; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::unget() { ios_base::iostate __state = this->rdstate() & ~ios_base::eofbit; __gc_ = 0; this->clear(__state); sentry __sen(*this, true); if (__sen) { if (this->rdbuf() == 0 || this->rdbuf()->sungetc() == traits_type::eof()) __state |= ios_base::badbit; # 1196 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 } else { __state |= ios_base::failbit; } this->setstate(__state); return *this; } template<class _CharT, class _Traits> int basic_istream<_CharT, _Traits>::sync() { ios_base::iostate __state = ios_base::goodbit; int __r = 0; sentry __sen(*this, true); if (__sen) { if (this->rdbuf() == 0) return -1; if (this->rdbuf()->pubsync() == -1) { __state |= ios_base::badbit; return -1; } # 1237 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return __r; } template<class _CharT, class _Traits> typename basic_istream<_CharT, _Traits>::pos_type basic_istream<_CharT, _Traits>::tellg() { ios_base::iostate __state = ios_base::goodbit; pos_type __r(-1); sentry __sen(*this, true); if (__sen) { __r = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in); # 1268 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return __r; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::seekg(pos_type __pos) { ios_base::iostate __state = this->rdstate() & ~ios_base::eofbit; this->clear(__state); sentry __sen(*this, true); if (__sen) { if (this->rdbuf()->pubseekpos(__pos, ios_base::in) == pos_type(-1)) __state |= ios_base::failbit; # 1300 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return *this; } template<class _CharT, class _Traits> basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::seekg(off_type __off, ios_base::seekdir __dir) { ios_base::iostate __state = this->rdstate() & ~ios_base::eofbit; this->clear(__state); sentry __sen(*this, true); if (__sen) { if (this->rdbuf()->pubseekoff(__off, __dir, ios_base::in) == pos_type(-1)) __state |= ios_base::failbit; # 1332 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 this->setstate(__state); } return *this; } template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& ws(basic_istream<_CharT, _Traits>& __is) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __sen(__is, true); if (__sen) { const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc()); while (true) { typename _Traits::int_type __i = __is.rdbuf()->sgetc(); if (_Traits::eq_int_type(__i, _Traits::eof())) { __state |= ios_base::eofbit; break; } if (!__ct.is(__ct.space, _Traits::to_char_type(__i))) break; __is.rdbuf()->sbumpc(); } # 1374 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } template <class _CharT, class _Traits, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp&& __x) { __is >> std::__1::forward<_Tp>(__x); return __is; } template <class _CharT, class _Traits> class __attribute__ ((__type_visibility__("default"))) basic_iostream : public basic_istream<_CharT, _Traits>, public basic_ostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_iostream(basic_streambuf<char_type, traits_type>* __sb) : basic_istream<_CharT, _Traits>(__sb) {} virtual ~basic_iostream(); protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_iostream(basic_iostream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_iostream& operator=(basic_iostream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_iostream& __rhs) { basic_istream<char_type, traits_type>::swap(__rhs); } }; template <class _CharT, class _Traits> basic_iostream<_CharT, _Traits>::basic_iostream(basic_iostream&& __rhs) : basic_istream<_CharT, _Traits>(std::__1::move(__rhs)) { } template <class _CharT, class _Traits> basic_iostream<_CharT, _Traits>& basic_iostream<_CharT, _Traits>::operator=(basic_iostream&& __rhs) { swap(__rhs); return *this; } template <class _CharT, class _Traits> basic_iostream<_CharT, _Traits>::~basic_iostream() { } template<class _CharT, class _Traits, class _Allocator> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __sen(__is); if (__sen) { __str.clear(); streamsize __n = __is.width(); if (__n <= 0) __n = __str.max_size(); if (__n <= 0) __n = numeric_limits<streamsize>::max(); streamsize __c = 0; const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc()); while (__c < __n) { typename _Traits::int_type __i = __is.rdbuf()->sgetc(); if (_Traits::eq_int_type(__i, _Traits::eof())) { __state |= ios_base::eofbit; break; } _CharT __ch = _Traits::to_char_type(__i); if (__ct.is(__ct.space, __ch)) break; __str.push_back(__ch); ++__c; __is.rdbuf()->sbumpc(); } __is.width(0); if (__c == 0) __state |= ios_base::failbit; # 1500 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } template<class _CharT, class _Traits, class _Allocator> basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __sen(__is, true); if (__sen) { __str.clear(); streamsize __extr = 0; while (true) { typename _Traits::int_type __i = __is.rdbuf()->sbumpc(); if (_Traits::eq_int_type(__i, _Traits::eof())) { __state |= ios_base::eofbit; break; } ++__extr; _CharT __ch = _Traits::to_char_type(__i); if (_Traits::eq(__ch, __dlm)) break; __str.push_back(__ch); if (__str.size() == __str.max_size()) { __state |= ios_base::failbit; break; } } if (__extr == 0) __state |= ios_base::failbit; # 1553 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str) { return getline(__is, __str, __is.widen('\n')); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm) { return getline(__is, __str, __dlm); } template<class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str) { return getline(__is, __str, __is.widen('\n')); } template <class _CharT, class _Traits, size_t _Size> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x) { ios_base::iostate __state = ios_base::goodbit; typename basic_istream<_CharT, _Traits>::sentry __sen(__is); if (__sen) { basic_string<_CharT, _Traits> __str; const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc()); size_t __c = 0; _CharT __zero = __ct.widen('0'); _CharT __one = __ct.widen('1'); while (__c < _Size) { typename _Traits::int_type __i = __is.rdbuf()->sgetc(); if (_Traits::eq_int_type(__i, _Traits::eof())) { __state |= ios_base::eofbit; break; } _CharT __ch = _Traits::to_char_type(__i); if (!_Traits::eq(__ch, __zero) && !_Traits::eq(__ch, __one)) break; __str.push_back(__ch); ++__c; __is.rdbuf()->sbumpc(); } __x = bitset<_Size>(__str); if (__c == 0) __state |= ios_base::failbit; # 1636 "/opt/toolchain/target/bin/../include/c++/v1/istream" 3 __is.setstate(__state); } return __is; } extern template class __attribute__ ((__visibility__("default"))) basic_istream<char>; extern template class __attribute__ ((__visibility__("default"))) basic_istream<wchar_t>; extern template class __attribute__ ((__visibility__("default"))) basic_iostream<char>; } } # 48 "/opt/toolchain/target/bin/../include/c++/v1/iomanip" 2 3 # 52 "/opt/toolchain/target/bin/../include/c++/v1/iomanip" 3 namespace std { inline namespace __1 { class __iom_t1 { ios_base::fmtflags __mask_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __iom_t1(ios_base::fmtflags __m) : __mask_(__m) {} template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t1& __x) { __is.unsetf(__x.__mask_); return __is; } template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t1& __x) { __os.unsetf(__x.__mask_); return __os; } }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t1 resetiosflags(ios_base::fmtflags __mask) { return __iom_t1(__mask); } class __iom_t2 { ios_base::fmtflags __mask_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __iom_t2(ios_base::fmtflags __m) : __mask_(__m) {} template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t2& __x) { __is.setf(__x.__mask_); return __is; } template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t2& __x) { __os.setf(__x.__mask_); return __os; } }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t2 setiosflags(ios_base::fmtflags __mask) { return __iom_t2(__mask); } class __iom_t3 { int __base_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __iom_t3(int __b) : __base_(__b) {} template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t3& __x) { __is.setf(__x.__base_ == 8 ? ios_base::oct : __x.__base_ == 10 ? ios_base::dec : __x.__base_ == 16 ? ios_base::hex : ios_base::fmtflags(0), ios_base::basefield); return __is; } template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t3& __x) { __os.setf(__x.__base_ == 8 ? ios_base::oct : __x.__base_ == 10 ? ios_base::dec : __x.__base_ == 16 ? ios_base::hex : ios_base::fmtflags(0), ios_base::basefield); return __os; } }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t3 setbase(int __base) { return __iom_t3(__base); } template<class _CharT> class __iom_t4 { _CharT __fill_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __iom_t4(_CharT __c) : __fill_(__c) {} template <class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t4& __x) { __os.fill(__x.__fill_); return __os; } }; template<class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t4<_CharT> setfill(_CharT __c) { return __iom_t4<_CharT>(__c); } class __iom_t5 { int __n_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __iom_t5(int __n) : __n_(__n) {} template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t5& __x) { __is.precision(__x.__n_); return __is; } template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t5& __x) { __os.precision(__x.__n_); return __os; } }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t5 setprecision(int __n) { return __iom_t5(__n); } class __iom_t6 { int __n_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __iom_t6(int __n) : __n_(__n) {} template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t6& __x) { __is.width(__x.__n_); return __is; } template <class _CharT, class _Traits> friend __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t6& __x) { __os.width(__x.__n_); return __os; } }; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t6 setw(int __n) { return __iom_t6(__n); } template <class _MoneyT> class __iom_t7; template <class _CharT, class _Traits, class _MoneyT> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x); template <class _MoneyT> class __iom_t7 { _MoneyT& __mon_; bool __intl_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t7(_MoneyT& __mon, bool __intl) : __mon_(__mon), __intl_(__intl) {} template <class _CharT, class _Traits, class _Mp> friend basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_Mp>& __x); }; template <class _CharT, class _Traits, class _MoneyT> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x) { typename basic_istream<_CharT, _Traits>::sentry __s(__is); if (__s) { typedef istreambuf_iterator<_CharT, _Traits> _Ip; typedef money_get<_CharT, _Ip> _Fp; ios_base::iostate __err = ios_base::goodbit; const _Fp& __mf = use_facet<_Fp>(__is.getloc()); __mf.get(_Ip(__is), _Ip(), __x.__intl_, __is, __err, __x.__mon_); __is.setstate(__err); } return __is; } template <class _MoneyT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t7<_MoneyT> get_money(_MoneyT& __mon, bool __intl = false) { return __iom_t7<_MoneyT>(__mon, __intl); } template <class _MoneyT> class __iom_t8; template <class _CharT, class _Traits, class _MoneyT> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x); template <class _MoneyT> class __iom_t8 { const _MoneyT& __mon_; bool __intl_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t8(const _MoneyT& __mon, bool __intl) : __mon_(__mon), __intl_(__intl) {} template <class _CharT, class _Traits, class _Mp> friend basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_Mp>& __x); }; template <class _CharT, class _Traits, class _MoneyT> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x) { typename basic_ostream<_CharT, _Traits>::sentry __s(__os); if (__s) { typedef ostreambuf_iterator<_CharT, _Traits> _Op; typedef money_put<_CharT, _Op> _Fp; const _Fp& __mf = use_facet<_Fp>(__os.getloc()); if (__mf.put(_Op(__os), __x.__intl_, __os, __os.fill(), __x.__mon_).failed()) __os.setstate(ios_base::badbit); } return __os; } template <class _MoneyT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t8<_MoneyT> put_money(const _MoneyT& __mon, bool __intl = false) { return __iom_t8<_MoneyT>(__mon, __intl); } template <class _CharT> class __iom_t9; template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x); template <class _CharT> class __iom_t9 { tm* __tm_; const _CharT* __fmt_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t9(tm* __tm, const _CharT* __fmt) : __tm_(__tm), __fmt_(__fmt) {} template <class _Cp, class _Traits> friend basic_istream<_Cp, _Traits>& operator>>(basic_istream<_Cp, _Traits>& __is, const __iom_t9<_Cp>& __x); }; template <class _CharT, class _Traits> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x) { typename basic_istream<_CharT, _Traits>::sentry __s(__is); if (__s) { typedef istreambuf_iterator<_CharT, _Traits> _Ip; typedef time_get<_CharT, _Ip> _Fp; ios_base::iostate __err = ios_base::goodbit; const _Fp& __tf = use_facet<_Fp>(__is.getloc()); __tf.get(_Ip(__is), _Ip(), __is, __err, __x.__tm_, __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)); __is.setstate(__err); } return __is; } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t9<_CharT> get_time(tm* __tm, const _CharT* __fmt) { return __iom_t9<_CharT>(__tm, __fmt); } template <class _CharT> class __iom_t10; template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x); template <class _CharT> class __iom_t10 { const tm* __tm_; const _CharT* __fmt_; public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t10(const tm* __tm, const _CharT* __fmt) : __tm_(__tm), __fmt_(__fmt) {} template <class _Cp, class _Traits> friend basic_ostream<_Cp, _Traits>& operator<<(basic_ostream<_Cp, _Traits>& __os, const __iom_t10<_Cp>& __x); }; template <class _CharT, class _Traits> basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x) { typename basic_ostream<_CharT, _Traits>::sentry __s(__os); if (__s) { typedef ostreambuf_iterator<_CharT, _Traits> _Op; typedef time_put<_CharT, _Op> _Fp; const _Fp& __tf = use_facet<_Fp>(__os.getloc()); if (__tf.put(_Op(__os), __os, __os.fill(), __x.__tm_, __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)).failed()) __os.setstate(ios_base::badbit); } return __os; } template <class _CharT> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __iom_t10<_CharT> put_time(const tm* __tm, const _CharT* __fmt) { return __iom_t10<_CharT>(__tm, __fmt); } template <class _CharT, class _Traits, class _ForwardIterator> std::basic_ostream<_CharT, _Traits> & __quoted_output ( basic_ostream<_CharT, _Traits> &__os, _ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape ) { std::__1::basic_string<_CharT, _Traits> __str; __str.push_back(__delim); for ( ; __first != __last; ++ __first ) { if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim)) __str.push_back(__escape); __str.push_back(*__first); } __str.push_back(__delim); return __put_character_sequence(__os, __str.data(), __str.size()); } template <class _CharT, class _Traits, class _String> basic_istream<_CharT, _Traits> & __quoted_input ( basic_istream<_CharT, _Traits> &__is, _String & __string, _CharT __delim, _CharT __escape ) { __string.clear (); _CharT __c; __is >> __c; if ( __is.fail ()) return __is; if (!_Traits::eq (__c, __delim)) { __is.unget (); __is >> __string; return __is; } __save_flags<_CharT, _Traits> sf(__is); noskipws (__is); while (true) { __is >> __c; if ( __is.fail ()) break; if (_Traits::eq (__c, __escape)) { __is >> __c; if ( __is.fail ()) break; } else if (_Traits::eq (__c, __delim)) break; __string.push_back ( __c ); } return __is; } template <class _CharT, class _Traits, class _Iter> basic_ostream<_CharT, _Traits>& operator<<( basic_ostream<_CharT, _Traits>& __os, const __quoted_output_proxy<_CharT, _Iter, _Traits> & __proxy) { return __quoted_output (__os, __proxy.__first, __proxy.__last, __proxy.__delim, __proxy.__escape); } template <class _CharT, class _Traits, class _Allocator> struct __quoted_proxy { basic_string<_CharT, _Traits, _Allocator> &__string; _CharT __delim; _CharT __escape; __quoted_proxy(basic_string<_CharT, _Traits, _Allocator> &__s, _CharT __d, _CharT __e) : __string(__s), __delim(__d), __escape(__e) {} }; template <class _CharT, class _Traits, class _Allocator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostream<_CharT, _Traits>& operator<<( basic_ostream<_CharT, _Traits>& __os, const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy) { return __quoted_output (__os, __proxy.__string.cbegin (), __proxy.__string.cend (), __proxy.__delim, __proxy.__escape); } template <class _CharT, class _Traits, class _Allocator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istream<_CharT, _Traits>& operator>>( basic_istream<_CharT, _Traits>& __is, const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy) { return __quoted_input ( __is, __proxy.__string, __proxy.__delim, __proxy.__escape ); } template <class _CharT> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __quoted_output_proxy<_CharT, const _CharT *> quoted ( const _CharT *__s, _CharT __delim = _CharT('"'), _CharT __escape =_CharT('\\')) { const _CharT *__end = __s; while ( *__end ) ++__end; return __quoted_output_proxy<_CharT, const _CharT *> ( __s, __end, __delim, __escape ); } template <class _CharT, class _Traits, class _Allocator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator> __quoted ( const basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) { return __quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator> ( __s.cbegin(), __s.cend (), __delim, __escape ); } template <class _CharT, class _Traits, class _Allocator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __quoted_proxy<_CharT, _Traits, _Allocator> __quoted ( basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) { return __quoted_proxy<_CharT, _Traits, _Allocator>( __s, __delim, __escape ); } template <class _CharT, class _Traits, class _Allocator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator> quoted ( const basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) { return __quoted(__s, __delim, __escape); } template <class _CharT, class _Traits, class _Allocator> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __quoted_proxy<_CharT, _Traits, _Allocator> quoted ( basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) { return __quoted(__s, __delim, __escape); } template <class _CharT, class _Traits> __quoted_output_proxy<_CharT, const _CharT *, _Traits> quoted (basic_string_view <_CharT, _Traits> __sv, _CharT __delim = _CharT('"'), _CharT __escape=_CharT('\\')) { return __quoted_output_proxy<_CharT, const _CharT *, _Traits> ( __sv.data(), __sv.data() + __sv.size(), __delim, __escape ); } } } # 10 "/work/libint/src/Matrix.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/iostream" 1 3 # 44 "/opt/toolchain/target/bin/../include/c++/v1/iostream" 3 namespace std { inline namespace __1 { extern __attribute__ ((__visibility__("default"))) istream cin; extern __attribute__ ((__visibility__("default"))) wistream wcin; extern __attribute__ ((__visibility__("default"))) ostream cout; extern __attribute__ ((__visibility__("default"))) wostream wcout; extern __attribute__ ((__visibility__("default"))) ostream cerr; extern __attribute__ ((__visibility__("default"))) wostream wcerr; extern __attribute__ ((__visibility__("default"))) ostream clog; extern __attribute__ ((__visibility__("default"))) wostream wclog; } } # 11 "/work/libint/src/Matrix.h" 2 # 1 "/work/libint/src/AlignedAllocator.h" 1 namespace libint { template <class T, size_t Alignment> struct AlignedAllocator { typedef T value_type; template <typename U> struct rebind { typedef AlignedAllocator<U, Alignment> other; }; constexpr unsigned to_next_algiment_multiple(unsigned alignment, unsigned size) { if ((size % alignment) == 0) { return size; } else { return size - (size % alignment) + alignment; } } AlignedAllocator() = default; template <class U, size_t Y> constexpr AlignedAllocator(const AlignedAllocator<U, Y> &) noexcept {} [[nodiscard]] T *allocate(std::size_t Elements) { if (auto p = static_cast<T *>(std::aligned_alloc( Alignment, to_next_algiment_multiple(Alignment, Elements * sizeof(T))))) return p; std::abort(); } void deallocate(T *Pointer, std::size_t) noexcept { std::free(Pointer); } }; template <class T, class U, size_t X, size_t Y> bool operator==(const AlignedAllocator<T, X> &, const AlignedAllocator<U, Y> &) { return true; } template <class T, class U, size_t X, size_t Y> bool operator!=(const AlignedAllocator<T, X> &, const AlignedAllocator<U, Y> &) { return false; } } # 13 "/work/libint/src/Matrix.h" 2 # 1 "/work/libint/src/ScopeGuard.h" 1 # 10 "/work/libint/src/ScopeGuard.h" namespace libint { class ScopeGuard { public: template <typename F> ScopeGuard(F &&f) : f{std::forward<F>(f)} {} ~ScopeGuard() { f(); } std::function<void(void)> f; }; } # 14 "/work/libint/src/Matrix.h" 2 # 1 "/work/libint/src/SparsityInfo.h" 1 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 1 3 # 20 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 3 # 1 "/usr/include/assert.h" 1 3 4 # 21 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 2 3 # 24 "/opt/toolchain/target/bin/../include/c++/v1/cassert" 3 # 5 "/work/libint/src/SparsityInfo.h" 2 # 1 "/work/libint/src/Unreachable.h" 1 # 8 "/work/libint/src/SparsityInfo.h" 2 # 1 "/work/libint/src/VectorTypes.h" 1 # 12 "/work/libint/src/VectorTypes.h" # 1 "/opt/toolchain/target/bin/../include/c++/v1/vector" 1 3 # 284 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__split_buffer" 1 3 # 11 "/opt/toolchain/target/bin/../include/c++/v1/__split_buffer" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 15 "/opt/toolchain/target/bin/../include/c++/v1/__split_buffer" 2 3 namespace std { inline namespace __1 { template <bool> class __split_buffer_common { protected: void __throw_length_error() const; void __throw_out_of_range() const; }; template <class _Tp, class _Allocator = allocator<_Tp> > struct __split_buffer : private __split_buffer_common<true> { private: __split_buffer(const __split_buffer&); __split_buffer& operator=(const __split_buffer&); public: typedef _Tp value_type; typedef _Allocator allocator_type; typedef typename remove_reference<allocator_type>::type __alloc_rr; typedef allocator_traits<__alloc_rr> __alloc_traits; typedef value_type& reference; typedef const value_type& const_reference; typedef typename __alloc_traits::size_type size_type; typedef typename __alloc_traits::difference_type difference_type; typedef typename __alloc_traits::pointer pointer; typedef typename __alloc_traits::const_pointer const_pointer; typedef pointer iterator; typedef const_pointer const_iterator; pointer __first_; pointer __begin_; pointer __end_; __compressed_pair<pointer, allocator_type> __end_cap_; typedef typename add_lvalue_reference<allocator_type>::type __alloc_ref; typedef typename add_lvalue_reference<allocator_type>::type __alloc_const_ref; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __alloc_rr& __alloc() noexcept {return __end_cap_.second();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const __alloc_rr& __alloc() const noexcept {return __end_cap_.second();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer& __end_cap() noexcept {return __end_cap_.first();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const pointer& __end_cap() const noexcept {return __end_cap_.first();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __split_buffer() noexcept(is_nothrow_default_constructible<allocator_type>::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __split_buffer(__alloc_rr& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit __split_buffer(const __alloc_rr& __a); __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a); ~__split_buffer(); __split_buffer(__split_buffer&& __c) noexcept(is_nothrow_move_constructible<allocator_type>::value); __split_buffer(__split_buffer&& __c, const __alloc_rr& __a); __split_buffer& operator=(__split_buffer&& __c) noexcept((__alloc_traits::propagate_on_container_move_assignment::value && is_nothrow_move_assignable<allocator_type>::value) || !__alloc_traits::propagate_on_container_move_assignment::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator begin() noexcept {return __begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator begin() const noexcept {return __begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator end() noexcept {return __end_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator end() const noexcept {return __end_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept {__destruct_at_end(__begin_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type size() const {return static_cast<size_type>(__end_ - __begin_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool empty() const {return __end_ == __begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type capacity() const {return static_cast<size_type>(__end_cap() - __first_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __front_spare() const {return static_cast<size_type>(__begin_ - __first_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __back_spare() const {return static_cast<size_type>(__end_cap() - __end_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference front() {return *__begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference front() const {return *__begin_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference back() {return *(__end_ - 1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference back() const {return *(__end_ - 1);} void reserve(size_type __n); void shrink_to_fit() noexcept; void push_front(const_reference __x); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void push_back(const_reference __x); void push_front(value_type&& __x); void push_back(value_type&& __x); template <class... _Args> void emplace_back(_Args&&... __args); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_front() {__destruct_at_begin(__begin_+1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_back() {__destruct_at_end(__end_-1);} void __construct_at_end(size_type __n); void __construct_at_end(size_type __n, const_reference __x); template <class _InputIter> typename enable_if < __is_input_iterator<_InputIter>::value && !__is_forward_iterator<_InputIter>::value, void >::type __construct_at_end(_InputIter __first, _InputIter __last); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type __construct_at_end(_ForwardIterator __first, _ForwardIterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_begin(pointer __new_begin) {__destruct_at_begin(__new_begin, is_trivially_destructible<value_type>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_begin(pointer __new_begin, false_type); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_begin(pointer __new_begin, true_type); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_end(pointer __new_last) noexcept {__destruct_at_end(__new_last, false_type());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_end(pointer __new_last, false_type) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_end(pointer __new_last, true_type) noexcept; void swap(__split_buffer& __x) noexcept(!__alloc_traits::propagate_on_container_swap::value|| __is_nothrow_swappable<__alloc_rr>::value); bool __invariants() const; private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(__split_buffer& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value) { __alloc() = std::__1::move(__c.__alloc()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(__split_buffer&, false_type) noexcept {} }; template <class _Tp, class _Allocator> bool __split_buffer<_Tp, _Allocator>::__invariants() const { if (__first_ == nullptr) { if (__begin_ != nullptr) return false; if (__end_ != nullptr) return false; if (__end_cap() != nullptr) return false; } else { if (__begin_ < __first_) return false; if (__end_ < __begin_) return false; if (__end_cap() < __end_) return false; } return true; } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n) { __alloc_rr& __a = this->__alloc(); do { __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_)); ++this->__end_; --__n; } while (__n > 0); } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x) { __alloc_rr& __a = this->__alloc(); do { __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_), __x); ++this->__end_; --__n; } while (__n > 0); } template <class _Tp, class _Allocator> template <class _InputIter> typename enable_if < __is_input_iterator<_InputIter>::value && !__is_forward_iterator<_InputIter>::value, void >::type __split_buffer<_Tp, _Allocator>::__construct_at_end(_InputIter __first, _InputIter __last) { __alloc_rr& __a = this->__alloc(); for (; __first != __last; ++__first) { if (__end_ == __end_cap()) { size_type __old_cap = __end_cap() - __first_; size_type __new_cap = std::__1::max<size_type>(2 * __old_cap, 8); __split_buffer __buf(__new_cap, 0, __a); for (pointer __p = __begin_; __p != __end_; ++__p, ++__buf.__end_) __alloc_traits::construct(__buf.__alloc(), std::__1::__to_raw_pointer(__buf.__end_), std::__1::move(*__p)); swap(__buf); } __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_), *__first); ++this->__end_; } } template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type __split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) { __alloc_rr& __a = this->__alloc(); for (; __first != __last; ++__first) { __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_), *__first); ++this->__end_; } } template <class _Tp, class _Allocator> inline void __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type) { while (__begin_ != __new_begin) __alloc_traits::destroy(__alloc(), __to_raw_pointer(__begin_++)); } template <class _Tp, class _Allocator> inline void __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, true_type) { __begin_ = __new_begin; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, false_type) noexcept { while (__new_last != __end_) __alloc_traits::destroy(__alloc(), __to_raw_pointer(--__end_)); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, true_type) noexcept { __end_ = __new_last; } template <class _Tp, class _Allocator> __split_buffer<_Tp, _Allocator>::__split_buffer(size_type __cap, size_type __start, __alloc_rr& __a) : __end_cap_(nullptr, __a) { __first_ = __cap != 0 ? __alloc_traits::allocate(__alloc(), __cap) : nullptr; __begin_ = __end_ = __first_ + __start; __end_cap() = __first_ + __cap; } template <class _Tp, class _Allocator> inline __split_buffer<_Tp, _Allocator>::__split_buffer() noexcept(is_nothrow_default_constructible<allocator_type>::value) : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr) { } template <class _Tp, class _Allocator> inline __split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a) : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) { } template <class _Tp, class _Allocator> inline __split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a) : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) { } template <class _Tp, class _Allocator> __split_buffer<_Tp, _Allocator>::~__split_buffer() { clear(); if (__first_) __alloc_traits::deallocate(__alloc(), __first_, capacity()); } template <class _Tp, class _Allocator> __split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c) noexcept(is_nothrow_move_constructible<allocator_type>::value) : __first_(std::__1::move(__c.__first_)), __begin_(std::__1::move(__c.__begin_)), __end_(std::__1::move(__c.__end_)), __end_cap_(std::__1::move(__c.__end_cap_)) { __c.__first_ = nullptr; __c.__begin_ = nullptr; __c.__end_ = nullptr; __c.__end_cap() = nullptr; } template <class _Tp, class _Allocator> __split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c, const __alloc_rr& __a) : __end_cap_(__second_tag(), __a) { if (__a == __c.__alloc()) { __first_ = __c.__first_; __begin_ = __c.__begin_; __end_ = __c.__end_; __end_cap() = __c.__end_cap(); __c.__first_ = nullptr; __c.__begin_ = nullptr; __c.__end_ = nullptr; __c.__end_cap() = nullptr; } else { size_type __cap = __c.size(); __first_ = __alloc_traits::allocate(__alloc(), __cap); __begin_ = __end_ = __first_; __end_cap() = __first_ + __cap; typedef move_iterator<iterator> _Ip; __construct_at_end(_Ip(__c.begin()), _Ip(__c.end())); } } template <class _Tp, class _Allocator> __split_buffer<_Tp, _Allocator>& __split_buffer<_Tp, _Allocator>::operator=(__split_buffer&& __c) noexcept((__alloc_traits::propagate_on_container_move_assignment::value && is_nothrow_move_assignable<allocator_type>::value) || !__alloc_traits::propagate_on_container_move_assignment::value) { clear(); shrink_to_fit(); __first_ = __c.__first_; __begin_ = __c.__begin_; __end_ = __c.__end_; __end_cap() = __c.__end_cap(); __move_assign_alloc(__c, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>()); __c.__first_ = __c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr; return *this; } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::swap(__split_buffer& __x) noexcept(!__alloc_traits::propagate_on_container_swap::value|| __is_nothrow_swappable<__alloc_rr>::value) { std::__1::swap(__first_, __x.__first_); std::__1::swap(__begin_, __x.__begin_); std::__1::swap(__end_, __x.__end_); std::__1::swap(__end_cap(), __x.__end_cap()); __swap_allocator(__alloc(), __x.__alloc()); } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::reserve(size_type __n) { if (__n < capacity()) { __split_buffer<value_type, __alloc_rr&> __t(__n, 0, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::shrink_to_fit() noexcept { if (capacity() > size()) { __split_buffer<value_type, __alloc_rr&> __t(size(), 0, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); __t.__end_ = __t.__begin_ + (__end_ - __begin_); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::push_front(const_reference __x) { if (__begin_ == __first_) { if (__end_ < __end_cap()) { difference_type __d = __end_cap() - __end_; __d = (__d + 1) / 2; __begin_ = std::__1::move_backward(__begin_, __end_, __end_ + __d); __end_ += __d; } else { size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1); __split_buffer<value_type, __alloc_rr&> __t(__c, (__c + 3) / 4, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } __alloc_traits::construct(__alloc(), std::__1::__to_raw_pointer(__begin_-1), __x); --__begin_; } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::push_front(value_type&& __x) { if (__begin_ == __first_) { if (__end_ < __end_cap()) { difference_type __d = __end_cap() - __end_; __d = (__d + 1) / 2; __begin_ = std::__1::move_backward(__begin_, __end_, __end_ + __d); __end_ += __d; } else { size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1); __split_buffer<value_type, __alloc_rr&> __t(__c, (__c + 3) / 4, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } __alloc_traits::construct(__alloc(), std::__1::__to_raw_pointer(__begin_-1), std::__1::move(__x)); --__begin_; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __split_buffer<_Tp, _Allocator>::push_back(const_reference __x) { if (__end_ == __end_cap()) { if (__begin_ > __first_) { difference_type __d = __begin_ - __first_; __d = (__d + 1) / 2; __end_ = std::__1::move(__begin_, __end_, __begin_ - __d); __begin_ -= __d; } else { size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1); __split_buffer<value_type, __alloc_rr&> __t(__c, __c / 4, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } __alloc_traits::construct(__alloc(), std::__1::__to_raw_pointer(__end_), __x); ++__end_; } template <class _Tp, class _Allocator> void __split_buffer<_Tp, _Allocator>::push_back(value_type&& __x) { if (__end_ == __end_cap()) { if (__begin_ > __first_) { difference_type __d = __begin_ - __first_; __d = (__d + 1) / 2; __end_ = std::__1::move(__begin_, __end_, __begin_ - __d); __begin_ -= __d; } else { size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1); __split_buffer<value_type, __alloc_rr&> __t(__c, __c / 4, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } __alloc_traits::construct(__alloc(), std::__1::__to_raw_pointer(__end_), std::__1::move(__x)); ++__end_; } template <class _Tp, class _Allocator> template <class... _Args> void __split_buffer<_Tp, _Allocator>::emplace_back(_Args&&... __args) { if (__end_ == __end_cap()) { if (__begin_ > __first_) { difference_type __d = __begin_ - __first_; __d = (__d + 1) / 2; __end_ = std::__1::move(__begin_, __end_, __begin_ - __d); __begin_ -= __d; } else { size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1); __split_buffer<value_type, __alloc_rr&> __t(__c, __c / 4, __alloc()); __t.__construct_at_end(move_iterator<pointer>(__begin_), move_iterator<pointer>(__end_)); std::__1::swap(__first_, __t.__first_); std::__1::swap(__begin_, __t.__begin_); std::__1::swap(__end_, __t.__end_); std::__1::swap(__end_cap(), __t.__end_cap()); } } __alloc_traits::construct(__alloc(), std::__1::__to_raw_pointer(__end_), std::__1::forward<_Args>(__args)...); ++__end_; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(__split_buffer<_Tp, _Allocator>& __x, __split_buffer<_Tp, _Allocator>& __y) noexcept(noexcept(__x.swap(__y))) { __x.swap(__y); } } } # 285 "/opt/toolchain/target/bin/../include/c++/v1/vector" 2 3 # 291 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 295 "/opt/toolchain/target/bin/../include/c++/v1/vector" 2 3 namespace std { inline namespace __1 { template <bool> class __vector_base_common { protected: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base_common() {} [[noreturn]] void __throw_length_error() const; [[noreturn]] void __throw_out_of_range() const; }; template <bool __b> void __vector_base_common<__b>::__throw_length_error() const { std::__1::__throw_length_error("vector"); } template <bool __b> void __vector_base_common<__b>::__throw_out_of_range() const { std::__1::__throw_out_of_range("vector"); } extern template class __attribute__ ((__visibility__("default"))) __vector_base_common<true>; template <class _Tp, class _Allocator> class __vector_base : protected __vector_base_common<true> { public: typedef _Allocator allocator_type; typedef allocator_traits<allocator_type> __alloc_traits; typedef typename __alloc_traits::size_type size_type; protected: typedef _Tp value_type; typedef value_type& reference; typedef const value_type& const_reference; typedef typename __alloc_traits::difference_type difference_type; typedef typename __alloc_traits::pointer pointer; typedef typename __alloc_traits::const_pointer const_pointer; typedef pointer iterator; typedef const_pointer const_iterator; pointer __begin_; pointer __end_; __compressed_pair<pointer, allocator_type> __end_cap_; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator_type& __alloc() noexcept {return __end_cap_.second();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const allocator_type& __alloc() const noexcept {return __end_cap_.second();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) pointer& __end_cap() noexcept {return __end_cap_.first();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const pointer& __end_cap() const noexcept {return __end_cap_.first();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base() noexcept(is_nothrow_default_constructible<allocator_type>::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base(const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base(allocator_type&& __a) noexcept; ~__vector_base(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept {__destruct_at_end(__begin_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type capacity() const noexcept {return static_cast<size_type>(__end_cap() - __begin_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_end(pointer __new_last) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const __vector_base& __c) {__copy_assign_alloc(__c, integral_constant<bool, __alloc_traits::propagate_on_container_copy_assignment::value>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(__vector_base& __c) noexcept(!__alloc_traits::propagate_on_container_move_assignment::value || is_nothrow_move_assignable<allocator_type>::value) {__move_assign_alloc(__c, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());} private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const __vector_base& __c, true_type) { if (__alloc() != __c.__alloc()) { clear(); __alloc_traits::deallocate(__alloc(), __begin_, capacity()); __begin_ = __end_ = __end_cap() = nullptr; } __alloc() = __c.__alloc(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const __vector_base&, false_type) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(__vector_base& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value) { __alloc() = std::__1::move(__c.__alloc()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(__vector_base&, false_type) noexcept {} }; template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) noexcept { pointer __soon_to_be_end = __end_; while (__new_last != __soon_to_be_end) __alloc_traits::destroy(__alloc(), std::__1::__to_raw_pointer(--__soon_to_be_end)); __end_ = __new_last; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base<_Tp, _Allocator>::__vector_base() noexcept(is_nothrow_default_constructible<allocator_type>::value) : __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr) { } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base<_Tp, _Allocator>::__vector_base(const allocator_type& __a) : __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a) { } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __vector_base<_Tp, _Allocator>::__vector_base(allocator_type&& __a) noexcept : __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, std::move(__a)) {} template <class _Tp, class _Allocator> __vector_base<_Tp, _Allocator>::~__vector_base() { if (__begin_ != nullptr) { clear(); __alloc_traits::deallocate(__alloc(), __begin_, capacity()); } } template <class _Tp, class _Allocator > class __attribute__ ((__type_visibility__("default"))) vector : private __vector_base<_Tp, _Allocator> { private: typedef __vector_base<_Tp, _Allocator> __base; typedef allocator<_Tp> __default_allocator_type; public: typedef vector __self; typedef _Tp value_type; typedef _Allocator allocator_type; typedef typename __base::__alloc_traits __alloc_traits; typedef typename __base::reference reference; typedef typename __base::const_reference const_reference; typedef typename __base::size_type size_type; typedef typename __base::difference_type difference_type; typedef typename __base::pointer pointer; typedef typename __base::const_pointer const_pointer; typedef __wrap_iter<pointer> iterator; typedef __wrap_iter<const_pointer> const_iterator; typedef std::__1::reverse_iterator<iterator> reverse_iterator; typedef std::__1::reverse_iterator<const_iterator> const_reverse_iterator; static_assert((is_same<typename allocator_type::value_type, value_type>::value), "Allocator::value_type must be same type as value_type"); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector() noexcept(is_nothrow_default_constructible<allocator_type>::value) { } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit vector(const allocator_type& __a) noexcept : __base(__a) { } explicit vector(size_type __n); explicit vector(size_type __n, const allocator_type& __a); vector(size_type __n, const value_type& __x); vector(size_type __n, const value_type& __x, const allocator_type& __a); template <class _InputIterator> vector(_InputIterator __first, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, _InputIterator>::type __last); template <class _InputIterator> vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value>::type* = 0); template <class _ForwardIterator> vector(_ForwardIterator __first, typename enable_if<__is_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, _ForwardIterator>::type __last); template <class _ForwardIterator> vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, typename enable_if<__is_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value>::type* = 0); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) ~vector() { __annotate_delete(); } vector(const vector& __x); vector(const vector& __x, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector& operator=(const vector& __x); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector(initializer_list<value_type> __il); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector(initializer_list<value_type> __il, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector(vector&& __x) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector(vector&& __x, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector& operator=(vector&& __x) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector& operator=(initializer_list<value_type> __il) {assign(__il.begin(), __il.end()); return *this;} template <class _InputIterator> typename enable_if < __is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, void >::type assign(_InputIterator __first, _InputIterator __last); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, void >::type assign(_ForwardIterator __first, _ForwardIterator __last); void assign(size_type __n, const_reference __u); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator_type get_allocator() const noexcept {return this->__alloc();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator begin() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator begin() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator end() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator end() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rbegin() noexcept {return reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rbegin() const noexcept {return const_reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rend() noexcept {return reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rend() const noexcept {return const_reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cbegin() const noexcept {return begin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cend() const noexcept {return end();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crbegin() const noexcept {return rbegin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crend() const noexcept {return rend();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type size() const noexcept {return static_cast<size_type>(this->__end_ - this->__begin_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type capacity() const noexcept {return __base::capacity();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool empty() const noexcept {return this->__begin_ == this->__end_;} size_type max_size() const noexcept; void reserve(size_type __n); void shrink_to_fit() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator[](size_type __n) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference operator[](size_type __n) const noexcept; reference at(size_type __n); const_reference at(size_type __n) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference front() noexcept { ((void)0); return *this->__begin_; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference front() const noexcept { ((void)0); return *this->__begin_; } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference back() noexcept { ((void)0); return *(this->__end_ - 1); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference back() const noexcept { ((void)0); return *(this->__end_ - 1); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) value_type* data() noexcept {return std::__1::__to_raw_pointer(this->__begin_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const value_type* data() const noexcept {return std::__1::__to_raw_pointer(this->__begin_);} template <class _Arg> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __emplace_back(_Arg&& __arg) { emplace_back(std::__1::forward<_Arg>(__arg)); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void push_back(const_reference __x); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void push_back(value_type&& __x); template <class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference emplace_back(_Args&&... __args); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_back(); iterator insert(const_iterator __position, const_reference __x); iterator insert(const_iterator __position, value_type&& __x); template <class... _Args> iterator emplace(const_iterator __position, _Args&&... __args); iterator insert(const_iterator __position, size_type __n, const_reference __x); template <class _InputIterator> typename enable_if < __is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, iterator >::type insert(const_iterator __position, _InputIterator __first, _InputIterator __last); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, iterator >::type insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator insert(const_iterator __position, initializer_list<value_type> __il) {return insert(__position, __il.begin(), __il.end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator erase(const_iterator __position); iterator erase(const_iterator __first, const_iterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept { size_type __old_size = size(); __base::clear(); __annotate_shrink(__old_size); __invalidate_all_iterators(); } void resize(size_type __sz); void resize(size_type __sz, const_reference __x); void swap(vector&) noexcept; bool __invariants() const; # 799 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __invalidate_all_iterators(); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __invalidate_iterators_past(pointer __new_last); void __vallocate(size_type __n); void __vdeallocate() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __recommend(size_type __new_size) const; void __construct_at_end(size_type __n); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __construct_at_end(size_type __n, const_reference __x); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type __construct_at_end(_ForwardIterator __first, _ForwardIterator __last, size_type __n); void __append(size_type __n); void __append(size_type __n, const_reference __x); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator __make_iter(pointer __p) noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator __make_iter(const_pointer __p) const noexcept; void __swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v); pointer __swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v, pointer __p); void __move_range(pointer __from_s, pointer __from_e, pointer __to); void __move_assign(vector& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value); void __move_assign(vector& __c, false_type) noexcept(__alloc_traits::is_always_equal::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destruct_at_end(pointer __new_last) noexcept { __invalidate_iterators_past(__new_last); size_type __old_size = size(); __base::__destruct_at_end(__new_last); __annotate_shrink(__old_size); } template <class _Up> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline void __push_back_slow_path(_Up&& __x); template <class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) inline void __emplace_back_slow_path(_Args&&... __args); # 865 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __annotate_contiguous_container(const void*, const void*, const void*, const void*) const {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __annotate_new(size_type __current_size) const { __annotate_contiguous_container(data(), data() + capacity(), data() + capacity(), data() + __current_size); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __annotate_delete() const { __annotate_contiguous_container(data(), data() + capacity(), data() + size(), data() + capacity()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __annotate_increase(size_type __n) const { __annotate_contiguous_container(data(), data() + capacity(), data() + size(), data() + size() + __n); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __annotate_shrink(size_type __old_size) const { __annotate_contiguous_container(data(), data() + capacity(), data() + __old_size, data() + size()); } # 912 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 struct __RAII_IncreaseAnnotator { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __RAII_IncreaseAnnotator(const vector &, size_type = 1) {} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __done() {} }; }; template<class _InputIterator, class _Alloc = typename std::allocator<typename iterator_traits<_InputIterator>::value_type>, class = typename enable_if<__is_allocator<_Alloc>::value, void>::type > vector(_InputIterator, _InputIterator) -> vector<typename iterator_traits<_InputIterator>::value_type, _Alloc>; template<class _InputIterator, class _Alloc, class = typename enable_if<__is_allocator<_Alloc>::value, void>::type > vector(_InputIterator, _InputIterator, _Alloc) -> vector<typename iterator_traits<_InputIterator>::value_type, _Alloc>; template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v) { __annotate_delete(); __alloc_traits::__construct_backward(this->__alloc(), this->__begin_, this->__end_, __v.__begin_); std::__1::swap(this->__begin_, __v.__begin_); std::__1::swap(this->__end_, __v.__end_); std::__1::swap(this->__end_cap(), __v.__end_cap()); __v.__first_ = __v.__begin_; __annotate_new(size()); __invalidate_all_iterators(); } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::pointer vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v, pointer __p) { __annotate_delete(); pointer __r = __v.__begin_; __alloc_traits::__construct_backward(this->__alloc(), this->__begin_, __p, __v.__begin_); __alloc_traits::__construct_forward(this->__alloc(), __p, this->__end_, __v.__end_); std::__1::swap(this->__begin_, __v.__begin_); std::__1::swap(this->__end_, __v.__end_); std::__1::swap(this->__end_cap(), __v.__end_cap()); __v.__first_ = __v.__begin_; __annotate_new(size()); __invalidate_all_iterators(); return __r; } # 975 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__vallocate(size_type __n) { if (__n > max_size()) this->__throw_length_error(); this->__begin_ = this->__end_ = __alloc_traits::allocate(this->__alloc(), __n); this->__end_cap() = this->__begin_ + __n; __annotate_new(0); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__vdeallocate() noexcept { if (this->__begin_ != nullptr) { clear(); __alloc_traits::deallocate(this->__alloc(), this->__begin_, capacity()); this->__begin_ = this->__end_ = this->__end_cap() = nullptr; } } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::size_type vector<_Tp, _Allocator>::max_size() const noexcept { return std::__1::min<size_type>(__alloc_traits::max_size(this->__alloc()), numeric_limits<difference_type>::max()); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::size_type vector<_Tp, _Allocator>::__recommend(size_type __new_size) const { const size_type __ms = max_size(); if (__new_size > __ms) this->__throw_length_error(); const size_type __cap = capacity(); if (__cap >= __ms / 2) return __ms; return std::__1::max<size_type>(2*__cap, __new_size); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__construct_at_end(size_type __n) { allocator_type& __a = this->__alloc(); do { __RAII_IncreaseAnnotator __annotator(*this); __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_)); ++this->__end_; --__n; __annotator.__done(); } while (__n > 0); } template <class _Tp, class _Allocator> inline void vector<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x) { allocator_type& __a = this->__alloc(); do { __RAII_IncreaseAnnotator __annotator(*this); __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_), __x); ++this->__end_; --__n; __annotator.__done(); } while (__n > 0); } template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type vector<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last, size_type __n) { allocator_type& __a = this->__alloc(); __RAII_IncreaseAnnotator __annotator(*this, __n); __alloc_traits::__construct_range_forward(__a, __first, __last, this->__end_); __annotator.__done(); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__append(size_type __n) { if (static_cast<size_type>(this->__end_cap() - this->__end_) >= __n) this->__construct_at_end(__n); else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), size(), __a); __v.__construct_at_end(__n); __swap_out_circular_buffer(__v); } } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__append(size_type __n, const_reference __x) { if (static_cast<size_type>(this->__end_cap() - this->__end_) >= __n) this->__construct_at_end(__n, __x); else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), size(), __a); __v.__construct_at_end(__n, __x); __swap_out_circular_buffer(__v); } } template <class _Tp, class _Allocator> vector<_Tp, _Allocator>::vector(size_type __n) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n); } } template <class _Tp, class _Allocator> vector<_Tp, _Allocator>::vector(size_type __n, const allocator_type& __a) : __base(__a) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n); } } template <class _Tp, class _Allocator> vector<_Tp, _Allocator>::vector(size_type __n, const value_type& __x) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n, __x); } } template <class _Tp, class _Allocator> vector<_Tp, _Allocator>::vector(size_type __n, const value_type& __x, const allocator_type& __a) : __base(__a) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n, __x); } } template <class _Tp, class _Allocator> template <class _InputIterator> vector<_Tp, _Allocator>::vector(_InputIterator __first, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value, _InputIterator>::type __last) { for (; __first != __last; ++__first) __emplace_back(*__first); } template <class _Tp, class _Allocator> template <class _InputIterator> vector<_Tp, _Allocator>::vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< value_type, typename iterator_traits<_InputIterator>::reference>::value>::type*) : __base(__a) { for (; __first != __last; ++__first) __emplace_back(*__first); } template <class _Tp, class _Allocator> template <class _ForwardIterator> vector<_Tp, _Allocator>::vector(_ForwardIterator __first, typename enable_if<__is_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value, _ForwardIterator>::type __last) { size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); if (__n > 0) { __vallocate(__n); __construct_at_end(__first, __last, __n); } } template <class _Tp, class _Allocator> template <class _ForwardIterator> vector<_Tp, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, typename enable_if<__is_forward_iterator<_ForwardIterator>::value && is_constructible< value_type, typename iterator_traits<_ForwardIterator>::reference>::value>::type*) : __base(__a) { size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); if (__n > 0) { __vallocate(__n); __construct_at_end(__first, __last, __n); } } template <class _Tp, class _Allocator> vector<_Tp, _Allocator>::vector(const vector& __x) : __base(__alloc_traits::select_on_container_copy_construction(__x.__alloc())) { size_type __n = __x.size(); if (__n > 0) { __vallocate(__n); __construct_at_end(__x.__begin_, __x.__end_, __n); } } template <class _Tp, class _Allocator> vector<_Tp, _Allocator>::vector(const vector& __x, const allocator_type& __a) : __base(__a) { size_type __n = __x.size(); if (__n > 0) { __vallocate(__n); __construct_at_end(__x.__begin_, __x.__end_, __n); } } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<_Tp, _Allocator>::vector(vector&& __x) noexcept : __base(std::__1::move(__x.__alloc())) { this->__begin_ = __x.__begin_; this->__end_ = __x.__end_; this->__end_cap() = __x.__end_cap(); __x.__begin_ = __x.__end_ = __x.__end_cap() = nullptr; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<_Tp, _Allocator>::vector(vector&& __x, const allocator_type& __a) : __base(__a) { if (__a == __x.__alloc()) { this->__begin_ = __x.__begin_; this->__end_ = __x.__end_; this->__end_cap() = __x.__end_cap(); __x.__begin_ = __x.__end_ = __x.__end_cap() = nullptr; } else { typedef move_iterator<iterator> _Ip; assign(_Ip(__x.begin()), _Ip(__x.end())); } } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il) { if (__il.size() > 0) { __vallocate(__il.size()); __construct_at_end(__il.begin(), __il.end(), __il.size()); } } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il, const allocator_type& __a) : __base(__a) { if (__il.size() > 0) { __vallocate(__il.size()); __construct_at_end(__il.begin(), __il.end(), __il.size()); } } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<_Tp, _Allocator>& vector<_Tp, _Allocator>::operator=(vector&& __x) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) { __move_assign(__x, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>()); return *this; } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__move_assign(vector& __c, false_type) noexcept(__alloc_traits::is_always_equal::value) { if (__base::__alloc() != __c.__alloc()) { typedef move_iterator<iterator> _Ip; assign(_Ip(__c.begin()), _Ip(__c.end())); } else __move_assign(__c, true_type()); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__move_assign(vector& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value) { __vdeallocate(); __base::__move_assign_alloc(__c); this->__begin_ = __c.__begin_; this->__end_ = __c.__end_; this->__end_cap() = __c.__end_cap(); __c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<_Tp, _Allocator>& vector<_Tp, _Allocator>::operator=(const vector& __x) { if (this != &__x) { __base::__copy_assign_alloc(__x); assign(__x.__begin_, __x.__end_); } return *this; } template <class _Tp, class _Allocator> template <class _InputIterator> typename enable_if < __is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< _Tp, typename iterator_traits<_InputIterator>::reference>::value, void >::type vector<_Tp, _Allocator>::assign(_InputIterator __first, _InputIterator __last) { clear(); for (; __first != __last; ++__first) __emplace_back(*__first); } template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value && is_constructible< _Tp, typename iterator_traits<_ForwardIterator>::reference>::value, void >::type vector<_Tp, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last) { size_type __new_size = static_cast<size_type>(std::__1::distance(__first, __last)); if (__new_size <= capacity()) { _ForwardIterator __mid = __last; bool __growing = false; if (__new_size > size()) { __growing = true; __mid = __first; std::__1::advance(__mid, size()); } pointer __m = std::__1::copy(__first, __mid, this->__begin_); if (__growing) __construct_at_end(__mid, __last, __new_size - size()); else this->__destruct_at_end(__m); } else { __vdeallocate(); __vallocate(__recommend(__new_size)); __construct_at_end(__first, __last, __new_size); } __invalidate_all_iterators(); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::assign(size_type __n, const_reference __u) { if (__n <= capacity()) { size_type __s = size(); std::__1::fill_n(this->__begin_, std::__1::min(__n, __s), __u); if (__n > __s) __construct_at_end(__n - __s, __u); else this->__destruct_at_end(this->__begin_ + __n); } else { __vdeallocate(); __vallocate(__recommend(static_cast<size_type>(__n))); __construct_at_end(__n, __u); } __invalidate_all_iterators(); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::__make_iter(pointer __p) noexcept { return iterator(__p); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::const_iterator vector<_Tp, _Allocator>::__make_iter(const_pointer __p) const noexcept { return const_iterator(__p); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::begin() noexcept { return __make_iter(this->__begin_); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::const_iterator vector<_Tp, _Allocator>::begin() const noexcept { return __make_iter(this->__begin_); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::end() noexcept { return __make_iter(this->__end_); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::const_iterator vector<_Tp, _Allocator>::end() const noexcept { return __make_iter(this->__end_); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::reference vector<_Tp, _Allocator>::operator[](size_type __n) noexcept { ((void)0); return this->__begin_[__n]; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::const_reference vector<_Tp, _Allocator>::operator[](size_type __n) const noexcept { ((void)0); return this->__begin_[__n]; } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::reference vector<_Tp, _Allocator>::at(size_type __n) { if (__n >= size()) this->__throw_out_of_range(); return this->__begin_[__n]; } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::const_reference vector<_Tp, _Allocator>::at(size_type __n) const { if (__n >= size()) this->__throw_out_of_range(); return this->__begin_[__n]; } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::reserve(size_type __n) { if (__n > capacity()) { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__n, size(), __a); __swap_out_circular_buffer(__v); } } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::shrink_to_fit() noexcept { if (capacity() > size()) { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(size(), size(), __a); __swap_out_circular_buffer(__v); } } template <class _Tp, class _Allocator> template <class _Up> void vector<_Tp, _Allocator>::__push_back_slow_path(_Up&& __x) { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), __a); __alloc_traits::construct(__a, std::__1::__to_raw_pointer(__v.__end_), std::__1::forward<_Up>(__x)); __v.__end_++; __swap_out_circular_buffer(__v); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void vector<_Tp, _Allocator>::push_back(const_reference __x) { if (this->__end_ != this->__end_cap()) { __RAII_IncreaseAnnotator __annotator(*this); __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), __x); __annotator.__done(); ++this->__end_; } else __push_back_slow_path(__x); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void vector<_Tp, _Allocator>::push_back(value_type&& __x) { if (this->__end_ < this->__end_cap()) { __RAII_IncreaseAnnotator __annotator(*this); __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), std::__1::move(__x)); __annotator.__done(); ++this->__end_; } else __push_back_slow_path(std::__1::move(__x)); } template <class _Tp, class _Allocator> template <class... _Args> void vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args) { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), __a); __alloc_traits::construct(__a, std::__1::__to_raw_pointer(__v.__end_), std::__1::forward<_Args>(__args)...); __v.__end_++; __swap_out_circular_buffer(__v); } template <class _Tp, class _Allocator> template <class... _Args> inline typename vector<_Tp, _Allocator>::reference vector<_Tp, _Allocator>::emplace_back(_Args&&... __args) { if (this->__end_ < this->__end_cap()) { __RAII_IncreaseAnnotator __annotator(*this); __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), std::__1::forward<_Args>(__args)...); __annotator.__done(); ++this->__end_; } else __emplace_back_slow_path(std::__1::forward<_Args>(__args)...); return this->back(); } template <class _Tp, class _Allocator> inline void vector<_Tp, _Allocator>::pop_back() { ((void)0); this->__destruct_at_end(this->__end_ - 1); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::erase(const_iterator __position) { ((void)0); difference_type __ps = __position - cbegin(); pointer __p = this->__begin_ + __ps; this->__destruct_at_end(std::__1::move(__p + 1, this->__end_, __p)); this->__invalidate_iterators_past(__p-1); iterator __r = __make_iter(__p); return __r; } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::erase(const_iterator __first, const_iterator __last) { # 1748 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 ((void)0); pointer __p = this->__begin_ + (__first - begin()); if (__first != __last) { this->__destruct_at_end(std::__1::move(__p + (__last - __first), this->__end_, __p)); this->__invalidate_iterators_past(__p - 1); } iterator __r = __make_iter(__p); return __r; } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::__move_range(pointer __from_s, pointer __from_e, pointer __to) { pointer __old_last = this->__end_; difference_type __n = __old_last - __to; for (pointer __i = __from_s + __n; __i < __from_e; ++__i, ++this->__end_) __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), std::__1::move(*__i)); std::__1::move_backward(__from_s, __from_s + __n, __old_last); } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::insert(const_iterator __position, const_reference __x) { pointer __p = this->__begin_ + (__position - begin()); if (this->__end_ < this->__end_cap()) { __RAII_IncreaseAnnotator __annotator(*this); if (__p == this->__end_) { __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), __x); ++this->__end_; } else { __move_range(__p, this->__end_, __p + 1); const_pointer __xr = pointer_traits<const_pointer>::pointer_to(__x); if (__p <= __xr && __xr < this->__end_) ++__xr; *__p = *__xr; } __annotator.__done(); } else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, __a); __v.push_back(__x); __p = __swap_out_circular_buffer(__v, __p); } return __make_iter(__p); } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::insert(const_iterator __position, value_type&& __x) { pointer __p = this->__begin_ + (__position - begin()); if (this->__end_ < this->__end_cap()) { __RAII_IncreaseAnnotator __annotator(*this); if (__p == this->__end_) { __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), std::__1::move(__x)); ++this->__end_; } else { __move_range(__p, this->__end_, __p + 1); *__p = std::__1::move(__x); } __annotator.__done(); } else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, __a); __v.push_back(std::__1::move(__x)); __p = __swap_out_circular_buffer(__v, __p); } return __make_iter(__p); } template <class _Tp, class _Allocator> template <class... _Args> typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::emplace(const_iterator __position, _Args&&... __args) { pointer __p = this->__begin_ + (__position - begin()); if (this->__end_ < this->__end_cap()) { __RAII_IncreaseAnnotator __annotator(*this); if (__p == this->__end_) { __alloc_traits::construct(this->__alloc(), std::__1::__to_raw_pointer(this->__end_), std::__1::forward<_Args>(__args)...); ++this->__end_; } else { __temp_value<value_type, _Allocator> __tmp(this->__alloc(), std::__1::forward<_Args>(__args)...); __move_range(__p, this->__end_, __p + 1); *__p = std::__1::move(__tmp.get()); } __annotator.__done(); } else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, __a); __v.emplace_back(std::__1::forward<_Args>(__args)...); __p = __swap_out_circular_buffer(__v, __p); } return __make_iter(__p); } template <class _Tp, class _Allocator> typename vector<_Tp, _Allocator>::iterator vector<_Tp, _Allocator>::insert(const_iterator __position, size_type __n, const_reference __x) { pointer __p = this->__begin_ + (__position - begin()); if (__n > 0) { if (__n <= static_cast<size_type>(this->__end_cap() - this->__end_)) { size_type __old_n = __n; pointer __old_last = this->__end_; if (__n > static_cast<size_type>(this->__end_ - __p)) { size_type __cx = __n - (this->__end_ - __p); __construct_at_end(__cx, __x); __n -= __cx; } if (__n > 0) { __RAII_IncreaseAnnotator __annotator(*this, __n); __move_range(__p, __old_last, __p + __old_n); __annotator.__done(); const_pointer __xr = pointer_traits<const_pointer>::pointer_to(__x); if (__p <= __xr && __xr < this->__end_) __xr += __old_n; std::__1::fill_n(__p, __n, *__xr); } } else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), __p - this->__begin_, __a); __v.__construct_at_end(__n, __x); __p = __swap_out_circular_buffer(__v, __p); } } return __make_iter(__p); } template <class _Tp, class _Allocator> template <class _InputIterator> typename enable_if < __is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value && is_constructible< _Tp, typename iterator_traits<_InputIterator>::reference>::value, typename vector<_Tp, _Allocator>::iterator >::type vector<_Tp, _Allocator>::insert(const_iterator __position, _InputIterator __first, _InputIterator __last) { difference_type __off = __position - begin(); pointer __p = this->__begin_ + __off; allocator_type& __a = this->__alloc(); pointer __old_last = this->__end_; for (; this->__end_ != this->__end_cap() && __first != __last; ++__first) { __RAII_IncreaseAnnotator __annotator(*this); __alloc_traits::construct(__a, std::__1::__to_raw_pointer(this->__end_), *__first); ++this->__end_; __annotator.__done(); } __split_buffer<value_type, allocator_type&> __v(__a); if (__first != __last) { __v.__construct_at_end(__first, __last); difference_type __old_size = __old_last - this->__begin_; difference_type __old_p = __p - this->__begin_; reserve(__recommend(size() + __v.size())); __p = this->__begin_ + __old_p; __old_last = this->__begin_ + __old_size; # 1985 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 } __p = std::__1::rotate(__p, __old_last, this->__end_); insert(__make_iter(__p), make_move_iterator(__v.begin()), make_move_iterator(__v.end())); return begin() + __off; } template <class _Tp, class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value && is_constructible< _Tp, typename iterator_traits<_ForwardIterator>::reference>::value, typename vector<_Tp, _Allocator>::iterator >::type vector<_Tp, _Allocator>::insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last) { pointer __p = this->__begin_ + (__position - begin()); difference_type __n = std::__1::distance(__first, __last); if (__n > 0) { if (__n <= this->__end_cap() - this->__end_) { size_type __old_n = __n; pointer __old_last = this->__end_; _ForwardIterator __m = __last; difference_type __dx = this->__end_ - __p; if (__n > __dx) { __m = __first; difference_type __diff = this->__end_ - __p; std::__1::advance(__m, __diff); __construct_at_end(__m, __last, __n - __diff); __n = __dx; } if (__n > 0) { __RAII_IncreaseAnnotator __annotator(*this, __n); __move_range(__p, __old_last, __p + __old_n); __annotator.__done(); std::__1::copy(__first, __m, __p); } } else { allocator_type& __a = this->__alloc(); __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), __p - this->__begin_, __a); __v.__construct_at_end(__first, __last); __p = __swap_out_circular_buffer(__v, __p); } } return __make_iter(__p); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::resize(size_type __sz) { size_type __cs = size(); if (__cs < __sz) this->__append(__sz - __cs); else if (__cs > __sz) this->__destruct_at_end(this->__begin_ + __sz); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::resize(size_type __sz, const_reference __x) { size_type __cs = size(); if (__cs < __sz) this->__append(__sz - __cs, __x); else if (__cs > __sz) this->__destruct_at_end(this->__begin_ + __sz); } template <class _Tp, class _Allocator> void vector<_Tp, _Allocator>::swap(vector& __x) noexcept { ((void)0); std::__1::swap(this->__begin_, __x.__begin_); std::__1::swap(this->__end_, __x.__end_); std::__1::swap(this->__end_cap(), __x.__end_cap()); __swap_allocator(this->__alloc(), __x.__alloc(), integral_constant<bool,__alloc_traits::propagate_on_container_swap::value>()); } template <class _Tp, class _Allocator> bool vector<_Tp, _Allocator>::__invariants() const { if (this->__begin_ == nullptr) { if (this->__end_ != nullptr || this->__end_cap() != nullptr) return false; } else { if (this->__begin_ > this->__end_) return false; if (this->__begin_ == this->__end_cap()) return false; if (this->__end_ > this->__end_cap()) return false; } return true; } # 2147 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void vector<_Tp, _Allocator>::__invalidate_all_iterators() { } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void vector<_Tp, _Allocator>::__invalidate_iterators_past(pointer __new_last) { # 2175 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 ((void)__new_last); } template <class _Allocator> class vector<bool, _Allocator>; template <class _Allocator> struct hash<vector<bool, _Allocator> >; template <class _Allocator> struct __has_storage_type<vector<bool, _Allocator> > { static const bool value = true; }; template <class _Allocator> class __attribute__ ((__type_visibility__("default"))) vector<bool, _Allocator> : private __vector_base_common<true> { public: typedef vector __self; typedef bool value_type; typedef _Allocator allocator_type; typedef allocator_traits<allocator_type> __alloc_traits; typedef typename __alloc_traits::size_type size_type; typedef typename __alloc_traits::difference_type difference_type; typedef size_type __storage_type; typedef __bit_iterator<vector, false> pointer; typedef __bit_iterator<vector, true> const_pointer; typedef pointer iterator; typedef const_pointer const_iterator; typedef std::__1::reverse_iterator<iterator> reverse_iterator; typedef std::__1::reverse_iterator<const_iterator> const_reverse_iterator; private: typedef typename __rebind_alloc_helper<__alloc_traits, __storage_type>::type __storage_allocator; typedef allocator_traits<__storage_allocator> __storage_traits; typedef typename __storage_traits::pointer __storage_pointer; typedef typename __storage_traits::const_pointer __const_storage_pointer; __storage_pointer __begin_; size_type __size_; __compressed_pair<size_type, __storage_allocator> __cap_alloc_; public: typedef __bit_reference<vector> reference; typedef __bit_const_reference<vector> const_reference; private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type& __cap() noexcept {return __cap_alloc_.first();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const size_type& __cap() const noexcept {return __cap_alloc_.first();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) __storage_allocator& __alloc() noexcept {return __cap_alloc_.second();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const __storage_allocator& __alloc() const noexcept {return __cap_alloc_.second();} static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * 8); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static size_type __internal_cap_to_external(size_type __n) noexcept {return __n * __bits_per_word;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static size_type __external_cap_to_internal(size_type __n) noexcept {return (__n - 1) / __bits_per_word + 1;} public: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector() noexcept(is_nothrow_default_constructible<allocator_type>::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit vector(const allocator_type& __a) noexcept; ~vector(); explicit vector(size_type __n); explicit vector(size_type __n, const allocator_type& __a); vector(size_type __n, const value_type& __v); vector(size_type __n, const value_type& __v, const allocator_type& __a); template <class _InputIterator> vector(_InputIterator __first, _InputIterator __last, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value>::type* = 0); template <class _InputIterator> vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value>::type* = 0); template <class _ForwardIterator> vector(_ForwardIterator __first, _ForwardIterator __last, typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type* = 0); template <class _ForwardIterator> vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type* = 0); vector(const vector& __v); vector(const vector& __v, const allocator_type& __a); vector& operator=(const vector& __v); vector(initializer_list<value_type> __il); vector(initializer_list<value_type> __il, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector(vector&& __v) noexcept; vector(vector&& __v, const allocator_type& __a); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector& operator=(vector&& __v) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector& operator=(initializer_list<value_type> __il) {assign(__il.begin(), __il.end()); return *this;} template <class _InputIterator> typename enable_if < __is_input_iterator<_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value, void >::type assign(_InputIterator __first, _InputIterator __last); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type assign(_ForwardIterator __first, _ForwardIterator __last); void assign(size_type __n, const value_type& __x); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) allocator_type get_allocator() const noexcept {return allocator_type(this->__alloc());} size_type max_size() const noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type capacity() const noexcept {return __internal_cap_to_external(__cap());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type size() const noexcept {return __size_;} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool empty() const noexcept {return __size_ == 0;} void reserve(size_type __n); void shrink_to_fit() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator begin() noexcept {return __make_iter(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator begin() const noexcept {return __make_iter(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator end() noexcept {return __make_iter(__size_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator end() const noexcept {return __make_iter(__size_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rbegin() noexcept {return reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rbegin() const noexcept {return const_reverse_iterator(end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reverse_iterator rend() noexcept {return reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator rend() const noexcept {return const_reverse_iterator(begin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cbegin() const noexcept {return __make_iter(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator cend() const noexcept {return __make_iter(__size_);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crbegin() const noexcept {return rbegin();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reverse_iterator crend() const noexcept {return rend();} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference operator[](size_type __n) {return __make_ref(__n);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference operator[](size_type __n) const {return __make_ref(__n);} reference at(size_type __n); const_reference at(size_type __n) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference front() {return __make_ref(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference front() const {return __make_ref(0);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference back() {return __make_ref(__size_ - 1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference back() const {return __make_ref(__size_ - 1);} void push_back(const value_type& __x); template <class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference emplace_back(_Args&&... __args) { push_back ( value_type ( std::__1::forward<_Args>(__args)... )); return this->back(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void pop_back() {--__size_;} template <class... _Args> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator emplace(const_iterator position, _Args&&... __args) { return insert ( position, value_type ( std::__1::forward<_Args>(__args)... )); } iterator insert(const_iterator __position, const value_type& __x); iterator insert(const_iterator __position, size_type __n, const value_type& __x); iterator insert(const_iterator __position, size_type __n, const_reference __x); template <class _InputIterator> typename enable_if < __is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value, iterator >::type insert(const_iterator __position, _InputIterator __first, _InputIterator __last); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, iterator >::type insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator insert(const_iterator __position, initializer_list<value_type> __il) {return insert(__position, __il.begin(), __il.end());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator erase(const_iterator __position); iterator erase(const_iterator __first, const_iterator __last); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void clear() noexcept {__size_ = 0;} void swap(vector&) noexcept; static void swap(reference __x, reference __y) noexcept { std::__1::swap(__x, __y); } void resize(size_type __sz, value_type __x = false); void flip() noexcept; bool __invariants() const; private: __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __invalidate_all_iterators(); void __vallocate(size_type __n); void __vdeallocate() noexcept; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static size_type __align_it(size_type __new_size) noexcept {return __new_size + (__bits_per_word-1) & ~((size_type)__bits_per_word-1);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_type __recommend(size_type __new_size) const; __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __construct_at_end(size_type __n, bool __x); template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type __construct_at_end(_ForwardIterator __first, _ForwardIterator __last); void __append(size_type __n, const_reference __x); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) reference __make_ref(size_type __pos) noexcept {return reference(__begin_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_reference __make_ref(size_type __pos) const noexcept {return const_reference(__begin_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator __make_iter(size_type __pos) noexcept {return iterator(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) const_iterator __make_iter(size_type __pos) const noexcept {return const_iterator(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word));} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) iterator __const_iterator_cast(const_iterator __p) noexcept {return begin() + (__p - cbegin());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const vector& __v) {__copy_assign_alloc(__v, integral_constant<bool, __storage_traits::propagate_on_container_copy_assignment::value>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const vector& __c, true_type) { if (__alloc() != __c.__alloc()) __vdeallocate(); __alloc() = __c.__alloc(); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __copy_assign_alloc(const vector&, false_type) {} void __move_assign(vector& __c, false_type); void __move_assign(vector& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value); __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(vector& __c) noexcept(!__storage_traits::propagate_on_container_move_assignment::value || is_nothrow_move_assignable<allocator_type>::value) {__move_assign_alloc(__c, integral_constant<bool, __storage_traits::propagate_on_container_move_assignment::value>());} __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(vector& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value) { __alloc() = std::__1::move(__c.__alloc()); } __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __move_assign_alloc(vector&, false_type) noexcept {} size_t __hash_code() const noexcept; friend class __bit_reference<vector>; friend class __bit_const_reference<vector>; friend class __bit_iterator<vector, false>; friend class __bit_iterator<vector, true>; friend struct __bit_array<vector>; friend struct __attribute__ ((__type_visibility__("default"))) hash<vector>; }; template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void vector<bool, _Allocator>::__invalidate_all_iterators() { } # 2556 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 template <class _Allocator> void vector<bool, _Allocator>::__vallocate(size_type __n) { if (__n > max_size()) this->__throw_length_error(); __n = __external_cap_to_internal(__n); this->__begin_ = __storage_traits::allocate(this->__alloc(), __n); this->__size_ = 0; this->__cap() = __n; } template <class _Allocator> void vector<bool, _Allocator>::__vdeallocate() noexcept { if (this->__begin_ != nullptr) { __storage_traits::deallocate(this->__alloc(), this->__begin_, __cap()); __invalidate_all_iterators(); this->__begin_ = nullptr; this->__size_ = this->__cap() = 0; } } template <class _Allocator> typename vector<bool, _Allocator>::size_type vector<bool, _Allocator>::max_size() const noexcept { size_type __amax = __storage_traits::max_size(__alloc()); size_type __nmax = numeric_limits<size_type>::max() / 2; if (__nmax / __bits_per_word <= __amax) return __nmax; return __internal_cap_to_external(__amax); } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<bool, _Allocator>::size_type vector<bool, _Allocator>::__recommend(size_type __new_size) const { const size_type __ms = max_size(); if (__new_size > __ms) this->__throw_length_error(); const size_type __cap = capacity(); if (__cap >= __ms / 2) return __ms; return std::__1::max(2*__cap, __align_it(__new_size)); } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void vector<bool, _Allocator>::__construct_at_end(size_type __n, bool __x) { size_type __old_size = this->__size_; this->__size_ += __n; if (__old_size == 0 || ((__old_size - 1) / __bits_per_word) != ((this->__size_ - 1) / __bits_per_word)) { if (this->__size_ <= __bits_per_word) this->__begin_[0] = __storage_type(0); else this->__begin_[(this->__size_ - 1) / __bits_per_word] = __storage_type(0); } std::__1::fill_n(__make_iter(__old_size), __n, __x); } template <class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type vector<bool, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last) { size_type __old_size = this->__size_; this->__size_ += std::__1::distance(__first, __last); if (__old_size == 0 || ((__old_size - 1) / __bits_per_word) != ((this->__size_ - 1) / __bits_per_word)) { if (this->__size_ <= __bits_per_word) this->__begin_[0] = __storage_type(0); else this->__begin_[(this->__size_ - 1) / __bits_per_word] = __storage_type(0); } std::__1::copy(__first, __last, __make_iter(__old_size)); } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<bool, _Allocator>::vector() noexcept(is_nothrow_default_constructible<allocator_type>::value) : __begin_(nullptr), __size_(0), __cap_alloc_(0) { } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<bool, _Allocator>::vector(const allocator_type& __a) noexcept : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) { } template <class _Allocator> vector<bool, _Allocator>::vector(size_type __n) : __begin_(nullptr), __size_(0), __cap_alloc_(0) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n, false); } } template <class _Allocator> vector<bool, _Allocator>::vector(size_type __n, const allocator_type& __a) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n, false); } } template <class _Allocator> vector<bool, _Allocator>::vector(size_type __n, const value_type& __x) : __begin_(nullptr), __size_(0), __cap_alloc_(0) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n, __x); } } template <class _Allocator> vector<bool, _Allocator>::vector(size_type __n, const value_type& __x, const allocator_type& __a) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) { if (__n > 0) { __vallocate(__n); __construct_at_end(__n, __x); } } template <class _Allocator> template <class _InputIterator> vector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0) { for (; __first != __last; ++__first) push_back(*__first); # 2752 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 } template <class _Allocator> template <class _InputIterator> vector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a, typename enable_if<__is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) { for (; __first != __last; ++__first) push_back(*__first); # 2779 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 } template <class _Allocator> template <class _ForwardIterator> vector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0) { size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); if (__n > 0) { __vallocate(__n); __construct_at_end(__first, __last); } } template <class _Allocator> template <class _ForwardIterator> vector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a, typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type*) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) { size_type __n = static_cast<size_type>(std::__1::distance(__first, __last)); if (__n > 0) { __vallocate(__n); __construct_at_end(__first, __last); } } template <class _Allocator> vector<bool, _Allocator>::vector(initializer_list<value_type> __il) : __begin_(nullptr), __size_(0), __cap_alloc_(0) { size_type __n = static_cast<size_type>(__il.size()); if (__n > 0) { __vallocate(__n); __construct_at_end(__il.begin(), __il.end()); } } template <class _Allocator> vector<bool, _Allocator>::vector(initializer_list<value_type> __il, const allocator_type& __a) : __begin_(nullptr), __size_(0), __cap_alloc_(0, static_cast<__storage_allocator>(__a)) { size_type __n = static_cast<size_type>(__il.size()); if (__n > 0) { __vallocate(__n); __construct_at_end(__il.begin(), __il.end()); } } template <class _Allocator> vector<bool, _Allocator>::~vector() { if (__begin_ != nullptr) __storage_traits::deallocate(__alloc(), __begin_, __cap()); __invalidate_all_iterators(); } template <class _Allocator> vector<bool, _Allocator>::vector(const vector& __v) : __begin_(nullptr), __size_(0), __cap_alloc_(0, __storage_traits::select_on_container_copy_construction(__v.__alloc())) { if (__v.size() > 0) { __vallocate(__v.size()); __construct_at_end(__v.begin(), __v.end()); } } template <class _Allocator> vector<bool, _Allocator>::vector(const vector& __v, const allocator_type& __a) : __begin_(nullptr), __size_(0), __cap_alloc_(0, __a) { if (__v.size() > 0) { __vallocate(__v.size()); __construct_at_end(__v.begin(), __v.end()); } } template <class _Allocator> vector<bool, _Allocator>& vector<bool, _Allocator>::operator=(const vector& __v) { if (this != &__v) { __copy_assign_alloc(__v); if (__v.__size_) { if (__v.__size_ > capacity()) { __vdeallocate(); __vallocate(__v.__size_); } std::__1::copy(__v.__begin_, __v.__begin_ + __external_cap_to_internal(__v.__size_), __begin_); } __size_ = __v.__size_; } return *this; } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<bool, _Allocator>::vector(vector&& __v) noexcept : __begin_(__v.__begin_), __size_(__v.__size_), __cap_alloc_(std::move(__v.__cap_alloc_)) { __v.__begin_ = nullptr; __v.__size_ = 0; __v.__cap() = 0; } template <class _Allocator> vector<bool, _Allocator>::vector(vector&& __v, const allocator_type& __a) : __begin_(nullptr), __size_(0), __cap_alloc_(0, __a) { if (__a == allocator_type(__v.__alloc())) { this->__begin_ = __v.__begin_; this->__size_ = __v.__size_; this->__cap() = __v.__cap(); __v.__begin_ = nullptr; __v.__cap() = __v.__size_ = 0; } else if (__v.size() > 0) { __vallocate(__v.size()); __construct_at_end(__v.begin(), __v.end()); } } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) vector<bool, _Allocator>& vector<bool, _Allocator>::operator=(vector&& __v) noexcept((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value)) { __move_assign(__v, integral_constant<bool, __storage_traits::propagate_on_container_move_assignment::value>()); return *this; } template <class _Allocator> void vector<bool, _Allocator>::__move_assign(vector& __c, false_type) { if (__alloc() != __c.__alloc()) assign(__c.begin(), __c.end()); else __move_assign(__c, true_type()); } template <class _Allocator> void vector<bool, _Allocator>::__move_assign(vector& __c, true_type) noexcept(is_nothrow_move_assignable<allocator_type>::value) { __vdeallocate(); __move_assign_alloc(__c); this->__begin_ = __c.__begin_; this->__size_ = __c.__size_; this->__cap() = __c.__cap(); __c.__begin_ = nullptr; __c.__cap() = __c.__size_ = 0; } template <class _Allocator> void vector<bool, _Allocator>::assign(size_type __n, const value_type& __x) { __size_ = 0; if (__n > 0) { size_type __c = capacity(); if (__n <= __c) __size_ = __n; else { vector __v(__alloc()); __v.reserve(__recommend(__n)); __v.__size_ = __n; swap(__v); } std::__1::fill_n(begin(), __n, __x); } __invalidate_all_iterators(); } template <class _Allocator> template <class _InputIterator> typename enable_if < __is_input_iterator<_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value, void >::type vector<bool, _Allocator>::assign(_InputIterator __first, _InputIterator __last) { clear(); for (; __first != __last; ++__first) push_back(*__first); } template <class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, void >::type vector<bool, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last) { clear(); difference_type __ns = std::__1::distance(__first, __last); ((void)0); const size_t __n = static_cast<size_type>(__ns); if (__n) { if (__n > capacity()) { __vdeallocate(); __vallocate(__n); } __construct_at_end(__first, __last); } } template <class _Allocator> void vector<bool, _Allocator>::reserve(size_type __n) { if (__n > capacity()) { vector __v(this->__alloc()); __v.__vallocate(__n); __v.__construct_at_end(this->begin(), this->end()); swap(__v); __invalidate_all_iterators(); } } template <class _Allocator> void vector<bool, _Allocator>::shrink_to_fit() noexcept { if (__external_cap_to_internal(size()) > __cap()) { vector(*this, allocator_type(__alloc())).swap(*this); } } template <class _Allocator> typename vector<bool, _Allocator>::reference vector<bool, _Allocator>::at(size_type __n) { if (__n >= size()) this->__throw_out_of_range(); return (*this)[__n]; } template <class _Allocator> typename vector<bool, _Allocator>::const_reference vector<bool, _Allocator>::at(size_type __n) const { if (__n >= size()) this->__throw_out_of_range(); return (*this)[__n]; } template <class _Allocator> void vector<bool, _Allocator>::push_back(const value_type& __x) { if (this->__size_ == this->capacity()) reserve(__recommend(this->__size_ + 1)); ++this->__size_; back() = __x; } template <class _Allocator> typename vector<bool, _Allocator>::iterator vector<bool, _Allocator>::insert(const_iterator __position, const value_type& __x) { iterator __r; if (size() < capacity()) { const_iterator __old_end = end(); ++__size_; std::__1::copy_backward(__position, __old_end, end()); __r = __const_iterator_cast(__position); } else { vector __v(__alloc()); __v.reserve(__recommend(__size_ + 1)); __v.__size_ = __size_ + 1; __r = std::__1::copy(cbegin(), __position, __v.begin()); std::__1::copy_backward(__position, cend(), __v.end()); swap(__v); } *__r = __x; return __r; } template <class _Allocator> typename vector<bool, _Allocator>::iterator vector<bool, _Allocator>::insert(const_iterator __position, size_type __n, const value_type& __x) { iterator __r; size_type __c = capacity(); if (__n <= __c && size() <= __c - __n) { const_iterator __old_end = end(); __size_ += __n; std::__1::copy_backward(__position, __old_end, end()); __r = __const_iterator_cast(__position); } else { vector __v(__alloc()); __v.reserve(__recommend(__size_ + __n)); __v.__size_ = __size_ + __n; __r = std::__1::copy(cbegin(), __position, __v.begin()); std::__1::copy_backward(__position, cend(), __v.end()); swap(__v); } std::__1::fill_n(__r, __n, __x); return __r; } template <class _Allocator> template <class _InputIterator> typename enable_if < __is_input_iterator <_InputIterator>::value && !__is_forward_iterator<_InputIterator>::value, typename vector<bool, _Allocator>::iterator >::type vector<bool, _Allocator>::insert(const_iterator __position, _InputIterator __first, _InputIterator __last) { difference_type __off = __position - begin(); iterator __p = __const_iterator_cast(__position); iterator __old_end = end(); for (; size() != capacity() && __first != __last; ++__first) { ++this->__size_; back() = *__first; } vector __v(__alloc()); if (__first != __last) { __v.assign(__first, __last); difference_type __old_size = static_cast<difference_type>(__old_end - begin()); difference_type __old_p = __p - begin(); reserve(__recommend(size() + __v.size())); __p = begin() + __old_p; __old_end = begin() + __old_size; # 3188 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 } __p = std::__1::rotate(__p, __old_end, end()); insert(__p, __v.begin(), __v.end()); return begin() + __off; } template <class _Allocator> template <class _ForwardIterator> typename enable_if < __is_forward_iterator<_ForwardIterator>::value, typename vector<bool, _Allocator>::iterator >::type vector<bool, _Allocator>::insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last) { const difference_type __n_signed = std::__1::distance(__first, __last); ((void)0); const size_type __n = static_cast<size_type>(__n_signed); iterator __r; size_type __c = capacity(); if (__n <= __c && size() <= __c - __n) { const_iterator __old_end = end(); __size_ += __n; std::__1::copy_backward(__position, __old_end, end()); __r = __const_iterator_cast(__position); } else { vector __v(__alloc()); __v.reserve(__recommend(__size_ + __n)); __v.__size_ = __size_ + __n; __r = std::__1::copy(cbegin(), __position, __v.begin()); std::__1::copy_backward(__position, cend(), __v.end()); swap(__v); } std::__1::copy(__first, __last, __r); return __r; } template <class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename vector<bool, _Allocator>::iterator vector<bool, _Allocator>::erase(const_iterator __position) { iterator __r = __const_iterator_cast(__position); std::__1::copy(__position + 1, this->cend(), __r); --__size_; return __r; } template <class _Allocator> typename vector<bool, _Allocator>::iterator vector<bool, _Allocator>::erase(const_iterator __first, const_iterator __last) { iterator __r = __const_iterator_cast(__first); difference_type __d = __last - __first; std::__1::copy(__last, this->cend(), __r); __size_ -= __d; return __r; } template <class _Allocator> void vector<bool, _Allocator>::swap(vector& __x) noexcept { std::__1::swap(this->__begin_, __x.__begin_); std::__1::swap(this->__size_, __x.__size_); std::__1::swap(this->__cap(), __x.__cap()); __swap_allocator(this->__alloc(), __x.__alloc(), integral_constant<bool, __alloc_traits::propagate_on_container_swap::value>()); } template <class _Allocator> void vector<bool, _Allocator>::resize(size_type __sz, value_type __x) { size_type __cs = size(); if (__cs < __sz) { iterator __r; size_type __c = capacity(); size_type __n = __sz - __cs; if (__n <= __c && __cs <= __c - __n) { __r = end(); __size_ += __n; } else { vector __v(__alloc()); __v.reserve(__recommend(__size_ + __n)); __v.__size_ = __size_ + __n; __r = std::__1::copy(cbegin(), cend(), __v.begin()); swap(__v); } std::__1::fill_n(__r, __n, __x); } else __size_ = __sz; } template <class _Allocator> void vector<bool, _Allocator>::flip() noexcept { size_type __n = __size_; __storage_pointer __p = __begin_; for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) *__p = ~*__p; if (__n > 0) { __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __storage_type __b = *__p & __m; *__p &= ~__m; *__p |= ~__b & __m; } } template <class _Allocator> bool vector<bool, _Allocator>::__invariants() const { if (this->__begin_ == nullptr) { if (this->__size_ != 0 || this->__cap() != 0) return false; } else { if (this->__cap() == 0) return false; if (this->__size_ > this->capacity()) return false; } return true; } template <class _Allocator> size_t vector<bool, _Allocator>::__hash_code() const noexcept { size_t __h = 0; size_type __n = __size_; __storage_pointer __p = __begin_; for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word) __h ^= *__p; if (__n > 0) { const __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n); __h ^= *__p & __m; } return __h; } template <class _Allocator> struct __attribute__ ((__type_visibility__("default"))) hash<vector<bool, _Allocator> > : public unary_function<vector<bool, _Allocator>, size_t> { __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) size_t operator()(const vector<bool, _Allocator>& __vec) const noexcept {return __vec.__hash_code();} }; template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator==(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) { const typename vector<_Tp, _Allocator>::size_type __sz = __x.size(); return __sz == __y.size() && std::__1::equal(__x.begin(), __x.end(), __y.begin()); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator!=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) { return !(__x == __y); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator< (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) { return std::__1::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end()); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator> (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) { return __y < __x; } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator>=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) { return !(__x < __y); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool operator<=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y) { return !(__y < __x); } template <class _Tp, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(vector<_Tp, _Allocator>& __x, vector<_Tp, _Allocator>& __y) noexcept(noexcept(__x.swap(__y))) { __x.swap(__y); } # 3432 "/opt/toolchain/target/bin/../include/c++/v1/vector" 3 } } # 13 "/work/libint/src/VectorTypes.h" 2 # 22 "/work/libint/src/VectorTypes.h" namespace libint { # 43 "/work/libint/src/VectorTypes.h" template <typename INT> struct NativeVectorLen; template <typename INT> inline constexpr std::size_t NativeVectorLenVal = NativeVectorLen<INT>::value; template <> struct NativeVectorLen<int8_t> { constexpr static std::size_t value = 64; }; template <> struct NativeVectorLen<int16_t> { constexpr static std::size_t value = 32; }; template <> struct NativeVectorLen<int32_t> { constexpr static std::size_t value = 16; }; template <> struct NativeVectorLen<int64_t> { constexpr static std::size_t value = 8; }; template <> struct NativeVectorLen<uint8_t> { constexpr static std::size_t value = 64; }; template <> struct NativeVectorLen<uint16_t> { constexpr static std::size_t value = 32; }; template <> struct NativeVectorLen<uint32_t> { constexpr static std::size_t value = 16; }; template <> struct NativeVectorLen<uint64_t> { constexpr static std::size_t value = 8; }; constexpr std::size_t RequiredRowLength(std::size_t vector, std::size_t column) { if (vector > column) { return vector; } else { if (column % vector == 0) { return column; } else { int a = column / vector; return (a + 1) * vector; } } } template <unsigned int MAX_COL, typename INT, typename = void> struct Vector; template <unsigned int MAX_COL, typename INT> struct Vector<MAX_COL, INT, std::enable_if_t<std::is_integral_v<INT> and not std::is_same_v<INT, __int128_t>>> { static constexpr bool isVector = true; using element = INT; typedef std::experimental::simd< INT, std::experimental::simd_abi::__native<INT, MAX_COL>> vector; typedef std::experimental::simd_mask< INT, std::experimental::simd_abi::__native<INT, MAX_COL>> mask; }; template <unsigned int MAX_COL, typename INT> struct Vector<MAX_COL, INT, std::enable_if_t<std::is_same_v<INT, __int128_t>>> { static constexpr bool isVector = false; using element = INT; typedef std::experimental::simd< INT, std::experimental::simd_abi::fixed_size<MAX_COL>> vector; typedef std::experimental::simd_mask< INT, std::experimental::simd_abi::fixed_size<MAX_COL>> mask; }; } # 9 "/work/libint/src/SparsityInfo.h" 2 namespace libint { struct ColumnSparsityInfoUpTo64 { ColumnSparsityInfoUpTo64() : bitmask{0ul} {} ColumnSparsityInfoUpTo64(uint64_t s) : bitmask{s} {} ColumnSparsityInfoUpTo64 &mask_out_rows(size_t begin, size_t end) { (static_cast<void> (0)); (static_cast<void> (0)); bitmask &= (1ul << end) - 1ul; bitmask &= ~((1ul << begin) - 1ul); return *this; } ColumnSparsityInfoUpTo64 &mask_out_rows_after(size_t begin) { (static_cast<void> (0)); if (begin < 64) { bitmask &= (1ul << begin) - 1ul; } return *this; } ColumnSparsityInfoUpTo64 &mask_out_row(size_t row) { (static_cast<void> (0)); bitmask &= ~(1ul << row); return *this; } uint64_t bitmask; }; struct MatrixSparsityInfoUpTo64Rows32Cols { MatrixSparsityInfoUpTo64Rows32Cols() { std::fill(sparsity.begin(), sparsity.end(), int64_t{0l}); } MatrixSparsityInfoUpTo64Rows32Cols( const MatrixSparsityInfoUpTo64Rows32Cols &other) : sparsity{other.sparsity} {} template <typename Matrix> void recomputeSparsity(const Matrix &m) { std::fill(sparsity.begin(), sparsity.end(), uint64_t{0ul}); for (size_t r = 0; r < m.getNRows(); ++r) { for (size_t c = 0; c < m.getNColMax(); ++c) { if (m.readElement(r, c) != 0) sparsity[c] |= (1ull << r); } } } template <typename Matrix> void checkSparsity(const Matrix &m) const { return; if (m.getNRows() > 64 || m.getNCols() > 32) return; for (size_t r = 0; r < m.getNRows(); ++r) { for (size_t c = 0; c < m.getNCols(); ++c) { if (m.readElement(r, c) != 0 == !(sparsity[c] & (1ull << r))) { std::cerr << r << " " << c << "\n"; { __builtin_unreachable(); }; } } } } template <typename Matrix> void updateElementSparsity(const Matrix &m, size_t row, size_t column) { (static_cast<void> (0)); (static_cast<void> (0)); if (m.readElement(row, column) != 0) sparsity[column] |= (1ull << row); else sparsity[column] &= ~(1ull << row); } template <typename Matrix> void swapColumns(const Matrix &m, size_t column, size_t otherColumn) { std::swap(sparsity[column], sparsity[otherColumn]); } template <typename Matrix> void swapRows(const Matrix &m, size_t row, size_t otherRow) { updateRowSparsity(m, row); updateRowSparsity(m, otherRow); } template <size_t DIMS> auto getSparsityVector() const { using elementVector = typename Vector<DIMS, uint64_t>::vector; return *reinterpret_cast<const elementVector *>(sparsity.data()); } template <size_t DIMS> void setSparsityVector(typename Vector<DIMS, uint64_t>::vector vector) { using elementVector = typename Vector<DIMS, uint64_t>::vector; auto ptr = reinterpret_cast<elementVector *>(sparsity.data()); *ptr = vector; } template <typename Matrix> void updateRowSparsity(const Matrix &m, size_t row) { (static_cast<void> (0)); for (size_t c = 0; c < m.getNColMax(); ++c) updateElementSparsity(m, row, c); } ColumnSparsityInfoUpTo64 getColSparsity(size_t col) const { (static_cast<void> (0)); return sparsity[col]; } alignas(64) std::array<uint64_t, 32> sparsity; }; } # 15 "/work/libint/src/Matrix.h" 2 namespace libint { template <typename IntegerTys, typename MaxCols> class TransprecisionMatrix; template <size_t MAX_COL, typename INT> class Matrix { public: using elementType = INT; static constexpr size_t elementBitwidth = sizeof(INT) * 8; using vector = Vector<MAX_COL, elementType>; using elementVector = typename vector::vector; using boolVector = typename vector::mask; static constexpr size_t MAX_COLs = MAX_COL; Matrix() = delete; Matrix(size_t rows, size_t columns); Matrix(const Matrix &); template <size_t MAX_COL_OTHER, typename INT_OTHER> Matrix(const Matrix<MAX_COL_OTHER, INT_OTHER> &m); Matrix &operator=(const Matrix &); Matrix &operator=(Matrix &&) noexcept; INT readElement(size_t row, size_t column) const; INT operator()(size_t row, size_t column) const { return readElement(row, column); } void writeElement(size_t row, size_t column, INT element); void swapElement(size_t firstRow, size_t firstColumn, size_t secondRow, size_t secondColumn); INT *getData(); INT *getRow(size_t row); inline elementVector getRowVector(size_t row); inline void putRowVector(size_t row, elementVector data); const INT *getRowReadOnly(size_t row) const; INT *getRowAtOffset(size_t row, size_t offset); const INT *getRowAtOffsetReadonly(size_t row, size_t offset) const; void extend(size_t newNumberOfRows, size_t newNumberOfColumns); template <size_t NEW_MAX_COLS> Matrix<NEW_MAX_COLS, INT> extendColumnMax() const; void swapColumns(size_t column, size_t otherColumn); void swapRows(size_t row, size_t otherRow); size_t getNRows() const; size_t getNCols() const; inline size_t getNColMax() const; void recomputeSparsity(); void checkSparsity() const; void updateElementSparsity(size_t row, size_t column); void updateRowSparsity(size_t row); ColumnSparsityInfoUpTo64 getColumnSparsity(size_t column) const; template <size_t FREE_COL_SIZE, typename FREE_INT> friend void swap(Matrix<FREE_COL_SIZE, FREE_INT> &a, Matrix<FREE_COL_SIZE, FREE_INT> &b); template <size_t COL_SIZE_OTHER, typename INT_OTHER> friend class Matrix; template <size_t COL_SIZE_OTHER, typename INT_OTHER> friend std::ostream &operator<<(std::ostream &out, const Matrix<COL_SIZE_OTHER, INT_OTHER> &c); template <typename IntegerTys, typename MaxCols> friend class TransprecisionMatrix; template <typename R, typename F> R dispatch(F f); template <typename R, typename F> R dispatch(F f) const; template <typename F> auto dispatchRetryOnOverflow(F f); template <typename F> auto dispatchRetryOnOverflow(F f) const; template <typename F1, typename F2, typename F3> void dispatchLoop(F1 loop_body, F2 loop_skip_iter, F3 loop_header, size_t begin, size_t end, size_t offset, Matrix<MAX_COL, INT> &output); template <typename F1, typename F2, typename F3, typename MASKTYPE> std::enable_if_t<std::numeric_limits<MASKTYPE>::is_integer, void> dispatchLoop(F1 loop_body, F2 loop_skip_iter, F3 loop_header, MASKTYPE iterationMask, size_t offset, Matrix<MAX_COL, INT> &output); template <typename F1, typename F2, typename F3, typename MASKTYPE> std::enable_if_t<std::numeric_limits<MASKTYPE>::is_integer, void> dispatchLoopDelayedRead(F1 loop_body, F2 loop_skip_iter, F3 loop_header, MASKTYPE iterationMask, size_t offset, Matrix<MAX_COL, INT> &output); template <typename F1, bool needWholeMatrix = false> void visitRow(F1 function, size_t row, Matrix<MAX_COL, INT> &output); friend class MatrixAPI_ResizeCorrectSize_Test; void checkColRange(size_t first, size_t n); void checkRowRange(size_t first, size_t n); constexpr size_t getPadding(); static constexpr size_t CacheLineSize = 512; size_t nRows; size_t nCols; using DataTy = std::vector<INT, libint::AlignedAllocator<INT, 64>>; DataTy data; MatrixSparsityInfoUpTo64Rows32Cols sparsity; private: template <typename F1, typename F2, typename F3, typename MASKTYPE, bool skipWithoutRow, bool maskOrRange> std::enable_if_t<std::numeric_limits<MASKTYPE>::is_integer, void> dispatchLoopInternal(F1 loop_body, F2 loop_skip_iter, F3 loop_header, MASKTYPE iterationMask, size_t begin, size_t end, size_t offset, Matrix<MAX_COL, INT> &output); }; template <size_t MAX_COL, typename INT> void swap(Matrix<MAX_COL, INT> &a, Matrix<MAX_COL, INT> &b) { using std::swap; swap(a.data, b.data); swap(a.nRows, b.nRows); swap(a.nCols, b.nCols); return; swap(a.sparsity, b.sparsity); } template <size_t MAX_COL1, typename INT1, size_t MAX_COL2, typename INT2> bool operator!=(const Matrix<MAX_COL1, INT1> &a, const Matrix<MAX_COL2, INT2> &b) { if (a.getNRows() != b.getNRows()) return true; if (a.getNCols() != b.getNCols()) return true; for (size_t i = 0; i < a.getNRows(); ++i) for (size_t j = 0; j < a.getNCols(); ++j) if (a.readElement(i, j) != b.readElement(i, j)) return true; return false; } template <size_t MAX_COL1, typename INT1, size_t MAX_COL2, typename INT2> bool operator==(const Matrix<MAX_COL1, INT1> &a, const Matrix<MAX_COL2, INT2> &b) { return !(a != b); } template <size_t MAX_COL, typename INT> Matrix<MAX_COL, INT>::Matrix(size_t row, size_t column) : nRows{row}, nCols{column}, data(row * RequiredRowLength(NativeVectorLenVal<INT>, MAX_COL)) {} template <size_t MAX_COL, typename INT> Matrix<MAX_COL, INT> &Matrix<MAX_COL, INT>::operator=(Matrix &&m) noexcept { data = std::move(m.data); nCols = m.nCols; nRows = m.nRows; return *this; sparsity = m.sparsity; return *this; } template <size_t MAX_COL, typename INT> Matrix<MAX_COL, INT>::Matrix(const Matrix &m) : nRows{m.nRows}, nCols{m.nCols}, data{m.data}, sparsity{m.sparsity} {} template <size_t MAX_COL, typename INT> template <size_t MAX_COL_OTHER, typename INT_OTHER> Matrix<MAX_COL, INT>::Matrix(const Matrix<MAX_COL_OTHER, INT_OTHER> &m) : nRows{m.nRows}, nCols{m.nCols}, data(nRows * RequiredRowLength(NativeVectorLenVal<INT>, MAX_COL_OTHER)), sparsity{m.sparsity} { for (size_t row = 0; row < nRows; row++) { for (size_t col = 0; col < nCols; col++) { writeElement(row, col, m.readElement(row, col)); } } } template <size_t MAX_COL, typename INT> Matrix<MAX_COL, INT> &Matrix<MAX_COL, INT>::operator=(const Matrix &m) { auto copy_other{m}; swap(*this, copy_other); return *this; } template <size_t MAX_COL, typename INT> INT Matrix<MAX_COL, INT>::readElement(size_t row, size_t column) const { return data[row * getNColMax() + column]; } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::writeElement(size_t row, size_t column, INT element) { data[row * getNColMax() + column] = element; } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::swapElement(size_t firstRow, size_t firstColumn, size_t secondRow, size_t secondColumn) { INT buf = data[firstRow * getNColMax() + firstColumn]; data[firstRow * getNColMax() + firstColumn] = data[secondRow * getNColMax() + secondColumn]; data[secondRow * getNColMax() + secondColumn] = buf; } template <size_t MAX_COL, typename INT> INT *Matrix<MAX_COL, INT>::getData() { return data.data(); } template <size_t MAX_COL, typename INT> INT *Matrix<MAX_COL, INT>::getRow(size_t row) { return &data[row * getNColMax()]; } template <size_t MAX_COL, typename INT> const INT *Matrix<MAX_COL, INT>::getRowReadOnly(size_t row) const { return &data[row * getNColMax()]; } template <size_t MAX_COL, typename INT> INT *Matrix<MAX_COL, INT>::getRowAtOffset(size_t row, size_t offset) { return &data[row * getNColMax()] + offset; } template <size_t MAX_COL, typename INT> const INT *Matrix<MAX_COL, INT>::getRowAtOffsetReadonly(size_t row, size_t offset) const { return &data[row * getNColMax()] + offset; } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::extend(size_t newNumberOfRows, size_t newNumberOfColumns) { if (newNumberOfColumns > MAX_COL) { __builtin_unreachable(); }; nRows = newNumberOfRows; nCols = newNumberOfColumns; data.resize(newNumberOfRows * RequiredRowLength(NativeVectorLenVal<INT>, MAX_COL)); } template <size_t MAX_COL, typename INT> template <size_t NEW_MAX_COLS> Matrix<NEW_MAX_COLS, INT> Matrix<MAX_COL, INT>::extendColumnMax() const { Matrix<NEW_MAX_COLS, INT> mat(nRows, nCols); for (size_t i = 0; i < nRows; ++i) for (size_t j = 0; j < nCols; ++j) mat.writeElement(i, j, readElement(i, j)); return mat; } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::checkColRange(size_t first, size_t n) { if (first + n > getNCols() or first + n < first) { __builtin_unreachable(); }; } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::checkRowRange(size_t first, size_t n) { if (first + n > getNRows() or first + n < first) { __builtin_unreachable(); }; } template <size_t MAX_COL, typename INT> constexpr size_t Matrix<MAX_COL, INT>::getPadding() { return CacheLineSize / sizeof(INT); } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::swapColumns(size_t column, size_t otherColumn) { checkColRange(column, 1); checkColRange(otherColumn, 1); for (size_t row = 0; row < getNRows(); ++row) swapElement(row, column, row, otherColumn); return; sparsity.swapColumns(*this, column, otherColumn); } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::swapRows(size_t row, size_t otherRow) { checkRowRange(row, 1); checkRowRange(otherRow, 1); auto tmpVector = getRowVector(row); putRowVector(row, getRowVector(otherRow)); putRowVector(otherRow, tmpVector); return; sparsity.swapRows(*this, row, otherRow); } template <size_t MAX_COL, typename INT> size_t Matrix<MAX_COL, INT>::getNRows() const { return nRows; } template <size_t MAX_COL, typename INT> size_t Matrix<MAX_COL, INT>::getNCols() const { return nCols; } template <size_t MAX_COL, typename INT> inline size_t Matrix<MAX_COL, INT>::getNColMax() const { return RequiredRowLength(NativeVectorLenVal<INT>, MAX_COL); } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::recomputeSparsity() { return; if constexpr (MAX_COL <= 32) { if (nRows <= 64) { sparsity.recomputeSparsity(*this); } } } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::checkSparsity() const { return; if constexpr (MAX_COL <= 32) { if (nRows <= 64) { sparsity.checkSparsity(*this); } } } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::updateElementSparsity(size_t row, size_t column) { return; if constexpr (MAX_COL <= 32) { if (nRows <= 64) { sparsity.updateElementSparsity(*this, row, column); } } } template <size_t MAX_COL, typename INT> void Matrix<MAX_COL, INT>::updateRowSparsity(size_t row) { return; if constexpr (MAX_COL <= 32) { if (nRows <= 64) { sparsity.updateRowSparsity(*this, row); } } return; # 480 "/work/libint/src/Matrix.h" auto rowVec = getRowVector(row); auto sparsityVec = sparsity.getSparsityVector<MAX_COL>(); auto rowVec2 = std::experimental::simd_cast<uint64_t>(rowVec); auto zeroCols = rowVec2 == 0; auto nonZeroCols = rowVec2 != 0; decltype(sparsityVec) rowIsSet(1ull << row); decltype(sparsityVec) allOnes(std::numeric_limits<uint64_t>::max()); decltype(sparsityVec) allZeros(0); std::experimental::where(zeroCols, allOnes) ^= rowIsSet; std::experimental::where(nonZeroCols, allZeros) |= rowIsSet; sparsityVec &= allOnes; sparsityVec |= allZeros; sparsity.setSparsityVector<MAX_COL>(sparsityVec); return; } template <size_t MAX_COL, typename INT> ColumnSparsityInfoUpTo64 Matrix<MAX_COL, INT>::getColumnSparsity(size_t column) const { { __builtin_unreachable(); }; return sparsity.getColSparsity(column).mask_out_rows_after(getNRows()); } template <size_t MAX_COL, typename INT> inline typename Matrix<MAX_COL, INT>::elementVector Matrix<MAX_COL, INT>::getRowVector(size_t row) { auto ptr = &data[row * getNColMax()]; return *reinterpret_cast<elementVector *>(ptr); } template <size_t MAX_COL, typename INT> inline void Matrix<MAX_COL, INT>::putRowVector(size_t row, elementVector value) { auto rowPtr = reinterpret_cast<elementVector *>(&data[row * getNColMax()]); *rowPtr = value; } template <typename INT_OTHER, size_t COL_SIZE_OTHER> std::ostream &operator<<(std::ostream &out, const Matrix<COL_SIZE_OTHER, INT_OTHER> &c) { out << "Dumping matrix, rows = " << c.getNRows() << ", cols: " << c.getNCols() << ", cols max: " << c.getNColMax() << std::endl; out << "r/c "; for (size_t column = 0; column < c.getNCols(); column++) { out << "| " << std::setw(2) << column << " "; } out << std::endl; out << std::string(5 + c.getNCols() * 5, '-') << std::endl; for (size_t row = 0; row < c.getNRows(); row++) { out << std::setw(2) << row << " | "; for (size_t column = 0; column < c.getNCols(); column++) { out << std::setw(4) << c.readElement(row, column) << " "; } out << std::endl; } return out; } template <size_t MAX_COL, typename INT> template <typename R, typename F> R Matrix<MAX_COL, INT>::dispatch(F f) { return f(*this); } template <size_t MAX_COL, typename INT> template <typename R, typename F> R Matrix<MAX_COL, INT>::dispatch(F f) const { return f(*this); } template <size_t MAX_COL, typename INT> template <typename F> auto Matrix<MAX_COL, INT>::dispatchRetryOnOverflow(F f) { { __builtin_unreachable(); }; } template <size_t MAX_COL, typename INT> template <typename F> auto Matrix<MAX_COL, INT>::dispatchRetryOnOverflow(F f) const { { __builtin_unreachable(); }; } template <size_t MAX_COL, typename INT> template <typename F1, typename F2, typename F3, typename MASKTYPE, bool skipWithoutRow, bool maskOrRange> std::enable_if_t<std::numeric_limits<MASKTYPE>::is_integer, void> Matrix<MAX_COL, INT>::dispatchLoopInternal(F1 loop_body, F2 loop_skip_iter, F3 loop_header, MASKTYPE iterationMask, size_t begin, size_t end, size_t, Matrix<MAX_COL, INT> &output) { MASKTYPE mask = iterationMask; auto row = begin; auto [loop_invariant_state, overflow] = loop_header(*this); if (overflow) { __builtin_unreachable(); }; checkSparsity(); output.checkSparsity(); if constexpr (maskOrRange) { row = 0L; for (; mask; mask = (~(1ul << row)) & mask) { row = __builtin_ffsl(mask) - 1; if constexpr (skipWithoutRow) { if (loop_skip_iter(row)) continue; } auto rowV = getRowVector(row); if constexpr (!skipWithoutRow) { if (loop_skip_iter(row, rowV)) continue; } auto [res, overflow] = loop_body(rowV, loop_invariant_state, *this); if (overflow) { __builtin_unreachable(); }; output.putRowVector(row, res); output.updateRowSparsity(row); } } else { for (; row < end; ++row) { if constexpr (skipWithoutRow) { if (loop_skip_iter(row)) continue; } auto rowV = getRowVector(row); if constexpr (!skipWithoutRow) { if (loop_skip_iter(row, rowV)) continue; } auto [res, overflow] = loop_body(rowV, loop_invariant_state, *this); if (overflow) { __builtin_unreachable(); }; output.putRowVector(row, res); output.updateRowSparsity(row); } } checkSparsity(); output.checkSparsity(); } template <size_t MAX_COL, typename INT> template <typename F1, typename F2, typename F3, typename MASKTYPE> std::enable_if_t<std::numeric_limits<MASKTYPE>::is_integer, void> Matrix<MAX_COL, INT>::dispatchLoopDelayedRead(F1 loop_body, F2 loop_skip_iter, F3 loop_header, MASKTYPE iterationMask, size_t offset, Matrix<MAX_COL, INT> &output) { dispatchLoopInternal<F1, F2, F3, MASKTYPE, true, true>( loop_body, loop_skip_iter, loop_header, iterationMask, 0, 0, offset, output); } template <size_t MAX_COL, typename INT> template <typename F1, typename F2, typename F3, typename MASKTYPE> std::enable_if_t<std::numeric_limits<MASKTYPE>::is_integer, void> Matrix<MAX_COL, INT>::dispatchLoop(F1 loop_body, F2 loop_skip_iter, F3 loop_header, MASKTYPE iterationMask, size_t offset, Matrix<MAX_COL, INT> &output) { dispatchLoopInternal<F1, F2, F3, MASKTYPE, false, true>( loop_body, loop_skip_iter, loop_header, iterationMask, 0, 0, offset, output); } template <size_t MAX_COL, typename INT> template <typename F1, typename F2, typename F3> void Matrix<MAX_COL, INT>::dispatchLoop(F1 loop_body, F2 loop_skip_iter, F3 loop_header, size_t begin, size_t end, size_t offset, Matrix<MAX_COL, INT> &output) { dispatchLoopInternal<F1, F2, F3, int, false, false>( loop_body, loop_skip_iter, loop_header, 0, begin, end, offset, output); } template <size_t MAX_COL, typename INT> template <typename F1, bool needWholeMatrix> void Matrix<MAX_COL, INT>::visitRow(F1 function, size_t row, Matrix<MAX_COL, INT> &output) { checkSparsity(); auto rowV = getRowVector(row); if constexpr (needWholeMatrix) { auto [overflow, res] = function(rowV, *this); if (overflow) { __builtin_unreachable(); }; output.putRowVector(row, res); output.updateRowSparsity(row); output.checkSparsity(); } else { auto [overflow, res] = function(rowV); if (overflow) { __builtin_unreachable(); }; output.putRowVector(row, res); output.updateRowSparsity(row); output.checkSparsity(); } } } # 5 "/work/libint/src/Simplex.h" 2 # 1 "/work/libint/src/Parser.h" 1 # 1 "/opt/toolchain/target/bin/../include/c++/v1/sstream" 1 3 # 179 "/opt/toolchain/target/bin/../include/c++/v1/sstream" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 183 "/opt/toolchain/target/bin/../include/c++/v1/sstream" 2 3 namespace std { inline namespace __1 { template <class _CharT, class _Traits, class _Allocator> class __attribute__ ((__type_visibility__("default"))) basic_stringbuf : public basic_streambuf<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef _Allocator allocator_type; typedef basic_string<char_type, traits_type, allocator_type> string_type; private: string_type __str_; mutable char_type* __hm_; ios_base::openmode __mode_; public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_stringbuf(ios_base::openmode __wch = ios_base::in | ios_base::out); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_stringbuf(const string_type& __s, ios_base::openmode __wch = ios_base::in | ios_base::out); basic_stringbuf(basic_stringbuf&& __rhs); basic_stringbuf& operator=(basic_stringbuf&& __rhs); void swap(basic_stringbuf& __rhs); string_type str() const; void str(const string_type& __s); protected: virtual int_type underflow(); virtual int_type pbackfail(int_type __c = traits_type::eof()); virtual int_type overflow (int_type __c = traits_type::eof()); virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __wch = ios_base::in | ios_base::out); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) virtual pos_type seekpos(pos_type __sp, ios_base::openmode __wch = ios_base::in | ios_base::out); }; template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(ios_base::openmode __wch) : __hm_(0), __mode_(__wch) { } template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(const string_type& __s, ios_base::openmode __wch) : __str_(__s.get_allocator()), __hm_(0), __mode_(__wch) { str(__s); } template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(basic_stringbuf&& __rhs) : __mode_(__rhs.__mode_) { char_type* __p = const_cast<char_type*>(__rhs.__str_.data()); ptrdiff_t __binp = -1; ptrdiff_t __ninp = -1; ptrdiff_t __einp = -1; if (__rhs.eback() != nullptr) { __binp = __rhs.eback() - __p; __ninp = __rhs.gptr() - __p; __einp = __rhs.egptr() - __p; } ptrdiff_t __bout = -1; ptrdiff_t __nout = -1; ptrdiff_t __eout = -1; if (__rhs.pbase() != nullptr) { __bout = __rhs.pbase() - __p; __nout = __rhs.pptr() - __p; __eout = __rhs.epptr() - __p; } ptrdiff_t __hm = __rhs.__hm_ == nullptr ? -1 : __rhs.__hm_ - __p; __str_ = std::__1::move(__rhs.__str_); __p = const_cast<char_type*>(__str_.data()); if (__binp != -1) this->setg(__p + __binp, __p + __ninp, __p + __einp); if (__bout != -1) { this->setp(__p + __bout, __p + __eout); this->__pbump(__nout); } __hm_ = __hm == -1 ? nullptr : __p + __hm; __p = const_cast<char_type*>(__rhs.__str_.data()); __rhs.setg(__p, __p, __p); __rhs.setp(__p, __p); __rhs.__hm_ = __p; this->pubimbue(__rhs.getloc()); } template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>& basic_stringbuf<_CharT, _Traits, _Allocator>::operator=(basic_stringbuf&& __rhs) { char_type* __p = const_cast<char_type*>(__rhs.__str_.data()); ptrdiff_t __binp = -1; ptrdiff_t __ninp = -1; ptrdiff_t __einp = -1; if (__rhs.eback() != nullptr) { __binp = __rhs.eback() - __p; __ninp = __rhs.gptr() - __p; __einp = __rhs.egptr() - __p; } ptrdiff_t __bout = -1; ptrdiff_t __nout = -1; ptrdiff_t __eout = -1; if (__rhs.pbase() != nullptr) { __bout = __rhs.pbase() - __p; __nout = __rhs.pptr() - __p; __eout = __rhs.epptr() - __p; } ptrdiff_t __hm = __rhs.__hm_ == nullptr ? -1 : __rhs.__hm_ - __p; __str_ = std::__1::move(__rhs.__str_); __p = const_cast<char_type*>(__str_.data()); if (__binp != -1) this->setg(__p + __binp, __p + __ninp, __p + __einp); else this->setg(nullptr, nullptr, nullptr); if (__bout != -1) { this->setp(__p + __bout, __p + __eout); this->__pbump(__nout); } else this->setp(nullptr, nullptr); __hm_ = __hm == -1 ? nullptr : __p + __hm; __mode_ = __rhs.__mode_; __p = const_cast<char_type*>(__rhs.__str_.data()); __rhs.setg(__p, __p, __p); __rhs.setp(__p, __p); __rhs.__hm_ = __p; this->pubimbue(__rhs.getloc()); return *this; } template <class _CharT, class _Traits, class _Allocator> void basic_stringbuf<_CharT, _Traits, _Allocator>::swap(basic_stringbuf& __rhs) { char_type* __p = const_cast<char_type*>(__rhs.__str_.data()); ptrdiff_t __rbinp = -1; ptrdiff_t __rninp = -1; ptrdiff_t __reinp = -1; if (__rhs.eback() != nullptr) { __rbinp = __rhs.eback() - __p; __rninp = __rhs.gptr() - __p; __reinp = __rhs.egptr() - __p; } ptrdiff_t __rbout = -1; ptrdiff_t __rnout = -1; ptrdiff_t __reout = -1; if (__rhs.pbase() != nullptr) { __rbout = __rhs.pbase() - __p; __rnout = __rhs.pptr() - __p; __reout = __rhs.epptr() - __p; } ptrdiff_t __rhm = __rhs.__hm_ == nullptr ? -1 : __rhs.__hm_ - __p; __p = const_cast<char_type*>(__str_.data()); ptrdiff_t __lbinp = -1; ptrdiff_t __lninp = -1; ptrdiff_t __leinp = -1; if (this->eback() != nullptr) { __lbinp = this->eback() - __p; __lninp = this->gptr() - __p; __leinp = this->egptr() - __p; } ptrdiff_t __lbout = -1; ptrdiff_t __lnout = -1; ptrdiff_t __leout = -1; if (this->pbase() != nullptr) { __lbout = this->pbase() - __p; __lnout = this->pptr() - __p; __leout = this->epptr() - __p; } ptrdiff_t __lhm = __hm_ == nullptr ? -1 : __hm_ - __p; std::__1::swap(__mode_, __rhs.__mode_); __str_.swap(__rhs.__str_); __p = const_cast<char_type*>(__str_.data()); if (__rbinp != -1) this->setg(__p + __rbinp, __p + __rninp, __p + __reinp); else this->setg(nullptr, nullptr, nullptr); if (__rbout != -1) { this->setp(__p + __rbout, __p + __reout); this->__pbump(__rnout); } else this->setp(nullptr, nullptr); __hm_ = __rhm == -1 ? nullptr : __p + __rhm; __p = const_cast<char_type*>(__rhs.__str_.data()); if (__lbinp != -1) __rhs.setg(__p + __lbinp, __p + __lninp, __p + __leinp); else __rhs.setg(nullptr, nullptr, nullptr); if (__lbout != -1) { __rhs.setp(__p + __lbout, __p + __leout); __rhs.__pbump(__lnout); } else __rhs.setp(nullptr, nullptr); __rhs.__hm_ = __lhm == -1 ? nullptr : __p + __lhm; locale __tl = __rhs.getloc(); __rhs.pubimbue(this->getloc()); this->pubimbue(__tl); } template <class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x, basic_stringbuf<_CharT, _Traits, _Allocator>& __y) { __x.swap(__y); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>::str() const { if (__mode_ & ios_base::out) { if (__hm_ < this->pptr()) __hm_ = this->pptr(); return string_type(this->pbase(), __hm_, __str_.get_allocator()); } else if (__mode_ & ios_base::in) return string_type(this->eback(), this->egptr(), __str_.get_allocator()); return string_type(__str_.get_allocator()); } template <class _CharT, class _Traits, class _Allocator> void basic_stringbuf<_CharT, _Traits, _Allocator>::str(const string_type& __s) { __str_ = __s; __hm_ = 0; if (__mode_ & ios_base::in) { __hm_ = const_cast<char_type*>(__str_.data()) + __str_.size(); this->setg(const_cast<char_type*>(__str_.data()), const_cast<char_type*>(__str_.data()), __hm_); } if (__mode_ & ios_base::out) { typename string_type::size_type __sz = __str_.size(); __hm_ = const_cast<char_type*>(__str_.data()) + __sz; __str_.resize(__str_.capacity()); this->setp(const_cast<char_type*>(__str_.data()), const_cast<char_type*>(__str_.data()) + __str_.size()); if (__mode_ & (ios_base::app | ios_base::ate)) { while (__sz > 2147483647) { this->pbump(2147483647); __sz -= 2147483647; } if (__sz > 0) this->pbump(__sz); } } } template <class _CharT, class _Traits, class _Allocator> typename basic_stringbuf<_CharT, _Traits, _Allocator>::int_type basic_stringbuf<_CharT, _Traits, _Allocator>::underflow() { if (__hm_ < this->pptr()) __hm_ = this->pptr(); if (__mode_ & ios_base::in) { if (this->egptr() < __hm_) this->setg(this->eback(), this->gptr(), __hm_); if (this->gptr() < this->egptr()) return traits_type::to_int_type(*this->gptr()); } return traits_type::eof(); } template <class _CharT, class _Traits, class _Allocator> typename basic_stringbuf<_CharT, _Traits, _Allocator>::int_type basic_stringbuf<_CharT, _Traits, _Allocator>::pbackfail(int_type __c) { if (__hm_ < this->pptr()) __hm_ = this->pptr(); if (this->eback() < this->gptr()) { if (traits_type::eq_int_type(__c, traits_type::eof())) { this->setg(this->eback(), this->gptr()-1, __hm_); return traits_type::not_eof(__c); } if ((__mode_ & ios_base::out) || traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1])) { this->setg(this->eback(), this->gptr()-1, __hm_); *this->gptr() = traits_type::to_char_type(__c); return __c; } } return traits_type::eof(); } template <class _CharT, class _Traits, class _Allocator> typename basic_stringbuf<_CharT, _Traits, _Allocator>::int_type basic_stringbuf<_CharT, _Traits, _Allocator>::overflow(int_type __c) { if (!traits_type::eq_int_type(__c, traits_type::eof())) { ptrdiff_t __ninp = this->gptr() - this->eback(); if (this->pptr() == this->epptr()) { if (!(__mode_ & ios_base::out)) return traits_type::eof(); ptrdiff_t __nout = this->pptr() - this->pbase(); ptrdiff_t __hm = __hm_ - this->pbase(); __str_.push_back(char_type()); __str_.resize(__str_.capacity()); char_type* __p = const_cast<char_type*>(__str_.data()); this->setp(__p, __p + __str_.size()); this->__pbump(__nout); __hm_ = this->pbase() + __hm; } __hm_ = std::__1::max(this->pptr() + 1, __hm_); if (__mode_ & ios_base::in) { char_type* __p = const_cast<char_type*>(__str_.data()); this->setg(__p, __p + __ninp, __hm_); } return this->sputc(traits_type::to_char_type(__c)); } return traits_type::not_eof(__c); } template <class _CharT, class _Traits, class _Allocator> typename basic_stringbuf<_CharT, _Traits, _Allocator>::pos_type basic_stringbuf<_CharT, _Traits, _Allocator>::seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __wch) { if (__hm_ < this->pptr()) __hm_ = this->pptr(); if ((__wch & (ios_base::in | ios_base::out)) == 0) return pos_type(-1); if ((__wch & (ios_base::in | ios_base::out)) == (ios_base::in | ios_base::out) && __way == ios_base::cur) return pos_type(-1); const ptrdiff_t __hm = __hm_ == nullptr ? 0 : __hm_ - __str_.data(); off_type __noff; switch (__way) { case ios_base::beg: __noff = 0; break; case ios_base::cur: if (__wch & ios_base::in) __noff = this->gptr() - this->eback(); else __noff = this->pptr() - this->pbase(); break; case ios_base::end: __noff = __hm; break; default: return pos_type(-1); } __noff += __off; if (__noff < 0 || __hm < __noff) return pos_type(-1); if (__noff != 0) { if ((__wch & ios_base::in) && this->gptr() == 0) return pos_type(-1); if ((__wch & ios_base::out) && this->pptr() == 0) return pos_type(-1); } if (__wch & ios_base::in) this->setg(this->eback(), this->eback() + __noff, __hm_); if (__wch & ios_base::out) { this->setp(this->pbase(), this->epptr()); this->pbump(__noff); } return pos_type(__noff); } template <class _CharT, class _Traits, class _Allocator> typename basic_stringbuf<_CharT, _Traits, _Allocator>::pos_type basic_stringbuf<_CharT, _Traits, _Allocator>::seekpos(pos_type __sp, ios_base::openmode __wch) { return seekoff(__sp, ios_base::beg, __wch); } template <class _CharT, class _Traits, class _Allocator> class __attribute__ ((__type_visibility__("default"))) basic_istringstream : public basic_istream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef _Allocator allocator_type; typedef basic_string<char_type, traits_type, allocator_type> string_type; private: basic_stringbuf<char_type, traits_type, allocator_type> __sb_; public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_istringstream(ios_base::openmode __wch = ios_base::in); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_istringstream(const string_type& __s, ios_base::openmode __wch = ios_base::in); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_istringstream(basic_istringstream&& __rhs); basic_istringstream& operator=(basic_istringstream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_istringstream& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type str() const; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void str(const string_type& __s); }; template <class _CharT, class _Traits, class _Allocator> basic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(ios_base::openmode __wch) : basic_istream<_CharT, _Traits>(&__sb_), __sb_(__wch | ios_base::in) { } template <class _CharT, class _Traits, class _Allocator> basic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(const string_type& __s, ios_base::openmode __wch) : basic_istream<_CharT, _Traits>(&__sb_), __sb_(__s, __wch | ios_base::in) { } template <class _CharT, class _Traits, class _Allocator> basic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(basic_istringstream&& __rhs) : basic_istream<_CharT, _Traits>(std::__1::move(__rhs)), __sb_(std::__1::move(__rhs.__sb_)) { basic_istream<_CharT, _Traits>::set_rdbuf(&__sb_); } template <class _CharT, class _Traits, class _Allocator> basic_istringstream<_CharT, _Traits, _Allocator>& basic_istringstream<_CharT, _Traits, _Allocator>::operator=(basic_istringstream&& __rhs) { basic_istream<char_type, traits_type>::operator=(std::__1::move(__rhs)); __sb_ = std::__1::move(__rhs.__sb_); return *this; } template <class _CharT, class _Traits, class _Allocator> void basic_istringstream<_CharT, _Traits, _Allocator>::swap(basic_istringstream& __rhs) { basic_istream<char_type, traits_type>::swap(__rhs); __sb_.swap(__rhs.__sb_); } template <class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x, basic_istringstream<_CharT, _Traits, _Allocator>& __y) { __x.swap(__y); } template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>* basic_istringstream<_CharT, _Traits, _Allocator>::rdbuf() const { return const_cast<basic_stringbuf<char_type, traits_type, allocator_type>*>(&__sb_); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> basic_istringstream<_CharT, _Traits, _Allocator>::str() const { return __sb_.str(); } template <class _CharT, class _Traits, class _Allocator> void basic_istringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s) { __sb_.str(__s); } template <class _CharT, class _Traits, class _Allocator> class __attribute__ ((__type_visibility__("default"))) basic_ostringstream : public basic_ostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef _Allocator allocator_type; typedef basic_string<char_type, traits_type, allocator_type> string_type; private: basic_stringbuf<char_type, traits_type, allocator_type> __sb_; public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_ostringstream(ios_base::openmode __wch = ios_base::out); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_ostringstream(const string_type& __s, ios_base::openmode __wch = ios_base::out); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_ostringstream(basic_ostringstream&& __rhs); basic_ostringstream& operator=(basic_ostringstream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_ostringstream& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type str() const; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void str(const string_type& __s); }; template <class _CharT, class _Traits, class _Allocator> basic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(ios_base::openmode __wch) : basic_ostream<_CharT, _Traits>(&__sb_), __sb_(__wch | ios_base::out) { } template <class _CharT, class _Traits, class _Allocator> basic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(const string_type& __s, ios_base::openmode __wch) : basic_ostream<_CharT, _Traits>(&__sb_), __sb_(__s, __wch | ios_base::out) { } template <class _CharT, class _Traits, class _Allocator> basic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(basic_ostringstream&& __rhs) : basic_ostream<_CharT, _Traits>(std::__1::move(__rhs)), __sb_(std::__1::move(__rhs.__sb_)) { basic_ostream<_CharT, _Traits>::set_rdbuf(&__sb_); } template <class _CharT, class _Traits, class _Allocator> basic_ostringstream<_CharT, _Traits, _Allocator>& basic_ostringstream<_CharT, _Traits, _Allocator>::operator=(basic_ostringstream&& __rhs) { basic_ostream<char_type, traits_type>::operator=(std::__1::move(__rhs)); __sb_ = std::__1::move(__rhs.__sb_); return *this; } template <class _CharT, class _Traits, class _Allocator> void basic_ostringstream<_CharT, _Traits, _Allocator>::swap(basic_ostringstream& __rhs) { basic_ostream<char_type, traits_type>::swap(__rhs); __sb_.swap(__rhs.__sb_); } template <class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x, basic_ostringstream<_CharT, _Traits, _Allocator>& __y) { __x.swap(__y); } template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>* basic_ostringstream<_CharT, _Traits, _Allocator>::rdbuf() const { return const_cast<basic_stringbuf<char_type, traits_type, allocator_type>*>(&__sb_); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> basic_ostringstream<_CharT, _Traits, _Allocator>::str() const { return __sb_.str(); } template <class _CharT, class _Traits, class _Allocator> void basic_ostringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s) { __sb_.str(__s); } template <class _CharT, class _Traits, class _Allocator> class __attribute__ ((__type_visibility__("default"))) basic_stringstream : public basic_iostream<_CharT, _Traits> { public: typedef _CharT char_type; typedef _Traits traits_type; typedef typename traits_type::int_type int_type; typedef typename traits_type::pos_type pos_type; typedef typename traits_type::off_type off_type; typedef _Allocator allocator_type; typedef basic_string<char_type, traits_type, allocator_type> string_type; private: basic_stringbuf<char_type, traits_type, allocator_type> __sb_; public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_stringstream(ios_base::openmode __wch = ios_base::in | ios_base::out); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit basic_stringstream(const string_type& __s, ios_base::openmode __wch = ios_base::in | ios_base::out); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_stringstream(basic_stringstream&& __rhs); basic_stringstream& operator=(basic_stringstream&& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_stringstream& __rhs); inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) string_type str() const; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void str(const string_type& __s); }; template <class _CharT, class _Traits, class _Allocator> basic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(ios_base::openmode __wch) : basic_iostream<_CharT, _Traits>(&__sb_), __sb_(__wch) { } template <class _CharT, class _Traits, class _Allocator> basic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(const string_type& __s, ios_base::openmode __wch) : basic_iostream<_CharT, _Traits>(&__sb_), __sb_(__s, __wch) { } template <class _CharT, class _Traits, class _Allocator> basic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(basic_stringstream&& __rhs) : basic_iostream<_CharT, _Traits>(std::__1::move(__rhs)), __sb_(std::__1::move(__rhs.__sb_)) { basic_istream<_CharT, _Traits>::set_rdbuf(&__sb_); } template <class _CharT, class _Traits, class _Allocator> basic_stringstream<_CharT, _Traits, _Allocator>& basic_stringstream<_CharT, _Traits, _Allocator>::operator=(basic_stringstream&& __rhs) { basic_iostream<char_type, traits_type>::operator=(std::__1::move(__rhs)); __sb_ = std::__1::move(__rhs.__sb_); return *this; } template <class _CharT, class _Traits, class _Allocator> void basic_stringstream<_CharT, _Traits, _Allocator>::swap(basic_stringstream& __rhs) { basic_iostream<char_type, traits_type>::swap(__rhs); __sb_.swap(__rhs.__sb_); } template <class _CharT, class _Traits, class _Allocator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x, basic_stringstream<_CharT, _Traits, _Allocator>& __y) { __x.swap(__y); } template <class _CharT, class _Traits, class _Allocator> basic_stringbuf<_CharT, _Traits, _Allocator>* basic_stringstream<_CharT, _Traits, _Allocator>::rdbuf() const { return const_cast<basic_stringbuf<char_type, traits_type, allocator_type>*>(&__sb_); } template <class _CharT, class _Traits, class _Allocator> basic_string<_CharT, _Traits, _Allocator> basic_stringstream<_CharT, _Traits, _Allocator>::str() const { return __sb_.str(); } template <class _CharT, class _Traits, class _Allocator> void basic_stringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s) { __sb_.str(__s); } } } # 8 "/work/libint/src/Parser.h" 2 namespace libint { namespace parser { class Token { public: enum class Kind { Integer, Identifier, LeftParen, RightParen, LeftSquare, RightSquare, LeftCurly, RightCurly, LessThan, LessEqual, GreaterThan, GreaterEqual, Equal, NotEqual, Plus, Minus, Times, Divide, Modulo, Colon, And, Or, Unknown }; Token() : kind(Kind::Unknown) {} Token(Kind kind) : kind(kind) {} Token(Kind kind, std::string content) : kind(kind), content(content) {} bool isa(Kind kind); std::string string(); private: Kind kind; std::string content; }; inline bool Token::isa(Kind may_kind) { return kind == may_kind; } inline std::string Token::string() { return content; } class Lexer { public: Lexer(std::istream &stream) : stream(stream) { current = nextToken(); } Token peek(); Token next(); private: bool isSpace(char c); bool isDigit(char c); bool isAlpha(char c); bool isAnd(); bool isOr(); Token atom(Token::Kind kind); Token integer(); Token identifier(); Token nextToken(); Token current; std::istream &stream; }; inline bool Lexer::isSpace(char c) { switch (c) { case ' ': case '\n': return true; default: return false; } } inline bool Lexer::isDigit(char c) { if (c >= '0' && c <= '9') return true; else return false; } inline bool Lexer::isAlpha(char c) { if (c >= 'a' && c <= 'z') return true; else if (c >= 'A' && c <= 'Z') return true; else return false; } inline bool Lexer::isAnd() { if (stream.peek() != 'a') return false; stream.get(); if (stream.peek() != 'n') { stream.putback('a'); return false; } stream.get(); if (stream.peek() != 'd') { stream.putback('a'); stream.putback('n'); return false; } return true; } inline bool Lexer::isOr() { if (stream.peek() != 'o') return false; stream.get(); if (stream.peek() != 'r') { stream.putback('o'); return false; } return true; } inline Token Lexer::atom(Token::Kind kind) { stream.get(); return Token(kind); } inline Token Lexer::integer() { std::string content; while (isDigit(stream.peek())) content += stream.get(); return Token(Token::Kind::Integer, content); } inline Token Lexer::identifier() { std::string content; char c = stream.peek(); while (isDigit(c) || isAlpha(c)) { content += stream.get(); c = stream.peek(); } return Token(Token::Kind::Identifier, content); } inline Token Lexer::nextToken() { while (isSpace(stream.peek())) stream.get(); char c = stream.peek(); if (isDigit(c)) return integer(); if (isOr()) return atom(Token::Kind::Or); if (isAnd()) return atom(Token::Kind::And); if (isAlpha(c)) return identifier(); switch (c) { case '(': return atom(Token::Kind::LeftParen); case ')': return atom(Token::Kind::RightParen); case '[': return atom(Token::Kind::LeftSquare); case ']': return atom(Token::Kind::RightSquare); case '{': return atom(Token::Kind::LeftCurly); case '}': return atom(Token::Kind::RightCurly); case '+': return atom(Token::Kind::Plus); case '-': return atom(Token::Kind::Minus); case '*': return atom(Token::Kind::Times); case '/': return atom(Token::Kind::Divide); case '%': return atom(Token::Kind::Modulo); case '<': stream.get(); if (stream.peek() == '=') return atom(Token::Kind::LessEqual); stream.putback('<'); return atom(Token::Kind::LessThan); case '>': stream.get(); if (stream.peek() == '=') return atom(Token::Kind::GreaterEqual); stream.putback('>'); return atom(Token::Kind::GreaterThan); case '=': return atom(Token::Kind::Equal); case '!': stream.get(); if (stream.peek() == '=') return atom(Token::Kind::NotEqual); stream.putback('!'); return atom(Token::Kind::Unknown); case ':': return atom(Token::Kind::Colon); default: return atom(Token::Kind::Unknown); } } inline Token Lexer::peek() { return current; } inline Token Lexer::next() { Token result = current; current = nextToken(); return result; } class Expr { public: enum class Type { Integer, Variable, NAry, None }; template <class T> T *dyn_cast() { if (T::getStaticType() == getType()) return (T *)this; return nullptr; } static Type getStaticType() { return Type::None; } virtual Type getType() { return Type::None; } virtual ~Expr() = default; }; class IntegerExpr : public Expr { public: IntegerExpr(std::string value) : value(value) {} std::string getValue() { return value; } static Type getStaticType() { return Type::Integer; } virtual Type getType() { return Type::Integer; } private: std::string value; }; class VariableExpr : public Expr { public: VariableExpr(std::string name) : name(name) {} std::string getName() { return name; } static Type getStaticType() { return Type::Variable; } virtual Type getType() { return Type::Variable; } private: std::string name; }; class NAryExpr : public Expr { public: enum class Kind { Sum, Difference, Prod, LT, LE, GT, GE, EQ, NE, And, Or }; NAryExpr(std::vector<std::unique_ptr<Expr>> children, Kind kind) : children(std::move(children)), kind(kind) {} size_t getNumChildren() { return children.size(); } Expr &get(size_t position) { return *children[position].get(); } Expr &operator[](size_t position) { return *children[position].get(); } static Type getStaticType() { return Type::NAry; } virtual Type getType() { return Type::NAry; } Kind getKind() { return kind; } private: std::vector<std::unique_ptr<Expr>> children; Kind kind; }; class Parser { public: Parser(std::istream &stream) : lexer(stream) {} Parser(std::string &str) : local_stream(str), lexer(local_stream) {} std::unique_ptr<Expr> parse(); std::unique_ptr<Expr> parseOr(); std::unique_ptr<Expr> parseAnd(); std::unique_ptr<Expr> parseCmp(); std::unique_ptr<Expr> parseSum(); std::unique_ptr<Expr> parseTerm(); std::unique_ptr<Expr> parseInteger(); std::unique_ptr<Expr> parseVariable(); private: std::stringstream local_stream; Lexer lexer; }; inline std::unique_ptr<Expr> Parser::parse() { return parseOr(); } inline std::unique_ptr<Expr> Parser::parseOr() { std::vector<std::unique_ptr<Expr>> exprs; exprs.push_back(parseAnd()); while (lexer.peek().isa(Token::Kind::Or)) { lexer.next(); exprs.push_back(parseAnd()); } if (exprs.size() == 1) return std::move(exprs[0]); return std::make_unique<NAryExpr>(std::move(exprs), NAryExpr::Kind::Or); } inline std::unique_ptr<Expr> Parser::parseAnd() { std::vector<std::unique_ptr<Expr>> exprs; exprs.push_back(parseCmp()); while (lexer.peek().isa(Token::Kind::And)) { lexer.next(); exprs.push_back(parseCmp()); } if (exprs.size() == 1) return std::move(exprs[0]); return std::make_unique<NAryExpr>(std::move(exprs), NAryExpr::Kind::And); } inline std::unique_ptr<Expr> Parser::parseCmp() { std::vector<std::unique_ptr<Expr>> exprs; exprs.push_back(parseSum()); NAryExpr::Kind kind; if (lexer.peek().isa(Token::Kind::GreaterEqual)) kind = NAryExpr::Kind::GE; else if (lexer.peek().isa(Token::Kind::GreaterThan)) kind = NAryExpr::Kind::GT; else if (lexer.peek().isa(Token::Kind::Equal)) kind = NAryExpr::Kind::EQ; else if (lexer.peek().isa(Token::Kind::NotEqual)) kind = NAryExpr::Kind::NE; else if (lexer.peek().isa(Token::Kind::LessEqual)) kind = NAryExpr::Kind::LE; else if (lexer.peek().isa(Token::Kind::LessThan)) kind = NAryExpr::Kind::LT; else std::abort(); lexer.next(); exprs.push_back(parseSum()); return std::make_unique<NAryExpr>(std::move(exprs), kind); } inline std::unique_ptr<Expr> Parser::parseSum() { std::vector<std::unique_ptr<Expr>> exprs; exprs.push_back(parseTerm()); while (lexer.peek().isa(Token::Kind::Plus) || lexer.peek().isa(Token::Kind::Minus)) { if (lexer.peek().isa(Token::Kind::Minus)) { lexer.next(); auto lhs = std::make_unique<NAryExpr>(std::move(exprs), NAryExpr::Kind::Sum); auto rhs = parseTerm(); std::vector<std::unique_ptr<Expr>> exprs_diff; exprs_diff.push_back(std::move(lhs)); exprs_diff.push_back(std::move(rhs)); auto Difference = std::make_unique<NAryExpr>(std::move(exprs_diff), NAryExpr::Kind::Difference); exprs.clear(); exprs.push_back(std::move(Difference)); } else { lexer.next(); exprs.push_back(parseTerm()); } } if (exprs.size() == 1) return std::move(exprs[0]); return std::make_unique<NAryExpr>(std::move(exprs), NAryExpr::Kind::Sum); } inline std::unique_ptr<Expr> Parser::parseTerm() { std::vector<std::unique_ptr<Expr>> exprs; if (lexer.peek().isa(Token::Kind::Integer) || lexer.peek().isa(Token::Kind::Minus)) { exprs.push_back(parseInteger()); } if (lexer.peek().isa(Token::Kind::Times)) { lexer.next(); exprs.push_back(parseVariable()); } else if (lexer.peek().isa(Token::Kind::Identifier)) { exprs.push_back(parseVariable()); } if (exprs.size() == 1) return std::move(exprs[0]); return std::make_unique<NAryExpr>(std::move(exprs), NAryExpr::Kind::Prod); } inline std::unique_ptr<Expr> Parser::parseVariable() { Token t = lexer.next(); return std::make_unique<VariableExpr>(t.string()); } inline std::unique_ptr<Expr> Parser::parseInteger() { Token t = lexer.next(); std::string integer_str; if (t.isa(Token::Kind::Minus)) { t = lexer.next(); integer_str += "-"; } integer_str += t.string(); return std::make_unique<IntegerExpr>(integer_str); } class Printer { public: std::string getString(Expr &expr); Printer() {} private: void print(std::ostream &stream, Expr &expr); void print(std::ostream &stream, IntegerExpr &expr); void print(std::ostream &stream, VariableExpr &expr); void print(std::ostream &stream, NAryExpr &expr); }; inline std::string Printer::getString(Expr &expr) { std::ostringstream stream; print(stream, expr); return stream.str(); } inline void Printer::print(std::ostream &stream, Expr &expr) { if (auto intExpr = expr.dyn_cast<IntegerExpr>()) print(stream, *intExpr); if (auto varExpr = expr.dyn_cast<VariableExpr>()) print(stream, *varExpr); if (auto prodExpr = expr.dyn_cast<NAryExpr>()) print(stream, *prodExpr); } inline void Printer::print(std::ostream &stream, IntegerExpr &expr) { stream << expr.getValue(); } inline void Printer::print(std::ostream &stream, VariableExpr &expr) { stream << expr.getName(); } inline void Printer::print(std::ostream &stream, NAryExpr &expr) { print(stream, expr[0]); for (size_t i = 1; i < expr.getNumChildren(); i++) { switch (expr.getKind()) { case NAryExpr::Kind::LT: stream << " < "; break; case NAryExpr::Kind::LE: stream << " <= "; break; case NAryExpr::Kind::GT: stream << " > "; break; case NAryExpr::Kind::GE: stream << " >= "; break; case NAryExpr::Kind::EQ: stream << " = "; break; case NAryExpr::Kind::NE: stream << " != "; break; case NAryExpr::Kind::Sum: stream << " + "; break; case NAryExpr::Kind::Difference: stream << " - "; break; case NAryExpr::Kind::And: stream << " and "; break; case NAryExpr::Kind::Or: stream << " or "; break; case NAryExpr::Kind::Prod: if (!(expr.getNumChildren() == 2 && expr[0].dyn_cast<IntegerExpr>() && expr[1].dyn_cast<VariableExpr>())) stream << " * "; break; } print(stream, expr[i]); } } } }; # 6 "/work/libint/src/Simplex.h" 2 # 1 "/work/libint/src/TransprecisionMatrix.h" 1 # 1 "/opt/toolchain/target/bin/../include/c++/v1/numeric" 1 3 # 148 "/opt/toolchain/target/bin/../include/c++/v1/numeric" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/cmath" 1 3 # 304 "/opt/toolchain/target/bin/../include/c++/v1/cmath" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/math.h" 1 3 # 305 "/opt/toolchain/target/bin/../include/c++/v1/cmath" 2 3 # 309 "/opt/toolchain/target/bin/../include/c++/v1/cmath" 3 namespace std { inline namespace __1 { using ::signbit; using ::fpclassify; using ::isfinite; using ::isinf; using ::isnan; using ::isnormal; using ::isgreater; using ::isgreaterequal; using ::isless; using ::islessequal; using ::islessgreater; using ::isunordered; using ::isunordered; using ::float_t; using ::double_t; using ::abs; using ::acos; using ::acosf; using ::asin; using ::asinf; using ::atan; using ::atanf; using ::atan2; using ::atan2f; using ::ceil; using ::ceilf; using ::cos; using ::cosf; using ::cosh; using ::coshf; using ::exp; using ::expf; using ::fabs; using ::fabsf; using ::floor; using ::floorf; using ::fmod; using ::fmodf; using ::frexp; using ::frexpf; using ::ldexp; using ::ldexpf; using ::log; using ::logf; using ::log10; using ::log10f; using ::modf; using ::modff; using ::pow; using ::powf; using ::sin; using ::sinf; using ::sinh; using ::sinhf; using ::sqrt; using ::sqrtf; using ::tan; using ::tanf; using ::tanh; using ::tanhf; using ::acosh; using ::acoshf; using ::asinh; using ::asinhf; using ::atanh; using ::atanhf; using ::cbrt; using ::cbrtf; using ::copysign; using ::copysignf; using ::erf; using ::erff; using ::erfc; using ::erfcf; using ::exp2; using ::exp2f; using ::expm1; using ::expm1f; using ::fdim; using ::fdimf; using ::fmaf; using ::fma; using ::fmax; using ::fmaxf; using ::fmin; using ::fminf; using ::hypot; using ::hypotf; using ::ilogb; using ::ilogbf; using ::lgamma; using ::lgammaf; using ::llrint; using ::llrintf; using ::llround; using ::llroundf; using ::log1p; using ::log1pf; using ::log2; using ::log2f; using ::logb; using ::logbf; using ::lrint; using ::lrintf; using ::lround; using ::lroundf; using ::nan; using ::nanf; using ::nearbyint; using ::nearbyintf; using ::nextafter; using ::nextafterf; using ::nexttoward; using ::nexttowardf; using ::remainder; using ::remainderf; using ::remquo; using ::remquof; using ::rint; using ::rintf; using ::round; using ::roundf; using ::scalbln; using ::scalblnf; using ::scalbn; using ::scalbnf; using ::tgamma; using ::tgammaf; using ::trunc; using ::truncf; using ::acosl; using ::asinl; using ::atanl; using ::atan2l; using ::ceill; using ::cosl; using ::coshl; using ::expl; using ::fabsl; using ::floorl; using ::fmodl; using ::frexpl; using ::ldexpl; using ::logl; using ::log10l; using ::modfl; using ::powl; using ::sinl; using ::sinhl; using ::sqrtl; using ::tanl; using ::tanhl; using ::acoshl; using ::asinhl; using ::atanhl; using ::cbrtl; using ::copysignl; using ::erfl; using ::erfcl; using ::exp2l; using ::expm1l; using ::fdiml; using ::fmal; using ::fmaxl; using ::fminl; using ::hypotl; using ::ilogbl; using ::lgammal; using ::llrintl; using ::llroundl; using ::log1pl; using ::log2l; using ::logbl; using ::lrintl; using ::lroundl; using ::nanl; using ::nearbyintl; using ::nextafterl; using ::nexttowardl; using ::remainderl; using ::remquol; using ::rintl; using ::roundl; using ::scalblnl; using ::scalbnl; using ::tgammal; using ::truncl; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) float hypot( float x, float y, float z ) { return sqrt(x*x + y*y + z*z); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) double hypot( double x, double y, double z ) { return sqrt(x*x + y*y + z*z); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) long double hypot( long double x, long double y, long double z ) { return sqrt(x*x + y*y + z*z); } template <class _A1, class _A2, class _A3> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename __lazy_enable_if < is_arithmetic<_A1>::value && is_arithmetic<_A2>::value && is_arithmetic<_A3>::value, __promote<_A1, _A2, _A3> >::type hypot(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) noexcept { typedef typename __promote<_A1, _A2, _A3>::type __result_type; static_assert((!(is_same<_A1, __result_type>::value && is_same<_A2, __result_type>::value && is_same<_A3, __result_type>::value)), ""); return hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z); } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type __libcpp_isnan_or_builtin(_A1 __lcpp_x) noexcept { return __builtin_isnan(__lcpp_x); } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type __libcpp_isnan_or_builtin(_A1 __lcpp_x) noexcept { return isnan(__lcpp_x); } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type __libcpp_isinf_or_builtin(_A1 __lcpp_x) noexcept { return __builtin_isinf(__lcpp_x); } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type __libcpp_isinf_or_builtin(_A1 __lcpp_x) noexcept { return isinf(__lcpp_x); } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type __libcpp_isfinite_or_builtin(_A1 __lcpp_x) noexcept { return __builtin_isfinite(__lcpp_x); } template <class _A1> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type __libcpp_isfinite_or_builtin(_A1 __lcpp_x) noexcept { return isfinite(__lcpp_x); } # 635 "/opt/toolchain/target/bin/../include/c++/v1/cmath" 3 } } # 149 "/opt/toolchain/target/bin/../include/c++/v1/numeric" 2 3 # 153 "/opt/toolchain/target/bin/../include/c++/v1/numeric" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 157 "/opt/toolchain/target/bin/../include/c++/v1/numeric" 2 3 namespace std { inline namespace __1 { template <class _InputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init) { for (; __first != __last; ++__first) __init = __init + *__first; return __init; } template <class _InputIterator, class _Tp, class _BinaryOperation> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op) { for (; __first != __last; ++__first) __init = __binary_op(__init, *__first); return __init; } template <class _InputIterator, class _Tp, class _BinaryOp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp reduce(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOp __b) { for (; __first != __last; ++__first) __init = __b(__init, *__first); return __init; } template <class _InputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp reduce(_InputIterator __first, _InputIterator __last, _Tp __init) { return std::__1::reduce(__first, __last, __init, std::__1::plus<>()); } template <class _InputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) typename iterator_traits<_InputIterator>::value_type reduce(_InputIterator __first, _InputIterator __last) { return std::__1::reduce(__first, __last, typename iterator_traits<_InputIterator>::value_type{}); } template <class _InputIterator1, class _InputIterator2, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init) { for (; __first1 != __last1; ++__first1, (void) ++__first2) __init = __init + *__first1 * *__first2; return __init; } template <class _InputIterator1, class _InputIterator2, class _Tp, class _BinaryOperation1, class _BinaryOperation2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2) { for (; __first1 != __last1; ++__first1, (void) ++__first2) __init = __binary_op1(__init, __binary_op2(*__first1, *__first2)); return __init; } template <class _InputIterator, class _Tp, class _BinaryOp, class _UnaryOp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp transform_reduce(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOp __b, _UnaryOp __u) { for (; __first != __last; ++__first) __init = __b(__init, __u(*__first)); return __init; } template <class _InputIterator1, class _InputIterator2, class _Tp, class _BinaryOp1, class _BinaryOp2> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp transform_reduce(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init, _BinaryOp1 __b1, _BinaryOp2 __b2) { for (; __first1 != __last1; ++__first1, (void) ++__first2) __init = __b1(__init, __b2(*__first1, *__first2)); return __init; } template <class _InputIterator1, class _InputIterator2, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp transform_reduce(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init) { return std::__1::transform_reduce(__first1, __last1, __first2, std::__1::move(__init), std::__1::plus<>(), std::__1::multiplies<>()); } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator partial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { if (__first != __last) { typename iterator_traits<_InputIterator>::value_type __t(*__first); *__result = __t; for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result) { __t = __t + *__first; *__result = __t; } } return __result; } template <class _InputIterator, class _OutputIterator, class _BinaryOperation> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator partial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op) { if (__first != __last) { typename iterator_traits<_InputIterator>::value_type __t(*__first); *__result = __t; for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result) { __t = __binary_op(__t, *__first); *__result = __t; } } return __result; } template <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator exclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Tp __init, _BinaryOp __b) { if (__first != __last) { _Tp __saved = __init; do { __init = __b(__init, *__first); *__result = __saved; __saved = __init; ++__result; } while (++__first != __last); } return __result; } template <class _InputIterator, class _OutputIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator exclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Tp __init) { return std::__1::exclusive_scan(__first, __last, __result, __init, std::__1::plus<>()); } template <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp> _OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOp __b, _Tp __init) { for (; __first != __last; ++__first, (void) ++__result) { __init = __b(__init, *__first); *__result = __init; } return __result; } template <class _InputIterator, class _OutputIterator, class _BinaryOp> _OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOp __b) { if (__first != __last) { typename std::iterator_traits<_InputIterator>::value_type __init = *__first; *__result++ = __init; if (++__first != __last) return std::__1::inclusive_scan(__first, __last, __result, __b, __init); } return __result; } template <class _InputIterator, class _OutputIterator> _OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { return std::__1::inclusive_scan(__first, __last, __result, std::plus<>()); } template <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp, class _UnaryOp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator transform_exclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Tp __init, _BinaryOp __b, _UnaryOp __u) { if (__first != __last) { _Tp __saved = __init; do { __init = __b(__init, __u(*__first)); *__result = __saved; __saved = __init; ++__result; } while (++__first != __last); } return __result; } template <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp, class _UnaryOp> _OutputIterator transform_inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOp __b, _UnaryOp __u, _Tp __init) { for (; __first != __last; ++__first, (void) ++__result) { __init = __b(__init, __u(*__first)); *__result = __init; } return __result; } template <class _InputIterator, class _OutputIterator, class _BinaryOp, class _UnaryOp> _OutputIterator transform_inclusive_scan(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOp __b, _UnaryOp __u) { if (__first != __last) { typename std::iterator_traits<_InputIterator>::value_type __init = __u(*__first); *__result++ = __init; if (++__first != __last) return std::__1::transform_inclusive_scan(__first, __last, __result, __b, __u, __init); } return __result; } template <class _InputIterator, class _OutputIterator> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator adjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result) { if (__first != __last) { typename iterator_traits<_InputIterator>::value_type __t1(*__first); *__result = __t1; for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result) { typename iterator_traits<_InputIterator>::value_type __t2(*__first); *__result = __t2 - __t1; __t1 = std::__1::move(__t2); } } return __result; } template <class _InputIterator, class _OutputIterator, class _BinaryOperation> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _OutputIterator adjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryOperation __binary_op) { if (__first != __last) { typename iterator_traits<_InputIterator>::value_type __t1(*__first); *__result = __t1; for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result) { typename iterator_traits<_InputIterator>::value_type __t2(*__first); *__result = __binary_op(__t2, __t1); __t1 = std::__1::move(__t2); } } return __result; } template <class _ForwardIterator, class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value_) { for (; __first != __last; ++__first, (void) ++__value_) *__first = __value_; } template <typename _Result, typename _Source, bool _IsSigned = is_signed<_Source>::value> struct __abs; template <typename _Result, typename _Source> struct __abs<_Result, _Source, true> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Result operator()(_Source __t) const noexcept { if (__t >= 0) return __t; if (__t == numeric_limits<_Source>::min()) return -static_cast<_Result>(__t); return -__t; } }; template <typename _Result, typename _Source> struct __abs<_Result, _Source, false> { constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Result operator()(_Source __t) const noexcept { return __t; } }; template<class _Tp> constexpr __attribute__ ((__visibility__("hidden"))) _Tp __gcd(_Tp __m, _Tp __n) { static_assert((!is_signed<_Tp>::value), ""); return __n == 0 ? __m : std::__1::__gcd<_Tp>(__n, __m % __n); } template<class _Tp, class _Up> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) common_type_t<_Tp,_Up> gcd(_Tp __m, _Up __n) { static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), "Arguments to gcd must be integer types"); static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), "First argument to gcd cannot be bool" ); static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), "Second argument to gcd cannot be bool" ); using _Rp = common_type_t<_Tp,_Up>; using _Wp = make_unsigned_t<_Rp>; return static_cast<_Rp>(std::__1::__gcd( static_cast<_Wp>(__abs<_Rp, _Tp>()(__m)), static_cast<_Wp>(__abs<_Rp, _Up>()(__n)))); } template<class _Tp, class _Up> constexpr __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) common_type_t<_Tp,_Up> lcm(_Tp __m, _Up __n) { static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), "Arguments to lcm must be integer types"); static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), "First argument to lcm cannot be bool" ); static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), "Second argument to lcm cannot be bool" ); if (__m == 0 || __n == 0) return 0; using _Rp = common_type_t<_Tp,_Up>; _Rp __val1 = __abs<_Rp, _Tp>()(__m) / std::__1::gcd(__m, __n); _Rp __val2 = __abs<_Rp, _Up>()(__n); ((void)0); return __val1 * __val2; } # 578 "/opt/toolchain/target/bin/../include/c++/v1/numeric" 3 } } # 6 "/work/libint/src/TransprecisionMatrix.h" 2 # 1 "/opt/toolchain/target/bin/../include/c++/v1/variant" 1 3 # 214 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 # 1 "/opt/toolchain/target/bin/../include/c++/v1/__undef_macros" 1 3 # 218 "/opt/toolchain/target/bin/../include/c++/v1/variant" 2 3 namespace std { class __attribute__ ((__visibility__("default"))) bad_variant_access : public exception { public: virtual const char* what() const noexcept; }; } namespace std { inline namespace __1 { [[noreturn]] inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __throw_bad_variant_access() { std::__1::abort(); } template <class... _Types> class __attribute__ ((__type_visibility__("default"))) variant; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_size; template <class _Tp> inline constexpr size_t variant_size_v = variant_size<_Tp>::value; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_size<const _Tp> : variant_size<_Tp> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_size<volatile _Tp> : variant_size<_Tp> {}; template <class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_size<const volatile _Tp> : variant_size<_Tp> {}; template <class... _Types> struct __attribute__ ((__type_visibility__("default"))) variant_size<variant<_Types...>> : integral_constant<size_t, sizeof...(_Types)> {}; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_alternative; template <size_t _Ip, class _Tp> using variant_alternative_t = typename variant_alternative<_Ip, _Tp>::type; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_alternative<_Ip, const _Tp> : add_const<variant_alternative_t<_Ip, _Tp>> {}; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_alternative<_Ip, volatile _Tp> : add_volatile<variant_alternative_t<_Ip, _Tp>> {}; template <size_t _Ip, class _Tp> struct __attribute__ ((__type_visibility__("default"))) variant_alternative<_Ip, const volatile _Tp> : add_cv<variant_alternative_t<_Ip, _Tp>> {}; template <size_t _Ip, class... _Types> struct __attribute__ ((__type_visibility__("default"))) variant_alternative<_Ip, variant<_Types...>> { static_assert(_Ip < sizeof...(_Types), "Index out of bounds in std::variant_alternative<>"); using type = __type_pack_element<_Ip, _Types...>; }; inline constexpr size_t variant_npos = static_cast<size_t>(-1); constexpr int __choose_index_type(unsigned int __num_elem) { if (__num_elem < std::numeric_limits<unsigned char>::max()) return 0; if (__num_elem < std::numeric_limits<unsigned short>::max()) return 1; return 2; } template <size_t _NumAlts> using __variant_index_t = unsigned int; template <class _IndexType> constexpr _IndexType __variant_npos = static_cast<_IndexType>(-1); namespace __find_detail { template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t __find_index() { constexpr bool __matches[] = {is_same_v<_Tp, _Types>...}; size_t __result = __not_found; for (size_t __i = 0; __i < sizeof...(_Types); ++__i) { if (__matches[__i]) { if (__result != __not_found) { return __ambiguous; } __result = __i; } } return __result; } template <size_t _Index> struct __find_unambiguous_index_sfinae_impl : integral_constant<size_t, _Index> {}; template <> struct __find_unambiguous_index_sfinae_impl<__not_found> {}; template <> struct __find_unambiguous_index_sfinae_impl<__ambiguous> {}; template <class _Tp, class... _Types> struct __find_unambiguous_index_sfinae : __find_unambiguous_index_sfinae_impl<__find_index<_Tp, _Types...>()> {}; } namespace __variant_detail { struct __valueless_t {}; enum class _Trait { _TriviallyAvailable, _Available, _Unavailable }; template <typename _Tp, template <typename> class _IsTriviallyAvailable, template <typename> class _IsAvailable> constexpr _Trait __trait = _IsTriviallyAvailable<_Tp>::value ? _Trait::_TriviallyAvailable : _IsAvailable<_Tp>::value ? _Trait::_Available : _Trait::_Unavailable; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Trait __common_trait(initializer_list<_Trait> __traits) { _Trait __result = _Trait::_TriviallyAvailable; for (_Trait __t : __traits) { if (static_cast<int>(__t) > static_cast<int>(__result)) { __result = __t; } } return __result; } template <typename... _Types> struct __traits { static constexpr _Trait __copy_constructible_trait = __common_trait({__trait<_Types, is_trivially_copy_constructible, is_copy_constructible>...}); static constexpr _Trait __move_constructible_trait = __common_trait({__trait<_Types, is_trivially_move_constructible, is_move_constructible>...}); static constexpr _Trait __copy_assignable_trait = __common_trait( {__copy_constructible_trait, __trait<_Types, is_trivially_copy_assignable, is_copy_assignable>...}); static constexpr _Trait __move_assignable_trait = __common_trait( {__move_constructible_trait, __trait<_Types, is_trivially_move_assignable, is_move_assignable>...}); static constexpr _Trait __destructible_trait = __common_trait( {__trait<_Types, is_trivially_destructible, is_destructible>...}); }; namespace __access { struct __union { template <class _Vp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto&& __get_alt(_Vp&& __v, in_place_index_t<0>) { return std::__1::forward<_Vp>(__v).__head; } template <class _Vp, size_t _Ip> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto&& __get_alt(_Vp&& __v, in_place_index_t<_Ip>) { return __get_alt(std::__1::forward<_Vp>(__v).__tail, in_place_index<_Ip - 1>); } }; struct __base { template <size_t _Ip, class _Vp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto&& __get_alt(_Vp&& __v) { return __union::__get_alt(std::__1::forward<_Vp>(__v).__data, in_place_index<_Ip>); } }; struct __variant { template <size_t _Ip, class _Vp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto&& __get_alt(_Vp&& __v) { return __base::__get_alt<_Ip>(std::__1::forward<_Vp>(__v).__impl); } }; } namespace __visitation { struct __base { template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __visit_alt_at(size_t __index, _Visitor&& __visitor, _Vs&&... __vs) { constexpr auto __fdiagonal = __make_fdiagonal<_Visitor&&, decltype(std::__1::forward<_Vs>(__vs).__as_base())...>(); return __fdiagonal[__index](std::__1::forward<_Visitor>(__visitor), std::__1::forward<_Vs>(__vs).__as_base()...); } template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __visit_alt(_Visitor&& __visitor, _Vs&&... __vs) { constexpr auto __fmatrix = __make_fmatrix<_Visitor&&, decltype(std::__1::forward<_Vs>(__vs).__as_base())...>(); return __at(__fmatrix, __vs.index()...)( std::__1::forward<_Visitor>(__visitor), std::__1::forward<_Vs>(__vs).__as_base()...); } private: template <class _Tp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr const _Tp& __at(const _Tp& __elem) { return __elem; } template <class _Tp, size_t _Np, typename... _Indices> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto&& __at(const array<_Tp, _Np>& __elems, size_t __index, _Indices... __indices) { return __at(__elems[__index], __indices...); } template <class _Fp, class... _Fs> static constexpr void __std_visit_visitor_return_type_check() { static_assert( __all<is_same_v<_Fp, _Fs>...>::value, "`std::visit` requires the visitor to have a single return type."); } template <class... _Fs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_farray(_Fs&&... __fs) { __std_visit_visitor_return_type_check<__uncvref_t<_Fs>...>(); using __result = array<common_type_t<__uncvref_t<_Fs>...>, sizeof...(_Fs)>; return __result{{std::__1::forward<_Fs>(__fs)...}}; } template <std::size_t... _Is> struct __dispatcher { template <class _Fp, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __dispatch(_Fp __f, _Vs... __vs) { return __invoke_constexpr( static_cast<_Fp>(__f), __access::__base::__get_alt<_Is>(static_cast<_Vs>(__vs))...); } }; template <class _Fp, class... _Vs, size_t... _Is> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_dispatch(index_sequence<_Is...>) { return __dispatcher<_Is...>::template __dispatch<_Fp, _Vs...>; } template <size_t _Ip, class _Fp, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_fdiagonal_impl() { return __make_dispatch<_Fp, _Vs...>( index_sequence<(__identity<_Vs>{}, _Ip)...>{}); } template <class _Fp, class... _Vs, size_t... _Is> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_fdiagonal_impl(index_sequence<_Is...>) { return __base::__make_farray(__make_fdiagonal_impl<_Is, _Fp, _Vs...>()...); } template <class _Fp, class _Vp, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_fdiagonal() { constexpr size_t _Np = __uncvref_t<_Vp>::__size(); static_assert(__all<(_Np == __uncvref_t<_Vs>::__size())...>::value); return __make_fdiagonal_impl<_Fp, _Vp, _Vs...>(make_index_sequence<_Np>{}); } template <class _Fp, class... _Vs, size_t... _Is> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_fmatrix_impl(index_sequence<_Is...> __is) { return __make_dispatch<_Fp, _Vs...>(__is); } template <class _Fp, class... _Vs, size_t... _Is, size_t... _Js, class... _Ls> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_fmatrix_impl(index_sequence<_Is...>, index_sequence<_Js...>, _Ls... __ls) { return __base::__make_farray(__make_fmatrix_impl<_Fp, _Vs...>( index_sequence<_Is..., _Js>{}, __ls...)...); } template <class _Fp, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_fmatrix() { return __make_fmatrix_impl<_Fp, _Vs...>( index_sequence<>{}, make_index_sequence<__uncvref_t<_Vs>::__size()>{}...); } }; struct __variant { template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __visit_alt_at(size_t __index, _Visitor&& __visitor, _Vs&&... __vs) { return __base::__visit_alt_at(__index, std::__1::forward<_Visitor>(__visitor), std::__1::forward<_Vs>(__vs).__impl...); } template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __visit_alt(_Visitor&& __visitor, _Vs&&... __vs) { return __base::__visit_alt(std::__1::forward<_Visitor>(__visitor), std::__1::forward<_Vs>(__vs).__impl...); } template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __visit_value_at(size_t __index, _Visitor&& __visitor, _Vs&&... __vs) { return __visit_alt_at( __index, __make_value_visitor(std::__1::forward<_Visitor>(__visitor)), std::__1::forward<_Vs>(__vs)...); } template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr decltype(auto) __visit_value(_Visitor&& __visitor, _Vs&&... __vs) { return __visit_alt( __make_value_visitor(std::__1::forward<_Visitor>(__visitor)), std::__1::forward<_Vs>(__vs)...); } private: template <class _Visitor, class... _Values> static constexpr void __std_visit_exhaustive_visitor_check() { static_assert(is_invocable_v<_Visitor, _Values...>, "`std::visit` requires the visitor to be exhaustive."); } template <class _Visitor> struct __value_visitor { template <class... _Alts> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) operator()(_Alts&&... __alts) const { __std_visit_exhaustive_visitor_check< _Visitor, decltype((std::__1::forward<_Alts>(__alts).__value))...>(); return __invoke_constexpr(std::__1::forward<_Visitor>(__visitor), std::__1::forward<_Alts>(__alts).__value...); } _Visitor&& __visitor; }; template <class _Visitor> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr auto __make_value_visitor(_Visitor&& __visitor) { return __value_visitor<_Visitor>{std::__1::forward<_Visitor>(__visitor)}; } }; } template <size_t _Index, class _Tp> struct __attribute__ ((__type_visibility__("default"))) __alt { using __value_type = _Tp; template <class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __alt(in_place_t, _Args&&... __args) : __value(std::__1::forward<_Args>(__args)...) {} __value_type __value; }; template <_Trait _DestructibleTrait, size_t _Index, class... _Types> union __attribute__ ((__type_visibility__("default"))) __union; template <_Trait _DestructibleTrait, size_t _Index> union __attribute__ ((__type_visibility__("default"))) __union<_DestructibleTrait, _Index> {}; # 667 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <size_t _Index, class _Tp, class... _Types> union __attribute__ ((__type_visibility__("default"))) __union<_Trait::_TriviallyAvailable, _Index, _Tp, _Types...> { public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(__valueless_t) noexcept : __dummy{} {} template <class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(in_place_index_t<0>, _Args&&... __args) : __head(in_place, std::__1::forward<_Args>(__args)...) {} template <size_t _Ip, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(in_place_index_t<_Ip>, _Args&&... __args) : __tail(in_place_index<_Ip - 1>, std::__1::forward<_Args>(__args)...) {} __union(const __union&) = default; __union(__union&&) = default; ~__union() = default; __union& operator=(const __union&) = default; __union& operator=(__union&&) = default; private: char __dummy; __alt<_Index, _Tp> __head; __union<_Trait::_TriviallyAvailable, _Index + 1, _Types...> __tail; friend struct __access::__union; }; template <size_t _Index, class _Tp, class... _Types> union __attribute__ ((__type_visibility__("default"))) __union<_Trait::_Available, _Index, _Tp, _Types...> { public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(__valueless_t) noexcept : __dummy{} {} template <class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(in_place_index_t<0>, _Args&&... __args) : __head(in_place, std::__1::forward<_Args>(__args)...) {} template <size_t _Ip, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(in_place_index_t<_Ip>, _Args&&... __args) : __tail(in_place_index<_Ip - 1>, std::__1::forward<_Args>(__args)...) {} __union(const __union&) = default; __union(__union&&) = default; ~__union() {} __union& operator=(const __union&) = default; __union& operator=(__union&&) = default; private: char __dummy; __alt<_Index, _Tp> __head; __union<_Trait::_Available, _Index + 1, _Types...> __tail; friend struct __access::__union; }; template <size_t _Index, class _Tp, class... _Types> union __attribute__ ((__type_visibility__("default"))) __union<_Trait::_Unavailable, _Index, _Tp, _Types...> { public: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(__valueless_t) noexcept : __dummy{} {} template <class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(in_place_index_t<0>, _Args&&... __args) : __head(in_place, std::__1::forward<_Args>(__args)...) {} template <size_t _Ip, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __union(in_place_index_t<_Ip>, _Args&&... __args) : __tail(in_place_index<_Ip - 1>, std::__1::forward<_Args>(__args)...) {} __union(const __union&) = default; __union(__union&&) = default; ~__union() = delete; __union& operator=(const __union&) = default; __union& operator=(__union&&) = default; private: char __dummy; __alt<_Index, _Tp> __head; __union<_Trait::_Unavailable, _Index + 1, _Types...> __tail; friend struct __access::__union; }; template <_Trait _DestructibleTrait, class... _Types> class __attribute__ ((__type_visibility__("default"))) __base { public: using __index_t = __variant_index_t<sizeof...(_Types)>; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __base(__valueless_t tag) noexcept : __data(tag), __index(__variant_npos<__index_t>) {} template <size_t _Ip, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr __base(in_place_index_t<_Ip>, _Args&&... __args) : __data(in_place_index<_Ip>, std::__1::forward<_Args>(__args)...), __index(_Ip) {} inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool valueless_by_exception() const noexcept { return index() == variant_npos; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t index() const noexcept { return __index == __variant_npos<__index_t> ? variant_npos : __index; } protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto&& __as_base() & { return *this; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto&& __as_base() && { return std::__1::move(*this); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto&& __as_base() const & { return *this; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto&& __as_base() const && { return std::__1::move(*this); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static constexpr size_t __size() { return sizeof...(_Types); } __union<_DestructibleTrait, 0, _Types...> __data; __index_t __index; friend struct __access::__base; friend struct __visitation::__base; }; template <class _Traits, _Trait = _Traits::__destructible_trait> class __attribute__ ((__type_visibility__("default"))) __destructor; # 748 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __destructor<__traits<_Types...>, _Trait::_TriviallyAvailable> : public __base<_Trait::_TriviallyAvailable, _Types...> { using __base_type = __base<_Trait::_TriviallyAvailable, _Types...>; using __index_t = typename __base_type::__index_t; public: using __base_type::__base_type; using __base_type::operator=; __destructor(const __destructor&) = default; __destructor(__destructor&&) = default; ~__destructor() = default; __destructor& operator=(const __destructor&) = default; __destructor& operator=(__destructor&&) = default; protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destroy() noexcept { this->__index = __variant_npos<__index_t>; } }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __destructor<__traits<_Types...>, _Trait::_Available> : public __base<_Trait::_Available, _Types...> { using __base_type = __base<_Trait::_Available, _Types...>; using __index_t = typename __base_type::__index_t; public: using __base_type::__base_type; using __base_type::operator=; __destructor(const __destructor&) = default; __destructor(__destructor&&) = default; ~__destructor() { __destroy(); } __destructor& operator=(const __destructor&) = default; __destructor& operator=(__destructor&&) = default; protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destroy() noexcept { if (!this->valueless_by_exception()) { __visitation::__base::__visit_alt( [](auto& __alt) noexcept { using __alt_type = __uncvref_t<decltype(__alt)>; __alt.~__alt_type(); }, *this); } this->__index = __variant_npos<__index_t>; } }; # 768 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __destructor<__traits<_Types...>, _Trait::_Unavailable> : public __base<_Trait::_Unavailable, _Types...> { using __base_type = __base<_Trait::_Unavailable, _Types...>; using __index_t = typename __base_type::__index_t; public: using __base_type::__base_type; using __base_type::operator=; __destructor(const __destructor&) = default; __destructor(__destructor&&) = default; ~__destructor() = delete; __destructor& operator=(const __destructor&) = default; __destructor& operator=(__destructor&&) = default; protected: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __destroy() noexcept = delete; }; template <class _Traits> class __attribute__ ((__type_visibility__("default"))) __constructor : public __destructor<_Traits> { using __base_type = __destructor<_Traits>; public: using __base_type::__base_type; using __base_type::operator=; protected: template <size_t _Ip, class _Tp, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static _Tp& __construct_alt(__alt<_Ip, _Tp>& __a, _Args&&... __args) { ::new ((void*)std::__1::addressof(__a)) __alt<_Ip, _Tp>(in_place, std::__1::forward<_Args>(__args)...); return __a.__value; } template <class _Rhs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) static void __generic_construct(__constructor& __lhs, _Rhs&& __rhs) { __lhs.__destroy(); if (!__rhs.valueless_by_exception()) { __visitation::__base::__visit_alt_at( __rhs.index(), [](auto& __lhs_alt, auto&& __rhs_alt) { __construct_alt( __lhs_alt, std::__1::forward<decltype(__rhs_alt)>(__rhs_alt).__value); }, __lhs, std::__1::forward<_Rhs>(__rhs)); __lhs.__index = __rhs.index(); } } }; template <class _Traits, _Trait = _Traits::__move_constructible_trait> class __attribute__ ((__type_visibility__("default"))) __move_constructor; # 832 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __move_constructor<__traits<_Types...>, _Trait::_TriviallyAvailable> : public __constructor<__traits<_Types...>> { using __base_type = __constructor<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __move_constructor(const __move_constructor&) = default; __move_constructor(__move_constructor&& __that) = default; ~__move_constructor() = default; __move_constructor& operator=(const __move_constructor&) = default; __move_constructor& operator=(__move_constructor&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __move_constructor<__traits<_Types...>, _Trait::_Available> : public __constructor<__traits<_Types...>> { using __base_type = __constructor<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __move_constructor(const __move_constructor&) = default; __move_constructor(__move_constructor&& __that) noexcept( __all<is_nothrow_move_constructible_v<_Types>...>::value) : __move_constructor(__valueless_t{}) { this->__generic_construct(*this, std::__1::move(__that)); } ~__move_constructor() = default; __move_constructor& operator=(const __move_constructor&) = default; __move_constructor& operator=(__move_constructor&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __move_constructor<__traits<_Types...>, _Trait::_Unavailable> : public __constructor<__traits<_Types...>> { using __base_type = __constructor<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __move_constructor(const __move_constructor&) = default; __move_constructor(__move_constructor&&) = delete; ~__move_constructor() = default; __move_constructor& operator=(const __move_constructor&) = default; __move_constructor& operator=(__move_constructor&&) = default; }; template <class _Traits, _Trait = _Traits::__copy_constructible_trait> class __attribute__ ((__type_visibility__("default"))) __copy_constructor; # 872 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __copy_constructor<__traits<_Types...>, _Trait::_TriviallyAvailable> : public __move_constructor<__traits<_Types...>> { using __base_type = __move_constructor<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __copy_constructor(const __copy_constructor& __that) = default; __copy_constructor(__copy_constructor&&) = default; ~__copy_constructor() = default; __copy_constructor& operator=(const __copy_constructor&) = default; __copy_constructor& operator=(__copy_constructor&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __copy_constructor<__traits<_Types...>, _Trait::_Available> : public __move_constructor<__traits<_Types...>> { using __base_type = __move_constructor<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __copy_constructor(const __copy_constructor& __that) : __copy_constructor(__valueless_t{}) { this->__generic_construct(*this, __that); } __copy_constructor(__copy_constructor&&) = default; ~__copy_constructor() = default; __copy_constructor& operator=(const __copy_constructor&) = default; __copy_constructor& operator=(__copy_constructor&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __copy_constructor<__traits<_Types...>, _Trait::_Unavailable> : public __move_constructor<__traits<_Types...>> { using __base_type = __move_constructor<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __copy_constructor(const __copy_constructor&) = delete; __copy_constructor(__copy_constructor&&) = default; ~__copy_constructor() = default; __copy_constructor& operator=(const __copy_constructor&) = default; __copy_constructor& operator=(__copy_constructor&&) = default; }; template <class _Traits> class __attribute__ ((__type_visibility__("default"))) __assignment : public __copy_constructor<_Traits> { using __base_type = __copy_constructor<_Traits>; public: using __base_type::__base_type; using __base_type::operator=; template <size_t _Ip, class... _Args> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto& __emplace(_Args&&... __args) { this->__destroy(); auto& __res = this->__construct_alt(__access::__base::__get_alt<_Ip>(*this), std::__1::forward<_Args>(__args)...); this->__index = _Ip; return __res; } protected: template <size_t _Ip, class _Tp, class _Arg> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __assign_alt(__alt<_Ip, _Tp>& __a, _Arg&& __arg) { if (this->index() == _Ip) { __a.__value = std::__1::forward<_Arg>(__arg); } else { struct { void operator()(true_type) const { __this->__emplace<_Ip>(std::__1::forward<_Arg>(__arg)); } void operator()(false_type) const { __this->__emplace<_Ip>(_Tp(std::__1::forward<_Arg>(__arg))); } __assignment* __this; _Arg&& __arg; } __impl{this, std::__1::forward<_Arg>(__arg)}; __impl(bool_constant<is_nothrow_constructible_v<_Tp, _Arg> || !is_nothrow_move_constructible_v<_Tp>>{}); } } template <class _That> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __generic_assign(_That&& __that) { if (this->valueless_by_exception() && __that.valueless_by_exception()) { } else if (__that.valueless_by_exception()) { this->__destroy(); } else { __visitation::__base::__visit_alt_at( __that.index(), [this](auto& __this_alt, auto&& __that_alt) { this->__assign_alt( __this_alt, std::__1::forward<decltype(__that_alt)>(__that_alt).__value); }, *this, std::__1::forward<_That>(__that)); } } }; template <class _Traits, _Trait = _Traits::__move_assignable_trait> class __attribute__ ((__type_visibility__("default"))) __move_assignment; # 971 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __move_assignment<__traits<_Types...>, _Trait::_TriviallyAvailable> : public __assignment<__traits<_Types...>> { using __base_type = __assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __move_assignment(const __move_assignment&) = default; __move_assignment(__move_assignment&&) = default; ~__move_assignment() = default; __move_assignment& operator=(const __move_assignment&) = default; __move_assignment& operator=(__move_assignment&& __that) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __move_assignment<__traits<_Types...>, _Trait::_Available> : public __assignment<__traits<_Types...>> { using __base_type = __assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __move_assignment(const __move_assignment&) = default; __move_assignment(__move_assignment&&) = default; ~__move_assignment() = default; __move_assignment& operator=(const __move_assignment&) = default; __move_assignment& operator=(__move_assignment&& __that) noexcept( __all<(is_nothrow_move_constructible_v<_Types> && is_nothrow_move_assignable_v<_Types>)...>::value) { this->__generic_assign(std::__1::move(__that)); return *this; } }; # 984 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __move_assignment<__traits<_Types...>, _Trait::_Unavailable> : public __assignment<__traits<_Types...>> { using __base_type = __assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __move_assignment(const __move_assignment&) = default; __move_assignment(__move_assignment&&) = default; ~__move_assignment() = default; __move_assignment& operator=(const __move_assignment&) = default; __move_assignment& operator=(__move_assignment&&) = delete; }; template <class _Traits, _Trait = _Traits::__copy_assignable_trait> class __attribute__ ((__type_visibility__("default"))) __copy_assignment; # 1012 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __copy_assignment<__traits<_Types...>, _Trait::_TriviallyAvailable> : public __move_assignment<__traits<_Types...>> { using __base_type = __move_assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __copy_assignment(const __copy_assignment&) = default; __copy_assignment(__copy_assignment&&) = default; ~__copy_assignment() = default; __copy_assignment& operator=(const __copy_assignment& __that) = default; __copy_assignment& operator=(__copy_assignment&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __copy_assignment<__traits<_Types...>, _Trait::_Available> : public __move_assignment<__traits<_Types...>> { using __base_type = __move_assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __copy_assignment(const __copy_assignment&) = default; __copy_assignment(__copy_assignment&&) = default; ~__copy_assignment() = default; __copy_assignment& operator=(const __copy_assignment& __that) { this->__generic_assign(__that); return *this; } __copy_assignment& operator=(__copy_assignment&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __copy_assignment<__traits<_Types...>, _Trait::_Unavailable> : public __move_assignment<__traits<_Types...>> { using __base_type = __move_assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; __copy_assignment(const __copy_assignment&) = default; __copy_assignment(__copy_assignment&&) = default; ~__copy_assignment() = default; __copy_assignment& operator=(const __copy_assignment&) = delete; __copy_assignment& operator=(__copy_assignment&&) = default; }; template <class... _Types> class __attribute__ ((__type_visibility__("default"))) __impl : public __copy_assignment<__traits<_Types...>> { using __base_type = __copy_assignment<__traits<_Types...>>; public: using __base_type::__base_type; using __base_type::operator=; template <size_t _Ip, class _Arg> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __assign(_Arg&& __arg) { this->__assign_alt(__access::__base::__get_alt<_Ip>(*this), std::__1::forward<_Arg>(__arg)); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void __swap(__impl& __that) { if (this->valueless_by_exception() && __that.valueless_by_exception()) { } else if (this->index() == __that.index()) { __visitation::__base::__visit_alt_at( this->index(), [](auto& __this_alt, auto& __that_alt) { using std::__1::swap; swap(__this_alt.__value, __that_alt.__value); }, *this, __that); } else { __impl* __lhs = this; __impl* __rhs = std::__1::addressof(__that); if (__lhs->__move_nothrow() && !__rhs->__move_nothrow()) { std::__1::swap(__lhs, __rhs); } __impl __tmp(std::__1::move(*__rhs)); # 1078 "/opt/toolchain/target/bin/../include/c++/v1/variant" 3 this->__generic_construct(*__rhs, std::__1::move(*__lhs)); this->__generic_construct(*__lhs, std::__1::move(__tmp)); } } private: inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) bool __move_nothrow() const { constexpr bool __results[] = {is_nothrow_move_constructible_v<_Types>...}; return this->valueless_by_exception() || __results[this->index()]; } }; template <class... _Types> struct __overload; template <> struct __overload<> { void operator()() const; }; template <class _Tp, class... _Types> struct __overload<_Tp, _Types...> : __overload<_Types...> { using __overload<_Types...>::operator(); __identity<_Tp> operator()(_Tp) const; }; template <class _Tp, class... _Types> using __best_match_t = typename result_of_t<__overload<_Types...>(_Tp&&)>::type; } template <class... _Types> class __attribute__ ((__type_visibility__("default"))) variant : private __sfinae_ctor_base< __all<is_copy_constructible_v<_Types>...>::value, __all<is_move_constructible_v<_Types>...>::value>, private __sfinae_assign_base< __all<(is_copy_constructible_v<_Types> && is_copy_assignable_v<_Types>)...>::value, __all<(is_move_constructible_v<_Types> && is_move_assignable_v<_Types>)...>::value> { static_assert(0 < sizeof...(_Types), "variant must consist of at least one alternative."); static_assert(__all<!is_array_v<_Types>...>::value, "variant can not have an array type as an alternative."); static_assert(__all<!is_reference_v<_Types>...>::value, "variant can not have a reference type as an alternative."); static_assert(__all<!is_void_v<_Types>...>::value, "variant can not have a void type as an alternative."); using __first_type = variant_alternative_t<0, variant>; public: template <bool _Dummy = true, enable_if_t<__dependent_type<is_default_constructible<__first_type>, _Dummy>::value, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr variant() noexcept(is_nothrow_default_constructible_v<__first_type>) : __impl(in_place_index<0>) {} variant(const variant&) = default; variant(variant&&) = default; template < class _Arg, enable_if_t<!is_same_v<__uncvref_t<_Arg>, variant>, int> = 0, enable_if_t<!__is_inplace_type<__uncvref_t<_Arg>>::value, int> = 0, enable_if_t<!__is_inplace_index<__uncvref_t<_Arg>>::value, int> = 0, class _Tp = __variant_detail::__best_match_t<_Arg, _Types...>, size_t _Ip = __find_detail::__find_unambiguous_index_sfinae<_Tp, _Types...>::value, enable_if_t<is_constructible_v<_Tp, _Arg>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr variant(_Arg&& __arg) noexcept( is_nothrow_constructible_v<_Tp, _Arg>) : __impl(in_place_index<_Ip>, std::__1::forward<_Arg>(__arg)) {} template <size_t _Ip, class... _Args, class = enable_if_t<(_Ip < sizeof...(_Types)), int>, class _Tp = variant_alternative_t<_Ip, variant<_Types...>>, enable_if_t<is_constructible_v<_Tp, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr variant( in_place_index_t<_Ip>, _Args&&... __args) noexcept(is_nothrow_constructible_v<_Tp, _Args...>) : __impl(in_place_index<_Ip>, std::__1::forward<_Args>(__args)...) {} template < size_t _Ip, class _Up, class... _Args, enable_if_t<(_Ip < sizeof...(_Types)), int> = 0, class _Tp = variant_alternative_t<_Ip, variant<_Types...>>, enable_if_t<is_constructible_v<_Tp, initializer_list<_Up>&, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr variant( in_place_index_t<_Ip>, initializer_list<_Up> __il, _Args&&... __args) noexcept( is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>) : __impl(in_place_index<_Ip>, __il, std::__1::forward<_Args>(__args)...) {} template < class _Tp, class... _Args, size_t _Ip = __find_detail::__find_unambiguous_index_sfinae<_Tp, _Types...>::value, enable_if_t<is_constructible_v<_Tp, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr variant(in_place_type_t<_Tp>, _Args&&... __args) noexcept( is_nothrow_constructible_v<_Tp, _Args...>) : __impl(in_place_index<_Ip>, std::__1::forward<_Args>(__args)...) {} template < class _Tp, class _Up, class... _Args, size_t _Ip = __find_detail::__find_unambiguous_index_sfinae<_Tp, _Types...>::value, enable_if_t<is_constructible_v<_Tp, initializer_list<_Up>&, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) explicit constexpr variant( in_place_type_t<_Tp>, initializer_list<_Up> __il, _Args&&... __args) noexcept( is_nothrow_constructible_v<_Tp, initializer_list< _Up>&, _Args...>) : __impl(in_place_index<_Ip>, __il, std::__1::forward<_Args>(__args)...) {} ~variant() = default; variant& operator=(const variant&) = default; variant& operator=(variant&&) = default; template < class _Arg, enable_if_t<!is_same_v<__uncvref_t<_Arg>, variant>, int> = 0, class _Tp = __variant_detail::__best_match_t<_Arg, _Types...>, size_t _Ip = __find_detail::__find_unambiguous_index_sfinae<_Tp, _Types...>::value, enable_if_t<is_assignable_v<_Tp&, _Arg> && is_constructible_v<_Tp, _Arg>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) variant& operator=(_Arg&& __arg) noexcept( is_nothrow_assignable_v<_Tp&, _Arg> && is_nothrow_constructible_v<_Tp, _Arg>) { __impl.template __assign<_Ip>(std::__1::forward<_Arg>(__arg)); return *this; } template < size_t _Ip, class... _Args, enable_if_t<(_Ip < sizeof...(_Types)), int> = 0, class _Tp = variant_alternative_t<_Ip, variant<_Types...>>, enable_if_t<is_constructible_v<_Tp, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp& emplace(_Args&&... __args) { return __impl.template __emplace<_Ip>(std::__1::forward<_Args>(__args)...); } template < size_t _Ip, class _Up, class... _Args, enable_if_t<(_Ip < sizeof...(_Types)), int> = 0, class _Tp = variant_alternative_t<_Ip, variant<_Types...>>, enable_if_t<is_constructible_v<_Tp, initializer_list<_Up>&, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp& emplace(initializer_list<_Up> __il, _Args&&... __args) { return __impl.template __emplace<_Ip>(__il, std::__1::forward<_Args>(__args)...); } template < class _Tp, class... _Args, size_t _Ip = __find_detail::__find_unambiguous_index_sfinae<_Tp, _Types...>::value, enable_if_t<is_constructible_v<_Tp, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp& emplace(_Args&&... __args) { return __impl.template __emplace<_Ip>(std::__1::forward<_Args>(__args)...); } template < class _Tp, class _Up, class... _Args, size_t _Ip = __find_detail::__find_unambiguous_index_sfinae<_Tp, _Types...>::value, enable_if_t<is_constructible_v<_Tp, initializer_list<_Up>&, _Args...>, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) _Tp& emplace(initializer_list<_Up> __il, _Args&&... __args) { return __impl.template __emplace<_Ip>(__il, std::__1::forward<_Args>(__args)...); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool valueless_by_exception() const noexcept { return __impl.valueless_by_exception(); } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr size_t index() const noexcept { return __impl.index(); } template < bool _Dummy = true, enable_if_t< __all<( __dependent_type<is_move_constructible<_Types>, _Dummy>::value && __dependent_type<is_swappable<_Types>, _Dummy>::value)...>::value, int> = 0> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) void swap(variant& __that) noexcept( __all<(is_nothrow_move_constructible_v<_Types> && is_nothrow_swappable_v<_Types>)...>::value) { __impl.__swap(__that.__impl); } private: __variant_detail::__impl<_Types...> __impl; friend struct __variant_detail::__access::__variant; friend struct __variant_detail::__visitation::__variant; }; template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool __holds_alternative(const variant<_Types...>& __v) noexcept { return __v.index() == _Ip; } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool holds_alternative(const variant<_Types...>& __v) noexcept { return __holds_alternative<__find_exactly_one_t<_Tp, _Types...>::value>(__v); } template <size_t _Ip, class _Vp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto&& __generic_get(_Vp&& __v) { using __variant_detail::__access::__variant; if (!__holds_alternative<_Ip>(__v)) { __throw_bad_variant_access(); } return __variant::__get_alt<_Ip>(std::__1::forward<_Vp>(__v)).__value; } template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr variant_alternative_t<_Ip, variant<_Types...>>& get( variant<_Types...>& __v) { static_assert(_Ip < sizeof...(_Types)); static_assert(!is_void_v<variant_alternative_t<_Ip, variant<_Types...>>>); return __generic_get<_Ip>(__v); } template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr variant_alternative_t<_Ip, variant<_Types...>>&& get( variant<_Types...>&& __v) { static_assert(_Ip < sizeof...(_Types)); static_assert(!is_void_v<variant_alternative_t<_Ip, variant<_Types...>>>); return __generic_get<_Ip>(std::__1::move(__v)); } template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const variant_alternative_t<_Ip, variant<_Types...>>& get( const variant<_Types...>& __v) { static_assert(_Ip < sizeof...(_Types)); static_assert(!is_void_v<variant_alternative_t<_Ip, variant<_Types...>>>); return __generic_get<_Ip>(__v); } template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const variant_alternative_t<_Ip, variant<_Types...>>&& get( const variant<_Types...>&& __v) { static_assert(_Ip < sizeof...(_Types)); static_assert(!is_void_v<variant_alternative_t<_Ip, variant<_Types...>>>); return __generic_get<_Ip>(std::__1::move(__v)); } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp& get(variant<_Types...>& __v) { static_assert(!is_void_v<_Tp>); return std::__1::get<__find_exactly_one_t<_Tp, _Types...>::value>(__v); } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr _Tp&& get(variant<_Types...>&& __v) { static_assert(!is_void_v<_Tp>); return std::__1::get<__find_exactly_one_t<_Tp, _Types...>::value>( std::__1::move(__v)); } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp& get(const variant<_Types...>& __v) { static_assert(!is_void_v<_Tp>); return std::__1::get<__find_exactly_one_t<_Tp, _Types...>::value>(__v); } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr const _Tp&& get(const variant<_Types...>&& __v) { static_assert(!is_void_v<_Tp>); return std::__1::get<__find_exactly_one_t<_Tp, _Types...>::value>( std::__1::move(__v)); } template <size_t _Ip, class _Vp> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr auto* __generic_get_if(_Vp* __v) noexcept { using __variant_detail::__access::__variant; return __v && __holds_alternative<_Ip>(*__v) ? std::__1::addressof(__variant::__get_alt<_Ip>(*__v).__value) : nullptr; } template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr add_pointer_t<variant_alternative_t<_Ip, variant<_Types...>>> get_if(variant<_Types...>* __v) noexcept { static_assert(_Ip < sizeof...(_Types)); static_assert(!is_void_v<variant_alternative_t<_Ip, variant<_Types...>>>); return __generic_get_if<_Ip>(__v); } template <size_t _Ip, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr add_pointer_t<const variant_alternative_t<_Ip, variant<_Types...>>> get_if(const variant<_Types...>* __v) noexcept { static_assert(_Ip < sizeof...(_Types)); static_assert(!is_void_v<variant_alternative_t<_Ip, variant<_Types...>>>); return __generic_get_if<_Ip>(__v); } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr add_pointer_t<_Tp> get_if(variant<_Types...>* __v) noexcept { static_assert(!is_void_v<_Tp>); return std::__1::get_if<__find_exactly_one_t<_Tp, _Types...>::value>(__v); } template <class _Tp, class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr add_pointer_t<const _Tp> get_if(const variant<_Types...>* __v) noexcept { static_assert(!is_void_v<_Tp>); return std::__1::get_if<__find_exactly_one_t<_Tp, _Types...>::value>(__v); } template <class _Operator> struct __convert_to_bool { template <class _T1, class _T2> __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator()(_T1 && __t1, _T2&& __t2) const { static_assert(std::is_convertible<decltype(_Operator{}(std::__1::forward<_T1>(__t1), std::__1::forward<_T2>(__t2))), bool>::value, "the relational operator does not return a type which is implicitly convertible to bool"); return _Operator{}(std::__1::forward<_T1>(__t1), std::__1::forward<_T2>(__t2)); } }; template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) { using __variant_detail::__visitation::__variant; if (__lhs.index() != __rhs.index()) return false; if (__lhs.valueless_by_exception()) return true; return __variant::__visit_value_at(__lhs.index(), __convert_to_bool<equal_to<>>{}, __lhs, __rhs); } template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) { using __variant_detail::__visitation::__variant; if (__lhs.index() != __rhs.index()) return true; if (__lhs.valueless_by_exception()) return false; return __variant::__visit_value_at( __lhs.index(), __convert_to_bool<not_equal_to<>>{}, __lhs, __rhs); } template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) { using __variant_detail::__visitation::__variant; if (__rhs.valueless_by_exception()) return false; if (__lhs.valueless_by_exception()) return true; if (__lhs.index() < __rhs.index()) return true; if (__lhs.index() > __rhs.index()) return false; return __variant::__visit_value_at(__lhs.index(), __convert_to_bool<less<>>{}, __lhs, __rhs); } template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) { using __variant_detail::__visitation::__variant; if (__lhs.valueless_by_exception()) return false; if (__rhs.valueless_by_exception()) return true; if (__lhs.index() > __rhs.index()) return true; if (__lhs.index() < __rhs.index()) return false; return __variant::__visit_value_at(__lhs.index(), __convert_to_bool<greater<>>{}, __lhs, __rhs); } template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) { using __variant_detail::__visitation::__variant; if (__lhs.valueless_by_exception()) return true; if (__rhs.valueless_by_exception()) return false; if (__lhs.index() < __rhs.index()) return true; if (__lhs.index() > __rhs.index()) return false; return __variant::__visit_value_at( __lhs.index(), __convert_to_bool<less_equal<>>{}, __lhs, __rhs); } template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(const variant<_Types...>& __lhs, const variant<_Types...>& __rhs) { using __variant_detail::__visitation::__variant; if (__rhs.valueless_by_exception()) return true; if (__lhs.valueless_by_exception()) return false; if (__lhs.index() > __rhs.index()) return true; if (__lhs.index() < __rhs.index()) return false; return __variant::__visit_value_at( __lhs.index(), __convert_to_bool<greater_equal<>>{}, __lhs, __rhs); } template <class _Visitor, class... _Vs> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) visit(_Visitor&& __visitor, _Vs&&... __vs) { using __variant_detail::__visitation::__variant; bool __results[] = {__vs.valueless_by_exception()...}; for (bool __result : __results) { if (__result) { __throw_bad_variant_access(); } } return __variant::__visit_value(std::__1::forward<_Visitor>(__visitor), std::__1::forward<_Vs>(__vs)...); } struct __attribute__ ((__type_visibility__("default"))) monostate {}; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<(monostate, monostate) noexcept { return false; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>(monostate, monostate) noexcept { return false; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator<=(monostate, monostate) noexcept { return true; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator>=(monostate, monostate) noexcept { return true; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator==(monostate, monostate) noexcept { return true; } inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) constexpr bool operator!=(monostate, monostate) noexcept { return false; } template <class... _Types> inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) auto swap(variant<_Types...>& __lhs, variant<_Types...>& __rhs) noexcept(noexcept(__lhs.swap(__rhs))) -> decltype(__lhs.swap(__rhs)) { __lhs.swap(__rhs); } template <class... _Types> struct __attribute__ ((__type_visibility__("default"))) hash< __enable_hash_helper<variant<_Types...>, remove_const_t<_Types>...>> { using argument_type = variant<_Types...>; using result_type = size_t; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result_type operator()(const argument_type& __v) const { using __variant_detail::__visitation::__variant; size_t __res = __v.valueless_by_exception() ? 299792458 : __variant::__visit_alt( [](const auto& __alt) { using __alt_type = __uncvref_t<decltype(__alt)>; using __value_type = remove_const_t< typename __alt_type::__value_type>; return hash<__value_type>{}(__alt.__value); }, __v); return __hash_combine(__res, hash<size_t>{}(__v.index())); } }; template <> struct __attribute__ ((__type_visibility__("default"))) hash<monostate> { using argument_type = monostate; using result_type = size_t; inline __attribute__ ((__visibility__("hidden"))) __attribute__ ((__exclude_from_explicit_instantiation__)) result_type operator()(const argument_type&) const noexcept { return 66740831; } }; } } # 9 "/work/libint/src/TransprecisionMatrix.h" 2 # 1 "/work/libint/src/Tracer.h" 1 # 25 "/work/libint/src/Tracer.h" namespace libint { # 96 "/work/libint/src/Tracer.h" template <int id, typename MATRIX> void TRACEPOINT(MATRIX &ref){}; } # 12 "/work/libint/src/TransprecisionMatrix.h" 2 # 1 "/work/libint/src/TypeList.h" 1 namespace libint { # 93 "/work/libint/src/TypeList.h" template <size_t... Ints> using IntegerList = std::integer_sequence<size_t, Ints...>; template <size_t I> constexpr bool IntegerListSortedImpl(IntegerList<I>); template <typename... Types> struct TypeList; template <typename T> struct TypeList<T> { constexpr static size_t size = 1; }; template <typename T, typename... Types> struct TypeList<T, Types...> : TypeList<Types...> { constexpr static size_t size = 1 + TypeList<Types...>::size; }; template <size_t Nth, typename List> struct Get; template <size_t Nth, typename List> using GetTy = typename Get<Nth, List>::type; template <typename TargetTy, typename List> struct GetNext; template <typename TargetTy, typename List> using GetNextTy = typename GetNext<TargetTy, List>::type; template <typename TypeList1, typename TypeList2> struct ConcatTypeLists; template <typename TypeList1, typename TypeList2> using ConcatTypeListsTy = typename ConcatTypeLists<TypeList1, TypeList2>::type; template <typename TypeList, typename IntegerList, template <typename, size_t> typename ProdType> struct TypeListIntegerListProduct; template <typename TypeList, typename IntegerList, template <typename, size_t> typename ProdType> using TypeListIntegerListProductTy = typename TypeListIntegerListProduct<TypeList, IntegerList, ProdType>::type; template <typename IntegerList, typename TypeList, template <size_t, typename> typename ProdType> struct IntegerListTypeListProduct; template <typename IntegerList, typename TypeList, template <size_t, typename> typename ProdType> using IntegerListTypeListProductTy = typename IntegerListTypeListProduct<IntegerList, TypeList, ProdType>::type; template <template <typename...> typename To, typename TypeList> struct Convert; template <template <typename...> typename To, typename TypeList> using ConvertTy = typename Convert<To, TypeList>::type; template <size_t... Ints> constexpr auto IntegerListToArray(IntegerList<Ints...>); template <size_t N, typename INT, INT Int, INT... Ints> constexpr auto GetInt(std::integer_sequence<INT, Int, Ints...>); template <typename Type1, typename Type2, typename... Types> constexpr bool TypeListSortedBySizeOfImpl(TypeList<Type1, Type2, Types...>); template <typename Types> using TypeListSortedBySizeOf = std::conditional_t<TypeListSortedBySizeOfImpl(Types{}), std::true_type, std::false_type>; template <size_t I1, size_t I2, size_t... Is> constexpr bool IntegerListSortedImpl(IntegerList<I1, I2, Is...>); template <typename IntegerList> using IntegerListSorted = std::conditional_t<IntegerListSortedImpl(IntegerList{}), std::true_type, std::false_type>; namespace detail { template <typename T> struct TypeWrapper { using type = T; }; template <size_t Nth, typename T, typename... Types> constexpr auto GetImpl(TypeList<T, Types...>) { if constexpr (Nth == 0) { return TypeWrapper<T>{}; } else { return GetImpl<Nth - 1>(TypeList<Types...>{}); } } template <typename TargetTy, typename T, typename... Types> constexpr auto GetNextImpl(TypeList<T, Types...>) { if constexpr (std::is_same_v<TargetTy, T>) { static_assert(sizeof...(Types) > 0, "Specified type is the last type in the TypeList"); return Get<0, TypeList<Types...>>{}; } else { static_assert(sizeof...(Types) > 0, "Specified type is not present in the TypeList"); return GetNextImpl<TargetTy>(TypeList<Types...>{}); } } template <typename... Types1, template <typename...> typename TypeList1, typename... Types2, template <typename...> typename TypeList2> auto ConcatTypeListsImpl(TypeList1<Types1...>, TypeList2<Types2...>) { return TypeWrapper<TypeList<Types1..., Types2...>>{}; } template <size_t N2, template <typename, size_t> typename ProdType, typename T, typename IntegerList> constexpr auto TypeListIntegerListProductImpl(IntegerList) { using current = TypeList<ProdType<T, GetInt<N2>(IntegerList{})>>; if constexpr (N2 == IntegerList::size() - 1) { return TypeWrapper<current>{}; } else { using productRest = typename decltype(TypeListIntegerListProductImpl<N2 + 1, ProdType, T>( IntegerList{}))::type; return TypeWrapper<ConcatTypeListsTy<current, productRest>>{}; } } template <size_t N, template <typename, size_t> typename ProdType, typename TypeList, typename IntegerList> constexpr auto TypeListIntegerListProductImpl(TypeList, IntegerList) { auto N1row = TypeListIntegerListProductImpl<0, ProdType, GetTy<N, TypeList>>( IntegerList{}); if constexpr (N == TypeList::size - 1) { return N1row; } else { using productRest = typename decltype(TypeListIntegerListProductImpl<N + 1, ProdType>( TypeList{}, IntegerList{}))::type; return TypeWrapper< ConcatTypeListsTy<typename decltype(N1row)::type, productRest>>{}; } } template <size_t N2, template <size_t, typename> typename ProdType, size_t I, typename TypeList_> constexpr auto IntegerListTypeListProductImpl(TypeList_) { using current = TypeList<ProdType<I, GetTy<N2, TypeList_>>>; if constexpr (N2 == TypeList_::size - 1) { return TypeWrapper<current>{}; } else { using productRest = typename decltype( IntegerListTypeListProductImpl<N2 + 1, ProdType, I>(TypeList_{}))::type; return TypeWrapper<ConcatTypeListsTy<current, productRest>>{}; } } template <size_t N, template <size_t, typename> typename ProdType, typename IntegerList, typename TypeList> constexpr auto IntegerListTypeListProductImpl(IntegerList, TypeList) { auto N1row = IntegerListTypeListProductImpl<0, ProdType, GetInt<N>(IntegerList{})>( TypeList{}); if constexpr (N == IntegerList::size() - 1) { return N1row; } else { using productRest = typename decltype(IntegerListTypeListProductImpl<N + 1, ProdType>( IntegerList{}, TypeList{}))::type; return TypeWrapper< ConcatTypeListsTy<typename decltype(N1row)::type, productRest>>{}; } } template <template <typename...> typename To, template <typename...> typename TypeList, typename... Args> auto ConvertImpl(TypeList<Args...>) { return TypeWrapper<To<Args...>>{}; } template <size_t N, size_t Dummy, size_t... Ints> constexpr void IntegerListToArrayImpl(std::array<size_t, Dummy> &arr, IntegerList<Ints...>) { arr[N] = GetInt<N>(IntegerList<Ints...>{}); if constexpr (N < sizeof...(Ints) - 1) IntegerListToArrayImpl<N + 1>(arr, IntegerList<Ints...>{}); } } template <template <typename...> typename To, typename TypeList> struct Convert { using type = typename decltype(detail::ConvertImpl<To>(TypeList{}))::type; }; template <size_t Nth, typename List> struct Get { static_assert(Nth < List::size, "N-th is larger than the size of the list"); using type = typename decltype(detail::GetImpl<Nth>(List{}))::type; }; template <typename TargetTy, typename List> struct GetNext { using type = typename decltype(detail::GetNextImpl<TargetTy>(List{}))::type; }; template <typename TypeList1, typename TypeList2> struct ConcatTypeLists { using type = typename decltype( detail::ConcatTypeListsImpl(TypeList1{}, TypeList2{}))::type; }; template <typename TypeList, typename IntegerList, template <typename, size_t> typename ProdType> struct TypeListIntegerListProduct { using type = typename decltype(detail::TypeListIntegerListProductImpl<0, ProdType>( TypeList{}, IntegerList{}))::type; }; template <typename IntegerList, typename TypeList, template <size_t, typename> typename ProdType> struct IntegerListTypeListProduct { using type = typename decltype(detail::IntegerListTypeListProductImpl<0, ProdType>( IntegerList{}, TypeList{}))::type; }; template <size_t... Ints> constexpr auto IntegerListToArray(IntegerList<Ints...>) { std::array<size_t, sizeof...(Ints)> arr; detail::IntegerListToArrayImpl<0>(arr, IntegerList<Ints...>{}); return arr; } template <size_t N, typename INT, INT Int, INT... Ints> constexpr auto GetInt(std::integer_sequence<INT, Int, Ints...>) { if constexpr (N == 0) { return Int; } else { return GetInt<N - 1>(std::integer_sequence<INT, Ints...>{}); } } template <size_t I> constexpr bool IntegerListSortedImpl(IntegerList<I>) { return true; } template <size_t I1, size_t I2, size_t... Is> constexpr bool IntegerListSortedImpl(IntegerList<I1, I2, Is...>) { if constexpr (I1 > I2) return false; else return IntegerListSortedImpl(IntegerList<I2, Is...>{}); } template <typename Type> constexpr bool TypeListSortedBySizeOfImpl(TypeList<Type>) { return true; } template <typename Type1, typename Type2, typename... Types> constexpr bool TypeListSortedBySizeOfImpl(TypeList<Type1, Type2, Types...>) { if constexpr (sizeof(Type1) > sizeof(Type2)) return false; else return TypeListSortedBySizeOfImpl(TypeList<Type2, Types...>{}); } } # 13 "/work/libint/src/TransprecisionMatrix.h" 2 # 1 "/work/libint/src/TypeTraits.h" 1 namespace libint { template <typename IntegerTys = libint::TypeList<int16_t, int32_t, int64_t>, typename MaxCols = libint::IntegerList<8, 16, 32>> class TransprecisionMatrix { public: using MatrixVariant = ConvertTy<std::variant, IntegerListTypeListProductTy<MaxCols, IntegerTys, Matrix>>; template <typename R, typename F> __attribute__((always_inline)) R dispatch(F f); MatrixVariant matrix; }; namespace detail { template <typename R, typename F, typename Variant, typename T, typename... Types> __attribute__((always_inline)) R visit_impl(F &&f, Variant &v) { if (auto *ptr = std::get_if<T>(&v); ptr) return f(*ptr); else if constexpr (sizeof...(Types) > 0) return visit_impl<R, F, decltype(v), Types...>(std::forward<F>(f), v); { __builtin_unreachable(); } } template <typename R, typename F, typename... Types> __attribute__((always_inline)) R visit(F &&f, std::variant<Types...> &v) { return visit_impl<R, F, std::variant<Types...>, Types...>(std::forward<F>(f), v); } } template <typename IntegerTys, typename MaxCols, typename R, int tpidx, typename FUN, typename... ARGS> __attribute__((always_inline)) R visitMatrix( FUN &&fun, typename TransprecisionMatrix<IntegerTys, MaxCols>::MatrixVariant &matrix, ARGS &... args) { return detail::visit<R>( [&fun, &args...](auto &mat) { if constexpr (tpidx != -1) { TRACEPOINT<tpidx>(mat); } return fun(mat, args...); }, matrix); } template <typename IntegerTys, typename MaxCols> template <typename R, typename F> R TransprecisionMatrix<IntegerTys, MaxCols>::dispatch(F f) { return visitMatrix<IntegerTys, MaxCols, R, 1>(f, matrix); } } void isl_map_coalesce_libint( libint::TransprecisionMatrix<> &tableau ) { tableau.template dispatch<void>( [](auto &matrix) { }); }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree