Directory structure:
└── maxpoletaev-directcgo/
├── README.md
├── call_amd64.s
├── call_arm64.s
├── directcgo.go
├── directcgo.h
├── go.mod
├── go.sum
├── LICENSE.txt
├── bench/
│ ├── bench_test.go
│ ├── code.c
│ ├── code.go
│ ├── code.h
│ ├── binding/
│ │ ├── binding.go
│ │ ├── directcgo_amd64.s
│ │ └── directcgo_arm64.s
│ └── pureasm/
│ ├── add.go
│ ├── add_amd64.s
│ └── add_arm64.s
├── cmd/
│ └── directcgo/
│ └── main.go
├── codegen/
│ ├── amd64.go
│ ├── arm64.go
│ ├── builder.go
│ ├── codegen.go
│ ├── codegen_test.go
│ ├── header.go
│ └── ir.go
├── example/
│ ├── code.c
│ ├── code.h
│ └── main.go
└── testsuite/
├── output.c
├── output.go
├── primitive.c
├── primitive.go
├── primitive_test.go
├── struct.c
├── struct.go
├── struct_test.go
├── testsuite.h
├── binding/
│ ├── binding.go
│ ├── directcgo_amd64.s
│ └── directcgo_arm64.s
└── overflow/
├── overflow.go
└── overflow_test.go